public FormConfiguration() { ShowActionButtonContainer = JsonConfiguration.ShowActionButtonContainer.No; IntializeSpecialActionLinks(); SubmitActionLink = new SubmitActionLink(); PreviousActionLink = new PreviousActionLink(); NextActionLink = new NextActionLink(); CreateRelatedRecordActionLink = new CreateRelatedRecordActionLink(); }
/// <summary> /// Class constructor used by the EntityForm Control /// </summary> public FormConfiguration(IPortalContext portalContext, string entityName, FormActionMetadata formActionMetadata, string portalName, int languageCode, bool enableEntityPermissions, bool autoGenerateStepsFromTabs, bool addSubmitButton = false, bool addNextPrevious = false) { ShowActionButtonContainer = JsonConfiguration.ShowActionButtonContainer.No; EntityName = entityName; IntializeSpecialActionLinks(); SubmitActionLink = new SubmitActionLink(); PreviousActionLink = new PreviousActionLink(); NextActionLink = new NextActionLink(); CreateRelatedRecordActionLink = new CreateRelatedRecordActionLink(); if (formActionMetadata == null) { return; } ActionButtonDropDownLabel = formActionMetadata.ActionButtonDropDownLabel.GetLocalizedString(languageCode); ActionNavbarCssClass = formActionMetadata.ActionNavbarCssClass; TopContainerCssClass = formActionMetadata.TopContainerCssClass; BottomContainerCssClass = formActionMetadata.BottomContainerCssClass; ActionButtonStyle = formActionMetadata.ActionButtonStyle; ActionButtonPlacement = formActionMetadata.ActionButtonPlacement; ActionButtonAlignment = formActionMetadata.ActionButtonAlignment; EnableEntityPermissions = enableEntityPermissions; PortalName = portalName; LanguageCode = languageCode; AutoGenerateSteps = autoGenerateStepsFromTabs; if (formActionMetadata.Actions != null) { SetFormActions(portalContext, formActionMetadata, languageCode, portalName, addSubmitButton, addNextPrevious); } }
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; }