コード例 #1
0
ファイル: WidgityControl.cs プロジェクト: secc/RockPlugins
        private void BtnAddButton_Click(object sender, EventArgs e)
        {
            var widgity = Widgities.Where(w => w.Guid == CurrentEditWidgity).FirstOrDefault();

            Rock.Attribute.Helper.GetEditValues(phAttributesEdit, widgity);

            var widgityItem = new WidgityItem
            {
                Guid          = Guid.NewGuid(),
                WidgityId     = widgity.Id,
                WidgityTypeId = widgity.WidgityTypeId
            };

            widgityItem.LoadAttributes();

            var widgityItems = WidgityItems[widgity.Guid];

            widgityItems.Add(widgityItem);
            UpdateWidgityItemAttributes(widgity);
            SaveState();
            GetExpandedPanels();
            ExpandedPanels.Add(widgityItem.Guid);
            ShowWidgities(true);
        }
コード例 #2
0
ファイル: WidgityControl.cs プロジェクト: secc/RockPlugins
        private void BuildWidigityItemAttibutes(Widgity widgity, bool setValues)
        {
            pnlItems = new Panel();
            pnlMenu.Controls.Add(pnlItems);

            var widgityType = WidgityTypeCache.Get(widgity.WidgityTypeId);

            if (widgityType.HasItems)
            {
                pnlItems.CssClass = "widgityItemControls";
                var widgityItems = WidgityItems[widgity.Guid];
                if (widgityItems.Any())
                {
                    foreach (var widgityItem in widgityItems)
                    {
                        Panel panel = new Panel();
                        pnlItems.Controls.Add(panel);
                        panel.Attributes["data-component-id"] = widgityItem.Guid.ToString();

                        PanelWidget panelWidget = new PanelWidget
                        {
                            ID = string.Format("pnlItem_{0}", widgityItem.Guid),
                        };

                        panel.Controls.Add(panelWidget);

                        if (ExpandedPanels != null && ExpandedPanels.Contains(widgityItem.Guid))
                        {
                            panelWidget.Expanded = true;
                        }

                        if (widgityItem.AttributeValues.Any())
                        {
                            panelWidget.Title = "<a class='btn btn-xs btn-link ui-sortable-handle'><i class='fa fa-bars ui-sortable-handle'></i></a> " +
                                                widgityItem.AttributeValues.FirstOrDefault().Value.ValueFormatted;
                        }
                        else
                        {
                            panelWidget.Title = "<a class='btn btn-xs btn-link ui-sortable-handle'><i class='fa fa-bars ui-sortable-handle'></i></a> ";
                        }

                        HiddenField hiddenField = new HiddenField
                        {
                            ID    = string.Format("hfItem_{0}", widgityItem.Guid),
                            Value = widgityItem.Guid.ToString()
                        };
                        panelWidget.Controls.Add(hiddenField);

                        PlaceHolder phItemAttributes = new PlaceHolder
                        {
                            ID = string.Format("phItem_{0}", widgityItem.Guid)
                        };
                        panelWidget.Controls.Add(phItemAttributes);

                        LinkButton linkButton = new LinkButton()
                        {
                            ID       = string.Format("btnRemove_{0}", widgityItem.Guid),
                            CssClass = "btn btn-danger btn-xs",
                            Text     = "Remove Item"
                        };

                        panelWidget.Controls.Add(linkButton);

                        linkButton.Click += (s, e) => { DeleteWidgityItem(widgityItem.Guid); };

                        Rock.Attribute.Helper.AddEditControls(widgityItem, phItemAttributes, setValues, this.ID + "ValidationGroup");
                    }
                }
                else
                {
                    pnlItems.Controls.Add(new Literal
                    {
                        Text = "<i>No items. Click Add Item to add a new item to this widgity.</i>"
                    });
                }

                LinkButton btnAddButton = new LinkButton
                {
                    ID               = this.ID + "_AddItem",
                    Text             = "Add Item",
                    CssClass         = "btn btn-default btn-xs",
                    CausesValidation = false
                };
                pnlMenu.Controls.Add(btnAddButton);
                btnAddButton.Click += BtnAddButton_Click;
            }
        }