private DataClassInfo FindDataClass(BaseInfo item) { switch (item.TypeInfo.ObjectType) { case BizFormInfo.OBJECT_TYPE: var classId = ValidationHelper.GetInteger(item.GetValue("FormClassID"), 0); return DataClassInfoProvider.GetDataClassInfo(classId); case DocumentTypeInfo.OBJECT_TYPE_DOCUMENTTYPE: case CustomTableInfo.OBJECT_TYPE_CUSTOMTABLE: var className = ValidationHelper.GetString(item.GetValue("ClassName"), String.Empty); return DataClassInfoProvider.GetDataClassInfo(className); } return null; }
private DataClassInfo FindDataClass(BaseInfo item) { switch (item.TypeInfo.ObjectType) { case BizFormInfo.OBJECT_TYPE: var classId = ValidationHelper.GetInteger(item.GetValue("FormClassID"), 0); return(DataClassInfoProvider.GetDataClassInfo(classId)); case DocumentTypeInfo.OBJECT_TYPE_DOCUMENTTYPE: case CustomTableInfo.OBJECT_TYPE_CUSTOMTABLE: var className = ValidationHelper.GetString(item.GetValue("ClassName"), String.Empty); return(DataClassInfoProvider.GetDataClassInfo(className)); } return(null); }
private static void FillDataRow(BaseInfo item, DataRow row) { var generalizedInfo = item.Generalized; var prefix = generalizedInfo.ObjectClassName.Split('.').Last(); foreach (string column in row.Table.Columns.OfType <DataColumn>().Select(c => c.ColumnName)) { if (column == generalizedInfo.GUIDColumn) { var guid = Guid.NewGuid(); item.SetValue(column, guid); row[column] = guid; } else if ((column == generalizedInfo.TimeStampColumn) || (column == string.Format("{0}Created", prefix))) { var date = DateTime.Now; item.SetValue(column, date); row[column] = date; } else { row[column] = item.GetValue(column) ?? DBNull.Value; } } }
/// <summary> /// Returns value of the given object column. /// </summary> /// <param name="info">Object data</param> /// <param name="columnName">Column name</param> private static object GetColumnValue(BaseInfo info, string columnName) { if ((info != null) && info.ContainsColumn(columnName)) { return(info.GetValue(columnName)); } return(null); }
public static IDocument FromBaseInfo(IExecutionContext context, BaseInfo info) { var metadata = new List <KeyValuePair <string, object> >(); metadata.AddRange(info.Properties.Select( key => new KeyValuePair <string, object>(key, info.GetValue(key)) )); return(context.CreateDocument(metadata)); }
protected void Page_Load(object sender, EventArgs e) { if (StopProcessing) { // No actions if processing is stopped } else { //Check view permission if (!CheckViewPermissions(UIContext.EditedObject as BaseInfo)) { editElem.StopProcessing = true; editElem.Visible = false; return; } if (!CheckEditPermissions()) { editElem.Enabled = false; editElem.ShowError(GetString("ui.notauthorizemodified")); } editElem.OnAfterDefinitionUpdate += new EventHandler(editElem_OnAfterDefinitionUpdate); if (DisplayedControls != String.Empty) { editElem.DisplayedControls = DisplayedControls.ToEnum <FieldEditorControlsEnum>(); } if (FieldEditorMode != String.Empty) { editElem.Mode = FieldEditorMode.ToEnum <FieldEditorModeEnum>(); } editElem.ShowQuickLinks = ShowQuickLinks; BaseInfo bi = UIContext.EditedObject as BaseInfo; // Set the form defintion to the FieldEditor if ((bi != null) && (ParametersColumnName != String.Empty)) { // Set properties for webpart switch (editElem.Mode) { case FieldEditorModeEnum.WebPartProperties: case FieldEditorModeEnum.SystemWebPartProperties: editElem.WebPartId = bi.Generalized.ObjectID; break; } editElem.FormDefinition = ValidationHelper.GetString(bi.GetValue(ParametersColumnName), String.Empty); } ScriptHelper.HideVerticalTabs(Page); } }
/// <summary> /// Selects base info item /// </summary> /// <param name="bi">Base info item definition</param> private String SelectItem(BaseInfo bi) { String script = String.Empty; int parentID = ValidationHelper.GetInteger(bi.GetValue(itemParentColumn), 0); BaseInfo biParent = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentID); if (biParent != null) { String categoryPath = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty); string path = categoryPath + "/" + bi.Generalized.ObjectCodeName; script += SelectAfterLoad(path, bi.Generalized.ObjectID, "item", parentID, true, true); } return(script); }
/// <summary> /// Raises the JavaScript function which is defined in the url. /// </summary> private void RaiseReturnHandler() { if (!string.IsNullOrEmpty(ReturnHandler)) { string wopenerReturnType = QueryHelper.GetString("returntype", string.Empty).ToLowerCSafe(); BaseInfo bi = EditForm.EditedObject; if (bi != null) { string returnColumnName; // Get the return column name switch (wopenerReturnType) { case "codename": returnColumnName = bi.TypeInfo.CodeNameColumn; break; case "displayname": returnColumnName = bi.TypeInfo.DisplayNameColumn; break; case "guid": returnColumnName = bi.TypeInfo.GUIDColumn; break; default: returnColumnName = bi.TypeInfo.IDColumn; break; } string returnHandler = ScriptHelper.GetString(ReturnHandler, false); string returnValue = ScriptHelper.GetString((bi.GetValue(returnColumnName) ?? string.Empty).ToString()); string wopenerScript = "if (wopener && wopener." + returnHandler + ") { wopener." + returnHandler + "(" + returnValue + "); }"; // Empty redirect url after create, redirect manually after update script are launched if (!String.IsNullOrEmpty(EditForm.RedirectUrlAfterSave)) { wopenerScript += "window.location='" + ResolveUrl(EditForm.RedirectUrlAfterSave) + "';"; EditForm.RedirectUrlAfterSave = ""; } // Register the handler script to the page ScriptHelper.RegisterWOpenerScript(Page); ScriptHelper.RegisterClientScriptBlock(Page, GetType(), "UpdateWOpener", wopenerScript, true); } } }
/// <summary> /// Used for maxnodes in collapsed node. /// </summary> private TreeNode treeElem_OnNodeCreated(DataRow itemData, TreeNode defaultNode) { if (UseMaxNodeLimit && (MaxTreeNodes > 0)) { //Get parentID from data row int parentID = ValidationHelper.GetInteger(itemData.ItemArray[4], 0); string dataObjectType = ValidationHelper.GetString(itemData.ItemArray[7], String.Empty); //Dont use maxnodes limitation for categories if (dataObjectType.ToLowerCSafe().Contains("category")) { return(defaultNode); } //Increment index count in collapsing mIndex++; if (mIndex == MaxTreeNodes) { //Load parentid int parentParentID = 0; BaseInfo biParent = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentID); if (biParent != null) { parentParentID = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0); } TreeNode node = new TreeNode(); node.Text = "<span class=\"ContentTreeItem\" onclick=\"SelectNode(" + parentID + " ,'category'," + parentParentID + ",true ); return false;\"><span class=\"Name\">" + GetString("general.seelisting") + "</span></span>"; return(node); } if (mIndex > MaxTreeNodes) { return(null); } } return(defaultNode); }
/// <summary> /// Get ForumInfo object value to initialize ThreeStateControl object /// </summary> /// <param name="infoObj">Object used to initialize ThreeStateControl</param> /// <param name="propertyName">Object property used for initialization</param> /// <returns>Integer value used to initialize ThreeStateControl </returns> public void InitFromThreeStateValue(BaseInfo infoObj, string propertyName) { object dbValue = infoObj.GetValue(propertyName); Value = (dbValue == null) ? -1 : ValidationHelper.GetBoolean(dbValue, true) ? 1 : 0; }
/// <summary> /// Handles delete action. /// </summary> /// <param name="eventArgument">Objecttype(item or itemcategory);objectid</param> public void RaisePostBackEvent(string eventArgument) { string[] values = eventArgument.Split(';'); if (values.Length == 3) { int id = ValidationHelper.GetInteger(values[1], 0); int parentId = ValidationHelper.GetInteger(values[2], 0); BaseInfo biParent = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentId); if (biParent == null) { return; } String categoryPath = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty); int parentID = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0); //Test permission if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource(ResourceName, "Modify")) { String url = CMSPage.GetAccessDeniedUrl(UIHelper.ACCESSDENIED_PAGE, ResourceName, "modify", String.Empty, String.Empty); // Display access denied page in conent frame and select deleted item again String denyScript = @"$cmsj(document).ready(function(){ frames['paneContentTMain'].location = '" + ResolveUrl(url) + "';" + SelectAfterLoad(categoryPath + "/", id, values[0], parentId, false, false) + "});"; ltlScript.Text += ScriptHelper.GetScript(denyScript); return; } string script = String.Empty; switch (values[0]) { case "item": BaseInfo bi = BaseAbstractInfoProvider.GetInfoById(objectType, id); if (bi != null) { bi.Delete(); } break; case "category": try { BaseInfo biCate = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, id); if (biCate != null) { biCate.Delete(); } } catch (Exception ex) { // Make alert with exception message, most probable cause is deleting category with subcategories script = String.Format("alert('{0}');\n", ex.Message); // Current node stays selected parentId = id; } break; } // After delete select first tab always tabIndexStr = String.Empty; script = SelectAfterLoad(categoryPath + "/", parentId, "category", parentID, true, true) + script; ltlScript.Text += ScriptHelper.GetScript(script); } }
protected void Page_Load(object sender, EventArgs e) { objectType = UIContextHelper.GetObjectType(UIContext); CloneItemButton.Visible = DisplayCloneButton; // Pass tabindex int tabIndex = ValidationHelper.GetInteger(UIContext["TabIndex"], 0); if (tabIndex != 0) { tabIndexStr = "&tabindex=" + tabIndex; } String editElem = ValidationHelper.GetString(UIContext["itemEdit"], String.Empty); String categoryElem = ValidationHelper.GetString(UIContext["categoryedit"], String.Empty); categoryPathColumn = ValidationHelper.GetString(UIContext["pathColumn"], String.Empty); categoryParentColumn = ValidationHelper.GetString(UIContext["categoryparentcolumn"], String.Empty); categoryObjectType = ValidationHelper.GetString(UIContext["parentobjecttype"], String.Empty); itemParentColumn = ValidationHelper.GetString(UIContext["parentColumn"], String.Empty); newItem = ValidationHelper.GetString(UIContext["newitem"], String.Empty); if (!ValidateInput()) { return; } itemLocation = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ResourceName, editElem), "?tabslayout=horizontal&displaytitle=false"); categoryLocation = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ResourceName, categoryElem), "?tabslayout=horizontal&displaytitle=false"); RegisterExportScript(); RegisterTreeScript(); InitTree(); // Setup menu action scripts String newItemText = newItem.StartsWithCSafe("javascript", true) ? newItem : "NewItem('item'); return false;"; AddButon.Actions.Add(new CMSButtonAction { Text = GetString(objectType + ".newitem"), OnClientClick = newItemText }); AddButon.Actions.Add(new CMSButtonAction { Text = GetString("development.tree.newcategory"), OnClientClick = "NewItem('category'); return false;" }); DeleteItemButton.OnClientClick = "DeleteItem(); return false;"; ExportItemButton.OnClientClick = "ExportObject(); return false;"; CloneItemButton.OnClientClick = "if ((selectedItemId > 0) && (selectedItemType == 'item')) { modalDialog('" + URLHelper.ResolveUrl("~/CMSModules/Objects/Dialogs/CloneObjectDialog.aspx?reloadall=1&displaytitle=" + UIContext["displaytitle"] + "&objecttype=" + objectType + "&objectid=") + "' + selectedItemId, 'Clone item', 750, 470); } return false;"; // Tooltips DeleteItemButton.ToolTip = GetString("development.tree.deleteselected"); ExportItemButton.ToolTip = GetString("exportobject.title"); CloneItemButton.ToolTip = GetString(objectType + ".clone"); // URLs for menu actions String script = "var doNotReloadContent = false;\n"; // Script for deleting widget or category string delPostback = ControlsHelper.GetPostBackEventReference(this, "##"); string deleteScript = "function DeleteItem() { \n" + " if ((selectedItemId > 0) && (selectedItemParent > 0) && " + " confirm(" + ScriptHelper.GetLocalizedString("general.deleteconfirmation") + ")) {\n " + delPostback.Replace("'##'", "selectedItemType+';'+selectedItemId+';'+selectedItemParent") + ";\n" + "}\n" + "}\n"; script += deleteScript; // Preselect tree item if (!RequestHelper.IsPostBack()) { int parentobjectid = QueryHelper.GetInteger("parentobjectid", 0); int objectID = QueryHelper.GetInteger("objectID", 0); // Select category if (parentobjectid > 0) { BaseInfo biParent = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentobjectid); if (biParent != null) { String path = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty); int parentID = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0); script += SelectAfterLoad(path, parentobjectid, "category", parentID, true, true); } } // Select item else if (objectID > 0) { BaseInfo bi = BaseAbstractInfoProvider.GetInfoById(objectType, objectID); if (bi != null) { script += SelectItem(bi); } } else { // Selection by hierarchy URL BaseInfo biSel = UIContext.EditedObject as BaseInfo; BaseInfo biParent = UIContext.EditedObjectParent as BaseInfo; // Check for category selection if ((biParent != null) && (biParent.TypeInfo.ObjectType == categoryObjectType)) { String path = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty); int parentID = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0); script += SelectAfterLoad(path, biParent.Generalized.ObjectID, "category", parentID, false, true); } // Check for item selection else if ((biSel != null) && (biSel.TypeInfo.ObjectType == objectType)) { script += SelectItem(biSel); } else { // Select root by default BaseInfo bi = BaseAbstractInfoProvider.GetInfoByName(categoryObjectType, "/"); if (bi != null) { script += SelectAfterLoad("/", bi.Generalized.ObjectID, "category", 0, true, true); } } } } ltlScript.Text += ScriptHelper.GetScript(script); }
/// <summary> /// Handles delete action. /// </summary> /// <param name="eventArgument">Objecttype(item or itemcategory);objectid</param> public void RaisePostBackEvent(string eventArgument) { string[] values = eventArgument.Split(';'); if (values.Length == 3) { int id = ValidationHelper.GetInteger(values[1], 0); int parentId = ValidationHelper.GetInteger(values[2], 0); BaseInfo biParent = ProviderHelper.GetInfoById(categoryObjectType, parentId); if (biParent == null) { return; } String categoryPath = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty); int parentID = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0); //Test permission if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource(ResourceName, "Modify")) { String url = CMSPage.GetAccessDeniedUrl(AdministrationUrlHelper.ADMIN_ACCESSDENIED_PAGE, ResourceName, "modify", String.Empty, String.Empty); // Display access denied page in conent frame and select deleted item again String denyScript = @"$cmsj(document).ready(function(){ frames['paneContentTMain'].location = '" + ResolveUrl(url) + "';" + SelectAfterLoad(categoryPath + "/", id, values[0], parentId, false, false) + "});"; ScriptHelper.RegisterClientScriptBlock(Page, typeof(string), ClientID + "_AccessDenied", ScriptHelper.GetScript(denyScript)); return; } switch (values[0]) { case "item": BaseInfo bi = ProviderHelper.GetInfoById(objectType, id); if (bi != null) { bi.Delete(); } break; case "category": try { BaseInfo biCate = ProviderHelper.GetInfoById(categoryObjectType, id); if (biCate != null) { biCate.Delete(); } } catch (Exception ex) { // Make alert with exception message, most probable cause is deleting category with subcategories var script = $"alert('{ScriptHelper.GetString(ex.Message, false)}');\n"; script += SelectAfterLoad(categoryPath + "/", id, "category", parentID, true, true); ScriptHelper.RegisterClientScriptBlock(Page, typeof(string), ClientID + "_AfterLoad", ScriptHelper.GetScript(script)); return; } break; } // After delete select first tab always tabIndexStr = String.Empty; var location = UIContextHelper.GetElementUrl(UIContext.UIElement, UIContext); location = URLHelper.RemoveParameterFromUrl(location, "objectid"); location = URLHelper.UpdateParameterInUrl(location, "parentobjectid", parentId.ToString()); URLHelper.Redirect(location); } }
/// <summary> /// Returns value of the given object column. /// </summary> /// <param name="info">Object data</param> /// <param name="columnName">Column name</param> private static object GetColumnValue(BaseInfo info, string columnName) { if ((info != null) && info.ContainsColumn(columnName)) { return info.GetValue(columnName); } return null; }
protected void Page_Load(object sender, EventArgs e) { eObject = UIContext.EditedObject as BaseInfo; // If saved is found in query string if (!RequestHelper.IsPostBack() && (QueryHelper.GetInteger("saved", 0) == 1)) { ShowChangesSaved(); } string before = String.Empty; string after = String.Empty; String objectType = UIContextHelper.GetObjectType(UIContext); switch (objectType.ToLowerCSafe()) { case "cms.webpart": defaultValueColumName = "WebPartDefaultValues"; before = PortalFormHelper.GetWebPartProperties(WebPartTypeEnum.Standard, PropertiesPosition.Before); after = PortalFormHelper.GetWebPartProperties(WebPartTypeEnum.Standard, PropertiesPosition.After); defaultSet = FormHelper.CombineFormDefinitions(before, after); WebPartInfo wi = eObject as WebPartInfo; // If inherited web part load parent properties if (wi.WebPartParentID > 0) { WebPartInfo parentInfo = WebPartInfoProvider.GetWebPartInfo(wi.WebPartParentID); if (parentInfo != null) { properties = FormHelper.MergeFormDefinitions(parentInfo.WebPartProperties, wi.WebPartProperties); } } else { properties = wi.WebPartProperties; } break; case "cms.widget": before = PortalFormHelper.LoadProperties("Widget", "Before.xml"); after = PortalFormHelper.LoadProperties("Widget", "After.xml"); defaultSet = FormHelper.CombineFormDefinitions(before, after); defaultValueColumName = "WidgetDefaultValues"; WidgetInfo wii = eObject as WidgetInfo; if (wii != null) { WebPartInfo wiiWp = WebPartInfoProvider.GetWebPartInfo(wii.WidgetWebPartID); if (wiiWp != null) { properties = FormHelper.MergeFormDefinitions(wiiWp.WebPartProperties, wii.WidgetProperties); } } break; } // Get the web part info if (eObject != null) { String defVal = ValidationHelper.GetString(eObject.GetValue(defaultValueColumName), string.Empty); defaultSet = LoadDefaultValuesXML(defaultSet); fieldEditor.Mode = FieldEditorModeEnum.SystemWebPartProperties; fieldEditor.FormDefinition = FormHelper.MergeFormDefinitions(defaultSet, defVal); fieldEditor.OnAfterDefinitionUpdate += fieldEditor_OnAfterDefinitionUpdate; fieldEditor.OriginalFormDefinition = defaultSet; fieldEditor.WebPartId = eObject.Generalized.ObjectID; } ScriptHelper.HideVerticalTabs(Page); }
protected void Page_Load(object sender, EventArgs e) { eObject = UIContext.EditedObject as BaseInfo; // If saved is found in query string if (!RequestHelper.IsPostBack() && (QueryHelper.GetInteger("saved", 0) == 1)) { ShowChangesSaved(); } string before = String.Empty; string after = String.Empty; String objectType = UIContextHelper.GetObjectType(UIContext); switch (objectType.ToLowerCSafe()) { case "cms.webpart": defaultValueColumName = "WebPartDefaultValues"; before = PortalFormHelper.GetWebPartProperties(WebPartTypeEnum.Standard, PropertiesPosition.Before); after = PortalFormHelper.GetWebPartProperties(WebPartTypeEnum.Standard, PropertiesPosition.After); defaultSet = FormHelper.CombineFormDefinitions(before, after); WebPartInfo wi = eObject as WebPartInfo; // If inherited web part load parent properties if (wi.WebPartParentID > 0) { WebPartInfo parentInfo = WebPartInfoProvider.GetWebPartInfo(wi.WebPartParentID); if (parentInfo != null) { webPartProperties = FormHelper.MergeFormDefinitions(parentInfo.WebPartProperties, wi.WebPartProperties); } } else { webPartProperties = wi.WebPartProperties; } break; case "cms.widget": before = PortalFormHelper.LoadProperties("Widget", "Before.xml"); after = PortalFormHelper.LoadProperties("Widget", "After.xml"); defaultSet = FormHelper.CombineFormDefinitions(before, after); defaultValueColumName = "WidgetDefaultValues"; WidgetInfo wii = eObject as WidgetInfo; if (wii != null) { WebPartInfo wiiWp = WebPartInfoProvider.GetWebPartInfo(wii.WidgetWebPartID); if (wiiWp != null) { webPartProperties = FormHelper.MergeFormDefinitions(wiiWp.WebPartProperties, wii.WidgetProperties); } } break; } // Get the web part info if (eObject != null) { String defVal = ValidationHelper.GetString(eObject.GetValue(defaultValueColumName), string.Empty); defaultSet = LoadDefaultValuesXML(defaultSet); fieldEditor.Mode = FieldEditorModeEnum.SystemWebPartProperties; fieldEditor.FormDefinition = FormHelper.MergeFormDefinitions(defaultSet, defVal); fieldEditor.OnAfterDefinitionUpdate += fieldEditor_OnAfterDefinitionUpdate; fieldEditor.OriginalFormDefinition = defaultSet; fieldEditor.WebPartId = eObject.Generalized.ObjectID; } ScriptHelper.HideVerticalTabs(Page); }
private static void FillDataRow(BaseInfo item, DataRow row) { var ti = item.TypeInfo; var prefix = ti.ObjectClassName.Split('.').Last(); foreach (string column in row.Table.Columns.OfType<DataColumn>().Select(c => c.ColumnName)) { if (column == ti.GUIDColumn) { var guid = Guid.NewGuid(); item.SetValue(column, guid); row[column] = guid; } else if ((column == ti.TimeStampColumn) || (column == string.Format("{0}Created", prefix))) { var date = DateTime.Now; item.SetValue(column, date); row[column] = date; } else { row[column] = item.GetValue(column) ?? DBNull.Value; } } }
/// <summary> /// Get ForumInfo object value to initialize ThreeStateControl object /// </summary> /// <param name="forumObj">ForumInfo object used to initialize ThreeStateControl</param> /// <param name="propertyName">Object property used for initialization</param> /// <returns>Integer value used to initialize ThreeStateControl </returns> public void InitFromThreeStateValue(BaseInfo infoObj, string propertyName) { object dbValue = infoObj.GetValue(propertyName); Value = (dbValue == null) ? -1 : ValidationHelper.GetBoolean(dbValue, true) ? 1 : 0; }
/// <summary> /// Selects base info item /// </summary> /// <param name="bi">Base info item definition</param> private String SelectItem(BaseInfo bi) { String script = String.Empty; int parentID = ValidationHelper.GetInteger(bi.GetValue(itemParentColumn), 0); BaseInfo biParent = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentID); if (biParent != null) { String categoryPath = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty); string path = categoryPath + "/" + bi.Generalized.ObjectCodeName; script += SelectAfterLoad(path, bi.Generalized.ObjectID, "item", parentID, true, true); } return script; }