protected void Save(object sender, System.EventArgs e) { // error handling test if (!Page.IsValid) { foreach (uicontrols.TabPage tp in tmp.GetPanels()) { tp.ErrorControl.Visible = true; tp.ErrorHeader = ui.Text("errorHandling", "errorHeader"); tp.CloseCaption = ui.Text("close"); } } else if (Page.IsPostBack) { // hide validation summaries foreach (uicontrols.TabPage tp in tmp.GetPanels()) { tp.ErrorControl.Visible = false; } } _media.Save(); this.updateDateLiteral.Text = _media.VersionDate.ToShortDateString() + " " + _media.VersionDate.ToShortTimeString(); this.UpdateMediaFileLinksLiteral(); _media.XmlGenerate(new XmlDocument()); ClientTools.SyncTree(_media.Path, true); }
protected void Save(object sender, EventArgs e) { // do not continue saving anything if the page is invalid! // http://issues.umbraco.org/issue/U4-227 if (!Page.IsValid) { foreach (uicontrols.TabPage tp in _contentControl.GetPanels()) { tp.ErrorControl.Visible = true; tp.ErrorHeader = ui.Text("errorHandling", "errorHeader"); tp.CloseCaption = ui.Text("close"); } } else { if (Page.IsPostBack) { // hide validation summaries foreach (uicontrols.TabPage tp in _contentControl.GetPanels()) { tp.ErrorControl.Visible = false; } } //The value of the properties has been set on IData through IDataEditor in the ContentControl //so we need to 'retrieve' that value and set it on the property of the new IContent object. //NOTE This is a workaround for the legacy approach to saving values through the DataType instead of the Property //- (The DataType shouldn't be responsible for saving the value - especically directly to the db). foreach (var item in _contentControl.DataTypes) { _media.getProperty(item.Key).Value = item.Value.Data.Value; } _media.Save(); this._updateDateLiteral.Text = _media.VersionDate.ToShortDateString() + " " + _media.VersionDate.ToShortTimeString(); this.UpdateMediaFileLinksLiteral(); _media.XmlGenerate(new XmlDocument()); ClientTools.ShowSpeechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "editMediaSaved"), ui.Text("editMediaSavedText")); ClientTools.SyncTree(_media.Path, true); } }
override protected void OnInit(EventArgs e) { base.OnInit(e); //validate! int id; if (!int.TryParse(Request.QueryString["id"], out id)) { //if this is invalid show an error this.DisplayFatalError("Invalid query string"); return; } m_ContentId = id; this.UnPublish.Click += new System.EventHandler(this.UnPublishDo); //_document = new cms.businesslogic.web.Document(int.Parse(Request.QueryString["id"])); _document = new Document(true, id); //check if the doc exists if (string.IsNullOrEmpty(_document.Path)) { //if this is invalid show an error this.DisplayFatalError("No document found with id " + m_ContentId); //reset the content id to null so processing doesn't continue on OnLoad m_ContentId = null; return; } // we need to check if there's a published version of this document _documentHasPublishedVersion = _document.HasPublishedVersion(); // Check publishing permissions if (!base.getUser().GetPermissions(_document.Path).Contains(ActionPublish.Instance.Letter.ToString())) _canPublish = controls.ContentControl.publishModes.SendToPublish; cControl = new controls.ContentControl(_document, _canPublish, "TabView1"); cControl.ID = "TabView1"; cControl.Width = Unit.Pixel(666); cControl.Height = Unit.Pixel(666); // Add preview button foreach (uicontrols.TabPage tp in cControl.GetPanels()) { addPreviewButton(tp.Menu, _document.Id); } plc.Controls.Add(cControl); System.Web.UI.WebControls.PlaceHolder publishStatus = new PlaceHolder(); if (_documentHasPublishedVersion) { littPublishStatus.Text = ui.Text("content", "lastPublished", base.getUser()) + ": " + _document.VersionDate.ToShortDateString() + " "; publishStatus.Controls.Add(littPublishStatus); if (base.getUser().GetPermissions(_document.Path).IndexOf("U") > -1) UnPublish.Visible = true; else UnPublish.Visible = false; } else { littPublishStatus.Text = ui.Text("content", "itemNotPublished", base.getUser()); publishStatus.Controls.Add(littPublishStatus); UnPublish.Visible = false; } UnPublish.Text = ui.Text("content", "unPublish", base.getUser()); UnPublish.ID = "UnPublishButton"; UnPublish.Attributes.Add("onClick", "if (!confirm('" + ui.Text("defaultdialogs", "confirmSure", base.getUser()) + "')) return false; "); publishStatus.Controls.Add(UnPublish); publishProps.addProperty(ui.Text("content", "publishStatus", base.getUser()), publishStatus); // Template PlaceHolder template = new PlaceHolder(); cms.businesslogic.web.DocumentType DocumentType = new cms.businesslogic.web.DocumentType(_document.ContentType.Id); cControl.PropertiesPane.addProperty(ui.Text("documentType"), new LiteralControl(DocumentType.Text)); //template picker cControl.PropertiesPane.addProperty(ui.Text("template"), template); int defaultTemplate; if (_document.Template != 0) defaultTemplate = _document.Template; else defaultTemplate = DocumentType.DefaultTemplate; if (this.getUser().UserType.Name == "writer") { if (defaultTemplate != 0) template.Controls.Add(new LiteralControl(cms.businesslogic.template.Template.GetTemplate(defaultTemplate).Text)); else template.Controls.Add(new LiteralControl(ui.Text("content", "noDefaultTemplate"))); } else { ddlDefaultTemplate.Items.Add(new ListItem(ui.Text("choose") + "...", "")); foreach (cms.businesslogic.template.Template t in DocumentType.allowedTemplates) { ListItem tTemp = new ListItem(t.Text, t.Id.ToString()); if (t.Id == defaultTemplate) tTemp.Selected = true; ddlDefaultTemplate.Items.Add(tTemp); } template.Controls.Add(ddlDefaultTemplate); } // Editable update date, release date and expire date added by NH 13.12.04 dp.ID = "updateDate"; dp.Text = _document.UpdateDate.ToShortDateString() + " " + _document.UpdateDate.ToShortTimeString(); publishProps.addProperty(ui.Text("content", "updateDate", base.getUser()), dp); dpRelease.ID = "releaseDate"; dpRelease.DateTime = _document.ReleaseDate; dpRelease.ShowTime = true; publishProps.addProperty(ui.Text("content", "releaseDate", base.getUser()), dpRelease); dpExpire.ID = "expireDate"; dpExpire.DateTime = _document.ExpireDate; dpExpire.ShowTime = true; publishProps.addProperty(ui.Text("content", "expireDate", base.getUser()), dpExpire); cControl.Save += new System.EventHandler(Save); cControl.SaveAndPublish += new System.EventHandler(Publish); cControl.SaveToPublish += new System.EventHandler(SendToPublish); // Add panes to property page... cControl.tpProp.Controls.AddAt(1, publishProps); cControl.tpProp.Controls.AddAt(2, linkProps); // add preview to properties pane too addPreviewButton(cControl.tpProp.Menu, _document.Id); }
override protected void OnInit(EventArgs e) { base.OnInit(e); //validate! int id; if (int.TryParse(Request.QueryString["id"], out id) == false) { //if this is invalid show an error this.DisplayFatalError("Invalid query string"); return; } _contentId = id; _unPublish.Click += UnPublishDo; //Loading Content via new public service to ensure that the Properties are loaded correct var content = ApplicationContext.Current.Services.ContentService.GetById(id); _document = new Document(content); //check if the doc exists if (string.IsNullOrEmpty(_document.Path)) { //if this is invalid show an error this.DisplayFatalError("No document found with id " + _contentId); //reset the content id to null so processing doesn't continue on OnLoad _contentId = null; return; } // we need to check if there's a published version of this document _documentHasPublishedVersion = _document.Content.HasPublishedVersion(); // Check publishing permissions if (!UmbracoUser.GetPermissions(_document.Path).Contains(ActionPublish.Instance.Letter.ToString())) { // Check to see if the user has send to publish permissions if (!UmbracoUser.GetPermissions(_document.Path).Contains(ActionToPublish.Instance.Letter.ToString())) { //If no send to publish permission then revert to NoPublish mode _canPublish = controls.ContentControl.publishModes.NoPublish; } else { _canPublish = controls.ContentControl.publishModes.SendToPublish; } } _cControl = new controls.ContentControl(_document, _canPublish, "TabView1"); _cControl.ID = "TabView1"; _cControl.Width = Unit.Pixel(666); _cControl.Height = Unit.Pixel(666); // Add preview button foreach (uicontrols.TabPage tp in _cControl.GetPanels()) { AddPreviewButton(tp.Menu, _document.Id); } plc.Controls.Add(_cControl); var publishStatus = new PlaceHolder(); if (_documentHasPublishedVersion) { _littPublishStatus.Text = ui.Text("content", "lastPublished", UmbracoUser) + ": " + _document.VersionDate.ToShortDateString() + " "; publishStatus.Controls.Add(_littPublishStatus); if (UmbracoUser.GetPermissions(_document.Path).IndexOf("U") > -1) _unPublish.Visible = true; else _unPublish.Visible = false; } else { _littPublishStatus.Text = ui.Text("content", "itemNotPublished", UmbracoUser); publishStatus.Controls.Add(_littPublishStatus); _unPublish.Visible = false; } _unPublish.Text = ui.Text("content", "unPublish", UmbracoUser); _unPublish.ID = "UnPublishButton"; _unPublish.Attributes.Add("onClick", "if (!confirm('" + ui.Text("defaultdialogs", "confirmSure", UmbracoUser) + "')) return false; "); publishStatus.Controls.Add(_unPublish); _publishProps.addProperty(ui.Text("content", "publishStatus", UmbracoUser), publishStatus); // Template var template = new PlaceHolder(); var documentType = new DocumentType(_document.ContentType.Id); _cControl.PropertiesPane.addProperty(ui.Text("documentType"), new LiteralControl(documentType.Text)); //template picker _cControl.PropertiesPane.addProperty(ui.Text("template"), template); int defaultTemplate; if (_document.Template != 0) defaultTemplate = _document.Template; else defaultTemplate = documentType.DefaultTemplate; if (UmbracoUser.UserType.Name == "writer") { if (defaultTemplate != 0) template.Controls.Add(new LiteralControl(businesslogic.template.Template.GetTemplate(defaultTemplate).Text)); else template.Controls.Add(new LiteralControl(ui.Text("content", "noDefaultTemplate"))); } else { _ddlDefaultTemplate.Items.Add(new ListItem(ui.Text("choose") + "...", "")); foreach (var t in documentType.allowedTemplates) { var tTemp = new ListItem(t.Text, t.Id.ToString()); if (t.Id == defaultTemplate) tTemp.Selected = true; _ddlDefaultTemplate.Items.Add(tTemp); } template.Controls.Add(_ddlDefaultTemplate); } // Editable update date, release date and expire date added by NH 13.12.04 _dp.ID = "updateDate"; _dp.Text = _document.UpdateDate.ToShortDateString() + " " + _document.UpdateDate.ToShortTimeString(); _publishProps.addProperty(ui.Text("content", "updateDate", UmbracoUser), _dp); _dpRelease.ID = "releaseDate"; _dpRelease.DateTime = _document.ReleaseDate; _dpRelease.ShowTime = true; _publishProps.addProperty(ui.Text("content", "releaseDate", UmbracoUser), _dpRelease); _dpExpire.ID = "expireDate"; _dpExpire.DateTime = _document.ExpireDate; _dpExpire.ShowTime = true; _publishProps.addProperty(ui.Text("content", "expireDate", UmbracoUser), _dpExpire); _cControl.Save += Save; _cControl.SaveAndPublish += Publish; _cControl.SaveToPublish += SendToPublish; // Add panes to property page... _cControl.tpProp.Controls.AddAt(1, _publishProps); _cControl.tpProp.Controls.AddAt(2, _linkProps); // add preview to properties pane too AddPreviewButton(_cControl.tpProp.Menu, _document.Id); }
protected void tmp_save(object sender, EventArgs e) { Page.Validate(); if (!Page.IsValid) { foreach (uicontrols.TabPage tp in _contentControl.GetPanels()) { tp.ErrorControl.Visible = true; tp.ErrorHeader = ui.Text("errorHandling", "errorHeader"); tp.CloseCaption = ui.Text("close"); } } else { if (Page.IsPostBack) { // hide validation summaries foreach (uicontrols.TabPage tp in _contentControl.GetPanels()) { tp.ErrorControl.Visible = false; } } if (Member.InUmbracoMemberMode()) { _document.LoginName = MemberLoginNameTxt.Text; _document.Email = MemberEmail.Text; // Check if password should be changed string tempPassword = ((controls.passwordChanger)MemberPasswordTxt.Controls[0]).Password; if (tempPassword.Trim() != "") { _document.Password = tempPassword; } // Groups foreach (ListItem li in _memberGroups.Items) { if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",") > -1) { if (!Roles.IsUserInRole(_document.LoginName, li.Value)) { Roles.AddUserToRole(_document.LoginName, li.Value); } } else if (Roles.IsUserInRole(_document.LoginName, li.Value)) { Roles.RemoveUserFromRole(_document.LoginName, li.Value); } } //The value of the properties has been set on IData through IDataEditor in the ContentControl //so we need to 'retrieve' that value and set it on the property of the new IContent object. //NOTE This is a workaround for the legacy approach to saving values through the DataType instead of the Property //- (The DataType shouldn't be responsible for saving the value - especically directly to the db). foreach (var item in _contentControl.DataTypes) { _document.getProperty(item.Key).Value = item.Value.Data.Value; } // refresh cache _document.XmlGenerate(new System.Xml.XmlDocument()); _document.Save(); } else { _member.Email = MemberEmail.Text; if (Membership.Provider.EnablePasswordRetrieval) { string tempPassword = ((controls.passwordChanger)MemberPasswordTxt.Controls[0]).Password; if (tempPassword.Trim() != "") { _member.ChangePassword(_member.GetPassword(), tempPassword); } } Membership.UpdateUser(_member); // Groups foreach (ListItem li in _memberGroups.Items) { if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",") > -1) { if (!Roles.IsUserInRole(_member.UserName, li.Value)) { Roles.AddUserToRole(_member.UserName, li.Value); } } else if (Roles.IsUserInRole(_member.UserName, li.Value)) { Roles.RemoveUserFromRole(_member.UserName, li.Value); } } } ClientTools.ShowSpeechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "editMemberSaved", base.getUser()), ""); } }
override protected void OnInit(EventArgs e) { base.OnInit(e); //validate! int id; if (!int.TryParse(Request.QueryString["id"], out id)) { //if this is invalid show an error this.DisplayFatalError("Invalid query string"); return; } m_ContentId = id; this.UnPublish.Click += new System.EventHandler(this.UnPublishDo); //_document = new cms.businesslogic.web.Document(int.Parse(Request.QueryString["id"])); _document = new Document(true, id); //check if the doc exists if (string.IsNullOrEmpty(_document.Path)) { //if this is invalid show an error this.DisplayFatalError("No document found with id " + m_ContentId); //reset the content id to null so processing doesn't continue on OnLoad m_ContentId = null; return; } // we need to check if there's a published version of this document _documentHasPublishedVersion = _document.HasPublishedVersion(); // Check publishing permissions if (!base.getUser().GetPermissions(_document.Path).Contains(ActionPublish.Instance.Letter.ToString())) { _canPublish = controls.ContentControl.publishModes.SendToPublish; } cControl = new controls.ContentControl(_document, _canPublish, "TabView1"); cControl.ID = "TabView1"; cControl.Width = Unit.Pixel(666); cControl.Height = Unit.Pixel(666); // Add preview button foreach (uicontrols.TabPage tp in cControl.GetPanels()) { addPreviewButton(tp.Menu, _document.Id); } plc.Controls.Add(cControl); System.Web.UI.WebControls.PlaceHolder publishStatus = new PlaceHolder(); if (_documentHasPublishedVersion) { littPublishStatus.Text = ui.Text("content", "lastPublished", base.getUser()) + ": " + _document.VersionDate.ToShortDateString() + " "; publishStatus.Controls.Add(littPublishStatus); if (base.getUser().GetPermissions(_document.Path).IndexOf("U") > -1) { UnPublish.Visible = true; } else { UnPublish.Visible = false; } } else { littPublishStatus.Text = ui.Text("content", "itemNotPublished", base.getUser()); publishStatus.Controls.Add(littPublishStatus); UnPublish.Visible = false; } UnPublish.Text = ui.Text("content", "unPublish", base.getUser()); UnPublish.ID = "UnPublishButton"; UnPublish.Attributes.Add("onClick", "if (!confirm('" + ui.Text("defaultdialogs", "confirmSure", base.getUser()) + "')) return false; "); publishStatus.Controls.Add(UnPublish); publishProps.addProperty(ui.Text("content", "publishStatus", base.getUser()), publishStatus); // Template PlaceHolder template = new PlaceHolder(); cms.businesslogic.web.DocumentType DocumentType = new cms.businesslogic.web.DocumentType(_document.ContentType.Id); cControl.PropertiesPane.addProperty(ui.Text("documentType"), new LiteralControl(DocumentType.Text)); //template picker cControl.PropertiesPane.addProperty(ui.Text("template"), template); int defaultTemplate; if (_document.Template != 0) { defaultTemplate = _document.Template; } else { defaultTemplate = DocumentType.DefaultTemplate; } if (this.getUser().UserType.Name == "writer") { if (defaultTemplate != 0) { template.Controls.Add(new LiteralControl(cms.businesslogic.template.Template.GetTemplate(defaultTemplate).Text)); } else { template.Controls.Add(new LiteralControl(ui.Text("content", "noDefaultTemplate"))); } } else { ddlDefaultTemplate.Items.Add(new ListItem(ui.Text("choose") + "...", "")); foreach (cms.businesslogic.template.Template t in DocumentType.allowedTemplates) { ListItem tTemp = new ListItem(t.Text, t.Id.ToString()); if (t.Id == defaultTemplate) { tTemp.Selected = true; } ddlDefaultTemplate.Items.Add(tTemp); } template.Controls.Add(ddlDefaultTemplate); } // Editable update date, release date and expire date added by NH 13.12.04 dp.ID = "updateDate"; dp.Text = _document.UpdateDate.ToShortDateString() + " " + _document.UpdateDate.ToShortTimeString(); publishProps.addProperty(ui.Text("content", "updateDate", base.getUser()), dp); dpRelease.ID = "releaseDate"; dpRelease.DateTime = _document.ReleaseDate; dpRelease.ShowTime = true; publishProps.addProperty(ui.Text("content", "releaseDate", base.getUser()), dpRelease); dpExpire.ID = "expireDate"; dpExpire.DateTime = _document.ExpireDate; dpExpire.ShowTime = true; publishProps.addProperty(ui.Text("content", "expireDate", base.getUser()), dpExpire); // url's updateLinks(); linkProps.addProperty(ui.Text("content", "urls", base.getUser()), l); if (domainText.Text != "") { linkProps.addProperty(ui.Text("content", "alternativeUrls", base.getUser()), domainText); } cControl.Save += new System.EventHandler(Save); cControl.SaveAndPublish += new System.EventHandler(Publish); cControl.SaveToPublish += new System.EventHandler(SendToPublish); // Add panes to property page... cControl.tpProp.Controls.AddAt(1, publishProps); cControl.tpProp.Controls.AddAt(2, linkProps); // add preview to properties pane too addPreviewButton(cControl.tpProp.Menu, _document.Id); }
protected void Save(object sender, System.EventArgs e) { // error handling test if (!Page.IsValid) { foreach (uicontrols.TabPage tp in cControl.GetPanels()) { tp.ErrorControl.Visible = true; tp.ErrorHeader = ui.Text("errorHandling", "errorButDataWasSaved"); tp.CloseCaption = ui.Text("close"); } } else if (Page.IsPostBack) { // hide validation summaries foreach (uicontrols.TabPage tp in cControl.GetPanels()) { tp.ErrorControl.Visible = false; } } //Audit trail... BusinessLogic.Log.Add(BusinessLogic.LogTypes.Save, base.getUser(), _document.Id, ""); // Update name if (_document.Text != cControl.NameTxt.Text) { //_refreshTree = true; _document.Text = cControl.NameTxt.Text; //newName.Text = _document.Text; } if (dpRelease.DateTime > new DateTime(1753, 1, 1) && dpRelease.DateTime < new DateTime(9999, 12, 31)) { _document.ReleaseDate = dpRelease.DateTime; } else { _document.ReleaseDate = new DateTime(1, 1, 1, 0, 0, 0); } if (dpExpire.DateTime > new DateTime(1753, 1, 1) && dpExpire.DateTime < new DateTime(9999, 12, 31)) { _document.ExpireDate = dpExpire.DateTime; } else { _document.ExpireDate = new DateTime(1, 1, 1, 0, 0, 0); } // Update default template if (ddlDefaultTemplate.SelectedIndex > 0) { _document.Template = int.Parse(ddlDefaultTemplate.SelectedValue); } else { if (new DocumentType(_document.ContentType.Id).allowedTemplates.Length == 0) { _document.RemoveTemplate(); } } // Run Handler BusinessLogic.Actions.Action.RunActionHandlers(_document, ActionUpdate.Instance); _document.Save(); // Update the update date dp.Text = _document.UpdateDate.ToShortDateString() + " " + _document.UpdateDate.ToShortTimeString(); if (!cControl.DoesPublish) { ClientTools.ShowSpeechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "editContentSavedHeader", null), ui.Text("speechBubbles", "editContentSavedText", null)); } ClientTools.SyncTree(_document.Path, true); }
/// <summary> /// When a document is saved or published all of this logic must be performed. /// </summary> /// <remarks> /// This updates both UI controls and business logic object properties but does not persist any data to /// business logic repositories. /// </remarks> private void PerformSaveLogic() { // error handling test if (!Page.IsValid) { foreach (uicontrols.TabPage tp in _cControl.GetPanels()) { tp.ErrorControl.Visible = true; tp.ErrorHeader = ui.Text("errorHandling", "errorButDataWasSaved"); tp.CloseCaption = ui.Text("close"); } } else if (Page.IsPostBack) { // hide validation summaries foreach (uicontrols.TabPage tp in _cControl.GetPanels()) { tp.ErrorControl.Visible = false; } } if (_dpRelease.DateTime > new DateTime(1753, 1, 1) && _dpRelease.DateTime < new DateTime(9999, 12, 31)) { _document.ReleaseDate = _dpRelease.DateTime; } else { _document.ReleaseDate = new DateTime(1, 1, 1, 0, 0, 0); } if (_dpExpire.DateTime > new DateTime(1753, 1, 1) && _dpExpire.DateTime < new DateTime(9999, 12, 31)) { _document.ExpireDate = _dpExpire.DateTime; } else { _document.ExpireDate = new DateTime(1, 1, 1, 0, 0, 0); } // Update default template if (_ddlDefaultTemplate.SelectedIndex > 0) { _document.Template = int.Parse(_ddlDefaultTemplate.SelectedValue); } else { if (new DocumentType(_document.ContentType.Id).allowedTemplates.Length == 0) { _document.RemoveTemplate(); } } //The value of the properties has been set on IData through IDataEditor in the ContentControl //so we need to 'retrieve' that value and set it on the property of the new IContent object. //NOTE This is a workaround for the legacy approach to saving values through the DataType instead of the Property //- (The DataType shouldn't be responsible for saving the value - especically directly to the db). foreach (var item in _cControl.DataTypes) { _document.getProperty(item.Key).Value = item.Value.Data.Value; } // Update the update date _dp.Text = _document.UpdateDate.ToShortDateString() + " " + _document.UpdateDate.ToShortTimeString(); }
override protected void OnInit(EventArgs e) { base.OnInit(e); //validate! int id; if (int.TryParse(Request.QueryString["id"], out id) == false) { //if this is invalid show an error this.DisplayFatalError("Invalid query string"); return; } _contentId = id; _unPublish.Click += UnPublishDo; //Loading Content via new public service to ensure that the Properties are loaded correct var content = ApplicationContext.Current.Services.ContentService.GetById(id); _document = new Document(content); //check if the doc exists if (string.IsNullOrEmpty(_document.Path)) { //if this is invalid show an error this.DisplayFatalError("No document found with id " + _contentId); //reset the content id to null so processing doesn't continue on OnLoad _contentId = null; return; } // we need to check if there's a published version of this document _documentHasPublishedVersion = _document.Content.HasPublishedVersion(); // Check publishing permissions if (!UmbracoUser.GetPermissions(_document.Path).Contains(ActionPublish.Instance.Letter.ToString())) { // Check to see if the user has send to publish permissions if (!UmbracoUser.GetPermissions(_document.Path).Contains(ActionToPublish.Instance.Letter.ToString())) { //If no send to publish permission then revert to NoPublish mode _canPublish = controls.ContentControl.publishModes.NoPublish; } else { _canPublish = controls.ContentControl.publishModes.SendToPublish; } } _cControl = new controls.ContentControl(_document, _canPublish, "TabView1"); _cControl.ID = "TabView1"; _cControl.Width = Unit.Pixel(666); _cControl.Height = Unit.Pixel(666); // Add preview button foreach (uicontrols.TabPage tp in _cControl.GetPanels()) { AddPreviewButton(tp.Menu, _document.Id); } plc.Controls.Add(_cControl); var publishStatus = new PlaceHolder(); if (_documentHasPublishedVersion) { _littPublishStatus.Text = ui.Text("content", "lastPublished", UmbracoUser) + ": " + _document.VersionDate.ToShortDateString() + " "; publishStatus.Controls.Add(_littPublishStatus); if (UmbracoUser.GetPermissions(_document.Path).IndexOf("U") > -1) { _unPublish.Visible = true; } else { _unPublish.Visible = false; } } else { _littPublishStatus.Text = ui.Text("content", "itemNotPublished", UmbracoUser); publishStatus.Controls.Add(_littPublishStatus); _unPublish.Visible = false; } _unPublish.Text = ui.Text("content", "unPublish", UmbracoUser); _unPublish.ID = "UnPublishButton"; _unPublish.Attributes.Add("onClick", "if (!confirm('" + ui.Text("defaultdialogs", "confirmSure", UmbracoUser) + "')) return false; "); publishStatus.Controls.Add(_unPublish); _publishProps.addProperty(ui.Text("content", "publishStatus", UmbracoUser), publishStatus); // Template var template = new PlaceHolder(); var documentType = new DocumentType(_document.ContentType.Id); _cControl.PropertiesPane.addProperty(ui.Text("documentType"), new LiteralControl(documentType.Text)); //template picker _cControl.PropertiesPane.addProperty(ui.Text("template"), template); int defaultTemplate; if (_document.Template != 0) { defaultTemplate = _document.Template; } else { defaultTemplate = documentType.DefaultTemplate; } if (UmbracoUser.UserType.Name == "writer") { if (defaultTemplate != 0) { template.Controls.Add(new LiteralControl(businesslogic.template.Template.GetTemplate(defaultTemplate).Text)); } else { template.Controls.Add(new LiteralControl(ui.Text("content", "noDefaultTemplate"))); } } else { _ddlDefaultTemplate.Items.Add(new ListItem(ui.Text("choose") + "...", "")); foreach (var t in documentType.allowedTemplates) { var tTemp = new ListItem(t.Text, t.Id.ToString()); if (t.Id == defaultTemplate) { tTemp.Selected = true; } _ddlDefaultTemplate.Items.Add(tTemp); } template.Controls.Add(_ddlDefaultTemplate); } // Editable update date, release date and expire date added by NH 13.12.04 _dp.ID = "updateDate"; _dp.Text = _document.UpdateDate.ToShortDateString() + " " + _document.UpdateDate.ToShortTimeString(); _publishProps.addProperty(ui.Text("content", "updateDate", UmbracoUser), _dp); _dpRelease.ID = "releaseDate"; _dpRelease.DateTime = _document.ReleaseDate; _dpRelease.ShowTime = true; _publishProps.addProperty(ui.Text("content", "releaseDate", UmbracoUser), _dpRelease); _dpExpire.ID = "expireDate"; _dpExpire.DateTime = _document.ExpireDate; _dpExpire.ShowTime = true; _publishProps.addProperty(ui.Text("content", "expireDate", UmbracoUser), _dpExpire); _cControl.Save += Save; _cControl.SaveAndPublish += Publish; _cControl.SaveToPublish += SendToPublish; // Add panes to property page... _cControl.tpProp.Controls.AddAt(1, _publishProps); _cControl.tpProp.Controls.AddAt(2, _linkProps); // add preview to properties pane too AddPreviewButton(_cControl.tpProp.Menu, _document.Id); }
protected void Save(object sender, EventArgs e) { // error handling test if (Page.IsValid == false) { foreach (uicontrols.TabPage tp in _cControl.GetPanels()) { tp.ErrorControl.Visible = true; tp.ErrorHeader = ui.Text("errorHandling", "errorButDataWasSaved"); tp.CloseCaption = ui.Text("close"); } } else if (Page.IsPostBack) { // hide validation summaries foreach (uicontrols.TabPage tp in _cControl.GetPanels()) { tp.ErrorControl.Visible = false; } } // Update name if it has not changed and is not empty if (_cControl.NameTxt != null && _document.Text != _cControl.NameTxt.Text && !_cControl.NameTxt.Text.IsNullOrWhiteSpace()) { //_refreshTree = true; _document.Text = _cControl.NameTxt.Text; //newName.Text = _document.Text; } if (_dpRelease.DateTime > new DateTime(1753, 1, 1) && _dpRelease.DateTime < new DateTime(9999, 12, 31)) { _document.ReleaseDate = _dpRelease.DateTime; } else { _document.ReleaseDate = new DateTime(1, 1, 1, 0, 0, 0); } if (_dpExpire.DateTime > new DateTime(1753, 1, 1) && _dpExpire.DateTime < new DateTime(9999, 12, 31)) { _document.ExpireDate = _dpExpire.DateTime; } else { _document.ExpireDate = new DateTime(1, 1, 1, 0, 0, 0); } // Update default template if (_ddlDefaultTemplate.SelectedIndex > 0) { _document.Template = int.Parse(_ddlDefaultTemplate.SelectedValue); } else { if (new DocumentType(_document.ContentType.Id).allowedTemplates.Length == 0) { _document.RemoveTemplate(); } } //The value of the properties has been set on IData through IDataEditor in the ContentControl //so we need to 'retrieve' that value and set it on the property of the new IContent object. //NOTE This is a workaround for the legacy approach to saving values through the DataType instead of the Property //- (The DataType shouldn't be responsible for saving the value - especically directly to the db). foreach (var item in _cControl.DataTypes) { _document.getProperty(item.Key).Value = item.Value.Data.Value; } // Run Handler BusinessLogic.Actions.Action.RunActionHandlers(_document, ActionUpdate.Instance); _document.Save(); // Update the update date _dp.Text = _document.UpdateDate.ToShortDateString() + " " + _document.UpdateDate.ToShortTimeString(); if (_cControl.DoesPublish == false) { ClientTools.ShowSpeechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "editContentSavedHeader", null), ui.Text("speechBubbles", "editContentSavedText", null)); } ClientTools.SyncTree(_document.Path, true); }