Пример #1
0
        public static IHtmlString FormActionLink(this HtmlHelper html, ViewActionLink viewActionLink, ActionButtonStyle actionButtonStyle)
        {
            TagBuilder link;

            if (actionButtonStyle == ActionButtonStyle.DropDown)
            {
                link = new TagBuilder("a");

                link.Attributes["role"]     = "menuitem";
                link.Attributes["tabindex"] = "-1";
                link.Attributes["title"]    = "";

                if (!string.IsNullOrEmpty(viewActionLink.ButtonCssClass))
                {
                    link.AddCssClass(viewActionLink.ButtonCssClass);
                }
            }
            else if (actionButtonStyle == ActionButtonStyle.ButtonGroup)
            {
                link = new TagBuilder("button");

                link.Attributes["type"] = "button";

                link.AddCssClass("btn");

                link.AddCssClass(!string.IsNullOrEmpty(viewActionLink.ButtonCssClass) ? viewActionLink.ButtonCssClass : "btn-default");
            }
            else
            {
                throw new InvalidDataException("ActionButtonStyle must be one of ButtonGroup or DropDown");
            }

            link.InnerHtml += viewActionLink.Label;

            switch (viewActionLink.Type)
            {
            case LinkActionType.Activate:
                link.AddCssClass("activate-link");
                break;

            case LinkActionType.ActivateQuote:
                link.AddCssClass("activate-quote-link");
                break;

            case LinkActionType.CalculateOpportunity:
                link.AddCssClass("calculate-opportunity-link");
                break;

            case LinkActionType.CancelCase:
                link.AddCssClass("cancel-case-link");
                break;

            case LinkActionType.CloseIncident:
                link.AddCssClass("close-case-link");

                var closeCaseActionLink = viewActionLink as CloseIncidentActionLink;

                link.MergeAttribute("data-resolution", closeCaseActionLink.DefaultResolution);
                link.MergeAttribute("data-description", closeCaseActionLink.DefaultResolutionDescription);

                break;

            case LinkActionType.ConvertOrder:
                link.AddCssClass("convert-order-link");
                break;

            case LinkActionType.ConvertQuote:
                link.AddCssClass("convert-quote-link");
                break;

            case LinkActionType.Deactivate:
                link.AddCssClass("deactivate-link");
                break;

            case LinkActionType.Delete:
                link.AddCssClass("delete-link");
                break;

            case LinkActionType.GenerateQuoteFromOpportunity:
                link.AddCssClass("generate-quote-from-opportunity-link");
                break;

            case LinkActionType.LoseOpportunity:
                link.AddCssClass("lose-opportunity-link");
                break;

            case LinkActionType.QualifyLead:
                link.AddCssClass("qualify-lead-link");
                break;

            case LinkActionType.ReopenCase:
                link.AddCssClass("reopen-case-link");
                break;

            case LinkActionType.ResolveCase:
                link.AddCssClass("resolve-case-link");
                break;

            case LinkActionType.SetOpportunityOnHold:
                link.AddCssClass("set-opportunity-on-hold-link");
                break;

            case LinkActionType.ReopenOpportunity:
                link.AddCssClass("reopen-opportunity-link");
                break;

            case LinkActionType.UpdatePipelinePhase:
                link.AddCssClass("update-pipeline-phase-link");
                break;

            case LinkActionType.WinOpportunity:
                link.AddCssClass("win-opportunity-link");
                break;

            case LinkActionType.Workflow:
                link.AddCssClass("workflow-link");

                var workflowActionLink = viewActionLink as WorkflowActionLink;

                var id = workflowActionLink.Workflow.Id;

                link.MergeAttribute("data-workflowid", id.ToString());
                if (workflowActionLink.CustomizeModal)
                {
                    link.MergeAttribute("data-modal-confirmation", workflowActionLink.Confirmation);
                    link.MergeAttribute("data-modal-title", workflowActionLink.Modal.Title);
                    link.MergeAttribute("data-modal-primary-action", workflowActionLink.Modal.PrimaryButtonText);
                    link.MergeAttribute("data-modal-cancel-action", workflowActionLink.Modal.CloseButtonText);
                }
                break;

            case LinkActionType.CreateRelatedRecord:
                link.AddCssClass("create-related-record-link");
                link.MergeAttribute("data-filtercriteriaid", viewActionLink.FilterCriteriaId.ToString());
                break;

            default:
                throw new Exception("LinkActionType is not a valid value");
            }

            link.Attributes["href"] = viewActionLink.URL != null ? viewActionLink.URL.PathWithQueryString : null;

            link.MergeAttribute("data-url", viewActionLink.URL != null? viewActionLink.URL.PathWithQueryString : null);

            return(new HtmlString(link.ToString()));
        }
Пример #2
0
        public static IHtmlString FormActionLinkListItem(this HtmlHelper html, ViewActionLink viewActionLink, ActionButtonStyle actionButtonStyle)
        {
            var listItem = new TagBuilder("li");

            listItem.Attributes["role"] = "group";

            var link = html.FormActionLink(viewActionLink, actionButtonStyle);

            listItem.InnerHtml += link.ToString();

            return(new HtmlString(listItem.ToString()));
        }