private void SetFormActions(IPortalContext portalContext, FormActionMetadata formActionMetadata, int languageCode, string portalName = null, bool addSubmitButton = false, bool addNextPrevious = false) { var actions = formActionMetadata.Actions.OrderBy(a => a.ActionIndex).ToList(); if (addSubmitButton) { var submitActions = actions.Where(a => a is SubmitAction); if (!(submitActions.Any())) { var newSubmitAction = new SubmitAction() { ActionButtonAlignment = JsonConfiguration.ActionButtonAlignment.Left, ActionButtonPlacement = JsonConfiguration.ActionButtonPlacement.BelowForm, ActionButtonStyle = JsonConfiguration.ActionButtonStyle.ButtonGroup, ActionIndex = -1, ButtonCssClass = "btn-primary" }; actions.Insert(0, newSubmitAction); } } if (addNextPrevious && AutoGenerateSteps) { var nextActions = actions.Where(a => a is NextAction); if (!(nextActions.Any())) { var newNextAction = new NextAction() { ActionButtonAlignment = JsonConfiguration.ActionButtonAlignment.Left, ActionButtonPlacement = JsonConfiguration.ActionButtonPlacement.BelowForm, ActionButtonStyle = JsonConfiguration.ActionButtonStyle.ButtonGroup, ActionIndex = -1, ButtonCssClass = "btn btn-primary navbar-btn button next next-btn" }; actions.Insert(0, newNextAction); } var previousActions = actions.Where(a => a is PreviousAction); if (!(previousActions.Any())) { var newPreviousAction = new PreviousAction() { ActionButtonAlignment = JsonConfiguration.ActionButtonAlignment.Left, ActionButtonPlacement = JsonConfiguration.ActionButtonPlacement.BelowForm, ActionButtonStyle = JsonConfiguration.ActionButtonStyle.ButtonGroup, ActionIndex = -2, ButtonCssClass = "btn btn-default navbar-btn button previous previous-btn" }; actions.Insert(0, newPreviousAction); } } var topItemActionLinks = new List <ViewActionLink>(); var bottomItemActionLinks = new List <ViewActionLink>(); foreach (var action in actions) { if (action is WorkflowAction) { var workflowAction = (WorkflowAction)action; if (!workflowAction.IsConfigurationValid()) { continue; } var workflowActionLink = new WorkflowActionLink(portalContext, new EntityReference("workflow", workflowAction.WorkflowId), formActionMetadata, languageCode, workflowAction, true, null, portalName); AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, workflowActionLink); } if (action is DeleteAction) { var deleteAction = (DeleteAction)action; if (!deleteAction.IsConfigurationValid()) { continue; } var deleteActionLink = new DeleteActionLink(portalContext, formActionMetadata, languageCode, deleteAction, true, null, portalName); DeleteActionLink = deleteActionLink; AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, deleteActionLink); } if (action is SubmitAction) { var submitAction = (SubmitAction)action; if (!submitAction.IsConfigurationValid()) { continue; } var submitActionLink = new SubmitActionLink(portalContext, languageCode, submitAction, true, null, portalName); SubmitActionLink = submitActionLink; AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, submitActionLink); } if (action is PreviousAction) { var previousAction = (PreviousAction)action; if (!previousAction.IsConfigurationValid()) { continue; } var previousActionLink = new PreviousActionLink(portalContext, languageCode, previousAction, true, null, portalName); PreviousActionLink = previousActionLink; AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, previousActionLink); } if (action is NextAction) { var nextAction = (NextAction)action; if (!nextAction.IsConfigurationValid()) { continue; } var nextActionLink = new NextActionLink(portalContext, languageCode, nextAction, true, null, portalName); NextActionLink = nextActionLink; AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, nextActionLink); } if (action is CreateRelatedRecordAction) { var createRelatedRecordAction = (CreateRelatedRecordAction)action; if (!createRelatedRecordAction.IsConfigurationValid()) { continue; } var createRelatedRecordActionLink = new CreateRelatedRecordActionLink(portalContext, formActionMetadata, languageCode, createRelatedRecordAction, true, portalName); CreateRelatedRecordActionLink = createRelatedRecordActionLink; AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, createRelatedRecordActionLink); } SetSpecialMessageActions(portalContext, formActionMetadata, languageCode, action, topItemActionLinks, bottomItemActionLinks, portalName); } TopFormActionLinks = topItemActionLinks; BottomFormActionLinks = bottomItemActionLinks; }
public static void ActionModalWindows(this HtmlHelper html, TagBuilder container, DeleteActionLink deleteActionLink, QualifyLeadActionLink qualifyLeadActionLink, CloseIncidentActionLink closeCaseActionLink, ResolveCaseActionLink resolveCaseActionLink, ReopenCaseActionLink reopenCaseActionLink, CancelCaseActionLink cancelCaseActionLink, ConvertQuoteToOrderActionLink convertQuoteActionLink, ConvertOrderToInvoiceActionLink convertOrderActionLink, CalculateOpportunityActionLink calculateOpportunityActionLink, DeactivateActionLink deactivateActionLink, ActivateActionLink activateActionLink, ActivateQuoteActionLink activateQuoteActionLink, SetOpportunityOnHoldActionLink opportunityOnHoldActionLink, ReopenOpportunityActionLink reopenOpportunityActionLink, WinOpportunityActionLink winOpportunityActionLink, LoseOpportunityActionLink loseOpportunityActionLink, GenerateQuoteFromOpportunityActionLink generateQuoteFromOpportunityActionLink, UpdatePipelinePhaseActionLink updatePipelinePhaseAction, WorkflowActionLink firstWorkflow, DisassociateActionLink disassociateAction, CreateRelatedRecordActionLink createRelatedRecordAction) { if (deleteActionLink.Enabled) { container.InnerHtml += html.DeleteModal(deleteActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, deleteActionLink.Modal.CssClass, deleteActionLink.Modal.Title.GetValueOrDefault(DefaultModalDeleteTitle), deleteActionLink.Confirmation.GetValueOrDefault(DefaultModalDeleteBody), deleteActionLink.Modal.DismissButtonSrText.GetValueOrDefault(DefaultModalDismissButtonSrText), deleteActionLink.Modal.PrimaryButtonText.GetValueOrDefault(DefaultModalDeletePrimaryButtonText), deleteActionLink.Modal.CloseButtonText.GetValueOrDefault(DefaultModalDeleteCancelButtonText), deleteActionLink.Modal.TitleCssClass, deleteActionLink.Modal.PrimaryButtonCssClass, deleteActionLink.Modal.CloseButtonCssClass); } if (qualifyLeadActionLink.Enabled && (qualifyLeadActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.QualifyLeadModal(qualifyLeadActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, qualifyLeadActionLink.Modal.CssClass, qualifyLeadActionLink.Modal.Title, qualifyLeadActionLink.Confirmation, qualifyLeadActionLink.Modal.DismissButtonSrText, qualifyLeadActionLink.Modal.PrimaryButtonText, qualifyLeadActionLink.Modal.CloseButtonText, qualifyLeadActionLink.Modal.TitleCssClass, qualifyLeadActionLink.Modal.PrimaryButtonCssClass, qualifyLeadActionLink.Modal.CloseButtonCssClass); } if (closeCaseActionLink.Enabled && (closeCaseActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.CloseCaseModal(closeCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, closeCaseActionLink.Modal.CssClass, closeCaseActionLink.Modal.Title, closeCaseActionLink.Confirmation, null, null, closeCaseActionLink.Modal.DismissButtonSrText, closeCaseActionLink.Modal.PrimaryButtonText, closeCaseActionLink.Modal.CloseButtonText, closeCaseActionLink.Modal.TitleCssClass, closeCaseActionLink.Modal.PrimaryButtonCssClass, closeCaseActionLink.Modal.CloseButtonCssClass); } if (resolveCaseActionLink.Enabled) { container.InnerHtml += html.ResolveCaseModal(resolveCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, resolveCaseActionLink.Modal.CssClass, resolveCaseActionLink.Modal.Title, resolveCaseActionLink.Confirmation, resolveCaseActionLink.SubjectLabel, resolveCaseActionLink.DescriptionLabel, resolveCaseActionLink.Modal.DismissButtonSrText, resolveCaseActionLink.Modal.PrimaryButtonText, resolveCaseActionLink.Modal.CloseButtonText, resolveCaseActionLink.Modal.TitleCssClass, resolveCaseActionLink.Modal.PrimaryButtonCssClass, resolveCaseActionLink.Modal.CloseButtonCssClass); } if (reopenCaseActionLink.Enabled && (reopenCaseActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.ReopenCaseModal(reopenCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, reopenCaseActionLink.Modal.CssClass, reopenCaseActionLink.Modal.Title, reopenCaseActionLink.Confirmation, null, null, reopenCaseActionLink.Modal.DismissButtonSrText, reopenCaseActionLink.Modal.PrimaryButtonText, reopenCaseActionLink.Modal.CloseButtonText, reopenCaseActionLink.Modal.TitleCssClass, reopenCaseActionLink.Modal.PrimaryButtonCssClass, reopenCaseActionLink.Modal.CloseButtonCssClass); } if (cancelCaseActionLink.Enabled && (cancelCaseActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.CancelCaseModal(cancelCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, cancelCaseActionLink.Modal.CssClass, cancelCaseActionLink.Modal.Title, cancelCaseActionLink.Confirmation, null, null, cancelCaseActionLink.Modal.DismissButtonSrText, cancelCaseActionLink.Modal.PrimaryButtonText, cancelCaseActionLink.Modal.CloseButtonText, cancelCaseActionLink.Modal.TitleCssClass, cancelCaseActionLink.Modal.PrimaryButtonCssClass, cancelCaseActionLink.Modal.CloseButtonCssClass); } if (convertQuoteActionLink.Enabled && (convertQuoteActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.ConvertQuoteModal(convertQuoteActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, convertQuoteActionLink.Modal.CssClass, convertQuoteActionLink.Modal.Title, convertQuoteActionLink.Confirmation, convertQuoteActionLink.Modal.DismissButtonSrText, convertQuoteActionLink.Modal.PrimaryButtonText, convertQuoteActionLink.Modal.CloseButtonText, convertQuoteActionLink.Modal.TitleCssClass, convertQuoteActionLink.Modal.PrimaryButtonCssClass, convertQuoteActionLink.Modal.CloseButtonCssClass); } if (convertOrderActionLink.Enabled && (convertOrderActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.ConvertOrderModal(closeCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, convertOrderActionLink.Modal.CssClass, convertOrderActionLink.Modal.Title, convertOrderActionLink.Confirmation, convertOrderActionLink.Modal.DismissButtonSrText, convertOrderActionLink.Modal.PrimaryButtonText, convertOrderActionLink.Modal.CloseButtonText, convertOrderActionLink.Modal.TitleCssClass, convertOrderActionLink.Modal.PrimaryButtonCssClass, convertOrderActionLink.Modal.CloseButtonCssClass); } if (calculateOpportunityActionLink.Enabled && (calculateOpportunityActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.CalculateOpportunityModal( calculateOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, calculateOpportunityActionLink.Modal.CssClass, calculateOpportunityActionLink.Modal.Title, calculateOpportunityActionLink.Confirmation, calculateOpportunityActionLink.Modal.DismissButtonSrText, calculateOpportunityActionLink.Modal.PrimaryButtonText, calculateOpportunityActionLink.Modal.CloseButtonText, calculateOpportunityActionLink.Modal.TitleCssClass, calculateOpportunityActionLink.Modal.PrimaryButtonCssClass, calculateOpportunityActionLink.Modal.CloseButtonCssClass); } if (deactivateActionLink.Enabled && (deactivateActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.DeactivateModal(deactivateActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, deactivateActionLink.Modal.CssClass, deactivateActionLink.Modal.Title, deactivateActionLink.Confirmation, deactivateActionLink.Modal.DismissButtonSrText, deactivateActionLink.Modal.PrimaryButtonText, deactivateActionLink.Modal.CloseButtonText, deactivateActionLink.Modal.TitleCssClass, deactivateActionLink.Modal.PrimaryButtonCssClass, deactivateActionLink.Modal.CloseButtonCssClass); } if (activateActionLink.Enabled && (activateActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.ActivateModal(activateActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, activateActionLink.Modal.CssClass, activateActionLink.Modal.Title, activateActionLink.Confirmation, activateActionLink.Modal.DismissButtonSrText, activateActionLink.Modal.PrimaryButtonText, activateActionLink.Modal.CloseButtonText, activateActionLink.Modal.TitleCssClass, activateActionLink.Modal.PrimaryButtonCssClass, activateActionLink.Modal.CloseButtonCssClass); } if (activateQuoteActionLink.Enabled && (activateQuoteActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.ActivateQuoteModal(activateQuoteActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, activateQuoteActionLink.Modal.CssClass, activateQuoteActionLink.Modal.Title, activateQuoteActionLink.Confirmation, activateQuoteActionLink.Modal.DismissButtonSrText, activateQuoteActionLink.Modal.PrimaryButtonText, activateQuoteActionLink.Modal.CloseButtonText, activateQuoteActionLink.Modal.TitleCssClass, activateQuoteActionLink.Modal.PrimaryButtonCssClass, activateQuoteActionLink.Modal.CloseButtonCssClass); } if (opportunityOnHoldActionLink.Enabled && (opportunityOnHoldActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.SetOpportunityOnHoldModal( opportunityOnHoldActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, opportunityOnHoldActionLink.Modal.CssClass, opportunityOnHoldActionLink.Modal.Title, opportunityOnHoldActionLink.Confirmation, opportunityOnHoldActionLink.Modal.DismissButtonSrText, opportunityOnHoldActionLink.Modal.PrimaryButtonText, opportunityOnHoldActionLink.Modal.CloseButtonText, opportunityOnHoldActionLink.Modal.TitleCssClass, opportunityOnHoldActionLink.Modal.PrimaryButtonCssClass, opportunityOnHoldActionLink.Modal.CloseButtonCssClass); } if (reopenOpportunityActionLink.Enabled && (reopenOpportunityActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.ReopenOpportunityModal(reopenOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, reopenOpportunityActionLink.Modal.CssClass, reopenOpportunityActionLink.Modal.Title, reopenOpportunityActionLink.Confirmation, reopenOpportunityActionLink.Modal.DismissButtonSrText, reopenOpportunityActionLink.Modal.PrimaryButtonText, reopenOpportunityActionLink.Modal.CloseButtonText, reopenOpportunityActionLink.Modal.TitleCssClass, reopenOpportunityActionLink.Modal.PrimaryButtonCssClass, reopenOpportunityActionLink.Modal.CloseButtonCssClass); } if (winOpportunityActionLink.Enabled && (winOpportunityActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.WinOpportunityModal(winOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, winOpportunityActionLink.Modal.CssClass, winOpportunityActionLink.Modal.Title, winOpportunityActionLink.Confirmation, winOpportunityActionLink.Modal.DismissButtonSrText, winOpportunityActionLink.Modal.PrimaryButtonText, winOpportunityActionLink.Modal.CloseButtonText, winOpportunityActionLink.Modal.TitleCssClass, winOpportunityActionLink.Modal.PrimaryButtonCssClass, winOpportunityActionLink.Modal.CloseButtonCssClass); } if (loseOpportunityActionLink.Enabled && (loseOpportunityActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.LoseOpportunityModal(loseOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, loseOpportunityActionLink.Modal.CssClass, loseOpportunityActionLink.Modal.Title, loseOpportunityActionLink.Confirmation, loseOpportunityActionLink.Modal.DismissButtonSrText, loseOpportunityActionLink.Modal.PrimaryButtonText, loseOpportunityActionLink.Modal.CloseButtonText, loseOpportunityActionLink.Modal.TitleCssClass, loseOpportunityActionLink.Modal.PrimaryButtonCssClass, loseOpportunityActionLink.Modal.CloseButtonCssClass); } if (generateQuoteFromOpportunityActionLink.Enabled && (generateQuoteFromOpportunityActionLink.ShowModal == ShowModal.Yes)) { container.InnerHtml += html.GenerateQuoteFromOpportunityModal( generateQuoteFromOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, generateQuoteFromOpportunityActionLink.Modal.CssClass, generateQuoteFromOpportunityActionLink.Modal.Title, generateQuoteFromOpportunityActionLink.Confirmation, generateQuoteFromOpportunityActionLink.Modal.DismissButtonSrText, generateQuoteFromOpportunityActionLink.Modal.PrimaryButtonText, generateQuoteFromOpportunityActionLink.Modal.CloseButtonText, generateQuoteFromOpportunityActionLink.Modal.TitleCssClass, generateQuoteFromOpportunityActionLink.Modal.PrimaryButtonCssClass, generateQuoteFromOpportunityActionLink.Modal.CloseButtonCssClass); } if (updatePipelinePhaseAction.Enabled) { container.InnerHtml += html.UpdatePipelinePhaseModal(GetPipelinePhases(), updatePipelinePhaseAction.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, updatePipelinePhaseAction.Modal.CssClass, updatePipelinePhaseAction.Modal.Title, updatePipelinePhaseAction.Confirmation, updatePipelinePhaseAction.PipelinePhaseLabel, updatePipelinePhaseAction.DescriptionLabel, updatePipelinePhaseAction.Modal.DismissButtonSrText, updatePipelinePhaseAction.Modal.PrimaryButtonText, updatePipelinePhaseAction.Modal.CloseButtonText, updatePipelinePhaseAction.Modal.TitleCssClass, updatePipelinePhaseAction.Modal.PrimaryButtonCssClass, updatePipelinePhaseAction.Modal.CloseButtonCssClass); } if (firstWorkflow != null && firstWorkflow.Enabled) { container.InnerHtml += html.WorkflowModal(firstWorkflow.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, firstWorkflow.Modal.CssClass, firstWorkflow.Modal.Title, firstWorkflow.Confirmation, firstWorkflow.Modal.DismissButtonSrText, firstWorkflow.Modal.PrimaryButtonText, firstWorkflow.Modal.CloseButtonText, firstWorkflow.Modal.TitleCssClass, firstWorkflow.Modal.PrimaryButtonCssClass, firstWorkflow.Modal.CloseButtonCssClass); } if (disassociateAction != null && disassociateAction.Enabled) { container.InnerHtml += html.DissassociateModal(disassociateAction.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default, disassociateAction.Modal.CssClass, disassociateAction.Modal.Title, disassociateAction.Confirmation, disassociateAction.Modal.DismissButtonSrText, disassociateAction.Modal.PrimaryButtonText, disassociateAction.Modal.CloseButtonText, disassociateAction.Modal.TitleCssClass, disassociateAction.Modal.PrimaryButtonCssClass, disassociateAction.Modal.CloseButtonCssClass); } }