Exemplo n.º 1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get query parameters
        selectedNodeType         = QueryHelper.GetString("selectednodetype", "webpart");
        selectedNodeName         = QueryHelper.GetString("selectednodename", string.Empty);
        hdnCurrentNodeType.Value = selectedNodeType;
        hdnCurrentNodeName.Value = selectedNodeName;

        bool enabled = DocumentManager.AllowSave;

        btnDelete.Enabled = enabled && !string.IsNullOrEmpty(selectedNodeName);
        if (btnDelete.Enabled)
        {
            btnDelete.OnClientClick = "return DeleteItem();";
            btnDelete.ToolTip       = GetString("Development-WebPart_Tree.DeleteItem");
        }

        btnNew.Enabled = enabled;
        if (btnNew.Enabled)
        {
            btnNew.OnClientClick = "return CreateNew();";
            btnNew.ToolTip       = GetString("Development-WebPart_Tree.NewWebPart");
        }

        string imageUrl = "Design/Controls/Tree";

        // Initialize page
        if (CultureHelper.IsUICultureRTL())
        {
            imageUrl = GetImageUrl("RTL/" + imageUrl);
        }
        else
        {
            imageUrl = GetImageUrl(imageUrl);
        }
        webpartsTree.LineImagesFolder = imageUrl;
        regionsTree.LineImagesFolder  = imageUrl;

        if (Node != null)
        {
            string webPartRootAttributes;
            string regionRootAttributes;

            if (string.IsNullOrEmpty(selectedNodeName))
            {
                switch (selectedNodeType)
                {
                case "webpart":
                    webPartRootAttributes = "class=\"ContentTreeSelectedItem\" id=\"treeSelectedNode\"";
                    regionRootAttributes  = "class=\"ContentTreeItem\" ";
                    break;

                case "region":
                    webPartRootAttributes = "class=\"ContentTreeItem\" ";
                    regionRootAttributes  = "class=\"ContentTreeSelectedItem\" id=\"treeSelectedNode\"";
                    break;

                default:
                    webPartRootAttributes = "class=\"ContentTreeSelectedItem\" id=\"treeSelectedNode\"";
                    regionRootAttributes  = "class=\"ContentTreeItem\" ";
                    break;
                }
            }
            else
            {
                webPartRootAttributes = "class=\"ContentTreeSelectedItem\" id=\"treeSelectedNode\"";
                regionRootAttributes  = "class=\"ContentTreeItem\" ";
            }

            // Create tree menus
            TreeElemNode rootWebpartNode = new TreeElemNode();
            rootWebpartNode.Text        = "<span " + webPartRootAttributes + " onclick=\"SelectNode('','webpart', this);\"><span class=\"Name\">" + ScriptHelper.GetLocalizedString("EditableWebparts.Root", false) + "</span></span>";
            rootWebpartNode.Expanded    = true;
            rootWebpartNode.NavigateUrl = "#";

            TreeElemNode rootRegionNode = new TreeElemNode();
            rootRegionNode.Text        = "<span " + regionRootAttributes + " onclick=\"SelectNode('','region', this);\"><span class=\"Name\">" + ScriptHelper.GetLocalizedString("EditableRegions.Root", false) + "</span></span>";
            rootRegionNode.Expanded    = true;
            rootRegionNode.NavigateUrl = "#";

            // Editable web parts
            webpartsTree.Nodes.Add(rootWebpartNode);
            if (Node.DocumentContent.EditableWebParts.Count > 0)
            {
                foreach (DictionaryEntry webPart in Node.DocumentContent.EditableWebParts)
                {
                    string key  = webPart.Key.ToString();
                    string name = EditableItems.GetFirstKey(key);
                    AddNode(rootWebpartNode, name, "webpart");
                }
            }

            // Editable regions
            regionsTree.Nodes.Add(rootRegionNode);
            if (Node.DocumentContent.EditableRegions.Count > 0)
            {
                foreach (DictionaryEntry region in Node.DocumentContent.EditableRegions)
                {
                    string key  = region.Key.ToString();
                    string name = EditableItems.GetFirstKey(key);
                    AddNode(rootRegionNode, name, "region");
                }
            }
        }

        // Delete item if requested from query string
        string nodeType = QueryHelper.GetString("nodetype", null);
        string nodeName = QueryHelper.GetString("nodename", null);

        if (!RequestHelper.IsPostBack() && !String.IsNullOrEmpty(nodeType) && QueryHelper.GetBoolean("deleteItem", false))
        {
            DeleteItem(nodeType, nodeName);
        }
    }
Exemplo n.º 2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!RequestHelper.IsPostBack())
        {
            // Fill dropdown list
            InitEditorOptions();

            // Inform user about saving
            if (QueryHelper.GetBoolean("imagesaved", false))
            {
                ShowChangesSaved();
                drpEditControl.SelectedIndex = 1;
            }
        }

        // Initialize HTML editor
        InitHTMLEditor();

        // Find post back invoker
        string invokerName = Page.Request.Params.Get(postEventSourceID);

        invokeControl = !string.IsNullOrEmpty(invokerName) ? Page.FindControl(invokerName) : null;

        // Set whether new item is to be created
        createNew = QueryHelper.GetBoolean("createNew", false);

        if (invokerName != null)
        {
            if (createNew && (invokeControl == drpEditControl))
            {
                createNew = true;
            }
            else
            {
                if (invokeControl == drpEditControl)
                {
                    createNew = false;
                }
            }
        }


        // Get query parameters
        keyName = QueryHelper.GetString("nodename", string.Empty);

        // Set editable content type enumeration
        switch (QueryHelper.GetString("nodetype", "webpart"))
        {
        case "webpart":
            keyType = EditableContentType.webpart;
            break;

        case "region":
            keyType = EditableContentType.region;
            break;
        }

        // Clear error
        ShowError("");


        // Show editing controls
        if ((createNew || (keyName != string.Empty)))
        {
            menuElem.Visible           = true;
            menuElem.ShowSave          = true;
            pnlEditableContent.Visible = true;
        }

        // Get content
        if (node != null)
        {
            // Initialize java scripts
            ltlScript.Text += ScriptHelper.GetScript("mainUrl = '" + ResolveUrl(EDITABLE_CONTENT_FOLDER + "main.aspx") + "?nodeid=" + node.NodeID + "';");

            if ((keyName != string.Empty) || createNew)
            {
                if (!RequestHelper.IsPostBack() && !createNew)
                {
                    txtName.Text = EditableItems.GetFirstKey(keyName);
                }

                if (!createNew)
                {
                    content = GetContent();

                    // Disable HTML editor if content is type of image
                    if (content != null)
                    {
                        if (content.StartsWithCSafe("<image>"))
                        {
                            ListItem li = drpEditControl.Items.FindByValue(Convert.ToInt32(EditingForms.HTMLEditor).ToString());
                            if (li != null)
                            {
                                drpEditControl.Items.Remove(li);
                            }
                        }
                    }
                }
            }
        }

        // Show div with content controls
        advancedEditables.Visible = true;
        // Hide all content controls
        txtAreaContent.Visible = txtContent.Visible = htmlContent.Visible = imageContent.Visible = false;

        // Set up editing forms
        switch (((EditingForms)Convert.ToInt32(drpEditControl.SelectedValue)))
        {
        case EditingForms.TextArea:
            txtAreaContent.Visible = true;
            break;

        case EditingForms.HTMLEditor:
            htmlContent.Visible = true;
            break;

        case EditingForms.EditableImage:
            imageContent.ViewMode   = ViewModeEnum.Edit;
            imageContent.Visible    = true;
            imageContent.ImageTitle = HTMLHelper.HTMLEncode(EditableItems.GetFirstKey(keyName));
            break;

        case EditingForms.TextBox:
            advancedEditables.Visible = false;
            txtContent.Visible        = true;
            break;
        }
        // Set visibility of div based on content controls
        advancedEditables.Visible = txtAreaContent.Visible || htmlContent.Visible || imageContent.Visible;
        lblContent.Visible        = txtContent.Visible;
    }