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())); }
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())); }