Exemple #1
0
    /// <summary>
    /// Creates settings group. Called when the "Create group" button is pressed.
    /// Expects the CreateSettingsCategory method to be run first.
    /// </summary>
    private bool CreateSettingsGroup()
    {
        // Get the settings category
        SettingsCategoryInfo settingsCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("MyNewSettingsCategory");

        if (settingsCategory != null)
        {
            // Create new settings group object
            SettingsCategoryInfo newGroup = new SettingsCategoryInfo();

            // Set the properties
            newGroup.CategoryDisplayName = "My New Settings Group";
            newGroup.CategoryName        = "MyNewSettingsGroup";
            newGroup.CategoryOrder       = 0;
            newGroup.CategoryParentID    = settingsCategory.CategoryID;
            newGroup.CategoryIsGroup     = true;
            newGroup.CategoryIsCustom    = true;

            // Create the settings group
            SettingsCategoryInfoProvider.SetSettingsCategoryInfo(newGroup);

            return(true);
        }

        return(false);
    }
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        mCategoryId = QueryHelper.GetInteger("categoryid", 0);
        mTreeRoot = QueryHelper.GetText("treeroot", "customsettings");
        mWholeSettings = mTreeRoot == "settings";
        mRootName = mWholeSettings ? "CMS.Settings" : "CMS.CustomSettings";

        if (mCategoryId > 0)
        {
            mCategoryInfo = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(mCategoryId);
        }
        else
        {
            mCategoryInfo = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(mRootName);
        }

        if (mCategoryInfo != null)
        {
            mCategoryId = mCategoryInfo.CategoryID;
        }

        // Intialize the control
        SetupControl();
    }
    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        string[,] breadcrumbs = new string[2, 4];
        breadcrumbs[0, 2]     = "_parent";
        breadcrumbs[1, 1]     = "";

        // Set bradcrumbs for editing
        if (skeEditKey.SettingsKeyObj != null)
        {
            SettingsCategoryInfo sci = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(skeEditKey.SettingsKeyObj.KeyCategoryID);

            breadcrumbs[0, 0] = sci.CategoryDisplayName;
            breadcrumbs[0, 1] = ResolveUrl("CustomSettingsCategory_Default.aspx?treeroot=" + mTreeRoot + "&categoryid=" + sci.CategoryParentID + "&siteid=" + mSiteId);
            breadcrumbs[1, 0] = skeEditKey.SettingsKeyObj.KeyDisplayName;
        }
        // Set bradcrumbs for creating new key
        else
        {
            if (mParentGroup != null)
            {
                SettingsCategoryInfo parentCat = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(mParentGroup);
                if (parentCat != null)
                {
                    breadcrumbs[0, 0] = parentCat.CategoryDisplayName;
                    breadcrumbs[0, 1] = ResolveUrl("CustomSettingsCategory_Default.aspx?treeroot=" + mTreeRoot + "&categoryid=" + parentCat.CategoryParentID + "&siteid=" + mSiteId);
                    breadcrumbs[1, 0] = GetString("Development.CustomSettings.NewKey");
                }
            }
        }
        CurrentMaster.Title.Breadcrumbs = breadcrumbs;
    }
Exemple #4
0
    /// <summary>
    /// Creates settings key. Called when the "Create key" button is pressed.
    /// </summary>
    private bool CreateSettingsKey()
    {
        // Get the settings group
        SettingsCategoryInfo settingsGroup = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("MyNewSettingsGroup");

        if (settingsGroup != null)
        {
            // Create new settings key object
            SettingsKeyInfo newKey = new SettingsKeyInfo();

            // Set the properties
            newKey.KeyDisplayName  = "My new key";
            newKey.KeyName         = "MyNewKey";
            newKey.KeyDescription  = "My new key description";
            newKey.KeyType         = "string";
            newKey.KeyValue        = "My new value";
            newKey.KeyCategoryID   = settingsGroup.CategoryID;
            newKey.KeyDefaultValue = null;

            // Set Site ID for site specific settings key (for global settings key is default value 0).
            newKey.SiteID = CMSContext.CurrentSiteID;

            // Create the settings key
            SettingsKeyProvider.SetValue(newKey);

            return(true);
        }

        return(false);
    }
Exemple #5
0
    /// <summary>
    /// Creates settings category. Called when the "Create category" button is pressed.
    /// </summary>
    private bool CreateSettingsCategory()
    {
        // Get parent category ID
        SettingsCategoryInfo parentCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("CMS.CustomSettings");

        if (parentCategory != null)
        {
            // Create new settings category object
            SettingsCategoryInfo newCategory = new SettingsCategoryInfo();

            // Set the properties
            newCategory.CategoryDisplayName = "My New Settings Category";
            newCategory.CategoryName        = "MyNewSettingsCategory";
            newCategory.CategoryOrder       = 0;
            newCategory.CategoryParentID    = parentCategory.CategoryID;
            newCategory.CategoryIsGroup     = false;
            newCategory.CategoryIsCustom    = true;

            // Create settings category
            SettingsCategoryInfoProvider.SetSettingsCategoryInfo(newCategory);

            return(true);
        }

        return(false);
    }
Exemple #6
0
    /// <summary>
    /// Deletes settings group. Called when the "Delete group" button is pressed.
    /// Expects the CreateSettingsGroup method to be run first.
    /// </summary>
    private bool DeleteSettingsGroup()
    {
        // Get the settings group
        SettingsCategoryInfo deleteGroup = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("MyNewSettingsGroup");

        // Delete the settings group
        SettingsCategoryInfoProvider.DeleteSettingsCategoryInfo(deleteGroup);

        return(deleteGroup != null);
    }
Exemple #7
0
    /// <summary>
    /// Deletes settings category. Called when the "Delete category" button is pressed.
    /// Expects the CreateSettingsCategory method to be run first.
    /// </summary>
    private bool DeleteSettingsCategory()
    {
        // Get the settings category
        SettingsCategoryInfo deleteCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("MyNewSettingsCategory");

        // Delete the settings category
        SettingsCategoryInfoProvider.DeleteSettingsCategoryInfo(deleteCategory);

        return(deleteCategory != null);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //Get parameters
        mKeyName     = QueryHelper.GetString("keyname", "");
        mSiteId      = QueryHelper.GetInteger("siteid", -1);
        mParentGroup = QueryHelper.GetString("parentgroup", null);
        mTreeRoot    = QueryHelper.GetText("treeroot", "customsettings");

        skeEditKey.IsCustomSetting = mTreeRoot.EqualsCSafe("customsettings", true);
        skeEditKey.OnSaved        += new EventHandler(skeEditKey_OnSaved);

        if (skeEditKey.IsCustomSetting)
        {
            SettingsCategoryInfo root = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("CMS.CustomSettings");
            if (root != null)
            {
                skeEditKey.RootCategoryID = root.CategoryID;
            }
        }

        // Set up editing mode
        if ((mSiteId >= 0) && !string.IsNullOrEmpty(mKeyName))
        {
            mEditedKey = SettingsKeyProvider.GetSettingsKeyInfo(mKeyName, mSiteId);

            // Set id of key
            if (mEditedKey != null)
            {
                skeEditKey.SettingsKeyID = mEditedKey.KeyID;
            }
        }
        // Set up creating mode
        else
        {
            if (mParentGroup != null)
            {
                SettingsCategoryInfo parentCat = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(mParentGroup);
                if (parentCat != null)
                {
                    skeEditKey.SelectedGroupID = parentCat.CategoryID;
                }
            }
        }

        // Check if there is something right created to edit.
        if (ViewState["newId"] != null)
        {
            skeEditKey.SettingsKeyID = ValidationHelper.GetInteger(ViewState["newId"], 0);
        }

        skeEditKey.TreeRefreshUrl   = "~/CMSModules/Settings/Development/CustomSettings/CustomSettings_Menu.aspx?treeroot=" + mTreeRoot + "&";
        skeEditKey.HeaderRefreshUrl = "~/CMSModules/Settings/Development/CustomSettings/CustomSettingsCategory_Tabs.aspx?selectedtab=keys&treeroot=" + mTreeRoot + "&";
    }
        public void CreateGroup(Group group)
        {
            var parentCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(group.Category.Name);
            var newGroup       = new SettingsCategoryInfo
            {
                CategoryDisplayName = group.DisplayName,
                CategoryName        = Guid.NewGuid().ToString(),
                CategoryParentID    = parentCategory.CategoryID,
                CategoryIsGroup     = true,
                CategoryIsCustom    = true,
                CategoryResourceID  = parentCategory.CategoryResourceID
            };

            SettingsCategoryInfoProvider.SetSettingsCategoryInfo(newGroup);
        }
        public void CreateCategory(Category category)
        {
            var parentCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(category.CategoryParentName);
            var newCategory    = new SettingsCategoryInfo
            {
                CategoryDisplayName = category.DisplayName,
                CategoryName        = category.Name,
                CategoryParentID    = parentCategory.CategoryID,
                CategoryIsGroup     = false,
                CategoryIsCustom    = true,
                CategoryResourceID  = parentCategory.CategoryResourceID
            };

            SettingsCategoryInfoProvider.SetSettingsCategoryInfo(newCategory);
        }
        public bool GroupExists(string displayName, string categoryName)
        {
            var parentCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(categoryName);

            if (parentCategory == null)
            {
                throw new ArgumentException($"Parent category with name {categoryName} does not exist");
            }

            var groupExists = SettingsCategoryInfoProvider.GetSettingsCategories()
                              .WhereEquals(nameof(SettingsCategoryInfo.CategoryParentID), parentCategory.CategoryID)
                              .And()
                              .WhereEquals(nameof(SettingsCategoryInfo.CategoryDisplayName), displayName)
                              .Any();

            return(groupExists);
        }
Exemple #12
0
    /// <summary>
    /// Gets and updates settings group. Called when the "Get and update group" button is pressed.
    /// Expects the CreateSettingsGroup method to be run first.
    /// </summary>
    private bool GetAndUpdateSettingsGroup()
    {
        // Get the settings group
        SettingsCategoryInfo updateGroup = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("MyNewSettingsGroup");

        if (updateGroup != null)
        {
            // Update the property
            updateGroup.CategoryDisplayName = updateGroup.CategoryDisplayName.ToLowerCSafe();

            // Update the settings group
            SettingsCategoryInfoProvider.SetSettingsCategoryInfo(updateGroup);

            return(true);
        }

        return(false);
    }
Exemple #13
0
    /// <summary>
    /// Gets and updates settings category. Called when the "Get and update category" button is pressed.
    /// Expects the CreateSettingsCategory method to be run first.
    /// </summary>
    private bool GetAndUpdateSettingsCategory()
    {
        // Get the settings category
        SettingsCategoryInfo updateCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("MyNewSettingsCategory");

        if (updateCategory != null)
        {
            // Update the property
            updateCategory.CategoryDisplayName = updateCategory.CategoryDisplayName.ToLowerCSafe();

            // Update settings category
            SettingsCategoryInfoProvider.SetSettingsCategoryInfo(updateCategory);

            return(true);
        }

        return(false);
    }
Exemple #14
0
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        int categoryId = QueryHelper.GetInteger("categoryid", -1);

        // Get root of tree
        mTreeRoot = QueryHelper.GetString("treeroot", "customsettings");
        // Get site id
        mSiteId = QueryHelper.GetInteger("siteid", 0);

        // Find category
        if (categoryId >= 0)
        {
            mCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(categoryId);
        }

        // Use root category for CustomSettings or Settings if category not found or specified
        if ((categoryId == -1) || (mCategory == null))
        {
            switch (mTreeRoot)
            {
            case ("customsettings"):
                grpEdit.CategoryName = "CMS.CustomSettings";
                break;

            case ("settings"):
            default:
                grpEdit.CategoryName = "CMS.Settings";
                break;
            }

            mCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(grpEdit.CategoryName);
        }

        grpEdit.CategoryName     = mCategory.CategoryName;
        grpEdit.SiteID           = mSiteId;
        grpEdit.ActionPerformed += new CommandEventHandler(grpEdit_ActionPerformed);
        grpEdit.OnNewKey        += new CommandEventHandler(grpEdit_OnNewKey);
        grpEdit.OnKeyAction     += new OnActionEventHandler(grpEdit_OnKeyAction);

        // Read data
        grpEdit.ReloadData();
    }
Exemple #15
0
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        int categoryId = QueryHelper.GetInteger("categoryid", -1);

        // Find category
        if (categoryId >= 0)
        {
            mCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(categoryId);
        }

        // Use root category for Settings if category not found or specified
        if ((categoryId == -1) || (mCategory == null))
        {
            mCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("CMS.Settings");
        }

        // Set edited object
        EditedObject = mCategory;

        if (mCategory.CategoryParentID != 0)
        {
            grpEdit.CategoryName     = mCategory.CategoryName;
            grpEdit.ModuleID         = moduleId;
            grpEdit.ActionPerformed += grpEdit_ActionPerformed;
            grpEdit.OnNewKey        += grpEdit_OnNewKey;
            grpEdit.OnKeyAction     += grpEdit_OnKeyAction;

            // Read data
            grpEdit.ReloadData();
        }

        if (!Resource.ResourceIsInDevelopment && !SystemContext.DevelopmentMode)
        {
            // Show information about installed module
            ShowInformation(GetString("settingcategory.installedmodule"));
        }
        else if ((mCategory.CategoryID == categoryId) && (mCategory.CategoryParentID == 0))
        {
            // Show information about creating module categories and groups
            ShowInformation(GetString("settingcategory.createmodulecategory"));
        }
    }
Exemple #16
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //Get parameters
        mKeyName     = QueryHelper.GetString("keyname", "");
        mParentGroup = QueryHelper.GetString("parentgroup", null);

        skeEditKey.OnSaved += skeEditKey_OnSaved;

        // Set up editing mode
        if (!string.IsNullOrEmpty(mKeyName))
        {
            mEditedKey = SettingsKeyInfoProvider.GetSettingsKeyInfo(mKeyName, 0);

            // Set id of key
            if (mEditedKey != null)
            {
                skeEditKey.SettingsKeyID = mEditedKey.KeyID;
            }
        }
        // Set up creating mode
        else
        {
            if (mParentGroup != null)
            {
                SettingsCategoryInfo parentCat = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(mParentGroup);
                if (parentCat != null)
                {
                    skeEditKey.SelectedGroupID = parentCat.CategoryID;
                }
            }
        }

        // Check if there is something right created to edit.
        if (ViewState["newId"] != null)
        {
            skeEditKey.SettingsKeyID = ValidationHelper.GetInteger(ViewState["newId"], 0);
        }

        skeEditKey.ModuleID = mModuleId;
    }
        private SettingsCategoryInfo GetGroup(string displayName, string categoryName)
        {
            var parentCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(categoryName);

            if (parentCategory == null)
            {
                throw new ArgumentException($"Parent category with name {categoryName} does not exist");
            }

            var group = SettingsCategoryInfoProvider.GetSettingsCategories()
                        .WhereEquals(nameof(SettingsCategoryInfo.CategoryParentID), parentCategory.CategoryID)
                        .And()
                        .WhereEquals(nameof(SettingsCategoryInfo.CategoryDisplayName), displayName)
                        .FirstOrDefault();

            if (group == null)
            {
                throw new ArgumentException($"Group with display name {displayName} does not exist");
            }

            return(group);
        }
Exemple #18
0
    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        var categoryBreadcrumb = new BreadcrumbItem();

        var settingBreadcrumb = new BreadcrumbItem();

        // Set bradcrumbs for editing
        if (skeEditKey.SettingsKeyObj != null)
        {
            var sci = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(skeEditKey.SettingsKeyObj.KeyCategoryID);

            categoryBreadcrumb.Text        = sci.CategoryDisplayName;
            categoryBreadcrumb.RedirectUrl = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ModuleName.CMS, "Modules.Settings.EditKeys", false), "categoryid=" + sci.CategoryParentID + "&moduleid=" + mModuleId);

            settingBreadcrumb.Text = skeEditKey.SettingsKeyObj.KeyDisplayName;
        }
        // Set bradcrumbs for creating new key
        else
        {
            if (mParentGroup != null)
            {
                var parentCat = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(mParentGroup);
                if (parentCat != null)
                {
                    categoryBreadcrumb.Text        = parentCat.CategoryDisplayName;
                    categoryBreadcrumb.RedirectUrl = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ModuleName.CMS, "Modules.Settings.EditKeys", false), "categoryid=" + parentCat.CategoryParentID + "&moduleid=" + mModuleId);

                    settingBreadcrumb.Text = GetString("Development.CustomSettings.NewKey");
                }
            }
        }

        PageBreadcrumbs.AddBreadcrumb(categoryBreadcrumb);
        PageBreadcrumbs.AddBreadcrumb(settingBreadcrumb);
    }
        protected override void OnInit()
        {
            base.OnInit();

            ApplicationEvents.End.Execute += End_Execute;

            if (SettingsHelper.AppSettings[nameof(WebConfigKeys.CMSStorageProviderAssembly)] == "AzureStorageProvider")
            {
                var provider = new StorageProvider("AzureStorageProvider", "AzureStorageProvider", true);
                StorageHelper.MapStoragePath("/", provider);
            }


            if (SettingsKeyInfoProvider.GetSettingsKeyInfo(nameof(SettingsKeys.AzureStorageProviderEnableLogs)) == null)
            {
                var category = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("CMS.Debug.General");
                // settings key does not exist
                var logEnabledKey = new SettingsKeyInfo
                {
                    KeyName         = nameof(SettingsKeys.AzureStorageProviderEnableLogs),
                    KeyDisplayName  = "Azure Storage Provider Enable Logs",
                    KeyDescription  = "Enables logs",
                    KeyType         = "boolean",
                    KeyCategoryID   = category.CategoryID,
                    KeyDefaultValue = "False",
                    KeyIsGlobal     = true,
                    KeyIsCustom     = false,
                    KeyIsHidden     = false
                };
                logEnabledKey.Insert();
            }

            if (ValidationHelper.GetBoolean(SettingsHelper.AppSettings[nameof(WebConfigKeys.AzureStorageProviderInitializeAtAppStart)], false))
            {
                BlobDirectoryCollection.Instance.GetOrCreate(string.Empty).Reinitialize();
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptHelper.RegisterJQuery(this.Page);

        // Root of tree flag
        string treeRoot = QueryHelper.GetString("treeroot", "customsettings");

        // Decide which category to use as root: custom settings or settings
        switch (treeRoot)
        {
        case ("settings"):
            treeSettings.CategoryName    = "CMS.Settings";
            treeSettings.RootIsClickable = true;
            this.menuElem.WholeSettings  = true;
            break;

        case ("customsettings"):
        default:
            treeSettings.CategoryName   = "CMS.CustomSettings";
            this.menuElem.WholeSettings = false;
            break;
        }

        this.menuElem.AfterAction += new OnActionEventHandler(menuElem_AfterAction);

        // Prepare root info
        SettingsCategoryInfo rootCat = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(treeSettings.CategoryName);

        StringBuilder sb      = new StringBuilder("");
        StringBuilder sbAfter = new StringBuilder("");

        // Create links for JS
        sb.Append("var frameURL = '").Append(ResolveUrl("~/CMSModules/Settings/Development/CustomSettings/CustomSettingsCategory_Default.aspx?treeroot=" + ScriptHelper.GetString(treeRoot, false))).Append("';");
        sb.Append("var newURL = '").Append(ResolveUrl("~/CMSModules/Settings/Development/CustomSettings/CustomSettingsCategory_Edit.aspx?treeroot=" + ScriptHelper.GetString(treeRoot, false))).Append("';");
        sb.Append("var rootParentId = ").Append(rootCat != null ? rootCat.CategoryParentID : 0).Append(";");

        // Disable delete on custom settings category
        if (treeRoot == "settings")
        {
            DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryName = 'CMS.CustomSettings'", null, 1, "CategoryID");
            int     customSettingsId = 0;
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                customSettingsId = SqlHelperClass.GetInteger(ds.Tables[0].Rows[0]["CategoryID"], 0);
            }
            sb.Append("var customSettingsId = ").Append(customSettingsId).Append(";");
        }
        else
        {
            sb.Append("var customSettingsId = 0;");
        }


        if (!RequestHelper.IsPostBack())
        {
            int categoryId = QueryHelper.GetInteger("categoryid", -1);
            treeSettings.SelectPath = "/";

            SettingsCategoryInfo category = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(categoryId);
            // Select requested category
            if (category != null)
            {
                treeSettings.SelectPath = category.CategoryIDPath;
                this.menuElem.ElementID = category.CategoryID;
                this.menuElem.ParentID  = category.CategoryParentID;
                this.menuElem.Value     = category.CategoryID + "|" + category.CategoryParentID;

                // Select category after page load
                sbAfter.Append("SelectNode(" + ScriptHelper.GetString(category.CategoryName) + ");");
                sbAfter.Append("enableMenu(").Append(category.CategoryID).Append(",").Append(category.CategoryParentID).Append(");");
            }
            //  Select root
            else
            {
                if (rootCat != null)
                {
                    this.menuElem.ElementID = rootCat.CategoryID;
                    this.menuElem.ParentID  = rootCat.CategoryParentID;
                    this.menuElem.Value     = rootCat.CategoryID + "|" + rootCat.CategoryParentID;
                }

                // Select category after page load
                sbAfter.Append("SelectNode(").Append(ScriptHelper.GetString(treeSettings.CategoryName)).Append(");");
                sbAfter.Append("enableMenu(").Append(rootCat.CategoryID).Append(",").Append(rootCat.CategoryParentID).Append(");");
            }
        }
        sb.Append("var postParentId = ").Append(rootCat.CategoryParentID).Append(";");

        this.ltlScript.Text      = ScriptHelper.GetScript(sb.ToString());
        this.ltlAfterScript.Text = ScriptHelper.GetScript(sbAfter.ToString());
    }
Exemple #21
0
    /// <summary>
    /// Handles OnClick event of btnOk.
    /// </summary>
    /// <param name="sender">Asp Button instance</param>
    /// <param name="e">EventArgs instance</param>
    protected void btnOk_Click(object sender, EventArgs e)
    {
        if (IsValid())
        {
            // Get category by name
            SettingsCategoryInfo categoryObj = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(txtCategoryName.Text.Trim());
            // If name is unique OR ids are same
            if ((categoryObj == null) || (categoryObj.CategoryID == SettingsCategoryID))
            {
                SettingsCategoryInfo sci = SettingsCategoryObj;
                if (sci == null)
                {
                    sci = new SettingsCategoryInfo();
                    sci.CategoryOrder = CategoryOrder;
                }

                if (sci.CategoryParentID != drpCategory.SelectedCategory)
                {
                    // When parent has been changed set the order for the category as the last possible order
                    sci.CategoryOrder = SettingsCategoryInfoProvider.GetLastSettingsCategoryOrder(drpCategory.SelectedCategory) + 1;
                }

                sci.CategoryName        = txtCategoryName.Text.Trim();
                sci.CategoryDisplayName = txtCategoryDisplayName.Text.Trim();
                sci.CategoryIconPath    = txtIconPath.Text.Trim();
                sci.CategoryParentID    = SelectedParentCategory;
                sci.CategoryIsGroup     = IsGroupEdit;
                sci.CategoryResourceID  = ValidationHelper.GetInteger(ucSelectModule.Value, ModuleID);

                SettingsCategoryInfoProvider.SetSettingsCategoryInfo(sci);
                SettingsCategoryObj = sci;
                RaiseOnSaved();

                // Set the info message
                if (ContentRefreshUrl == null)
                {
                    ShowChangesSaved();
                }

                // Reload header and content after save
                int categoryIdToShow = sci.CategoryIsGroup ? sci.CategoryParentID : sci.CategoryID;

                StringBuilder sb = new StringBuilder();
                sb.Append("if (window.parent != null) {");
                if (!String.IsNullOrEmpty(TreeRefreshUrl))
                {
                    sb.AppendFormat(@"if (window.parent.parent.frames['settingstree'] != null) {{
   window.parent.parent.frames['settingstree'].location = '{0}&categoryid={1}';
}}
if (window.parent.frames['settingstree'] != null) {{
   window.parent.frames['settingstree'].location = '{0}&categoryid={1}';
}}", ResolveUrl(TreeRefreshUrl), categoryIdToShow);
                }
                if (!String.IsNullOrEmpty(ContentRefreshUrl))
                {
                    sb.AppendFormat("window.location = '{0}&categoryid={1}';", ResolveUrl(ContentRefreshUrl), sci.CategoryID);
                }

                sb.Append("}");
                ltlScript.Text = ScriptHelper.GetScript(sb.ToString());
            }
            else
            {
                ShowError(GetString("general.codenameexists"));
            }
        }
    }
Exemple #22
0
    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        string[,] breadcrumbs = new string[2, 4];
        breadcrumbs[0, 2]     = "customsettingsmain";

        // Get root category: Settings or CustomSettings
        SettingsCategoryInfo customSettingsRoot = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(mTreeRoot == "settings" ? "CMS.Settings" : "CMS.CustomSettings");
        // Parent category info for level up link
        SettingsCategoryInfo parentCategoryInfo = null;

        if (mCategoryId <= 0)
        {
            // Set new title
            string title = GetString(catEdit.IsGroupEdit ? "settings.group.new" : "settingsedit.category_list.newitemcaption");
            if (!catEdit.IsGroupEdit && mShowTitle)
            {
                CurrentMaster.Title.TitleText = title;
            }
            catEdit.ShowParentSelector = false;

            if (catEdit.SettingsCategoryObj == null)
            {
                catEdit.RootCategoryID = mParentId;
                parentCategoryInfo     = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(mParentId);

                breadcrumbs[1, 0] = title;
            }
            else
            {
                parentCategoryInfo = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(catEdit.SettingsCategoryObj.CategoryParentID);
                breadcrumbs[1, 0]  = catEdit.SettingsCategoryObj.CategoryDisplayName;
            }
        }
        else
        {
            SetEditEnabled(false);

            // One level up link category Id, but maximaly to current root
            mLinkCatId         = customSettingsRoot.CategoryID == catEdit.SettingsCategoryObj.CategoryParentID ? customSettingsRoot.CategoryID : (catEdit.IsGroupEdit ? catEdit.SettingsCategoryObj.CategoryParentID : catEdit.SettingsCategoryObj.CategoryID);
            parentCategoryInfo = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(mLinkCatId);

            breadcrumbs[1, 0] = GetString(catEdit.IsGroupEdit ? catEdit.SettingsCategoryObj.CategoryDisplayName : "settingsedit.settingscategory.edit.headercaption");

            if (mShowTitle && !catEdit.IsGroupEdit)
            {
                CurrentMaster.Title.TitleText = GetString("settingsedit.settingscategory.edit.headercaption");
            }

            if (catEdit.SettingsCategoryObj.CategoryID != customSettingsRoot.CategoryID)
            {
                SetEditEnabled(true);
                // Allow assigning of all categories in edit mode
                catEdit.RootCategoryID = customSettingsRoot != null ? customSettingsRoot.CategoryID : catEdit.SettingsCategoryObj.CategoryParentID;
                catEdit.IsGroupEdit    = catEdit.SettingsCategoryObj.CategoryIsGroup;
            }
        }

        // Set up title and breadcrumbs
        if (parentCategoryInfo != null)
        {
            breadcrumbs[0, 0] = ResHelper.LocalizeString(parentCategoryInfo.CategoryDisplayName);
            breadcrumbs[0, 1] = ResolveUrl("~/CMSModules/Settings/Development/CustomSettings/CustomSettingsCategory_Default.aspx") + "?treeroot=" + mTreeRoot + "&categoryid=" + parentCategoryInfo.CategoryID;
        }

        if (mCategoryId <= 0 || catEdit.IsGroupEdit)
        {
            CurrentMaster.Title.Breadcrumbs = breadcrumbs;
        }
        CurrentMaster.Title.TitleImage = GetImageUrl("Objects/CMS_CustomSettings/object.png");
    }
    /// <summary>
    /// Handles OnClick event of btnOk.
    /// </summary>
    /// <param name="sender">Asp Button instance</param>
    /// <param name="e">EventArgs instance</param>
    protected void btnOk_Click(object sender, EventArgs e)
    {
        if (IsValid())
        {
            // Get category by name
            SettingsCategoryInfo categoryObj = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(txtCategoryName.Text.Trim());
            // If name is unique OR ids are same
            if ((categoryObj == null) || (categoryObj.CategoryID == mSettingsCategoryId))
            {
                SettingsCategoryInfo sci = SettingsCategoryObj;
                if (sci == null)
                {
                    sci = new SettingsCategoryInfo();
                    sci.CategoryOrder = mCategoryOrder;
                }

                if (sci.CategoryParentID != drpCategory.SelectedCategory)
                {
                    // When parent has been changed set the order for the category as the last possible order
                    sci.CategoryOrder = SettingsCategoryInfoProvider.GetLastSettingsCategoryOrder(drpCategory.SelectedCategory) + 1;
                }
                sci.CategoryName        = txtCategoryName.Text.Trim();
                sci.CategoryDisplayName = txtCategoryDisplayName.Text.Trim();
                sci.CategoryIconPath    = txtIconPath.Text.Trim();
                sci.CategoryParentID    = drpCategory.SelectedCategory;
                sci.CategoryIsGroup     = mIsGroupEdit;
                sci.CategoryIsCustom    = mIsCustom || chkIsCustom.Checked;

                SettingsCategoryInfoProvider.SetSettingsCategoryInfo(sci);
                SettingsCategoryObj = sci;
                RaiseOnSaved();

                // Set the info message
                if (ContentRefreshUrl == null)
                {
                    ShowChangesSaved();
                }

                // Reload header and content after save
                int           categoryIdToShow = sci.CategoryIsGroup ? sci.CategoryParentID : sci.CategoryID;
                StringBuilder sb = new StringBuilder();
                sb.Append("if (window.parent != null) {");
                if (HeaderRefreshUrl != null)
                {
                    sb.Append("if (window.parent.parent.frames['customsettingscategorytabs'] != null) {");
                    sb.Append("window.parent.parent.frames['customsettingscategorytabs'].location = '" + ResolveUrl(HeaderRefreshUrl) + "categoryid=" + categoryIdToShow + "';");
                    sb.Append("}");
                    sb.Append("if (window.parent.frames['customsettingscategorytabs'] != null) {");
                    sb.Append("window.parent.frames['customsettingscategorytabs'].location = '" + ResolveUrl(HeaderRefreshUrl) + "categoryid=" + categoryIdToShow + "';");
                    sb.Append("}");
                }
                if (TreeRefreshUrl != null)
                {
                    sb.Append("if (window.parent.parent.frames['customsettingstree'] != null) {");
                    sb.Append("window.parent.parent.frames['customsettingstree'].location = '" + ResolveUrl(TreeRefreshUrl) + "categoryid=" + categoryIdToShow + "';");
                    sb.Append("}");
                    sb.Append("if (window.parent.frames['customsettingstree'] != null) {");
                    sb.Append("window.parent.frames['customsettingstree'].location =  '" + ResolveUrl(TreeRefreshUrl) + "categoryid=" + categoryIdToShow + "';");
                    sb.Append("}");
                }
                if (ContentRefreshUrl != null)
                {
                    sb.Append("window.location =  '" + ResolveUrl(ContentRefreshUrl) + "categoryid=" + sci.CategoryID + "';");
                }
                sb.Append("}");
                ltlScript.Text = ScriptHelper.GetScript(sb.ToString());
            }
            else
            {
                ShowError(GetString("general.codenameexists"));
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Id of parent if creating new category.
        mParentId = QueryHelper.GetInteger("parentid", -1);
        // Id of category if editing existing category.
        mCategoryId = QueryHelper.GetInteger("categoryid", -1);
        // Set isGroup flag.
        catEdit.IsGroupEdit = QueryHelper.GetBoolean("isgroup", false);

        catEdit.IncludeRootCategory = !catEdit.IsGroupEdit;

        if (ViewState["newId"] != null)
        {
            mCategoryId = ValidationHelper.GetInteger(ViewState["newId"], 0);
        }


        catEdit.OnSaved += catEdit_OnSaved;

        // Set up of root category in parent selector and refreshing
        catEdit.DisplayOnlyCategories = true;
        catEdit.SettingsCategoryID    = mCategoryId;
        // Set tree refreshing
        catEdit.TreeRefreshUrl = "~/CMSModules/Modules/Pages/Settings/Tree.aspx?moduleid=" + moduleId;

        // Get root category: Settings or CustomSettings
        SettingsCategoryInfo settingsRoot = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("CMS.Settings");

        if (mCategoryId <= 0)
        {
            catEdit.ShowParentSelector = false;

            if (catEdit.SettingsCategoryObj == null)
            {
                catEdit.RootCategoryID = mParentId;
            }

            // Redirect to editing form
            if (catEdit.IsGroupEdit)
            {
                catEdit.ContentRefreshUrl = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ModuleName.CMS, "Modules.Settings.EditCategory", false), "moduleId=" + moduleId);
            }
            else
            {
                catEdit.ContentRefreshUrl = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ModuleName.CMS, "EditSettingsCategory", false), "tabName=Modules.Settings.EditCategory&moduleId=" + moduleId);
            }
        }
        else
        {
            SetEditEnabled(false);

            // Do not show root category
            if (catEdit.SettingsCategoryObj.CategoryID != settingsRoot.CategoryID)
            {
                SetEditEnabled(true);

                // Allow assigning of all categories in edit mode
                catEdit.RootCategoryID = settingsRoot.CategoryID;
                catEdit.IsGroupEdit    = catEdit.SettingsCategoryObj.CategoryIsGroup;
            }
            else
            {
                ShowInformation(GetString("settingcategory.rootcategorywarning"));
            }
        }
    }