e2bd27f0d9945f5ef5b9769cb77aa0ef1fd28421
[evergreen-equinox.git] / Open-ILS / src / eg2 / src / app / staff / admin / server / print-template.component.html
1
2 <eg-title i18n-prefix prefix="Print Template Administration"></eg-title>
3 <eg-staff-banner bannerText="Print Template Administration" i18n-bannerText>
4 </eg-staff-banner>
5
6 <eg-fm-record-editor #editDialog idlClass="cpt" 
7     [preloadLinkedValues]="true" hiddenFields="template">
8 </eg-fm-record-editor>
9
10 <eg-confirm-dialog #confirmDelete
11   i18n-dialogTitle i18n-dialogBody
12   dialogTitle="Confirm Delete?"
13   dialogBody="Delete Template '{{template ? template.label() : ''}}'?">
14 </eg-confirm-dialog>
15
16 <div class="row mb-3">
17   <div class="col-lg-4">
18     <eg-org-family-select
19       [selectedOrgId]="initialOrg"
20       [limitPerms]="['ADMIN_PRINT_TEMPLATE']"
21       labelText="Owner" i18n-labelText
22       (ngModelChange)="orgOnChange($event)"
23       ngModel #orgFamily="ngModel">
24     </eg-org-family-select>
25   </div>
26   <div class="col-lg-3">
27     <div class="input-group">
28       <div class="input-group-prepend">
29         <span class="input-group-text" i18n>Template</span>
30       </div>
31       <ng-template #entryTemplate let-r="result" let-owner="getOwnerName">
32         {{r.label}} ({{getOwnerName(r.id)}})
33       </ng-template>
34       <eg-combobox #templateSelector
35         [entries]="entries" [displayTemplate]="entryTemplate"
36         (onChange)="selectTemplate($event ? $event.id : null)">
37       </eg-combobox>
38     </div>
39   </div>
40   <div class="col-lg-3" *ngIf="localeEntries.length > 0">
41     <div class="input-group">
42       <div class="input-group-prepend">
43         <span class="input-group-text" i18n>Locale</span>
44       </div>
45       <eg-combobox [entries]="localeEntries"
46         [startId]="localeCode"
47         (onChange)="localeOnChange($event ? $event.id : null)">
48       </eg-combobox>
49     </div>
50   </div>
51 </div>
52
53 <ng-container *ngIf="template">
54   <ul ngbNav #tabs="ngbNav" [(activeId)]="selectedTab" [destroyOnHide]="false"
55         (navChange)="onNavChange($event)" [keyboard]="true" [roles]="false" role="tablist" class="nav-tabs">
56   
57     <li role="presentation" [ngbNavItem]="'template'">
58       <a i18n ngbNavLink role="tab">Template</a>
59       <ng-template ngbNavContent>
60         <div class="row">
61           <div class="col-lg-12 mt-3 d-flex">
62             <button class="btn btn-info" (click)="openEditDialog()" i18n>
63               Edit Template Attributes
64             </button>
65             <button class="btn btn-success ml-2" (click)="applyChanges()" i18n>
66               Save Template Changes
67             </button>
68             <button class="btn btn-info ml-2" (click)="cloneTemplate()" i18n>
69               Clone Template
70             </button>
71             <span class="ml-3 mr-1" i18n>Force Print Context:</span>
72             <eg-combobox #printContextCbox (onChange)="forceContextChange($event)">
73               <eg-combobox-entry entryId="unset" entryLabel="<Unset>" i18n-entryLabel>
74               </eg-combobox-entry>
75               <eg-combobox-entry entryId="default" entryLabel="Default" i18n-entryLabel>
76               </eg-combobox-entry>
77               <eg-combobox-entry entryId="receipt" entryLabel="Receipt" i18n-entryLabel>
78               </eg-combobox-entry>
79               <eg-combobox-entry entryId="label" entryLabel="Label" i18n-entryLabel>
80               </eg-combobox-entry>
81               <eg-combobox-entry entryId="mail" entryLabel="Mail" i18n-entryLabel>
82               </eg-combobox-entry>
83               <eg-combobox-entry entryId="offline" entryLabel="Offline" i18n-entryLabel>
84               </eg-combobox-entry>
85               <eg-combobox-entry entryId="no-print" entryLabel="No-Print" i18n-entryLabel>
86               </eg-combobox-entry>
87             </eg-combobox>
88             <div class="flex-1"> </div>
89             <button class="btn btn-danger ml-2" (click)="deleteTemplate()" i18n>
90               Delete Template
91             </button>
92             <span *ngIf="invalidJson" class="badge badge-danger ml-2" i18n>
93               Invalid Sample JSON!
94             </span>
95           </div>
96         </div>
97         <div class="row mt-2">
98           <div class="col-lg-6">
99             <h4 i18n>
100               Template for "{{template.label()}} ({{getOwnerName(template.id())}})"
101               <span class="pl-2 text-warning" *ngIf="template.active() === 'f'">
102                 (Inactive)
103               </span>
104             </h4>
105            <textarea rows="{{templateRowCount()}}" class="form-control"
106              spellcheck="false"
107              [ngModel]="template.template()"
108              (ngModelChange)="template.template($event); template.ischanged(true)">
109            </textarea>
110           </div>
111           <div class="col-lg-6">
112             <h4 i18n>Preview</h4>
113             <div class="border border-dark w-100" id="template-preview-pane">
114             </div>
115             <h4 class="mt-3" i18n>Compiled Content</h4>
116             <div class="border border-dark w-100">
117               <pre class="p-1">{{compiledContent}}</pre>
118             </div>
119           </div>
120         </div>
121       </ng-template>
122     </li>
123     <li role="presentation" [ngbNavItem]="'data'">
124       <a i18n ngbNavLink role="tab">Sample Data</a>
125       <ng-template ngbNavContent>
126         <textarea rows="20" [(ngModel)]="sampleJson" 
127           spellcheck="false" class="form-control">
128         </textarea>
129       </ng-template>
130     </li>
131   </ul>
132   
133   <div [ngbNavOutlet]="tabs" class="mt-2"></div>
134 </ng-container>