using System; using CMS.ExtendedControls; using CMS.FormEngine; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.UIControls; public partial class CMSModules_AdminControls_Controls_Class_FieldEditor_ValidationSettings : CMSUserControl { #region "Variables" private string mAttributeType; private string mFieldType; private FieldEditorModeEnum mMode = FieldEditorModeEnum.General; #endregion #region "Properties" /// /// Type of current attribute. /// public string AttributeType { get { return !String.IsNullOrEmpty(mAttributeType) ? mAttributeType.ToLowerCSafe() : ""; } set { mAttributeType = value; } } /// /// Type of current field. /// public string FieldType { get { return !String.IsNullOrEmpty(mFieldType) ? mFieldType.ToLowerCSafe() : ""; } set { mFieldType = value; } } /// /// Gets or sets value indicating if current item is primary. /// public bool IsPrimary { get; set; } /// /// Field editor mode. /// public FieldEditorModeEnum Mode { get { return mMode; } set { mMode = value; } } /// /// FormFieldInfo of given field. /// public FormFieldInfo FieldInfo { get; set; } /// /// Gets value set in Minimum length textbox. /// public string MinLengthText { get { return txtMinLength.Text.Trim(); } } /// /// Gets value set in Maximum length textbox. /// public string MaxLengthText { get { return txtMaxLength.Text.Trim(); } } /// /// Gets value set in Minimum value textbox. /// public string MinValueText { get { return txtMinValue.Text.Trim(); } } /// /// Gets value set in Maximum value textbox. /// public string MaxValueText { get { return txtMaxValue.Text.Trim(); } } /// /// Gets value indicating if Specll-check is checked. /// public bool SpellCheck { get { return chkSpellCheck.Checked; } } /// /// Gets value which is contained in Regular expression textbox. /// public string RegularExpression { get { return txtRegExpr.Text.Trim(); } } /// /// Gets value which indicates which value is selected in 'Date from' control. /// public DateTime DateFrom { get { return dateFrom.SelectedDateTime; } } /// /// Gets value which indicates which value is selected in 'Date to' control . /// public DateTime DateTo { get { return dateTo.SelectedDateTime; } } /// /// Gets value which is contained in Error message textbox. /// public string ErrorMessage { get { return txtErrorMessage.Text.Trim(); } } #endregion #region "Methods" public void Page_Load(object sender, EventArgs e) { pnlSectionValidation.GroupingText = GetString("TemplateDesigner.Section.Validation"); } /// /// Show validation options according to selected attribute type. /// public void Reload() { if (FieldInfo != null) { chkSpellCheck.Checked = FieldInfo.SpellCheck; if (pnlSectionValidation.Visible) { // Validation section txtRegExpr.Text = FieldInfo.RegularExpression; switch (FieldInfo.DataType) { case FormFieldDataTypeEnum.Integer: txtMinValue.Text = ValidationHelper.IsInteger(FieldInfo.MinValue) ? FieldInfo.MinValue : ""; txtMaxValue.Text = ValidationHelper.IsInteger(FieldInfo.MaxValue) ? FieldInfo.MaxValue : ""; break; case FormFieldDataTypeEnum.LongInteger: txtMinValue.Text = ValidationHelper.IsLong(FieldInfo.MinValue) ? FieldInfo.MinValue : ""; txtMaxValue.Text = ValidationHelper.IsLong(FieldInfo.MaxValue) ? FieldInfo.MaxValue : ""; break; case FormFieldDataTypeEnum.Decimal: txtMinValue.Text = ValidationHelper.IsDouble(FieldInfo.MinValue) ? FieldInfo.MinValue : ""; txtMaxValue.Text = ValidationHelper.IsDouble(FieldInfo.MaxValue) ? FieldInfo.MaxValue : ""; break; } txtMinLength.Text = (FieldInfo.MinStringLength > -1) ? Convert.ToString(FieldInfo.MinStringLength) : ""; txtMaxLength.Text = (FieldInfo.MaxStringLength > -1) ? Convert.ToString(FieldInfo.MaxStringLength) : ""; dateFrom.SelectedDateTime = FieldInfo.MinDateTimeValue; dateTo.SelectedDateTime = FieldInfo.MaxDateTimeValue; txtErrorMessage.Text = FieldInfo.ValidationErrorMessage; } } else { chkSpellCheck.Checked = true; txtRegExpr.Text = null; txtMinLength.Text = null; txtMaxLength.Text = null; txtMinValue.Text = null; txtMaxValue.Text = null; dateFrom.SelectedDateTime = DateTimePicker.NOT_SELECTED; dateTo.SelectedDateTime = DateTimePicker.NOT_SELECTED; txtErrorMessage.Text = null; } } /// /// Displays controls according to current field settings. /// public void DisplayControls() { Visible = true; plcMinMaxLengthValidation.Visible = true; if (!IsPrimary) { switch (AttributeType) { case "text": case "longtext": pnlSectionValidation.Visible = true; plcTextValidation.Visible = true; plcErrorMessageValidation.Visible = true; if (Mode == FieldEditorModeEnum.ClassFormDefinition) { plcSpellCheck.Visible = true; } plcDateTimeValidation.Visible = false; plcNumberValidation.Visible = false; Visible = true; break; case "datetime": pnlSectionValidation.Visible = true; plcDateTimeValidation.Visible = true; plcErrorMessageValidation.Visible = true; plcTextValidation.Visible = false; plcNumberValidation.Visible = false; plcSpellCheck.Visible = false; Visible = true; break; case "integer": case "longinteger": case "double": pnlSectionValidation.Visible = true; plcNumberValidation.Visible = true; plcErrorMessageValidation.Visible = true; plcTextValidation.Visible = false; plcDateTimeValidation.Visible = false; plcSpellCheck.Visible = false; Visible = true; break; case "guid": pnlSectionValidation.Visible = true; plcNumberValidation.Visible = false; plcErrorMessageValidation.Visible = true; plcTextValidation.Visible = false; plcDateTimeValidation.Visible = false; plcSpellCheck.Visible = false; Visible = true; break; default: Visible = false; break; } } else { Visible = false; } string loweredFieldType = FieldType.ToLowerCSafe(); // Hide Min max length for selection controls if ((loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.DropDownListControl).ToLowerCSafe()) || (loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.RadioButtonsControl).ToLowerCSafe()) || (loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.MultipleChoiceControl).ToLowerCSafe()) || (loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.ListBoxControl).ToLowerCSafe())) { plcMinMaxLengthValidation.Visible = false; } // Hide the whole validation section else if ((loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.ImageSelectionControl).ToLowerCSafe()) || (loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.FileSelectionControl).ToLowerCSafe()) || (loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.MediaSelectionControl).ToLowerCSafe()) || (loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.SelectColumns).ToLowerCSafe()) || (loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.EncryptedPassword).ToLowerCSafe())) { pnlSectionValidation.Visible = false; } if (!plcTextValidation.Visible && !plcErrorMessageValidation.Visible && !plcDateTimeValidation.Visible && !plcNumberValidation.Visible && !plcSpellCheck.Visible) { Visible = false; } } #endregion }