/// <summary> /// Loads field types. /// </summary> /// <param name="type">Control type specifying which field types to load</param> public void LoadFieldTypes(FormUserControlTypeEnum type) { string selectedValue = drpFieldType.SelectedValue; FieldEditorControlsEnum controls = GetDisplayedControls(); // Clear list bool isPrimary = false; if (this.FieldInfo != null) { isPrimary = this.FieldInfo.PrimaryKey; } drpFieldType.Items.Clear(); drpFieldType.DataTextField = "UserControlDisplayName"; drpFieldType.DataValueField = "UserControlCodeName"; drpFieldType.DataSource = FormHelper.GetFieldControlTypesWithUserControls(null, controls, true, isPrimary, type); drpFieldType.DataBind(); // Add trackback controls when editing CMS.BlogPost document type if ((controls == FieldEditorControlsEnum.DocumentTypes) && (ClassName.ToLower() == "cms.blogpost")) { drpFieldType.Items.Add(new ListItem("Trackbacks - pinged URLs", "#uc#trackbackspingedurls")); drpFieldType.Items.Add(new ListItem("Trackbacks - not pinged URLs", "#uc#trackbacksnotpingedurls")); } // And set field value (if set before) if (drpFieldType.Items.FindByValue(selectedValue) != null) { drpFieldType.SelectedValue = selectedValue; } }
/// <summary> /// Fill field types list. Form control types will be restricted to actual selection in Form control types drop-down list. /// </summary> /// <param name="isPrimary">Determines whether the attribute is primary key</param> /// <param name="clearValue">Determines if selector should clear selected value</param> public void LoadFieldTypes(bool isPrimary) { FieldEditorControlsEnum controls = GetControls(DisplayedControls, mMode, DevelopmentMode); string filteredControlsWhere = FormHelper.GetWhereConditionForDataType(AttributeType, controls, isPrimary, FormUserControlTypeEnum.Unspecified); drpControl.WhereCondition = filteredControlsWhere; // Exception for blogposts in document types if ((controls != FieldEditorControlsEnum.DocumentTypes) || (ClassName.ToLowerCSafe() != "cms.blogpost")) { // Show trackbackpingedurls only when editing blogposts drpControl.WhereCondition = SqlHelperClass.AddWhereCondition(drpControl.WhereCondition, FormUserControlInfo.TYPEINFO.CodeNameColumn + " <> 'trackbackspingedurls'"); drpControl.WhereCondition = SqlHelperClass.AddWhereCondition(drpControl.WhereCondition, FormUserControlInfo.TYPEINFO.CodeNameColumn + " <> 'trackbacksnotpingedurls'"); } drpControl.Reload(true); }
/// <summary> /// Fill field types list. /// </summary> /// <param name="isPrimary">Determines whether the attribute is primary key</param> /// <param name="type">Control type</param> public void LoadFieldTypes(bool isPrimary, FormUserControlTypeEnum type, bool clearValue) { FieldEditorControlsEnum controls = GetControls(); string selectedValue = drpField.SelectedValue; // Clear list drpField.Items.Clear(); drpField.ClearSelection(); drpField.SelectedValue = null; drpField.DataTextField = "UserControlDisplayName"; drpField.DataValueField = "UserControlCodeName"; DataSet ds = FormHelper.GetFieldControlTypesWithUserControls(this.AttributeType, controls, false, isPrimary, type); if ((controls != FieldEditorControlsEnum.DocumentTypes) || (ClassName.ToLower() != "cms.blogpost")) { List <DataRow> rowList = new List <DataRow>(); // Find trackback controls when not editing CMS.BlogPost document type foreach (DataRow row in ds.Tables[0].Rows) { string controlCodeName = row[drpField.DataValueField].ToString().ToLowerInvariant(); if ((controlCodeName == "trackbackspingedurls") || (controlCodeName == "trackbacksnotpingedurls")) { rowList.Add(row); } } // Remove trackback controls when not editing CMS.BlogPost document type foreach (DataRow row in rowList) { ds.Tables[0].Rows.Remove(row); } } drpField.DataSource = ds; drpField.DataBind(); // Preselect value if ((drpField.Items.FindByValue(selectedValue) != null) && !clearValue) { drpField.SelectedValue = selectedValue; } }
/// <summary> /// Gets available controls. /// </summary> /// <returns>Returns FieldEditorControlsEnum</returns> private FieldEditorControlsEnum GetControls() { FieldEditorControlsEnum controls = FieldEditorControlsEnum.None; // Get displayed controls if (this.DisplayedControls == FieldEditorControlsEnum.ModeSelected) { switch (mMode) { case FieldEditorModeEnum.BizFormDefinition: controls = FieldEditorControlsEnum.Bizforms; break; case FieldEditorModeEnum.ClassFormDefinition: controls = FieldEditorControlsEnum.DocumentTypes; break; case FieldEditorModeEnum.SystemTable: controls = FieldEditorControlsEnum.SystemTables; break; case FieldEditorModeEnum.CustomTable: controls = FieldEditorControlsEnum.CustomTables; break; case FieldEditorModeEnum.WebPartProperties: controls = FieldEditorControlsEnum.Controls; break; case FieldEditorModeEnum.General: case FieldEditorModeEnum.FormControls: controls = FieldEditorControlsEnum.All; break; } } else { controls = this.DisplayedControls; } return(controls); }
/// <summary> /// Reloads control types selector. /// </summary> public void LoadControlTypes(bool clearValue) { // Setup control for form control types string selectedValue = (string)drpTypeSelector.Value; if (ffi != null) { drpTypeSelector.IsPrimary = ffi.PrimaryKey; drpTypeSelector.External = ffi.External; } else { drpTypeSelector.IsPrimary = false; } drpTypeSelector.DataType = this.AttributeType; FieldEditorControlsEnum fieldEditorControls = GetControls(); drpTypeSelector.FieldEditorControls = fieldEditorControls; if (IsAlternativeFilterForm && ((fieldEditorControls == FieldEditorControlsEnum.Bizforms) || (fieldEditorControls == FieldEditorControlsEnum.CustomTables))) { // Filter by ID for custom tables or bizforms filter form drpTypeSelector.IsPrimary = false; } drpTypeSelector.ReloadControl(); // Preselect default value if (clearValue) { drpTypeSelector.Value = ((int)FormUserControlTypeEnum.Input).ToString(); } // Keep selected value else { drpTypeSelector.Value = selectedValue; } }
/// <summary> /// Gets available controls. /// </summary> /// <returns>Returns FieldEditorControlsEnum</returns> private static FieldEditorControlsEnum GetControls(FieldEditorControlsEnum DisplayedControls, FieldEditorModeEnum Mode, bool DevelopmentMode) { FieldEditorControlsEnum controls = FieldEditorControlsEnum.None; // Get displayed controls if (DisplayedControls == FieldEditorControlsEnum.ModeSelected) { switch (Mode) { case FieldEditorModeEnum.BizFormDefinition: case FieldEditorModeEnum.AlternativeBizFormDefinition: controls = FieldEditorControlsEnum.Bizforms; break; case FieldEditorModeEnum.ClassFormDefinition: case FieldEditorModeEnum.AlternativeClassFormDefinition: controls = DevelopmentMode ? FieldEditorControlsEnum.All : FieldEditorControlsEnum.DocumentTypes; break; case FieldEditorModeEnum.SystemTable: case FieldEditorModeEnum.AlternativeSystemTable: controls = FieldEditorControlsEnum.SystemTables; break; case FieldEditorModeEnum.CustomTable: case FieldEditorModeEnum.AlternativeCustomTable: controls = FieldEditorControlsEnum.CustomTables; break; case FieldEditorModeEnum.WebPartProperties: case FieldEditorModeEnum.Widget: case FieldEditorModeEnum.InheritedWebPartProperties: case FieldEditorModeEnum.SystemWebPartProperties: controls = FieldEditorControlsEnum.Controls; break; case FieldEditorModeEnum.General: case FieldEditorModeEnum.FormControls: case FieldEditorModeEnum.ProcessActions: case FieldEditorModeEnum.InheritedFormControl: case FieldEditorModeEnum.PageTemplateProperties: controls = FieldEditorControlsEnum.All; break; } } else { controls = DisplayedControls; } return controls; }
/// <summary> /// Sets right where conditions for data types dropdown - depending on where field editor is. /// </summary> private void LoadDataTypes() { FieldEditorControlsEnum controls = GetDisplayedControls(); drpControl.WhereCondition = FormHelper.GetWhereConditionForDataType(null, controls, true, FormUserControlTypeEnum.Unspecified); }
/// <summary> /// Gets available controls. /// </summary> /// <returns>Returns FieldEditorControlsEnum</returns> private static FieldEditorControlsEnum GetControls(FieldEditorControlsEnum DisplayedControls, FieldEditorModeEnum Mode, bool DevelopmentMode) { FieldEditorControlsEnum controls = FieldEditorControlsEnum.None; // Get displayed controls if (DisplayedControls == FieldEditorControlsEnum.ModeSelected) { switch (Mode) { case FieldEditorModeEnum.BizFormDefinition: controls = FieldEditorControlsEnum.Bizforms; break; case FieldEditorModeEnum.ClassFormDefinition: if (DevelopmentMode) { controls = FieldEditorControlsEnum.All; } else { controls = FieldEditorControlsEnum.DocumentTypes; } break; case FieldEditorModeEnum.SystemTable: controls = FieldEditorControlsEnum.SystemTables; break; case FieldEditorModeEnum.CustomTable: controls = FieldEditorControlsEnum.CustomTables; break; case FieldEditorModeEnum.WebPartProperties: controls = FieldEditorControlsEnum.Controls; break; case FieldEditorModeEnum.General: case FieldEditorModeEnum.FormControls: controls = FieldEditorControlsEnum.All; break; } } else { controls = DisplayedControls; } return controls; }