Example #1
0
        public static TagBuilder FormActions(this HtmlHelper html, FormConfiguration formConfiguration, TagBuilder container)
        {
            var deleteActionLink                       = formConfiguration.DeleteActionLink;
            var closeCaseActionLink                    = formConfiguration.CloseIncidentActionLink;
            var resolveCaseActionLink                  = formConfiguration.ResolveCaseActionLink;
            var reopenCaseActionLink                   = formConfiguration.ReopenCaseActionLink;
            var cancelCaseActionLink                   = formConfiguration.CancelCaseActionLink;
            var qualifyLeadActionLink                  = formConfiguration.QualifyLeadActionLink;
            var convertQuoteActionLink                 = formConfiguration.ConvertQuoteToOrderActionLink;
            var convertOrderActionLink                 = formConfiguration.ConvertOrderToInvoiceActionLink;
            var calculateOpportunityActionLink         = formConfiguration.CalculateOpportunityActionLink;
            var deactivateActionLink                   = formConfiguration.DeactivateActionLink;
            var activateActionLink                     = formConfiguration.ActivateActionLink;
            var activateQuoteActionLink                = formConfiguration.ActivateQuoteActionLink;
            var opportunityOnHoldActionLink            = formConfiguration.SetOpportunityOnHoldActionLink;
            var reopenOpportunityActionLink            = formConfiguration.ReopenOpportunityActionLink;
            var winOpportunityActionLink               = formConfiguration.WinOpportunityActionLink;
            var loseOpportunityActionLink              = formConfiguration.LoseOpportunityActionLink;
            var generateQuoteFromOpportunityActionLink = formConfiguration.GenerateQuoteFromOpportunityActionLink;
            var updatePipelinePhaseAction              = formConfiguration.UpdatePipelinePhaseActionLink;
            var createRelatedRecordAction              = formConfiguration.CreateRelatedRecordActionLink;

            DisassociateActionLink disassociateAction = null;
            WorkflowActionLink     firstWorkflow      = null;


            List <string> actionLinks = new List <string> {
            };

            foreach (var action in formConfiguration.TopFormActionLinks)
            {
                if (action is DeleteActionLink && deleteActionLink.Enabled)
                {
                    var deleteHtml = html.FormActionLinkListItem(deleteActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(deleteHtml.ToString());
                }

                if (action is CloseIncidentActionLink && closeCaseActionLink.Enabled)
                {
                    var closeCaseHtml = html.FormActionLinkListItem(closeCaseActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(closeCaseHtml.ToString());
                }

                if (action is ResolveCaseActionLink && resolveCaseActionLink.Enabled)
                {
                    var resolveCaseHtml = html.FormActionLinkListItem(resolveCaseActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(resolveCaseHtml.ToString());
                }

                if (action is ReopenCaseActionLink && reopenCaseActionLink.Enabled)
                {
                    var reopenCaseHtml = html.FormActionLinkListItem(reopenCaseActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(reopenCaseHtml.ToString());
                }

                if (action is CancelCaseActionLink && cancelCaseActionLink.Enabled)
                {
                    var cancelCaseHtml = html.FormActionLinkListItem(cancelCaseActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(cancelCaseHtml.ToString());
                }

                if (action is QualifyLeadActionLink && qualifyLeadActionLink.Enabled)
                {
                    var qualifyLeadHtml = html.FormActionLinkListItem(qualifyLeadActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(qualifyLeadHtml.ToString());
                }

                if (action is ConvertQuoteToOrderActionLink && convertQuoteActionLink.Enabled)
                {
                    var convertQuoteActionHtml = html.FormActionLinkListItem(convertQuoteActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(convertQuoteActionHtml.ToString());
                }

                if (action is ConvertOrderToInvoiceActionLink && convertOrderActionLink.Enabled)
                {
                    var convertOrderHtml = html.FormActionLinkListItem(convertOrderActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(convertOrderHtml.ToString());
                }

                if (action is CalculateOpportunityActionLink && calculateOpportunityActionLink.Enabled)
                {
                    var calculateOpportunityHtml = html.FormActionLinkListItem(calculateOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(calculateOpportunityHtml.ToString());
                }

                if (action is DeactivateActionLink && deactivateActionLink.Enabled)
                {
                    var deactivateHtml = html.FormActionLinkListItem(deactivateActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(deactivateHtml.ToString());
                }

                if (action is ActivateActionLink && activateActionLink.Enabled)
                {
                    var activateHtml = html.FormActionLinkListItem(activateActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(activateHtml.ToString());
                }

                if (action is ActivateQuoteActionLink && activateQuoteActionLink.Enabled)
                {
                    var activateQuoteHtml = html.FormActionLinkListItem(activateQuoteActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(activateQuoteHtml.ToString());
                }

                if (action is SetOpportunityOnHoldActionLink && opportunityOnHoldActionLink.Enabled)
                {
                    var setOpportunityOnHoldHtml = html.FormActionLinkListItem(opportunityOnHoldActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(setOpportunityOnHoldHtml.ToString());
                }

                if (action is ReopenOpportunityActionLink && reopenOpportunityActionLink.Enabled)
                {
                    var reopenOpportunityHtml = html.FormActionLinkListItem(reopenOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(reopenOpportunityHtml.ToString());
                }

                if (action is WinOpportunityActionLink && winOpportunityActionLink.Enabled)
                {
                    var winOpportunityHtml = html.FormActionLinkListItem(winOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(winOpportunityHtml.ToString());
                }

                if (action is LoseOpportunityActionLink && loseOpportunityActionLink.Enabled)
                {
                    var resolveCaseHtml = html.FormActionLinkListItem(loseOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(resolveCaseHtml.ToString());
                }

                if (action is GenerateQuoteFromOpportunityActionLink && generateQuoteFromOpportunityActionLink.Enabled)
                {
                    var generateQuoteFromOpportunityHtml = html.FormActionLinkListItem(generateQuoteFromOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(generateQuoteFromOpportunityHtml.ToString());
                }

                if (action is UpdatePipelinePhaseActionLink && updatePipelinePhaseAction.Enabled)
                {
                    var updatePipelinePhaseHtml = html.FormActionLinkListItem(updatePipelinePhaseAction, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(updatePipelinePhaseHtml.ToString());
                }

                if (action is WorkflowActionLink && action.Enabled)
                {
                    var workflowHtml = html.FormActionLinkListItem(action as WorkflowActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(workflowHtml.ToString());

                    firstWorkflow = action as WorkflowActionLink;
                }

                if (action is DisassociateActionLink && action.Enabled)
                {
                    disassociateAction = action as DisassociateActionLink;
                    var disassociateHtml = html.FormActionLinkListItem(disassociateAction,
                                                                       formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(disassociateHtml.ToString());
                }

                if (action is CreateRelatedRecordActionLink && action.Enabled)
                {
                    var createRelatedRecordHtml = html.FormActionLinkListItem(createRelatedRecordAction,
                                                                              formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(createRelatedRecordHtml.ToString());
                }
            }

            if (formConfiguration.ActionButtonStyle == ActionButtonStyle.ButtonGroup)
            {
                foreach (var link in actionLinks)
                {
                    container.InnerHtml += link;
                }
            }
            else             //if (formConfiguration.ActionButtonStyle == ActionButtonStyle.DropDown)
            {
                //Create the links  as a dropdownmenu
                var dropDownMenu = html.FormActionDropDownMenu();

                foreach (var link in actionLinks)
                {
                    dropDownMenu.InnerHtml += link;
                }

                //the meat of the dropdown
                var dropDown = html.FormActionDropDown(formConfiguration);

                //add the items to the dropdown
                dropDown.InnerHtml += dropDownMenu.ToString();

                //add the dropdown to the container
                container.InnerHtml += dropDown;
            }

            html.ActionModalWindows(container, deleteActionLink, qualifyLeadActionLink, closeCaseActionLink, resolveCaseActionLink, reopenCaseActionLink,
                                    cancelCaseActionLink, convertQuoteActionLink, convertOrderActionLink, calculateOpportunityActionLink, deactivateActionLink,
                                    activateActionLink, activateQuoteActionLink, opportunityOnHoldActionLink, reopenOpportunityActionLink, winOpportunityActionLink,
                                    loseOpportunityActionLink, generateQuoteFromOpportunityActionLink, updatePipelinePhaseAction, firstWorkflow, disassociateAction, createRelatedRecordAction);

            return(container);
        }