示例#1
0
        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());
        }
示例#2
0
        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>"
            };
        }