public static HtmlBuilder Comments( this HtmlBuilder hb, Context context, SiteSettings ss, Comments comments, Column column, Versions.VerTypes verType, Permissions.ColumnPermissionTypes columnPermissionType) { var readOnly = verType != Versions.VerTypes.Latest || !context.CanUpdate(ss: ss) || column?.EditorReadOnly == true || columnPermissionType != Permissions.ColumnPermissionTypes.Update; return(hb .TextArea( context: context, ss: ss, title: column?.Description, labelText: column?.LabelText, allowImage: column?.AllowImage == true, mobile: context.Mobile == true, _using: !readOnly) .Div(id: "CommentList", action: () => comments .ForEach(comment => hb .Comment( context: context, ss: ss, column: column, comment: comment, readOnly: readOnly)))); }
public static HtmlBuilder Comments( this HtmlBuilder hb, Comments comments, Column column, Versions.VerTypes verType, Permissions.ColumnPermissionTypes columnPermissionType) { return(hb .TextArea( labelText: column?.LabelText, allowImage: column.AllowImage == true, mobile: column.SiteSettings.Mobile, _using: verType == Versions.VerTypes.Latest && column.SiteSettings.CanUpdate() && column?.EditorReadOnly != true && columnPermissionType == Permissions.ColumnPermissionTypes.Update) .Div(id: "CommentList", action: () => comments .ForEach(comment => hb .Comment( ss: column.SiteSettings, column: column, comment: comment, verType: verType)))); }
private static Permissions.ColumnPermissionTypes ColumnPermissionType( SiteSettings ss, Permissions.ColumnPermissionTypes columnPermissionType, bool preview) { return (!Sessions.LoggedIn() || preview || ss.CanUpdate() || columnPermissionType != Permissions.ColumnPermissionTypes.Update ? columnPermissionType : Permissions.ColumnPermissionTypes.Read); }
public static HtmlBuilder Field( this HtmlBuilder hb, SiteSettings ss, Column column, BaseModel.MethodTypes methodType = BaseModel.MethodTypes.NotSet, string value = null, Permissions.ColumnPermissionTypes columnPermissionType = Permissions.ColumnPermissionTypes.Update, string fieldCss = null, string labelCss = null, string controlContainerCss = null, string controlCss = null, bool preview = false, bool _using = true) { if (column.Section != null) { hb.Div(css: "field-section", action: () => hb .Text(text: column.Section)); } if (column.UserColumn && value == User.UserTypes.Anonymous.ToInt().ToString()) { value = string.Empty; } if (columnPermissionType != Permissions.ColumnPermissionTypes.Deny && _using) { value = methodType == BaseModel.MethodTypes.New ? value.ToDefault(ss, column) : value; return(hb.SwitchField( column: column, columnPermissionType: columnPermissionType, controlId: !preview ? column.Id : null, fieldCss: FieldCss(column, fieldCss), labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: Strings.CoalesceEmpty(controlCss, column.ControlCss), controlType: ControlType(column), value: value, optionCollection: EditChoices(ss, column, value), preview: preview)); } else { return(hb); } }
public static HtmlBuilder Comments( this HtmlBuilder hb, Comments comments, Column column, Versions.VerTypes verType, Permissions.ColumnPermissionTypes columnPermissionType) { return(hb .TextArea( labelText: column?.LabelText, _using: verType == Versions.VerTypes.Latest && column?.EditorReadOnly != true && columnPermissionType == Permissions.ColumnPermissionTypes.Update) .Div(id: "CommentList", action: () => comments .ForEach(comment => hb .Comment(comment, verType)))); }
public static HtmlBuilder Comments( this HtmlBuilder hb, Context context, SiteSettings ss, Comments comments, Column column, Versions.VerTypes verType, Permissions.ColumnPermissionTypes columnPermissionType) { var readOnly = verType != Versions.VerTypes.Latest || !context.CanUpdate(ss: ss) || column?.GetEditorReadOnly() == true || columnPermissionType != Permissions.ColumnPermissionTypes.Update; var css = column.TextAlign == SiteSettings.TextAlignTypes.Right ? " right-align " : string.Empty; return(hb .TextArea( context: context, ss: ss, css: css, title: column?.Description, labelText: column?.LabelText, allowImage: column?.AllowImage == true, mobile: context.Mobile == true, _using: !readOnly, validateMaxLength: column.MaxLength.ToInt(), validateRegex: column.ClientRegexValidation, validateRegexErrorMessage: column.RegexValidationMessage) .Div(id: "CommentList", css: css, action: () => comments .ForEach(comment => hb .Comment( context: context, ss: ss, column: column, comment: comment, readOnly: readOnly)))); }
private static HtmlBuilder SwitchField( this HtmlBuilder hb, Column column, Permissions.ColumnPermissionTypes columnPermissionType, string controlId, string fieldCss, string labelCss, string controlContainerCss, string controlCss, ControlTypes controlType, string value, Dictionary <string, ControlData> optionCollection) { var required = !column.Nullable || (column.ValidateRequired ?? false); switch (columnPermissionType) { case Permissions.ColumnPermissionTypes.Read: switch (controlType) { case ControlTypes.CheckBox: return(hb.FieldCheckBox( fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, _checked: value.ToBool(), disabled: true)); default: return(hb.FieldText( fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, text: column.HasChoices() && optionCollection.ContainsKey(value) ? optionCollection[value].Text : value)); } case Permissions.ColumnPermissionTypes.Update: switch (controlType) { case ControlTypes.DropDown: return(hb.FieldDropDown( fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss + (required ? " always-send" : string.Empty) + (column.UseSearch == true ? " search" : string.Empty), labelText: column.LabelText, optionCollection: optionCollection, selectedValue: value, insertBlank: !required && column.UseSearch != true, column: column)); case ControlTypes.Text: return(hb.FieldText( fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, text: value)); case ControlTypes.TextBoxMultiLine: return(hb.FieldTextBox( textType: HtmlTypes.TextTypes.MultiLine, fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, text: value, validateRequired: required, validateNumber: column.ValidateNumber ?? false, validateDate: column.ValidateDate ?? false, validateEmail: column.ValidateEmail ?? false, validateEqualTo: column.ValidateEqualTo, validateMaxLength: column.ValidateMaxLength ?? 0)); case ControlTypes.MarkDown: return(hb.FieldMarkDown( fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, text: value, placeholder: column.LabelText, readOnly: column.EditorReadOnly.ToBool(), validateRequired: required)); case ControlTypes.TextBox: return(hb.FieldTextBox( textType: column.Hash ? HtmlTypes.TextTypes.Password : HtmlTypes.TextTypes.Normal, fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, text: value, validateRequired: required, validateNumber: column.ValidateNumber ?? false, validateDate: column.ValidateDate ?? false, validateEmail: column.ValidateEmail ?? false, validateEqualTo: column.ValidateEqualTo, validateMaxLength: column.ValidateMaxLength ?? 0)); case ControlTypes.TextBoxNumeric: return(hb.FieldTextBox( textType: HtmlTypes.TextTypes.Normal, fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, text: value, unit: column.Unit, validateRequired: required, validateNumber: column.ValidateNumber ?? false, validateDate: column.ValidateDate ?? false, validateEmail: column.ValidateEmail ?? false, validateEqualTo: column.ValidateEqualTo, validateMaxLength: column.ValidateMaxLength ?? 0)); case ControlTypes.TextBoxDateTime: return(hb.FieldTextBox( textType: HtmlTypes.TextTypes.DateTime, fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, text: value, format: column.DateTimeFormat(), timepiker: column.DateTimepicker(), validateRequired: required, validateNumber: column.ValidateNumber ?? false, validateDate: column.ValidateDate ?? false, validateEmail: column.ValidateEmail ?? false, validateEqualTo: column.ValidateEqualTo, validateMaxLength: column.ValidateMaxLength ?? 0)); case ControlTypes.CheckBox: return(hb.FieldCheckBox( fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, _checked: value.ToBool(), disabled: column.EditorReadOnly.ToBool())); case ControlTypes.Slider: return(hb.FieldSlider( fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, value: value, min: column.Min.ToDecimal(), max: column.Max.ToDecimal(), step: column.Step.ToDecimal(), unit: column.Unit)); case ControlTypes.Spinner: return(hb.FieldSpinner( fieldId: controlId + "Field", controlId: controlId, fieldCss: fieldCss, labelCss: labelCss, controlContainerCss: controlContainerCss, controlCss: controlCss, labelText: column.LabelText, value: value.ToDecimal(), min: column.Min.ToDecimal(), max: column.Max.ToDecimal(), step: column.Step.ToDecimal(), width: 50, unit: column.Unit)); default: return(hb); } default: return(hb); } }