public AgreementGridSpec(Models.Person currentPerson, bool agreementFileExistsOnAtLeastOne, bool showDeleteColumn, bool showCreateButton) { ObjectNameSingular = $"{Models.FieldDefinition.Agreement.GetFieldDefinitionLabel()}"; ObjectNamePlural = $"{Models.FieldDefinition.Agreement.GetFieldDefinitionLabelPluralized()}"; SaveFiltersInCookie = true; var userHasDeletePermissions = new AgreementDeleteFeature().HasPermissionByPerson(currentPerson); var userHasCreatePermissions = new AgreementCreateFeature().HasPermissionByPerson(currentPerson); if (userHasCreatePermissions && showCreateButton) { var contentUrl = SitkaRoute <AgreementController> .BuildUrlFromExpression(t => t.New()); CreateEntityModalDialogForm = new ModalDialogForm(contentUrl, "Create a new Agreement"); } CustomExcelDownloadUrl = SitkaRoute <AgreementController> .BuildUrlFromExpression(tc => tc.AgreementsExcelDownload()); // hidden column for agreement id for use by JavaScript Add(AgreementIDHiddenColumn, x => x.PrimaryKey, 0); if (userHasDeletePermissions && showDeleteColumn) { Add(DeleteColumnName, x => DhtmlxGridHtmlHelpers.MakeDeleteIconAndLinkBootstrap(x.GetDeleteUrl(), true, false), 30, DhtmlxGridColumnFilterType.None, true); } if (agreementFileExistsOnAtLeastOne) { Add(string.Empty, x => DhtmlxGridHtmlHelpers.MakeFileDownloadIconAsHyperlinkBootstrap(x.GetFileDownloadUrl(), "Download Agreement file"), 30, DhtmlxGridColumnFilterType.None); } Add(Models.FieldDefinition.AgreementType.ToGridHeaderString("Type"), x => x.AgreementType?.AgreementTypeAbbrev, 70, DhtmlxGridColumnFilterType.SelectFilterHtmlStrict); Add(Models.FieldDefinition.AgreementNumber.ToGridHeaderString("Number"), x => x.AgreementNumber, 100, DhtmlxGridColumnFilterType.Html); Add(Models.FieldDefinition.Grant.ToGridHeaderString(), x => x.GetListOfGrantHrefs(), 130, DhtmlxGridColumnFilterType.Html); Add(Models.FieldDefinition.Organization.ToGridHeaderString(), x => UrlTemplate.MakeHrefString(x.GetOrganizationDetailUrl(), x.Organization.DisplayName), 130, DhtmlxGridColumnFilterType.Html); Add(Models.FieldDefinition.AgreementTitle.ToGridHeaderString(), x => UrlTemplate.MakeHrefString(x.GetDetailUrl(), x.AgreementTitle), 180, DhtmlxGridColumnFilterType.Html); Add(Models.FieldDefinition.AgreementStartDate.ToGridHeaderString("Start Date"), x => x.StartDate, 120, DhtmlxGridColumnFormatType.Date); Add(Models.FieldDefinition.AgreementEndDate.ToGridHeaderString("End Date"), x => x.EndDate, 120, DhtmlxGridColumnFormatType.Date); Add(Models.FieldDefinition.AgreementAmount.ToGridHeaderString("Amount"), x => x.AgreementAmount, 70, DhtmlxGridColumnFormatType.CurrencyWithCents, DhtmlxGridColumnAggregationType.Total); Add(Models.FieldDefinition.ProgramIndex.ToGridHeaderString(), x => x.ProgramIndices.ToDistinctOrderedCsvList(), 90, DhtmlxGridColumnFilterType.SelectFilterStrict); Add(Models.FieldDefinition.ProjectCode.ToGridHeaderString(), x => x.ProjectCodes.ToDistinctOrderedCsvList(), 90, DhtmlxGridColumnFilterType.Text); }
public AgreementPersonGridSpec(Models.Person currentPerson) { ObjectNameSingular = $"{Models.FieldDefinition.Agreement.GetFieldDefinitionLabel()}"; ObjectNamePlural = $"{Models.FieldDefinition.Agreement.GetFieldDefinitionLabelPluralized()}"; var userHasEditPermissions = new AgreementEditAsAdminFeature().HasPermissionByPerson(currentPerson); if (userHasEditPermissions) { Add(string.Empty, x => DhtmlxGridHtmlHelpers.MakeEditIconAsModalDialogLinkBootstrap(new ModalDialogForm(x.GetEditUrl(), "Edit this Agreement Contact")), 30, DhtmlxGridColumnFilterType.None); } var userHasDeletePermissions = new AgreementDeleteFeature().HasPermissionByPerson(currentPerson); if (userHasDeletePermissions) { Add(string.Empty, x => DhtmlxGridHtmlHelpers.MakeDeleteIconAndLinkBootstrap(x.GetDeleteUrl(), true, true), 30, DhtmlxGridColumnFilterType.None); } Add("First Name", x => x.Person.GetFirstNameAsUrl(), 125, DhtmlxGridColumnFilterType.Text); Add("Last Name", x => x.Person.GetLastNameAsUrl(), 125, DhtmlxGridColumnFilterType.Text); Add("Agreement Role", x => x.AgreementPersonRole.AgreementPersonRoleDisplayName, 125, DhtmlxGridColumnFilterType.SelectFilterStrict); Add(Models.FieldDefinition.Organization.ToGridHeaderString(), x => x.Person.Organization.GetDisplayNameWithoutAbbreviationAsUrl(), 250, DhtmlxGridColumnFilterType.Html); }