Exemplo n.º 1
0
        private void ShowEdit(bool setValues)
        {
            pnlMenu.Controls.Clear();

            pnlContent.Style["box-shadow"] = "0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)";
            pnlContent.CssClass            = "col-md-9 widgityDestination";

            RegisterDragDropScript();

            validationSummary = new ValidationSummary
            {
                HeaderText      = "Please correct the following",
                CssClass        = "alert alert-validation",
                ID              = this.ID + "_validation",
                ValidationGroup = this.ID + "ValidationGroup"
            };
            pnlMenu.Controls.Add(validationSummary);

            var currentEditWidgity = Widgities.Where(w => w.Guid == CurrentEditWidgity).FirstOrDefault();

            if (currentEditWidgity != null)   //Build Widigty
            {
                ShowWidigtyEdit(setValues);
            }
            else
            {
                ShowWidgityTypes();
            }
        }
Exemplo n.º 2
0
        private void BtnDeleteWidgity_Click(object sender, EventArgs e)
        {
            var widgity = Widgities.Where(w => w.Guid == CurrentEditWidgity).FirstOrDefault();

            Widgities.Remove(widgity);
            SaveState();
            CurrentEditWidgity = null;
            ShowWidgities(true);
        }
Exemplo n.º 3
0
        private void MoveWidgity(Guid widgityGuid, int order)
        {
            var widgity = Widgities.Where(w => w.Guid == widgityGuid).FirstOrDefault();

            if (widgity != null)
            {
                Widgities.Remove(widgity);
                Widgities.Insert(order, widgity);
            }

            SaveState();
            ShowWidgities(true);
        }
Exemplo n.º 4
0
        private void DeleteWidgityItem(Guid widgityItemGuid)
        {
            var widgity      = Widgities.Where(w => w.Guid == CurrentEditWidgity.Value).FirstOrDefault();
            var widgityItems = WidgityItems[CurrentEditWidgity.Value];

            var widgityItem = widgityItems.Where(w => w.Guid == widgityItemGuid).FirstOrDefault();

            widgityItems.Remove(widgityItem);

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

            UpdateWidgityItemAttributes(widgity);
            SaveState();
            GetExpandedPanels();
            ShowWidgities(true);
        }
Exemplo n.º 5
0
        private void MoveWidgityItem(Guid widgityItemGuid, int order)
        {
            var widgity      = Widgities.Where(w => w.Guid == CurrentEditWidgity.Value).FirstOrDefault();
            var widgityItems = WidgityItems[CurrentEditWidgity.Value];

            var widgityItem = widgityItems.Where(w => w.Guid == widgityItemGuid).FirstOrDefault();

            if (widgityItems != null)
            {
                widgityItems.Remove(widgityItem);
                widgityItems.Insert(order, widgityItem);
            }

            UpdateWidgityItemAttributes(widgity);
            SaveState();
            GetExpandedPanels();
            ShowWidgities(true);
        }
Exemplo n.º 6
0
        private void EditWidgity(Guid widgityGuid)
        {
            if (CurrentEditWidgity.HasValue)
            {
                return;
            }

            var widgity = Widgities.Where(w => w.Guid == widgityGuid).FirstOrDefault();

            if (widgity == null)
            {
                return;
            }

            CurrentEditWidgity  = widgityGuid;
            CurrentWidgityItems = WidgityItems[widgityGuid]; //Store value for undoing later

            ShowWidgities(true);
        }
Exemplo n.º 7
0
        private void BtnEditSave_Click(object sender, EventArgs e)
        {
            var widgityGuid = CurrentEditWidgity.Value;
            var widgity     = Widgities.Where(w => w.Guid == widgityGuid).FirstOrDefault();

            if (widgity == null)
            {
                return;
            }

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

            UpdateWidgityItemAttributes(widgity);

            SaveState();

            CurrentEditWidgity  = null;
            CurrentWidgityItems = null;
            ShowWidgities(true);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        private void AddWidgity(int widgityTypeId, int order)
        {
            RockContext        rockContext        = new RockContext();
            WidgityTypeService widgityTypeService = new WidgityTypeService(rockContext);
            var widgityType = widgityTypeService.Get(widgityTypeId);

            if (widgityType != null)
            {
                var widgity = new Widgity
                {
                    WidgityTypeId = widgityTypeId,
                    Guid          = Guid.NewGuid(),
                    EntityGuid    = EntityGuid,
                    EntityTypeId  = EntityTypeId
                };

                WidgityItems[widgity.Guid] = new List <WidgityItem>();

                widgity.LoadAttributes();
                Widgities.Insert(order, widgity);
                SaveState();
                EditWidgity(widgity.Guid);
            }
        }
Exemplo n.º 10
0
        public void Publish()
        {
            if (Page.IsValid)
            {
                var         widgityRefs   = Widgities;
                var         widgityRefIds = widgityRefs.Select(w => w.Id).ToList();
                RockContext rockContext   = new RockContext();
                rockContext.WrapTransaction(() =>
                {
                    WidgityService widgityService = new WidgityService(rockContext);

                    var toRemove = widgityService.Queryable("WidgityType")
                                   .Where(w => w.EntityGuid == EntityGuid && w.EntityTypeId == EntityTypeId)
                                   .Where(w => !widgityRefIds.Contains(w.Id))
                                   .ToList();

                    widgityService.DeleteRange(toRemove);

                    List <Widgity> widgities = new List <Widgity>();

                    foreach (var widgityRef in widgityRefs)
                    {
                        Widgity widgity = widgityService.Get(widgityRef.Id);

                        if (widgity == null)
                        {
                            widgity = widgityRef;
                            widgity.EntityTypeId = EntityTypeId;
                            widgity.EntityGuid   = EntityGuid;
                            widgityService.Add(widgity);
                            rockContext.SaveChanges();
                        }
                        else
                        {
                            widgity.LoadAttributes();
                        }
                        widgities.Add(widgity);
                        widgity.AttributeValues = widgityRef.AttributeValues;
                        widgity.Order           = widgities.IndexOf(widgity);
                    }
                    rockContext.SaveChanges();
                    foreach (var widgity in widgities)
                    {
                        widgity.SaveAttributeValues();
                    }

                    //WidgityItems
                    WidgityItemService widgityItemService = new WidgityItemService(rockContext);

                    foreach (var widgity in widgities)
                    {
                        var storedWidgityItems     = WidgityItems[widgity.Guid];
                        var storedWidgityItemGuids = storedWidgityItems.Select(wi => wi.Guid).ToList();
                        var databaseWidgityItems   = widgityItemService.Queryable().Where(wi => wi.WidgityId == widgity.Id).ToList();

                        //Remove deleted items
                        var itemsToRemove = databaseWidgityItems.Where(wi => !storedWidgityItemGuids.Contains(wi.Guid)).ToList();
                        widgityItemService.DeleteRange(itemsToRemove);

                        foreach (var item in storedWidgityItems)
                        {
                            if (item.Id == 0)            // new
                            {
                                item.Order         = storedWidgityItems.IndexOf(item);
                                item.WidgityId     = widgity.Id;
                                item.WidgityTypeId = widgity.WidgityTypeId;
                                widgityItemService.Add(item);
                                rockContext.SaveChanges();
                                item.SaveAttributeValues();
                            }
                            else          // update
                            {
                                var databaseItem   = databaseWidgityItems.Where(wi => wi.Guid == item.Guid).FirstOrDefault();
                                databaseItem.Order = storedWidgityItems.IndexOf(item);
                                databaseItem.LoadAttributes();
                                databaseItem.AttributeValues = item.AttributeValues;
                                databaseItem.SaveAttributeValues();
                                rockContext.SaveChanges();
                            }
                        }
                    }
                });
            }
            WidgityCache.Clear();
            WidgityItemCache.Clear();
            HideSettings();

            EventHandler <WidgityPubArgs> handler = WidgityPublished;
            var args = new WidgityPubArgs();

            args.WidgityIds = Widgities.Select(w => w.Id).ToList();
            handler?.Invoke(this, args);
        }
Exemplo n.º 11
0
        private void ShowWidigtyEdit(bool setValues)
        {
            var widgityGuid = CurrentEditWidgity.Value;
            var widgity     = Widgities.Where(w => w.Guid == widgityGuid).FirstOrDefault();
            var widgityType = WidgityTypeCache.Get(widgity.WidgityTypeId);

            Literal ltName = new Literal
            {
                Text = string.Format("<h3>{0}</h3>", widgityType.Name)
            };

            pnlMenu.Controls.Add(ltName);

            phAttributesEdit = new PlaceHolder
            {
                ID = this.ID + "_phAttributesEdit"
            };
            pnlMenu.Controls.Add(phAttributesEdit);
            Rock.Attribute.Helper.AddEditControls(widgity, phAttributesEdit, setValues, this.ID + "ValidationGroup");

            if (widgityType.HasItems)
            {
                BuildWidigityItemAttibutes(widgity, setValues);
            }

            HtmlGenericContainer hr = new HtmlGenericContainer("hr");

            pnlMenu.Controls.Add(hr);

            BootstrapButton btnEditSave = new BootstrapButton
            {
                CssClass        = "btn btn-primary",
                Text            = "Save",
                ID              = this.ID + "_btnEditSave",
                ValidationGroup = this.ID + "ValidationGroup"
            };

            pnlMenu.Controls.Add(btnEditSave);
            btnEditSave.Click += BtnEditSave_Click;

            LinkButton btnEditCancel = new LinkButton
            {
                ID               = this.ID + "_btnEditCancel",
                Text             = "Cancel",
                CssClass         = "btn btn-link",
                CausesValidation = false
            };

            pnlMenu.Controls.Add(btnEditCancel);
            btnEditCancel.Click += BtnEditCancel_Click;

            LinkButton btnDeleteWidgity = new LinkButton
            {
                ID               = this.ID + "_btnDeleteWidgity",
                Text             = "Delete",
                CssClass         = "btn btn-delete pull-right",
                CausesValidation = false
            };

            pnlMenu.Controls.Add(btnDeleteWidgity);
            btnDeleteWidgity.Click += BtnDeleteWidgity_Click;
        }