Bug 15836: UI changes
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / admin / classsources.tt
1 [% USE raw %]
2 [% USE Asset %]
3 [% SET footerjs = 1 %]
4 [% INCLUDE 'doc-head-open.inc' %]
5 <title>Koha &rsaquo; Administration &rsaquo; Classification sources
6 [% IF op == 'add_source' %]
7 &rsaquo;
8     [% IF class_source %]Modify classification source[% ELSE %]Add classification source[% END %]
9 [% ELSIF op == 'add_sort_rule' %]
10 &rsaquo;
11     [% IF sort_rule %]Modify filing rule[% ELSE %]Add filing rule[% END %]
12 [% ELSIF op == 'add_split_rule' %]
13 &rsaquo;
14     [% IF split_rule %]Modify splitting rule[% ELSE %]Add splitting rule[% END %]
15 [% END %]
16
17 </title>
18 [% INCLUDE 'doc-head-close.inc' %]
19 </head>
20
21 <body id="admin_classsources" class="admin">
22 [% INCLUDE 'header.inc' %]
23 [% INCLUDE 'prefs-admin-search.inc' %]
24
25 <div id="breadcrumbs">
26          <a href="/cgi-bin/koha/mainpage.pl">Home</a>
27 &rsaquo; <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
28 &rsaquo; <a href="/cgi-bin/koha/admin/classsources.pl">Classification sources</a>
29 [% IF op == 'add_source' %]
30 &rsaquo; [% IF class_source %]Modify classification source[% ELSE %]Add classification source[% END %]
31 [% ELSIF op == 'add_sort_rule' %]
32 &rsaquo; [% IF sort_rule %]Modify filing rule[% ELSE %]Add filing rule[% END %]
33 [% ELSIF op == 'add_split_rule' %]
34 &rsaquo; [% IF split_rule %]Modify splitting rule[% ELSE %]Add splitting rule[% END %]
35 [% END %]
36 </div>
37
38 <div class="main container-fluid">
39     <div class="row">
40         <div class="col-sm-10 col-sm-push-2">
41             <main>
42
43 [% FOR m IN messages %]
44     <div class="dialog [% m.type %]">
45         [% SWITCH m.code %]
46         [% CASE 'error_on_update_source' %]
47             An error occurred when updating this classification source.
48         [% CASE 'success_on_update_source' %]
49             Classification source updated successfully.
50         [% CASE 'error_on_insert_source' %]
51             An error occurred when adding this classification source. Perhaps the code already exists?
52         [% CASE 'success_on_insert_source' %]
53             Classification source added successfully.
54         [% CASE 'error_on_delete_source' %]
55             An error occurred when deleting this classification source.
56         [% CASE 'success_on_delete_source' %]
57             Classification source deleted successfully.
58         [% CASE 'error_on_update_sort_rule' %]
59             An error occurred when adding this filing rule. Perhaps the code already exists?
60         [% CASE 'success_on_update_sort_rule' %]
61             Filing rule updated successfully.
62         [% CASE 'error_on_insert_sort_rule' %]
63             An error occurred when adding this filing rule. Perhaps the code already exists?
64         [% CASE 'success_on_insert_sort_rule' %]
65             Filing rule added successfully.
66         [% CASE 'error_on_delete_sort_rule' %]
67             An error occurred when deleting this filing rule. Perhaps it is used by at least one classification source?
68         [% CASE 'success_on_delete_sort_rule' %]
69             Filing rule deleted successfully.
70         [% CASE 'error_on_update_split_rule' %]
71             An error occurred when adding this splitting rule. Perhaps the code already exists?
72         [% CASE 'success_on_update_split_rule' %]
73             Splitting rule updated successfully.
74         [% CASE 'error_on_insert_split_rule' %]
75             An error occurred when adding this splitting rule. Perhaps the code already exists?
76         [% CASE 'success_on_insert_split_rule' %]
77             Splitting rule added successfully.
78         [% CASE 'error_on_delete_split_rule' %]
79             An error occurred when deleting this splitting rule. Perhaps it is used by at least one classification source?
80         [% CASE 'success_on_delete_split_rule' %]
81             Splitting rule deleted successfully.
82         [% CASE %]
83             [% m.code %]
84         [% END %]
85     </div>
86 [% END %]
87
88
89 [% IF op == 'add_source' %]
90   [% IF class_source %]
91 <h2>Modify classification source</h2>
92   [% ELSE %]
93 <h2>Add classification source</h2>
94   [% END %]
95 <form action="[% script_name | html %]" name="Aform" class="validated" method="post">
96   <input type="hidden" name="op" value="add_source_validate" />
97   <fieldset class="rows">
98     <ol>
99       <li>
100           [% IF class_source %]
101                   <span class="label">Classification source code: </span>
102             <input type="hidden" name="cn_source" value="[% class_source.cn_source | html %]" />
103             [% class_source.cn_source | html %]
104           [% ELSE %]
105               <label class="required" for="class_source">Classification source code: </label>
106               <input class="required" required="required" type="text" id="class_source" name="cn_source"  size="10" maxlength="10" />
107               <span class="required">Required</span>
108           [% END %]
109        </li>
110        <li><label class="required" for="description">Description: </label>
111            <input class="required" required="required" type="text" id="description" name="description" size="50" maxlength="250" value="[% class_source.description | html %]" />
112            <span class="required">Required</span>
113        </li>
114        <li><label for="used">Source in use?</label>
115            [% IF ( class_source.used ) %]<input type="checkbox" id="used" name="used" value="used" checked="checked" />[% ELSE %]
116                   <input type="checkbox" id="used" name="used" value="used" />[% END %]
117        </li>
118         <li>
119             <label class="required" for="class_sort_rule">Filing rule: </label>
120             <select class="required" required="required" id="class_sort_rule" name="class_sort_rule">
121                 [% FOREACH r IN sort_rules %]
122                     [% IF class_source.class_sort_rule == r.class_sort_rule %]
123                         <option value="[% r.class_sort_rule | html %]" selected="selected">[% r.description | html %] ([% r.class_sort_rule | html %])</option>
124                     [% ELSE %]
125                         <option value="[% r.class_sort_rule | html %]">[% r.description | html %] ([% r.class_sort_rule | html %])</option>
126                     [% END %]
127                 [% END %]
128             </select>
129             <span class="required">Required</span>
130         </li>
131         <li>
132             <label class="required" for="class_split_rule">Splitting rule: </label>
133             <select class="required" required="required" id="split_rule" name="class_split_rule">
134                 [% FOREACH r IN split_rules %]
135                     [% IF class_source.class_split_rule == r.class_split_rule %]
136                         <option value="[% r.class_split_rule | html %]" selected="selected">[% r.description | html %] ([% r.class_split_rule | html %])</option>
137                     [% ELSE %]
138                         <option value="[% r.class_split_rule | html %]">[% r.description | html %] ([% r.class_split_rule | html %])</option>
139                     [% END %]
140                 [% END %]
141             </select>
142             <span class="required">Required</span>
143         </li>
144     </ol>
145   </fieldset>
146   <fieldset class="action">
147     <input type="submit" value="Save" />
148     <a class="cancel" href="/cgi-bin/koha/admin/classsources.pl">Cancel</a>
149   </fieldset>
150 </form>
151 [% END %]
152
153 [% IF op == 'add_sort_rule' %]
154   [% IF sort_rule %]
155 <h2>Modify filing rule</h2>
156   [% ELSE %]
157 <h2>Add filing rule</h2>
158   [% END %]
159 <form action="[% script_name | html %]" name="Aform" class="validated" method="post">
160   <input type="hidden" name="op" value="add_sort_rule_validate" />
161   <fieldset class="rows">
162     <ol>
163       <li>
164           [% IF sort_rule %]
165                   <span class="label">Filing rule code: </span>
166             <input type="hidden" name="class_sort_rule" value="[% sort_rule.class_sort_rule | html %]" />
167             [% sort_rule.class_sort_rule | html %]
168           [% ELSE %]
169               <label for="class_sort_rule" class="required">Filing rule code: </label>
170               <input class="required" required="required" type="text" id="class_sort_rule" name="class_sort_rule"  size="10" maxlength="10" />
171               <span class="required">Required</span>
172           [% END %]
173        </li>
174        <li><label for="description" class="required">Description: </label>
175            <input class="required" required="required" type="text" id="description" name="description" size="50" maxlength="250" value="[% sort_rule.description | html %]" />
176            <span class="required">Required</span>
177        </li>
178        <li><label for="sort_routine" class="required">Filing routine: </label>
179            <select class="required" required="required" id="sort_routine" name="sort_routine">
180            [% FOREACH routine_name IN sort_routines %]
181              [% IF routine_name == sort_rule.sort_routine %]
182                  <option value="[% routine_name | html %]" selected="selected">[% routine_name | html %]</option>
183              [% ELSE %]
184                  <option value="[% routine_name | html %]">[% routine_name %]</option>
185              [% END %]
186            [% END %]
187            </select>
188            <span class="required">Required</span>
189        </li>
190     </ol>
191   </fieldset>
192     <fieldset class="action">
193         <input type="submit" value="Save" />
194         <a class="cancel" href="/cgi-bin/koha/admin/classsources.pl">Cancel</a>
195     </fieldset>
196 </form>
197 [% END %]
198
199 [% IF op == 'add_split_rule' %]
200   [% IF split_rule %]
201 <h2>Modify splitting rule</h2>
202   [% ELSE %]
203 <h2>Add splitting rule</h2>
204   [% END %]
205 <form action="[% script_name | html %]" name="Aform" class="validated" method="post">
206   <input type="hidden" name="op" value="add_split_rule_validate" />
207   <fieldset class="rows">
208     <ol>
209       <li>
210           [% IF split_rule %]
211             <span class="label">Splitting rule code: </span>
212             <input type="hidden" name="class_split_rule" value="[% split_rule.class_split_rule | html %]" />
213             [% split_rule.class_split_rule | html %]
214           [% ELSE %]
215               <label for="class_split_rule" class="required">Splitting rule code: </label>
216               <input class="required" required="required" type="text" id="class_split_rule" name="class_split_rule"  size="10" maxlength="10" />
217               <span class="required">Required</span>
218           [% END %]
219        </li>
220        <li><label for="description" class="required">Description: </label>
221            <input class="required" required="required" type="text" id="description" name="description" size="50" maxlength="250" value="[% split_rule.description | html %]" />
222            <span class="required">Required</span>
223        </li>
224        <li><label for="split_routine" class="required">Splitting routine: </label>
225            <select class="required" required="required" id="split_routine" name="split_routine">
226             [% FOREACH routine_name IN split_routines %]
227                 [% IF routine_name == split_rule.split_routine %]
228                     <option value="[% routine_name | html %]" selected="selected">[% routine_name | html %]</option>
229                 [% ELSE %]
230                     <option value="[% routine_name | html %]">[% routine_name | html %]</option>
231                 [% END %]
232             [% END %]
233            </select>
234            <span class="required">Required</span>
235        </li>
236        <li id="regex_block">
237            <label for="split_regex" class="required">Regular expression: </label>
238            <input type="text" name="split_regex" id="split_regex" value="[% split_rule.split_regex | html %]" />
239            <span class="required">Required</span>
240        </li>
241
242     </ol>
243   </fieldset>
244     <fieldset class="action">
245         <input type="submit" value="Save" />
246         <a class="cancel" href="/cgi-bin/koha/admin/classsources.pl">Cancel</a>
247     </fieldset>
248 </form>
249 [% END %]
250
251 [% IF op == 'list' %]
252
253 <div id="toolbar" class="btn-toolbar">
254     <a class="btn btn-default btn-sm" id="newsource" href="[% script_name | url %]?op=add_source"><i class="fa fa-plus"></i> New classification source</a>
255     <a class="btn btn-default btn-sm" id="newrule" href="[% script_name | url %]?op=add_sort_rule"><i class="fa fa-plus"></i> New filing rule</a>
256     <a class="btn btn-default btn-sm" id="newrule" href="[% script_name | url %]?op=add_split_rule"><i class="fa fa-plus"></i> New splitting rule</a>
257 </div>
258
259 <h2>Classification sources</h2>
260 <table>
261   <tr>
262     <th>Code</th>
263     <th>Description</th>
264     <th>In use</th>
265     <th>Filing rule</th>
266     <th>Splitting rule</th>
267     <th>Actions</th>
268   </tr>
269   [% FOREACH class_source IN class_sources %]
270   <tr>
271     <td>[% class_source.cn_source | html %]</td>
272     <td>[% class_source.description |html | html %]</td>
273     <td>[% IF ( class_source.used ) %]Yes[% ELSE %]No[% END %]</td>
274     <td>[% class_source.class_sort_rule | html %]</td>
275     <td>[% class_source.class_split_rule | html %]</td>
276     <td class="actions">
277       <a class="btn btn-default btn-xs" href="[% script_name | url %]?op=add_source&amp;cn_source=[% class_source.cn_source | uri %]"><i class="fa fa-pencil"></i> Edit</a>
278       <a class="btn btn-default btn-xs delete_class_source" href="[% script_name | url %]?op=delete_source&amp;cn_source=[% class_source.cn_source | uri%]"><i class="fa fa-trash"></i> Delete</a>
279     </td>
280   </tr>
281   [% END %]
282 </table>
283
284 <h2>Classification filing rules</h2>
285 <table>
286   <tr>
287     <th>Code</th>
288     <th>Description</th>
289     <th>Sorting routine</th>
290     <th>Actions</th>
291   </tr>
292   [% FOREACH rule IN sort_rules %]
293   <tr>
294     <td>[% rule.class_sort_rule | html %]</td>
295     <td>[% rule.description |html | html %]</td>
296     <td>[% rule.sort_routine | html %]</td>
297     <td class="actions">
298       <a class="btn btn-default btn-xs" href="[% script_name | html %]?op=add_sort_rule&amp;class_sort_rule=[% rule.class_sort_rule |url %]"><i class="fa fa-pencil"></i> Edit</a>
299       <a class="btn btn-default btn-xs delete_sort_rule" href="[% script_name | html %]?op=delete_sort_rule&amp;class_sort_rule=[% rule.class_sort_rule |url %]"><i class="fa fa-trash"></i> Delete</a>
300     </td>
301   </tr>
302   [% END %]
303 </table>
304
305 <h2>Classification splitting rules</h2>
306 <table>
307   <tr>
308     <th>Code</th>
309     <th>Description</th>
310     <th>Splitting routine</th>
311     <th>Actions</th>
312   </tr>
313   [% FOREACH rule IN split_rules %]
314   <tr>
315     <td>[% rule.class_split_rule | html %]</td>
316     <td>[% rule.description | html %]</td>
317     <td>[% rule.split_routine | html %]</td>
318     <td class="actions">
319       <a class="btn btn-default btn-xs" href="[% script_name | url %]?op=add_split_rule&amp;class_split_rule=[% rule.class_split_rule | uri %]"><i class="fa fa-pencil"></i> Edit</a>
320       <a class="btn btn-default btn-xs delete_split_rule" href="[% script_name | url %]?op=delete_split_rule&amp;class_split_rule=[% rule.class_split_rule | uri %]"><i class="fa fa-trash"></i> Delete</a>
321     </td>
322   </tr>
323   [% END %]
324 </table>
325
326
327 [% END %]
328
329             </main>
330         </div> <!-- /.col-sm-10.col-sm-push-2 -->
331
332         <div class="col-sm-2 col-sm-pull-10">
333             <aside>
334                 [% INCLUDE 'admin-menu.inc' %]
335             </aside>
336         </div> <!-- /.col-sm-2.col-sm-pull-10 -->
337      </div> <!-- /.row -->
338
339 [% MACRO jsinclude BLOCK %]
340     [% Asset.js("js/admin-menu.js") | $raw %]
341
342     <script>
343         function update_regex_block(){
344             if ( $("#split_routine option:selected").val() == 'RegEx' ) {
345                 $("#regex_block").show();
346                 $("#split_regex").attr('required', 'required');
347             } else {
348                 $("#regex_block").hide();
349                 $("#split_regex").removeAttr('required');
350             }
351         };
352         $(document).ready(function(){
353             update_regex_block();
354             $("#split_routine").on("change", function(){
355                 update_regex_block();
356             });
357
358             $(".delete_class_source").on("click", function(e){
359                 return confirm(_("Are you sure you want to delete this class source?"));
360             });
361             $(".delete_sort_rule").on("click", function(e){
362                 return confirm(_("Are you sure you want to delete this filing rule?"));
363             });
364             $(".delete_split_rule").on("click", function(e){
365                 return confirm(_("Are you sure you want to delete this splitting rule?"));
366             });
367         });
368
369     </script>
370 [% END %]
371 [% INCLUDE 'intranet-bottom.inc' %]