Ejemplo n.º 1
0
        private static bool CheckWorkflow(ClientPipelineArgs args, Item item)
        {
            Assert.ArgumentNotNull((object)args, "args");
            Assert.ArgumentNotNull((object)item, "item");
            if (args.Parameters["workflow"] == "1")
            {
                return(true);
            }
            args.Parameters["workflow"] = "1";
            if (args.IsPostBack)
            {
                if (args.Result == "yes")
                {
                    args.IsPostBack = false;
                    return(true);
                }
                args.AbortPipeline();
                return(false);
            }
            SiteContext site = Factory.GetSite("publisher");

            if (site != null && !site.EnableWorkflow)
            {
                return(true);
            }
            IWorkflowProvider workflowProvider = Context.ContentDatabase.WorkflowProvider;

            if (workflowProvider == null || workflowProvider.GetWorkflows().Length <= 0)
            {
                return(true);
            }
            IWorkflow workflow = workflowProvider.GetWorkflow(item);

            if (workflow == null)
            {
                return(true);
            }
            WorkflowState state = workflow.GetState(item);

            if (state == null || state.FinalState)
            {
                return(true);
            }
            args.Parameters["workflow"] = "0";
            if (state.PreviewPublishingTargets.Any <string>())
            {
                return(true);
            }
            SheerResponse.Confirm(Translate.Text("The current item \"{0}\" is in the workflow state \"{1}\"\nand will not be published.\n\nAre you sure you want to publish?", (object)item.DisplayName, (object)state.DisplayName));
            args.WaitForPostBack();
            return(false);
        }
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     if (!Context.ClientPage.IsEvent)
     {
         IWorkflowProvider workflowProvider = Context.ContentDatabase.WorkflowProvider;
         if (workflowProvider != null)
         {
             foreach (IWorkflow workflow in workflowProvider.GetWorkflows())
             {
                 this.DisplayWorkflow(workflow);
             }
         }
         this.UpdateRibbon();
     }
     this.WireUpNavigators(Context.ClientPage);
 }
Ejemplo n.º 3
0
        /// <summary>Gets the commands.</summary>
        /// <param name="items">The items to get commands for.</param>
        /// <param name="workflow">The workflow.</param>
        /// <param name="commands">The commands.</param>
        private static void GetCommands(Item[] items, out IWorkflow workflow, out WorkflowCommand[] commands)
        {
            Assert.ArgumentNotNull((object)items, "items");
            Item obj = items[0];

            if (obj != null)
            {
                IWorkflowProvider workflowProvider = Context.ContentDatabase.WorkflowProvider;
                if (workflowProvider != null && workflowProvider.GetWorkflows().Length > 0)
                {
                    workflow = workflowProvider.GetWorkflow(obj);
                    if (workflow != null && workflow.GetState(obj) != null)
                    {
                        commands = WorkflowFilterer.FilterVisibleCommands(workflow.GetCommands(obj), obj);
                        return;
                    }
                }
            }
            workflow = (IWorkflow)null;
            commands = (WorkflowCommand[])null;
        }
        protected void OnViewMenuClick()
        {
            Menu control = new Menu();
            IWorkflowProvider workflowProvider = Context.ContentDatabase.WorkflowProvider;

            if (workflowProvider != null)
            {
                foreach (IWorkflow workflow in workflowProvider.GetWorkflows())
                {
                    string paneID = this.GetPaneID(workflow);
                    string str2   = Registry.GetString("/Current_User/Panes/" + paneID);
                    control.Add(Control.GetUniqueID("ctl"), workflow.Appearance.DisplayName, workflow.Appearance.Icon, string.Empty, ((str2 != "hidden") ? "workbox:hide" : "workbox:show") + "(id=" + paneID + ")", str2 != "hidden", string.Empty, MenuItemType.Check);
                }
                if (control.Controls.Count > 0)
                {
                    control.AddDivider();
                }
                control.Add("Refresh", "Applications/16x16/refresh.png", "Refresh");
            }
            Context.ClientPage.ClientResponse.ShowPopup("ViewMenu", "below", control);
        }