]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/eg2/src/app/staff/share/marc-edit/rich-editor.component.html
LP1852782 FF context menu repairs; Angular fixes
[working/Evergreen.git] / Open-ILS / src / eg2 / src / app / staff / share / marc-edit / rich-editor.component.html
1
2 <ng-container *ngIf="!dataLoaded">
3   <div class="row mt-5">
4     <div class="offset-lg-3 col-lg-6">
5       <eg-progress-inline></eg-progress-inline>
6     </div>
7   </div>
8 </ng-container>
9
10
11 <ng-template #subfieldChunk let-field="field" let-subfield="subfield">
12
13   <!-- move these around depending on whether we are stacking subfields -->
14
15   <!-- SUBFIELD DECORATOR/DELIMITER -->
16   <eg-marc-editable-content fieldText="‡" i18n-fieldText
17     moreClasses="sf-delimiter border-right-0 bg-transparent p-1 pr-0">
18   </eg-marc-editable-content>
19
20   <!-- SUBFIELD CHARACTER -->
21   <eg-marc-editable-content
22     [context]="context" [field]="field" fieldType="sfc"
23     [subfield]="subfield" ariaLabel="Subfield Code" i18n-ariaLabel
24     moreClasses="sf-code border-left-0 p-1 pl-0">
25   </eg-marc-editable-content>
26
27   <!-- SUBFIELD VALUE -->
28   <eg-marc-editable-content
29     [context]="context" [field]="field" fieldType="sfv"
30     [subfield]="subfield" ariaLabel="Subfield Value" i18n-ariaLabel
31     moreClasses="p-1 pt-2">
32   </eg-marc-editable-content>
33
34 </ng-template>
35
36 <ng-container *ngIf="dataLoaded">
37   <div class="mt-3 text-monospace"
38     (contextmenu)="$event.preventDefault()">
39     <div class="row pb-2 mb-2 border-bottom border-muted">
40       <div class="col-lg-9 fixed-fields-container">
41         <eg-fixed-fields-editor [context]="context"></eg-fixed-fields-editor>
42       </div>
43       <div class="col-lg-3">
44         <div><button class="btn btn-outline-dark"
45           (click)="showHelp = !showHelp" i18n>Help</button></div>
46         <div class="mt-2"><button class="btn btn-outline-dark"
47           [disabled]="true"
48           (click)="validate()" i18n>Validate</button></div>
49         <div class="mt-2">
50           <button type="button" class="btn btn-outline-info" 
51             [disabled]="undoCount() < 1" (click)="undo()">
52             Undo <span class="badge badge-info">{{undoCount()}}</span>
53           </button>
54           <button type="button" class="btn btn-outline-info ml-2" 
55             [disabled]="redoCount() < 1" (click)="redo()">
56             Redo <span class="badge badge-info">{{redoCount()}}</span>
57           </button>
58         </div>
59         <div class="mt-2">
60           <div class="form-check">
61             <input class="form-check-input" type="checkbox" 
62               (change)="stackSubfieldsChange()"
63               [(ngModel)]="stackSubfields" id="stack-subfields-{{randId}}">
64             <label class="form-check-label" for="stack-subfields-{{randId}}">
65               Stack Subfields
66             </label>
67           </div>
68         </div>
69       </div>
70       <div class="col-lg-1">
71       </div>
72     </div>
73     <div *ngIf="showHelp" class="row m-2">
74       <div class="col-lg-4">
75         <ul>
76           <li>Undo: CTRL-z</li>
77           <li>Redo: CTRL-y</li>
78           <li>Add Row: CTRL+Enter</li>
79           <li>Insert Row: CTRL+Shift+Enter</li>
80         </ul>
81       </div>
82       <div class="col-lg-4">
83         <ul>
84          <li>Copy Current Row Above: CTRL+Up</li>
85          <li>Copy Current Row Below: CTRL+Down</li>
86          <li>Add Subfield: CTRL+D or CTRL+I</li>
87          <li>Remove Row: CTRL+Del</li>
88         </ul>
89       </div>
90       <div class="col-lg-4">
91         <ul>
92          <li>Remove Subfield: Shift+Del</li>
93          <li>Create/Replace 006: Shift+F6</li>
94          <li>Create/Replace 007: Shift+F7</li>
95          <li>Create/Replace 008: Shift+F8</li>
96         </ul>
97       </div>
98     </div>
99
100     <!-- LEADER -->
101     <div class="row pt-0 pb-0 pl-3">
102       <eg-marc-editable-content
103         [context]="context" fieldText="LDR" i18n-fieldText moreClasses="p-1">
104       </eg-marc-editable-content>
105
106       <eg-marc-editable-content
107         [context]="context" fieldType="ldr"
108         ariaLabel="Leader" i18n-ariaLabel moreClasses="p-1 pr-2">
109       </eg-marc-editable-content>
110     </div>
111
112     <!-- CONTROL FIELDS -->
113     <div class="row pt-0 pb-0 pl-3"
114       *ngFor="let field of controlFields()">
115
116       <eg-marc-editable-content
117         [context]="context" [field]="field" fieldType="tag"
118         ariaLabel="Control Field Tag" i18n-ariaLabel moreClasses="p-1">
119       </eg-marc-editable-content>
120
121       <eg-marc-editable-content
122         [context]="context" [field]="field" fieldType="cfld"
123         ariaLabel="Control Field Content" i18n-ariaLabel moreClasses="p-1">
124       </eg-marc-editable-content>
125     </div>
126
127     <!-- data fields -->
128     <ng-container *ngFor="let field of dataFields()">
129
130       <div class="row pt-0 pb-0 pl-3">
131
132         <!-- TAG -->
133         <eg-marc-editable-content
134           [context]="context" [field]="field" fieldType="tag"
135           ariaLabel="Data Field Tag" i18n-ariaLabel moreClasses="p-1">
136         </eg-marc-editable-content>
137
138         <!-- INDICATOR 1 -->
139         <eg-marc-editable-content
140           [context]="context" [field]="field" fieldType="ind1"
141           ariaLabel="Data Field Indicator 1" i18n-ariaLabel moreClasses="p-1">
142         </eg-marc-editable-content>
143
144         <!-- INDICATOR 2 -->
145         <eg-marc-editable-content
146           [context]="context" [field]="field" fieldType="ind2"
147           ariaLabel="Data Field Indicator 2" i18n-ariaLabel moreClasses="p-1">
148         </eg-marc-editable-content>
149
150         <!-- when not stacking subfields, render them inline -->
151         <ng-container *ngIf="!stackSubfields">
152           <ng-container *ngFor="let subfield of field.subfields">
153             <ng-container 
154               *ngTemplateOutlet="subfieldChunk;context:{field:field,subfield:subfield}">
155             </ng-container>
156           </ng-container>
157         </ng-container>
158       </div>
159
160       <!-- when stacking subfields, each subfield gets its own row 
161         preceeded by a placeholder for the tag as a way to 'tab' right -->
162       <ng-container *ngIf="stackSubfields">
163         <div class="form-inline" *ngFor="let subfield of field.subfields">
164           <eg-marc-editable-content fieldText="   " moreClasses="p-1 invisible">
165           </eg-marc-editable-content>
166           <ng-container 
167             *ngTemplateOutlet="subfieldChunk;context:{field:field,subfield:subfield}">
168           </ng-container>
169         </div>
170       </ng-container>
171     </ng-container>
172
173   </div>
174 </ng-container>
175