/// <summary> /// Returns Javascript used for invoking 'add related document' dialog. /// </summary> public string GetAddRelatedDocumentScript() { string postbackArgument; if (!AllowSwitchSides && !string.IsNullOrEmpty(RelationshipName)) { postbackArgument = "insertfromselectdocument"; // Register javascript 'postback' function string script = "function RefreshRelatedPanel(elementId) { if (elementId != null) { __doPostBack(elementId, '" + postbackArgument + "'); } } \n"; ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "RefreshRelatedPanel", ScriptHelper.GetScript(script)); // Dialog 'Select document' Config.EditorClientID = pnlUpdate.ClientID + ";" + hdnSelectedNodeId.ClientID; // Set dialog starting path if (!string.IsNullOrEmpty(StartingPath)) { Config.ContentStartingPath = StartingPath; } string url = CMSDialogHelper.GetDialogUrl(Config, false, null, false); return(string.Format("modalDialog('{0}', 'contentselectnode', '90%', '85%');", url)); } else { postbackArgument = "insert"; // Register javascript 'postback' function ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "RefreshUpdatePanel_" + ClientID, ScriptHelper.GetScript( "function RefreshUpdatePanel_" + ClientID + "(){ " + Page.ClientScript.GetPostBackEventReference(pnlUpdate, postbackArgument) + "; } \n")); // Dialog 'Add related document' string query = "?nodeid=" + TreeNode.NodeID; query = URLHelper.AddUrlParameter(query, "defaultside", DefaultSide.ToString()); query = URLHelper.AddUrlParameter(query, "allowswitchsides", AllowSwitchSides.ToString()); query = URLHelper.AddUrlParameter(query, "relationshipname", RelationshipName); query = URLHelper.AddUrlParameter(query, "externalControlID", ClientID); query = URLHelper.AddUrlParameter(query, "startingpath", StartingPath ?? ""); query = query.Replace("%", "%25").Replace("/", "%2F"); query = URLHelper.AddUrlParameter(query, "hash", QueryHelper.GetHash(query)); string url; if (IsLiveSite) { url = ResolveUrl("~/CMSFormControls/LiveSelectors/RelatedDocuments.aspx" + query); } else { url = ResolveUrl("~/CMSFormControls/Selectors/RelatedDocuments.aspx" + query); } return(string.Format("modalDialog('{0}', 'AddRelatedDocument', '900', '315');", url)); } }
protected void Page_Load(object sender, EventArgs e) { if (StopProcessing) { UniGridRelationship.StopProcessing = StopProcessing; } else { // Set tree node from Form object if ((TreeNode == null) && (Form != null) && (Form.EditedObject != null)) { TreeNode node = Form.EditedObject as TreeNode; if ((node != null) && (Form.Mode == FormModeEnum.Update)) { TreeNode = node; } else { lblError.Text = GetString("relationship.editdocumenterror"); } } if (TreeNode != null) { // Settings RelationshipName = ValidationHelper.GetString(GetValue("RelationshipName"), RelationshipName); AllowSwitchSides = ValidationHelper.GetBoolean(GetValue("AllowSwitchSides"), AllowSwitchSides); DefaultSide = ValidationHelper.GetBoolean(GetValue("DefaultSide"), DefaultSide); // Set unigrid UniGridRelationship.Columns = "LeftNodeID, RightNodeID, RelationshipNameID, LeftNodeName, RightNodeName, RelationshipDisplayName"; UniGridRelationship.OnExternalDataBound += UniGridRelationship_OnExternalDataBound; UniGridRelationship.OnBeforeDataReload += UniGridRelationship_OnBeforeDataReload; UniGridRelationship.OnAction += UniGridRelationship_OnAction; UniGridRelationship.ZeroRowsText = GetString("general.nodatafound"); int nodeId = TreeNode.NodeID; bool oneRelationshipName = !string.IsNullOrEmpty(RelationshipName); string where = null; if (oneRelationshipName) { where = SqlHelperClass.AddWhereCondition(where, "RelationshipName = N'" + SqlHelperClass.GetSafeQueryString(RelationshipName, false) + "'"); } // Switch sides is disabled if (!AllowSwitchSides) { if (DefaultSide) { where = SqlHelperClass.AddWhereCondition(where, "RightNodeID = " + nodeId); } else { where = SqlHelperClass.AddWhereCondition(where, "LeftNodeID = " + nodeId); } } else { where = SqlHelperClass.AddWhereCondition(where, "(LeftNodeID = " + nodeId + ") OR (RightNodeID = " + nodeId + ")"); } UniGridRelationship.WhereCondition = where; if (ShowAddRelation) { string postbackArgument = null; if (!AllowSwitchSides && !string.IsNullOrEmpty(RelationshipName)) { postbackArgument = "insertfromselectdocument"; // Register javascript 'postback' function string script = "function RefreshRelatedPanel(elementId) { if (elementId != null) { __doPostBack(elementId, '" + postbackArgument + "'); } } \n"; ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "RefreshRelatedPanel", ScriptHelper.GetScript(script)); // Dialog 'Select document' Config.EditorClientID = pnlUpdate.ClientID + ";" + hdnSelectedNodeId.ClientID; string url = CMSDialogHelper.GetDialogUrl(Config, IsLiveSite, false, null, false); lnkNewRelationship.Style.Add("cursor", "pointer"); lnkNewRelationship.Style.Add("text-decoration", "underline"); lnkNewRelationship.Attributes.Add("onclick", "modalDialog('" + url + "', 'contentselectnode', '90%', '85%');"); } else { postbackArgument = "insert"; // Register javascript 'postback' function ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "RefreshUpdatePanel_" + ClientID, ScriptHelper.GetScript( "function RefreshUpdatePanel_" + ClientID + "(){ " + Page.ClientScript.GetPostBackEventReference(pnlUpdate, postbackArgument) + "; } \n")); // Dialog 'Add related document' string query = "?nodeid=" + nodeId.ToString(); query = URLHelper.AddUrlParameter(query, "defaultside", DefaultSide.ToString()); query = URLHelper.AddUrlParameter(query, "allowswitchsides", AllowSwitchSides.ToString()); query = URLHelper.AddUrlParameter(query, "relationshipname", RelationshipName); query = URLHelper.AddUrlParameter(query, "externalControlID", ClientID); query = URLHelper.AddUrlParameter(query, "hash", QueryHelper.GetHash(query)); string url = null; if (IsLiveSite) { url = ResolveUrl("~/CMSFormControls/LiveSelectors/RelatedDocuments.aspx" + query); } else { url = ResolveUrl("~/CMSFormControls/Selectors/RelatedDocuments.aspx" + query); } // Initialize controls lnkNewRelationship.NavigateUrl = url; lnkNewRelationship.Attributes.Add("onclick", "modalDialog('" + url + "', 'AddRelatedDocument', '900', '300'); return false;"); } imgNewRelationship.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/addrelationship.png"); imgNewRelationship.DisabledImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/addrelationshipdisabled.png"); } else { pnlNewLink.Visible = false; } } else { UniGridRelationship.StopProcessing = true; UniGridRelationship.Visible = false; pnlNewLink.Visible = false; } if (RequestHelper.IsPostBack()) { string target = Request["__EVENTTARGET"]; if ((target == pnlUpdate.ClientID) || (target == pnlUpdate.UniqueID)) { string action = Request["__EVENTARGUMENT"]; if (!string.IsNullOrEmpty(action)) { switch (action.ToLower()) { // Insert from 'Add related document' dialog case "insert": lblInfo.Text = GetString("relationship.wasadded"); break; // Insert from 'Select document' dialog case "insertfromselectdocument": SaveRelationship(); break; // Nothing default: break; } } } } bool inserted = QueryHelper.GetBoolean("inserted", false); if (inserted) { lblInfo.Text = GetString("relationship.wasadded"); } } }