using System; using System.Web.UI; using umbraco.cms.businesslogic.datatype; using umbraco.cms.presentation.Trees; namespace umbraco.editorControls { /// /// Summary description for pagePicker. /// [ClientDependency(1, ClientDependencyType.Css, "js/submodal/submodal.css", true)] [ClientDependency(1, ClientDependencyType.Javascript, "js/submodal/common.js", true)] [ClientDependency(2, ClientDependencyType.Javascript, "js/submodal/submodal.js", true, "initPopUp")] [ClientDependency(3, ClientDependencyType.Javascript, "webservices/legacyAjaxCalls.asmx/js", true)] [ValidationProperty("Value")] public class pagePicker : System.Web.UI.WebControls.HiddenField, interfaces.IDataEditor { interfaces.IData _data; public pagePicker(interfaces.IData Data) { _data = Data; } #region IDataField Members //private string _text; public System.Web.UI.Control Editor { get { return this; } } public virtual bool TreatAsRichTextEditor { get { return false; } } public bool ShowLabel { get { return true; } } public void Save() { //_text = helper.Request(this.ClientID); if (base.Value.Trim() != "") _data.Value = base.Value.Trim(); else _data.Value = null; } protected override void OnInit(EventArgs e) { base.OnInit(e); base.Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "subModal", ""); // We need to make sure we have a reference to the legacy ajax calls in the scriptmanager presentation.webservices.ajaxHelpers.EnsureLegacyCalls(base.Page); if (_data != null && _data.Value != null) base.Value = _data.Value.ToString(); } protected override void Render(System.Web.UI.HtmlTextWriter writer) { string tempTitle = ""; string deleteLink = "   " + ui.Text("delete") + "   "; try { if (base.Value.Trim() != "") { tempTitle = new cms.businesslogic.CMSNode(int.Parse(base.Value.Trim())).Text; } } catch { } string strScript = "function " + this.ClientID + "_chooseId() {" + "\nshowPopWin('" + TreeService.GetPickerUrl(true,"content","content") + "', 300, 400, " + ClientID + "_saveId);" + //"\nvar treePicker = window.showModalDialog(, 'treePicker', 'dialogWidth=350px;dialogHeight=300px;scrollbars=no;center=yes;border=thin;help=no;status=no') " + "\n}" + "\nfunction " + ClientID + "_saveId(treePicker) {" + "\nsetTimeout('" + ClientID + "_saveIdDo(' + treePicker + ')', 200);" + "\n}" + "\nfunction " + ClientID + "_saveIdDo(treePicker) {" + "\nif (treePicker != undefined) {" + "\ndocument.getElementById(\"" + this.ClientID + "\").value = treePicker;" + "\nif (treePicker > 0) {" + "\numbraco.presentation.webservices.legacyAjaxCalls.GetNodeName(treePicker, " + this.ClientID + "_updateContentTitle" + ");" + "\n} " + "\n}" + "\n} " + "\nfunction " + this.ClientID + "_updateContentTitle(retVal) {" + "\ndocument.getElementById(\"" + this.ClientID + "_title\").innerHTML = \"\" + retVal + \"" + deleteLink.Replace("\"", "\\\"") + "\";" + "\n}" + "\nfunction " + this.ClientID + "_clear() {" + "\ndocument.getElementById(\"" + this.ClientID + "_title\").innerHTML = \"\";" + "\ndocument.getElementById(\"" + this.ClientID + "\").value = \"\";" + "\n}"; try { if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack) ScriptManager.RegisterClientScriptBlock(this, this.GetType(), this.ClientID + "_chooseId", strScript, true); else Page.ClientScript.RegisterStartupScript(this.GetType(), this.ClientID + "_chooseId", strScript, true); } catch { Page.ClientScript.RegisterStartupScript(this.GetType(), this.ClientID + "_chooseId", strScript, true); } // Clear remove link if text if empty if (base.Value.Trim() == "") deleteLink = ""; writer.WriteLine("" + tempTitle + "" + deleteLink + "" + ui.Text("choose") + "...   ");//"); base.Render(writer); } #endregion } }