public ManageViewData(Person currentPerson, Models.FirmaPage firmaPage, string customNotificationUrl, ProjectUpdateStatusGridSpec projectsRequiringUpdateGridSpec, string projectsRequiringUpdateGridDataUrl, PeopleReceivingReminderGridSpec peopleReceivingReminderGridSpec, string peopleReceivingReminderGridDataUrl, int projectsWithNoContactCount, ProjectUpdateConfiguration projectUpdateConfiguration) : base(currentPerson, firmaPage) { var reportingYear = FirmaDateUtilities.CalculateCurrentYearToUseForRequiredReporting(); PageTitle = $"Manage {Models.FieldDefinition.Project.GetFieldDefinitionLabel()} Updates"; ReportingYear = reportingYear; ProjectsRequiringUpdateGridDataUrl = projectsRequiringUpdateGridDataUrl; ProjectsRequiringUpdateGridSpec = projectsRequiringUpdateGridSpec; ProjectsRequiringUpdateGridName = "projectsRequiringAnUpdateGrid"; PeopleReceivingReminderGridDataUrl = peopleReceivingReminderGridDataUrl; ProjectsWithNoContactCount = projectsWithNoContactCount; ProjectUpdateConfiguration = projectUpdateConfiguration ?? ProjectUpdateConfiguration.CreateNewBlank(); PeopleReceivingReminderGridSpec = peopleReceivingReminderGridSpec; PeopleReceivingReminderGridName = "peopleReceivingAnReminderGrid"; KickOffIntroPreviewUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.KickOffIntroPreview()); ReminderIntroPreviewUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.ReminderIntroPreview()); CloseOutIntroPreviewUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.CloseOutIntroPreview()); var getPersonIDFunctionString = $"function() {{ return Sitka.{PeopleReceivingReminderGridName}.getValuesFromCheckedGridRows({0}, \'PersonID\', \'PersonIDList\'); }}"; var modalDialogFormLink = ModalDialogFormHelper.ModalDialogFormLink( "<span class=\"glyphicon glyphicon-envelope\" style=\"margin-right:5px\"></span>Send Notification to Selected People", customNotificationUrl, "Send Notification to Selected People", 700, "Send", "Cancel", new List <string>(), null, getPersonIDFunctionString); PeopleReceivingReminderGridSpec.ArbitraryHtml = new List <string> { modalDialogFormLink.ToString() }; EditProjectUpdateConfigurationUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.EditProjectUpdateConfiguration()); }
public MyProjectsViewData(FirmaSession currentFirmaSession, ProjectFirmaModels.Models.FirmaPage firmaPage, ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum projectUpdateStatusFilterType, string gridDataUrl) : base(currentFirmaSession, firmaPage) { ProjectUpdateStatusFilterType = projectUpdateStatusFilterType; var startDayOfReportingYearAsString = MultiTenantHelpers.GetStartDayOfReportingPeriod().ToStringDateMonthDay(); var endDayOfReportingYearAsString = MultiTenantHelpers.GetEndDayOfReportingPeriod().ToStringDateMonthDay(); switch (projectUpdateStatusFilterType) { case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.MyProjectsRequiringAnUpdate: PageTitle = $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabelPluralized()} Requiring an Update for Reporting Period: {startDayOfReportingYearAsString} - {endDayOfReportingYearAsString}"; break; case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.MySubmittedProjects: PageTitle = $"Submitted {FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} Updates for Reporting Period: {startDayOfReportingYearAsString} - {endDayOfReportingYearAsString}"; break; case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.AllMyProjects: PageTitle = $"All My {FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabelPluralized()} for Reporting Period: {startDayOfReportingYearAsString} - {endDayOfReportingYearAsString}"; break; case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.AllProjects: PageTitle = $"All {FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabelPluralized()}"; break; case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.SubmittedProjects: PageTitle = $"Submitted {FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabelPluralized()}"; break; default: throw new ArgumentOutOfRangeException("projectUpdateStatusFilterType", projectUpdateStatusFilterType, null); } SubmitAllUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.SubmitAll()); AllMyProjectsUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.AllMyProjects()); MyProjectsRequiringAnUpdateUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.MyProjectsRequiringAnUpdate()); MySubmittedProjectsUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.MySubmittedProjects()); AllProjectsUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.AllProjects()); SubmittedProjectsUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.SubmittedProjects()); ProposeNewProjectUrl = SitkaRoute <ProjectCreateController> .BuildUrlFromExpression(tc => tc.InstructionsProposal(null)); var currentPerson = currentFirmaSession.Person; HasProjectUpdateAdminPermissions = new ProjectUpdateAdminFeature().HasPermissionByFirmaSession(CurrentFirmaSession); HasProposeProjectPermissions = new ProjectCreateFeature().HasPermissionByFirmaSession(CurrentFirmaSession); GridSpec = new ProjectUpdateStatusGridSpec(currentFirmaSession, projectUpdateStatusFilterType, currentPerson.IsAdministrator() || currentPerson.IsSitkaAdministrator()) { ObjectNameSingular = $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()}", ObjectNamePlural = $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabelPluralized()}", SaveFiltersInCookie = true }; GridDataUrl = gridDataUrl; GridName = "myProjectsGrid"; ArbitraryHtmlPlaceholderID = $"{GridName}ArbitrayHtmlPlaceholder"; ArbitraryHtmlProjectFilterButtonsID = $"{GridName}ArbitrayHtmlProjectFilterButtons"; GridSpec.ArbitraryHtml = new List <string> { $"<span id='{ArbitraryHtmlPlaceholderID}'></span>" }; }
public MyProjectsViewData(Person currentPerson, Models.FirmaPage firmaPage, ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum projectUpdateStatusFilterType, string gridDataUrl) : base(currentPerson, firmaPage) { ProjectUpdateStatusFilterType = projectUpdateStatusFilterType; var currentYearToUseForReporting = FirmaDateUtilities.CalculateCurrentYearToUseForRequiredReporting(); var fieldDefinitionReportingYear = Models.FieldDefinition.ReportingYear.GetFieldDefinitionLabel(); switch (projectUpdateStatusFilterType) { case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.MyProjectsRequiringAnUpdate: PageTitle = $"{Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()} Requiring an Update for {fieldDefinitionReportingYear}: {currentYearToUseForReporting}"; break; case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.MySubmittedProjects: PageTitle = $"Recently Submitted {Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()} for {fieldDefinitionReportingYear}: {currentYearToUseForReporting}"; break; case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.AllMyProjects: PageTitle = $"All My {Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()} for {fieldDefinitionReportingYear}: {currentYearToUseForReporting}"; break; case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.AllProjects: PageTitle = $"All {Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()}"; break; case ProjectUpdateStatusGridSpec.ProjectUpdateStatusFilterTypeEnum.SubmittedProjects: PageTitle = $"Submitted {Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()}"; break; default: throw new ArgumentOutOfRangeException("projectUpdateStatusFilterType", projectUpdateStatusFilterType, null); } SubmitAllUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.SubmitAll()); AllMyProjectsUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.AllMyProjects()); MyProjectsRequiringAnUpdateUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.MyProjectsRequiringAnUpdate()); MySubmittedProjectsUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.MySubmittedProjects()); AllProjectsUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.AllProjects()); SubmittedProjectsUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(tc => tc.SubmittedProjects()); ProposeNewProjectUrl = SitkaRoute <ProjectCreateController> .BuildUrlFromExpression(tc => tc.InstructionsProposal(null)); HasProjectUpdateAdminPermissions = new ProjectUpdateAdminFeature().HasPermissionByPerson(CurrentPerson); HasProposeProjectPermissions = new ProjectCreateFeature().HasPermissionByPerson(CurrentPerson); GridSpec = new ProjectUpdateStatusGridSpec(projectUpdateStatusFilterType, currentPerson.IsAdministrator() || currentPerson.IsSitkaAdministrator()) { ObjectNameSingular = $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()}", ObjectNamePlural = $"{Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()}", SaveFiltersInCookie = true }; GridDataUrl = gridDataUrl; GridName = "myProjectsGrid"; ArbitraryHtmlPlaceholderID = $"{GridName}ArbitrayHtmlPlaceholder"; ArbitraryHtmlProjectFilterButtonsID = $"{GridName}ArbitrayHtmlProjectFilterButtons"; GridSpec.ArbitraryHtml = new List <string> { $"<span id='{ArbitraryHtmlPlaceholderID}'></span>" }; }