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))));
        }
示例#2
0
 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))));
 }
示例#3
0
 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);
     }
 }
示例#5
0
 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))));
        }
示例#7
0
        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);
            }
        }