public InteractionEventDetailViewData(Person currentPerson, Models.InteractionEvent interactionEvent, string locationMapFormID, MapInitJson interactionEventLocationSummaryMapInitJson) : base(currentPerson) { IndexUrl = SitkaRoute <InteractionEventController> .BuildUrlFromExpression(x => x.Index()); EditInteractionEventBasicsUrl = SitkaRoute <InteractionEventController> .BuildUrlFromExpression(x => x.EditInteractionEvent(interactionEvent.PrimaryKey)); EditInteractionEventLocationSimpleUrl = SitkaRoute <InteractionEventController> .BuildUrlFromExpression(x => x.EditInteractionEventLocation(interactionEvent.PrimaryKey)); UserHasInteractionEventManagePermissions = new InteractionEventManageFeature().HasPermissionByPerson(currentPerson); InteractionEvent = interactionEvent; InteractionEventContacts = interactionEvent.InteractionEventContacts.ToList(); InteractionEventProjects = interactionEvent.InteractionEventProjects.ToList(); LocationMapFormID = locationMapFormID; InteractionEventLocationSummaryMapInitJson = interactionEventLocationSummaryMapInitJson; PageTitle = interactionEvent.InteractionEventTitle; var canEditDocuments = new InteractionEventManageFeature().HasPermissionByPerson(CurrentPerson); InteractionEventDetailFileDetailsViewData = new FileDetailsViewData( EntityDocument.CreateFromEntityDocument(new List <IEntityDocument>(interactionEvent.InteractionEventFileResources)), SitkaRoute <InteractionEventController> .BuildUrlFromExpression(x => x.NewInteractionEventFiles(interactionEvent.PrimaryKey)), canEditDocuments, Models.FieldDefinition.InteractionEvent ); }
private void InteractionEventGridSpecConstructorImpl(Person currentPerson, Models.Project optionalProjectToAssociate, Person optionalPersonToAssociate) { // ReSharper disable twice ConditionIsAlwaysTrueOrFalse Check.Ensure((optionalProjectToAssociate == null && optionalPersonToAssociate == null) || (optionalProjectToAssociate == null && optionalPersonToAssociate != null) || (optionalProjectToAssociate != null && optionalPersonToAssociate == null)); ObjectNameSingular = $"{Models.FieldDefinition.InteractionEvent.GetFieldDefinitionLabel()}"; ObjectNamePlural = $"{Models.FieldDefinition.InteractionEvent.GetFieldDefinitionLabelPluralized()}"; SaveFiltersInCookie = true; var userHasManagePermissions = new InteractionEventManageFeature().HasPermissionByPerson(currentPerson); if (userHasManagePermissions) { var contentUrl = SitkaRoute <InteractionEventController> .BuildUrlFromExpression(t => t.New()); if (optionalPersonToAssociate != null) { contentUrl = SitkaRoute <InteractionEventController> .BuildUrlFromExpression(t => t.NewForAPerson(optionalPersonToAssociate)); } else if (optionalProjectToAssociate != null) { contentUrl = SitkaRoute <InteractionEventController> .BuildUrlFromExpression(t => t.NewForAProject(optionalProjectToAssociate)); } CreateEntityModalDialogForm = new ModalDialogForm(contentUrl, 950, $"Create a new {ObjectNameSingular}"); } if (userHasManagePermissions) { Add(string.Empty, x => DhtmlxGridHtmlHelpers.MakeDeleteIconAndLinkBootstrap(x.GetDeleteUrl(), userHasManagePermissions, true), 30, DhtmlxGridColumnFilterType.None); } if (userHasManagePermissions) { Add(string.Empty, x => DhtmlxGridHtmlHelpers.MakeEditIconAsModalDialogLinkBootstrap( new ModalDialogForm(x.GetEditUrl(), $"Edit {ObjectNameSingular} - {x.InteractionEventTitle}"), userHasManagePermissions), 30, DhtmlxGridColumnFilterType.None); } Add("Title", x => UrlTemplate.MakeHrefString(x.GetDetailUrl(), x.InteractionEventTitle), 150, DhtmlxGridColumnFilterType.Html); Add("Description", x => x.InteractionEventDescription, 200, DhtmlxGridColumnFilterType.Text); Add("Date", x => x.InteractionEventDate, 80, DhtmlxGridColumnFormatType.Date); Add(Models.FieldDefinition.InteractionEventType.ToGridHeaderString(), x => x.InteractionEventType?.InteractionEventTypeDisplayName, 180, DhtmlxGridColumnFilterType.SelectFilterStrict); Add(Models.FieldDefinition.DNRStaffPerson.ToGridHeaderString(), x => x.StaffPerson?.FullNameFirstLast, 180, DhtmlxGridColumnFilterType.SelectFilterStrict); }