1 <eg-title i18n-prefix prefix="{{classLabel}} Administration">
3 <eg-staff-banner bannerText="{{classLabel}} Configuration" i18n-bannerText>
6 <ng-template #successStrTmpl i18n>{{idlClassDef.label}} Update Succeeded</ng-template>
7 <eg-string #successString [template]="successStrTmpl"></eg-string>
9 <ng-template #updateFailedStrTmpl i18n>Update of {{idlClassDef.label}} failed</ng-template>
10 <eg-string #updateFailedString [template]="updateFailedStrTmpl"></eg-string>
12 <ng-template #deleteFailedStrTmpl i18n>Delete of carousel failed or was not allowed</ng-template>
13 <eg-string #deleteFailedString [template]="deleteFailedStrTmpl"></eg-string>
15 <ng-template #deleteSuccessStrTmpl i18n>Carousel Successfully Deleted</ng-template>
16 <eg-string #deleteSuccessString [template]="deleteSuccessStrTmpl"></eg-string>
18 <ng-template #createStrTmpl i18n>{{idlClassDef.label}} Successfully Created</ng-template>
19 <eg-string #createString [template]="createStrTmpl"></eg-string>
21 <ng-template #createErrStrTmpl i18n>Failed to create new {{idlClassDef.label}}</ng-template>
22 <eg-string #createErrString [template]="createErrStrTmpl"></eg-string>
24 <ng-template #refreshStrTmpl i18n let-name="name">{{name}} is being refreshed. It may take a couple minutes.</ng-template>
25 <eg-string #refreshString [template]="refreshStrTmpl"></eg-string>
27 <ng-template #refreshErrStrTmpl i18n let-name="name">{{name}} is manual and cannot be refreshed automatically.</ng-template>
28 <eg-string #refreshErrString [template]="refreshErrStrTmpl"></eg-string>
30 <eg-confirm-dialog #delConfirm
31 i18n-dialogTitle i18n-dialogBody
33 dialogBody="Delete carousel?">
36 <ng-container *ngIf="orgField">
38 ariaLabel="Org Unit" i18n-ariaLabel
39 [limitPerms]="viewPerms"
40 [selectedOrgId]="contextOrg.id()"
41 [(ngModel)]="searchOrgs"
42 (ngModelChange)="grid.reload()">
43 </eg-org-family-select>
47 <!-- idlObject and fieldName applied programmatically -->
48 <eg-translate #translator></eg-translate>
50 <eg-grid #grid idlClass="{{idlClass}}" [dataSource]="dataSource"
51 [sortable]="true" persistKey="{{persistKey}}"
52 [cellTextGenerator]="cellTextGenerator"
53 (onRowActivate)="showEditDialog($event)"
54 [stickyHeader]="true">
55 <eg-grid-toolbar-button [disabled]="!canCreate"
56 label="New {{idlClassDef.label}}" i18n-label [action]="createNew">
57 </eg-grid-toolbar-button>
58 <eg-grid-toolbar-button [disabled]="translatableFields.length === 0"
59 label="Apply Translations" i18n-label [action]="translate">
60 </eg-grid-toolbar-button>
61 <eg-grid-toolbar-action label="Edit Selected" i18n-label [action]="editSelected">
62 </eg-grid-toolbar-action>
63 <eg-grid-toolbar-action label="Delete Selected" i18n-label [action]="deleteSelected">
64 </eg-grid-toolbar-action>
65 <eg-grid-toolbar-action label="Refresh Selected" i18n-label [action]="refreshSelected">
66 </eg-grid-toolbar-action>
67 <ng-template #recordBucketTmpl let-carousel="row">
68 <a href="/eg/staff/cat/bucket/record/view/{{carousel.bucket().id()}}" target="_blank">
69 {{carousel.bucket().name()}}
72 <eg-grid-column path="bucket" i18n-label label="Bucket" [cellTemplate]="recordBucketTmpl"></eg-grid-column>
73 <eg-grid-column path="creator" [hidden]="true"></eg-grid-column>
74 <eg-grid-column path="editor" [hidden]="true"></eg-grid-column>
75 <eg-grid-column path="create_time" [hidden]="true"></eg-grid-column>
76 <eg-grid-column path="edit_time" [hidden]="true"></eg-grid-column>
77 <eg-grid-column path="last_refresh_time" [datePlusTime]="true"></eg-grid-column>
78 <eg-grid-column path="age_filter" [hidden]="true"></eg-grid-column>
79 <eg-grid-column path="owning_lib_filter" [hidden]="true"></eg-grid-column>
80 <eg-grid-column path="copy_location_filter" [hidden]="true"></eg-grid-column>
83 <ng-template #bucketTemplate
84 let-field="field" let-record="record">
85 <span *ngIf="record[field.name]()">
86 <a href="/eg/staff/cat/bucket/record/view/{{record[field.name]()}}" target="_blank" i18n>Link to bucket</a>
87 <span *ngIf="record['type']() !== 1" i18n style="font-style: italic"> (Note: changes to bucket contents may be overwritten by the next carousel update.)</span>
91 <ng-template #locationTemplate
92 let-field="field" let-record="record">
93 <eg-multi-select idlClass="acpl" linkedLibraryLabel="owning_lib"
94 [startValue]="record['copy_location_filter']()"
95 (onChange)="record['copy_location_filter']($event)">
98 <ng-template #orgTemplate
99 let-field="field" let-record="record">
100 <eg-multi-select idlClass="aou"
101 [startValue]="record['owning_lib_filter']()"
102 (onChange)="record['owning_lib_filter']($event)">
106 <eg-fm-record-editor #editDialog idlClass="{{idlClass}}"
107 [preloadLinkedValues]="true"
108 fieldOrder="owner,name,type,age_filter,max_items,owning_lib_filter,copy_location_filter,active,id,bucket,last_refresh_time,creator,create_time,editor,edit_time"
109 hiddenFieldsList="creator,editor,create_time,edit_time"
110 [preSave]="mungeCarousel" (recordSaved)="postSave($event)"
111 readonlyFields="last_refresh_time"
112 [fieldOptions]="{bucket:{customTemplate:{template:bucketTemplate}},copy_location_filter:{customTemplate:{template:locationTemplate}},owning_lib_filter:{customTemplate:{template:orgTemplate}}}"
113 ></eg-fm-record-editor>