using System; using CMS.GlobalHelper; using CMS.UIControls; using CMS.WorkflowEngine; using CMS.ExtendedControls.ActionsConfig; using CMS.SettingsProvider; using CMS.EventLog; using CMS.ExtendedControls; [EditedObject("cms.workflow", "workflowid")] public partial class CMSModules_Workflows_Workflow_General : CMSWorkflowPage { #region "Constants" /// /// Convert event name /// private const string CONVERT_ACTION = "convertadvanced"; #endregion #region "Properties" /// /// Messages placeholder /// public override MessagesPlaceHolder MessagesPlaceHolder { get { return plcMess; } } #endregion #region "Event handlers" protected void Page_Load(object sender, EventArgs e) { // Initialize form and controls Title = "Workflow Edit - General"; if (!RequestHelper.IsPostBack()) { if (QueryHelper.GetBoolean("converted", false)) { ShowConfirmation(ResHelper.GetString("workflow.converted")); } else if (QueryHelper.GetBoolean("saved", false)) { ShowChangesSaved(); } } // Register conversion ComponentEvents.RequestEvents.RegisterForEvent(CONVERT_ACTION, (s, args) => { ConvertWorkflow(); }); bool fullRefreshRequired = editElem.Form.ItemChanged("WorkflowAllowedObjects"); if (fullRefreshRequired) { RefreshFrameset(); } } protected override void OnPreRender(EventArgs e) { if (CurrentWorkflow != null) { // Only basic workflow without auto-publish can be converted if (WorkflowInfoProvider.IsAdvancedWorkflowAllowed() && CurrentWorkflow.IsBasic) { HeaderAction convert = new HeaderAction() { Text = GetString("workflow.convert"), ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/convert.png"), OnClientClick = "return confirm(" + ScriptHelper.GetString(GetString("workflow.confirmconversion"), true) + ");", EventName = CONVERT_ACTION }; if (editElem.CurrentWorkflow.WorkflowAutoPublishChanges) { convert.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/convertdisabled.png"); convert.Tooltip = GetString("workflow.conversionerror.versioningwithoutworkflow"); convert.Enabled = false; } CurrentMaster.HeaderActions.AddAction(convert); } } base.OnPreRender(e); } #endregion #region "Methods" /// /// Refreshed whole frameset. /// private void RefreshFrameset() { string script = @" var url = parent.location.href; url = url.replace('converted=1', ''); if(url.indexOf('saved=1') == -1){ url += '&saved=1'; } parent.location.href = url; "; ScriptHelper.RegisterStartupScript(this, typeof(string), "changeAllowedObjects", script, true); } /// /// Converts current workflow to advanced workflow. /// protected void ConvertWorkflow() { try { WorkflowInfoProvider.ConvertToAdvancedWorkflow(WorkflowId); ScriptHelper.RegisterStartupScript(this, typeof(string), "convert", "parent.location.href = parent.location.href + '&converted=1';", true); } catch (Exception ex) { ShowError(ResHelper.GetString("workflow.converterror")); EventLogProvider.LogException("Workflow", "Convert", ex); } } #endregion }