private void ResetListSettings(ref DesignDataSource source)
        {
            DesignDataSource _source = source;

            if (source.ListInheritanceChange || source.ListRoleChange)
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPSite site = SPContext.Current.Site;

                    SPWeb web   = site.OpenWeb(new Guid(_source.WebId));
                    SPList list = web.Lists[new Guid(_source.ListId)];
                    if (_source.ListInheritanceChange)
                    {
                        list.ResetRoleInheritance();
                        list.Update();
                        _source.ListInheritanceChange = false;
                    }
                    if (_source.ListRoleChange)
                    {
                        SPBasePermissions anon    = list.AnonymousPermMask64;
                        list.AnonymousPermMask64 -= SPBasePermissions.AddListItems;
                        list.Update();
                        _source.ListRoleChange = false;
                    }
                });
            }
            source = _source;
        }
        public void RaiseCallbackEvent(string eventArgument)
        {
            string[] eventArg = eventArgument.Split(new string[1] {
                "#;"
            }, StringSplitOptions.None);

            action = eventArg[0];
            source = Utilities.DeserializeObject <DesignDataSource>(eventArg[1]);


            formWebPart = WebPartToEdit as FormWebPart;

            if (formWebPart != null)
            {
                if (!string.IsNullOrEmpty(formWebPart.DataSourcesData))
                {
                    sources = Utilities.DeserializeObject <List <DesignDataSource> >(SourceValue);
                }

                if (sources == null)
                {
                    sources = new List <DesignDataSource>();
                }

                if (action.ToLower() == "delete")
                {
                    DesignDataSource found = sources.Single(n => n.Id == source.Id);
                    if (found.ListRoleChange)
                    {
                        ResetListSettings(ref found);
                    }
                    if (sources.Remove(found))
                    {
                        result = "DataSource Deleted";
                    }
                }

                if (action.ToLower() == "update")
                {
                    int index = sources.FindIndex(n => n.Id == source.Id);
                    if (index >= 0)
                    {
                        sources[index] = source;
                        result         = "DataSource Updated";
                    }
                    else
                    {
                        sources.Add(source);
                        result = "DataSource Added";
                    }
                }

                SourceValue = Utilities.SerializeObject(sources);
                formWebPart.DataSourcesData = SourceValue;
                repeater.DataSource         = sources;
                repeater.DataBind();
                this.DataBind(true);
            }
        }
        void delete_DataBinding(object sender, EventArgs e)
        {
            LinkButton       delete    = (LinkButton)sender;
            RepeaterItem     container = (RepeaterItem)delete.NamingContainer;
            DesignDataSource source    = container.DataItem as DesignDataSource;

            delete.OnClientClick = "DeleteFormDataDialog(" + Utilities.SerializeObject(source) + ");return false;";
        }
Example #4
0
        void newItem_DataBinding(object sender, EventArgs e)
        {
            LinkButton       edit      = (LinkButton)sender;
            RepeaterItem     container = (RepeaterItem)edit.NamingContainer;
            DesignDataSource source    = container.DataItem as DesignDataSource;

            edit.OnClientClick = "OpenDesignDataDialog(" + null + ");return false;";
        }
        void edit_DataBinding(object sender, EventArgs e)
        {
            LinkButton       edit      = (LinkButton)sender;
            RepeaterItem     container = (RepeaterItem)edit.NamingContainer;
            DesignDataSource source    = container.DataItem as DesignDataSource;

            edit.OnClientClick = "OpenFormDataDialog(" + Utilities.SerializeObject(source) + ");return false;";
            //OpenWebSitePartDialog('{0}', '{1}', '{2}');return false;
        }