Esempio n. 1
0
 public static MvcHtmlString MultipleItemPickerFieldFor <TModel>(
     this HtmlHelper <TModel> html,
     Expression <Func <TModel, IEnumerable <int> > > expression,
     IEnumerable <ListItem> selectedItemList,
     EntityDataListArgs entityDataListArgs,
     Dictionary <string, object> htmlAttributes = null
     ) => MvcHtmlString.Create(string.Format(
                                   html.FieldTemplate(ExpressionHelper.GetExpressionText(expression), GetMetaData(html, expression).DisplayName),
                                   html.MultipleItemPickerFor(expression, selectedItemList, entityDataListArgs, htmlAttributes).ToHtmlString()
                                   ));
Esempio n. 2
0
 public static MvcHtmlString SingleItemPickerFieldFor <TModel, TValue>(
     this HtmlHelper <TModel> source,
     Expression <Func <TModel, TValue> > expression,
     QPSelectListItem selected,
     EntityDataListArgs entityDataListArgs,
     ControlOptions options
     ) => MvcHtmlString.Create(string.Format(
                                   source.FieldTemplate(ExpressionHelper.GetExpressionText(expression), GetMetaData(source, expression).DisplayName),
                                   source.SingleItemPickerFor(expression, selected, entityDataListArgs, options)
                                   ));
Esempio n. 3
0
 public static MvcHtmlString CheckboxListFieldFor <TModel>(
     this HtmlHelper <TModel> html,
     Expression <Func <TModel, IList <QPCheckedItem> > > expression,
     IEnumerable <QPSelectListItem> list,
     EntityDataListArgs entityDataListArgs,
     Dictionary <string, object> htmlAttributes,
     RepeatDirection repeatDirection = RepeatDirection.Vertical
     ) => MvcHtmlString.Create(string.Format(
                                   html.FieldTemplate(ExpressionHelper.GetExpressionText(expression), GetMetaData(html, expression).DisplayName),
                                   html.QpCheckBoxListFor(expression, list, entityDataListArgs, htmlAttributes, repeatDirection)
                                   ));
Esempio n. 4
0
 public static MvcHtmlString RadioFieldFor <TModel, TValue>(
     this HtmlHelper <TModel> html,
     Expression <Func <TModel, TValue> > expression,
     IEnumerable <QPSelectListItem> list,
     RepeatDirection repeatDirection       = RepeatDirection.Horizontal,
     EntityDataListArgs entityDataListArgs = null,
     ControlOptions options = null
     ) => MvcHtmlString.Create(string.Format(
                                   html.FieldTemplate(ExpressionHelper.GetExpressionText(expression), GetMetaData(html, expression).DisplayName),
                                   html.QpRadioButtonListFor(expression, list, repeatDirection, entityDataListArgs, options)
                                   ));
Esempio n. 5
0
 public static IHtmlContent MultipleItemPickerFieldFor <TModel>(
     this IHtmlHelper <TModel> html,
     Expression <Func <TModel, IEnumerable <int> > > expression,
     IEnumerable <ListItem> selectedItemList,
     EntityDataListArgs entityDataListArgs,
     Dictionary <string, object> htmlAttributes = null)
 {
     return(html.FieldTemplate(
                html.MultipleItemPickerFor(expression, selectedItemList, entityDataListArgs, htmlAttributes),
                html.ModelExpressionProvider().GetExpressionText(expression),
                GetMetaData(html, expression).DisplayName));
 }
Esempio n. 6
0
 public static IHtmlContent SingleItemPickerFieldFor <TModel, TValue>(
     this IHtmlHelper <TModel> source,
     Expression <Func <TModel, TValue> > expression,
     QPSelectListItem selected,
     EntityDataListArgs entityDataListArgs,
     ControlOptions options)
 {
     return(source.FieldTemplate(
                source.SingleItemPickerFor(expression, selected, entityDataListArgs, options),
                source.ModelExpressionProvider().GetExpressionText(expression),
                GetMetaData(source, expression).DisplayName));
 }
Esempio n. 7
0
        public void SetMultiplePickerOptions(string name, string id, EntityDataListArgs eventArgs)
        {
            HtmlAttributes["id"] = (HtmlAttributes.ContainsKey("id") ? HtmlAttributes["id"].ToString() : id) + "_list";
            HtmlAttributes.AddCssClass(HtmlHelpersExtensions.MultipleItemPickerClassName);
            HtmlAttributes.AddCssClass(HtmlHelpersExtensions.SelfClearFloatsClassName);
            if (!Enabled)
            {
                HtmlAttributes.AddCssClass(HtmlHelpersExtensions.DisabledClassName);
            }

            HtmlAttributes.AddData("count_limit", QPConfiguration.Options.RelationCountLimit);
            SetDataListOptions(name, eventArgs);
        }
Esempio n. 8
0
 public static IHtmlContent CheckboxListFieldFor <TModel>(
     this IHtmlHelper <TModel> html,
     Expression <Func <TModel, IList <QPCheckedItem> > > expression,
     IEnumerable <QPSelectListItem> list,
     EntityDataListArgs entityDataListArgs,
     Dictionary <string, object> htmlAttributes,
     RepeatDirection repeatDirection = RepeatDirection.Vertical)
 {
     return(html.FieldTemplate(
                html.QpCheckBoxListFor(expression, list, entityDataListArgs, htmlAttributes, repeatDirection),
                html.ModelExpressionProvider().GetExpressionText(expression),
                GetMetaData(html, expression).DisplayName));
 }
Esempio n. 9
0
 public static IHtmlContent RadioFieldFor <TModel, TValue>(
     this IHtmlHelper <TModel> html,
     Expression <Func <TModel, TValue> > expression,
     IEnumerable <QPSelectListItem> list,
     RepeatDirection repeatDirection       = RepeatDirection.Horizontal,
     EntityDataListArgs entityDataListArgs = null,
     ControlOptions options = null)
 {
     return(html.FieldTemplate(
                html.QpRadioButtonListFor(expression, list, repeatDirection, entityDataListArgs, options),
                html.ModelExpressionProvider().GetExpressionText(expression),
                GetMetaData(html, expression).DisplayName));
 }
Esempio n. 10
0
        internal static MvcHtmlString Relation(this HtmlHelper source, string id, IEnumerable <QPSelectListItem> list, ControlOptions options, Field field, int articleId, bool isListOverflow)
        {
            const string entityTypeCode   = EntityTypeCode.Article;
            var          baseField        = field.GetBaseField(articleId);
            var          contentId        = baseField.RelateToContentId ?? 0;
            var          fieldId          = baseField.Id;
            var          filter           = baseField.GetRelationFilter(articleId);
            var          relatedToContent = baseField.RelatedToContent;
            var          addNewActionCode = ActionCode.None;
            var          readActionCode   = ActionCode.None;

            if (relatedToContent != null)
            {
                if (!relatedToContent.IsVirtual)
                {
                    readActionCode = ActionCode.EditArticle;
                    if (relatedToContent.IsAccessible(ActionTypeCode.Update))
                    {
                        addNewActionCode = ActionCode.AddNewArticle;
                    }
                }
                else
                {
                    readActionCode = ActionCode.ViewVirtualArticle;
                }
            }

            var listArgs = new EntityDataListArgs
            {
                EntityTypeCode   = entityTypeCode,
                ParentEntityId   = contentId,
                EntityId         = articleId,
                ListId           = fieldId,
                AddNewActionCode = addNewActionCode,
                ReadActionCode   = readActionCode,
                SelectActionCode = baseField.RelationType == RelationType.OneToMany ? ActionCode.SelectArticle : ActionCode.MultipleSelectArticle,
                EnableCopy       = field.ExactType != FieldExactTypes.M2ORelation,
                ReadDataOnInsert = field.OrderByTitle || field.OrderFieldId.HasValue || field.FieldTitleCount > 1,
                MaxListHeight    = 200,
                MaxListWidth     = 350,
                ShowIds          = true,
                Filter           = filter
            };

            return(source.Relation(id, list, options, baseField.RelationType, isListOverflow, listArgs));
        }
Esempio n. 11
0
        public void SetSinglePickerOptions(string name, string id, EntityDataListArgs entityDataListArgs, bool ignoreIdSet = false)
        {
            if (!ignoreIdSet)
            {
                HtmlAttributes["id"] = id;
            }
            else
            {
                HtmlAttributes.Add("data-bind", "value: " + name + "Id," + " attr: {id: '" + id + "'+$index(), name:'" + id + "'+$index()}");
            }

            HtmlAttributes.AddCssClass(HtmlHelpersExtensions.SingleItemPickerClassName);
            HtmlAttributes.AddCssClass(HtmlHelpersExtensions.SelfClearFloatsClassName);
            if (!Enabled)
            {
                HtmlAttributes.AddCssClass(HtmlHelpersExtensions.DisabledClassName);
            }

            SetDataListOptions(name, entityDataListArgs);
        }
Esempio n. 12
0
        public void SetCheckBoxListOptions(string name, string id, IEnumerable <QPSelectListItem> list, RepeatDirection repeatDirection, EntityDataListArgs entityDataListArgs)
        {
            if (!HtmlAttributes.ContainsKey("id"))
            {
                HtmlAttributes.Add("id", id);
            }

            HtmlAttributes.AddCssClass(HtmlHelpersExtensions.CheckboxsListClassName);
            HtmlAttributes.AddCssClass(repeatDirection == RepeatDirection.Vertical ? HtmlHelpersExtensions.VerticalDirectionClassName : HtmlHelpersExtensions.HorizontalDirectionClassName);
            if (!Enabled)
            {
                HtmlAttributes.AddCssClass(HtmlHelpersExtensions.DisabledClassName);
            }

            SetDataListOptions(name, entityDataListArgs);
        }
Esempio n. 13
0
        public void SetDropDownOptions(string name, string id, IList <QPSelectListItem> list, EntityDataListArgs entityDataListArgs)
        {
            if (!HtmlAttributes.ContainsKey("id"))
            {
                HtmlAttributes.Add("id", id);
            }

            HtmlAttributes.AddCssClass(HtmlHelpersExtensions.DropDownListClassName);
            if (list.Where(i => i.HasDependentItems).ToList().Count > 0)
            {
                var panelsHash = QPSelectListItem.GetPanelHash(id, list);
                HtmlAttributes.AddData("switch_for", $"{{{panelsHash}}}");
                HtmlAttributes.AddData("is_radio", bool.FalseString.ToLowerInvariant());
            }

            if (!Enabled)
            {
                HtmlAttributes.AddCssClass(HtmlHelpersExtensions.DisabledClassName);
                if (!HtmlAttributes.ContainsKey("disabled"))
                {
                    HtmlAttributes.Add("disabled", "disabled");
                    HtmlAttributes.AddData("list_enabled", "false");
                }
            }

            SetDataListOptions(name, entityDataListArgs);
        }
Esempio n. 14
0
        private void SetDataListOptions(string name, EntityDataListArgs entityDataListArgs)
        {
            HtmlAttributes.AddCssClass(HtmlHelpersExtensions.DataListClassName);
            HtmlAttributes.AddData("list_item_name", name);
            if (entityDataListArgs != null)
            {
                HtmlAttributes.AddData("entity_type_code", entityDataListArgs.EntityTypeCode);
                HtmlAttributes.AddData("parent_entity_id", entityDataListArgs.ParentEntityId);
                HtmlAttributes.AddData("entity_id", entityDataListArgs.EntityId);
                if (entityDataListArgs.ListId != 0)
                {
                    HtmlAttributes.AddData("list_id", entityDataListArgs.ListId);
                }

                if (entityDataListArgs.AddNewActionCode != ActionCode.None)
                {
                    HtmlAttributes.AddData("add_new_action_code", entityDataListArgs.AddNewActionCode);
                }

                if (entityDataListArgs.ReadActionCode != ActionCode.None)
                {
                    HtmlAttributes.AddData("read_action_code", entityDataListArgs.ReadActionCode);
                }

                if (entityDataListArgs.SelectActionCode != ActionCode.None)
                {
                    HtmlAttributes.AddData("select_action_code", entityDataListArgs.SelectActionCode);
                }

                if (entityDataListArgs.MaxListWidth != 0)
                {
                    HtmlAttributes.AddData("max_list_width", entityDataListArgs.MaxListWidth);
                }

                if (entityDataListArgs.MaxListHeight != 0)
                {
                    HtmlAttributes.AddData("max_list_height", entityDataListArgs.MaxListHeight);
                }

                if (!Enabled)
                {
                    HtmlAttributes.AddData("list_enabled", "false");
                }

                if (entityDataListArgs.ShowIds)
                {
                    HtmlAttributes.AddData("show_ids", "true");
                }

                if (!string.IsNullOrEmpty(entityDataListArgs.Filter))
                {
                    HtmlAttributes.AddData("filter", entityDataListArgs.Filter);
                }

                if (entityDataListArgs.IsCollapsable)
                {
                    HtmlAttributes.AddData("is_collapsable", "true");
                }

                if (!entityDataListArgs.EnableCopy)
                {
                    HtmlAttributes.AddData("enable_copy", "false");
                }

                if (entityDataListArgs.ReadDataOnInsert)
                {
                    HtmlAttributes.AddData("read_data_on_insert", "true");
                }
            }
        }
Esempio n. 15
0
        public void SetRadioButtonListOptions(string name, string id, IList <QPSelectListItem> list, RepeatDirection repeatDirection, EntityDataListArgs entityDataListArgs)
        {
            HtmlAttributes.AddCssClass(HtmlHelpersExtensions.RadioButtonsListClassName);
            HtmlAttributes.AddCssClass(repeatDirection == RepeatDirection.Vertical ? HtmlHelpersExtensions.VerticalDirectionClassName : HtmlHelpersExtensions.HorizontalDirectionClassName);
            if (!Enabled)
            {
                HtmlAttributes.AddCssClass(HtmlHelpersExtensions.DisabledClassName);
            }

            if (list.Where(item => item.HasDependentItems).ToList().Count > 0)
            {
                var panelsHash = QPSelectListItem.GetPanelHash(id, list);

                HtmlAttributes.AddData("switch_for", $"{{{panelsHash}}}");
                HtmlAttributes.AddData("is_radio", bool.TrueString.ToLowerInvariant());
            }

            HtmlAttributes.AddData("field_form_name", name);
        }
Esempio n. 16
0
 public void SetListBoxOptions(string name, string id, IEnumerable <QPSelectListItem> list, EntityDataListArgs entityDataListArgs)
 {
     HtmlAttributes.AddCssClass(HtmlHelpersExtensions.ListboxClassName);
     if (Enabled)
     {
         HtmlAttributes.AddCssClass(HtmlHelpersExtensions.DisabledClassName);
         if (!HtmlAttributes.ContainsKey("disabled"))
         {
             HtmlAttributes.Add("disabled", "disabled");
         }
     }
 }