private static string getWorkflowInfo(Item itemElement)
        {
            System.Text.StringBuilder    sb = new System.Text.StringBuilder();
            Sitecore.Workflows.IWorkflow iw = itemElement.State.GetWorkflow();
            if (iw != null)
            {
                sb.Append(iw.Appearance.DisplayName);
            }
            Sitecore.Workflows.WorkflowState ws = itemElement.State.GetWorkflowState();

            if (ws != null)
            {
                sb.AppendFormat(" ({0})", ws.DisplayName);
            }

            if (iw != null)
            {
                IEnumerable <WorkflowEvent> events     = iw.GetHistory(itemElement).OrderByDescending(e => e.Date);
                IEnumerator <WorkflowEvent> enumerator = events.GetEnumerator();
                if (enumerator.MoveNext())
                {
                    TimeSpan span = DateTime.Now.Subtract(enumerator.Current.Date);
                    sb.AppendFormat(" for {0} days {1} hours {2} minutes", span.Days, span.Hours, span.Minutes);
                }
            }
            return(sb.ToString());
        }
Beispiel #2
0
        /// <summary>Gets the icon.</summary>
        /// <param name="item">The item.</param>
        /// <returns>The icon.</returns>
        protected override GutterIconDescriptor GetIconDescriptor(Item item)
        {
            Assert.ArgumentNotNull((object)item, nameof(item));
            string str1 = item[FieldIDs.Workflow];
            string str2 = item[FieldIDs.WorkflowState];

            if (!Settings.Workflows.Enabled || !item.Access.CanWrite())
            {
                return((GutterIconDescriptor)null);
            }
            if (string.IsNullOrEmpty(str1) || string.IsNullOrEmpty(str2))
            {
                return((GutterIconDescriptor)null);
            }
            IWorkflowProvider workflowProvider = item.Database.WorkflowProvider;

            if (workflowProvider == null)
            {
                return((GutterIconDescriptor)null);
            }
            IWorkflow workflow = workflowProvider.GetWorkflow(item);

            if (workflow == null)
            {
                return((GutterIconDescriptor)null);
            }
            Sitecore.Workflows.WorkflowState state = workflow.GetState(item);
            if (state == null)
            {
                return((GutterIconDescriptor)null);
            }
            if (state.FinalState)
            {
                return((GutterIconDescriptor)null);
            }
            GutterIconDescriptor gutterIconDescriptor = new GutterIconDescriptor();

            gutterIconDescriptor.Icon    = state.Icon;
            gutterIconDescriptor.Tooltip = state.DisplayName;
            WorkflowCommand[] workflowCommandArray = WorkflowFilterer.FilterVisibleCommands(workflow.GetCommands(item), item);
            if (workflowCommandArray != null && workflowCommandArray.Length != 0)
            {
                //Modify the event subscribed to the gutterIconDescriptor to call custom command, found at ExtendedShowWorkflowCommands.cs
                gutterIconDescriptor.Click = "ss:extendedshowworkflowcommands(id=" + (object)item.ID + ",language=" + (object)item.Language + ",version=" + (object)item.Version + ",database=" + item.Database.Name + ")";
            }
            return(gutterIconDescriptor);
        }