Bug 11844: Use additional fields for order lines
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / admin / additional-fields.tt
1 [% USE AuthorisedValues %]
2 [% USE raw %]
3 [% SET footerjs = 1 %]
4 [% INCLUDE 'doc-head-open.inc' %]
5 <title>
6     [% SWITCH op %]
7         [% CASE 'add_form' %][% IF field %]Modify additional field '[% field.name | html %]'[% ELSE %]Add additional field[% END %]
8         [% CASE %]Manage additional fields
9     [% END %] &rsaquo; Administration &rsaquo; Koha
10 </title>
11 [% INCLUDE 'doc-head-close.inc' %]
12 </head>
13
14 [% marcfield_tables = ['subscription', 'aqorders'] %]
15 [% searchable_tables = ['subscription', 'aqbasket', 'aqinvoices'] %]
16 [% show_marcfield = marcfield_tables.grep('^' _ tablename _ '$').size ? 1 : 0 %]
17 [% show_searchable = searchable_tables.grep('^' _ tablename _ '$').size ? 1 : 0 %]
18
19 <body id="ser_add_fields" class="ser">
20     [% WRAPPER 'header.inc' %]
21     [% INCLUDE 'cat-search.inc' %]
22 [% END %]
23
24 [% WRAPPER 'sub-header.inc' %]
25     [% WRAPPER breadcrumbs %]
26         [% WRAPPER breadcrumb_item %]
27             <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
28         [% END %]
29         [% SWITCH op %]
30             [% CASE 'add_form' %]
31                 [% WRAPPER breadcrumb_item %]
32                     <a href="/cgi-bin/koha/admin/additional-fields.pl">Manage additional fields</a>
33                 [% END %]
34                 [% IF field %]
35                     [% WRAPPER breadcrumb_item bc_active= 1 %]
36                         <span>Modify field '[% field.name | html %]'</span>
37                     [% END %]
38                 [% ELSE %]
39                     [% WRAPPER breadcrumb_item bc_active= 1 %]
40                         <span>Add field</span>
41                     [% END %]
42                 [% END %]
43
44             [% CASE 'list' %]
45                 [% WRAPPER breadcrumb_item %]
46                     <a href="/cgi-bin/koha/admin/additional-fields.pl">Manage additional fields</a>
47                 [% END %]
48                 [% WRAPPER breadcrumb_item bc_active= 1 %]
49                     <span>Modify fields for '[% tablename | html %]'</span>
50                 [% END %]
51
52             [% CASE %]
53                 [% WRAPPER breadcrumb_item bc_active= 1 %]
54                     <span>Manage additional fields</span>
55                 [% END %]
56
57         [% END %]
58     [% END #/ WRAPPER breadcrumbs %]
59 [% END #/ WRAPPER sub-header.inc %]
60
61 <div class="main container-fluid">
62     <div class="row">
63         <div class="col-sm-10 col-sm-push-2">
64             <main>
65
66     [% IF op == 'list' %]
67         <div id="toolbar" class="btn-toolbar">
68             <a class="btn btn-default" id="newfields" href="?op=add_form&amp;tablename=[% tablename | uri %]"><i class="fa fa-plus"></i> Create field</a>
69         </div>
70     [% END %]
71
72     [% IF messages %]
73         [% FOR message IN messages %]
74             [% IF message.code == 'insert' %]
75                 [% IF message.number > 0 %]
76                     <div class="dialog message">The field has been inserted</div>
77                 [% ELSE %]
78                     <div class="dialog alert">The field could not be inserted. Perhaps the name already exists?</div>
79                 [% END %]
80             [% ELSIF message.code == 'update' %]
81                 [% IF message.number > 0 %]
82                     <div class="dialog message">The field has been updated</div>
83                 [% ELSE %]
84                     <div class="dialog alert">The field could not be updated. Perhaps the name already exists?</div>
85                 [% END %]
86             [% ELSIF message.code == 'delete' %]
87                 [% IF message.number > 0 %]
88                     <div class="dialog message">The field has been deleted</div>
89                 [% ELSE %]
90                     <div class="dialog alert">The field could not be deleted. Check the log for errors.</div>
91                 [% END %]
92             [% END %]
93         [% END %]
94     [% END %]
95
96     [% IF op == 'list_tables' %]
97         [% IF CAN_user_acquisitions_order_manage || CAN_user_serials_edit_subscription || CAN_user_updatecharges_remaining_permissions %]
98         <h1>Additional fields</h1>
99
100         <div class="page-section">
101             <p>Select a table:</p>
102             [% BLOCK table_option %]
103                 <li><a href="?tablename=[% value | uri %]">[% content | $raw %] (<span class="ex">[% value | html %]</span>)</a></li>
104             [% END %]
105             <ul>
106                 [% IF CAN_user_acquisition_order_manage %]
107                     [% WRAPPER table_option value="aqbasket" %]<span>Order baskets</span>[% END %]
108                     [% WRAPPER table_option value="aqorders" %]<span>Order lines</span>[% END %]
109                 [% END %]
110                 [% IF CAN_user_acquisition_edit_invoices %]
111                     [% WRAPPER table_option value="aqinvoices" %]<span>Invoices</span>[% END %]
112                 [% END %]
113                 [% IF CAN_user_serials_edit_subscription %]
114                     [% WRAPPER table_option value="subscription" %]<span>Subscriptions</span>[% END %]
115                 [% END %]
116                 [% IF CAN_user_updatecharges_remaining_permissions %]
117                     [% WRAPPER table_option value="accountlines:credit" %]Account lines (credit)[% END %]
118                     [% WRAPPER table_option value="accountlines:debit" %]Account lines (debit)[% END %]
119                 [% END %]
120             </ul>
121             [% ELSE %]
122                 Additional permissions are required for editing additional fields
123             [% END %]
124         </div><!-- /.page-section -->
125     [% ELSIF op == 'list' %]
126         <h1>Additional fields for '[% tablename | html %]'</h1>
127         [% IF fields %]
128             <div class="page-section">
129                 <table id="fieldst">
130                     <thead>
131                         <tr>
132                             <th>Name</th>
133                             <th>Authorized value category</th>
134                             [% IF show_marcfield %]
135                                 <th>MARC field</th>
136                                 <th>MARC field mode</th>
137                             [% END %]
138                             [% IF show_searchable %]
139                                 <th>Searchable</th>
140                             [% END %]
141                             <th class="noExport">Actions</th>
142                         </tr>
143                     </thead>
144                     <tbody>
145                         [% FOR field IN fields %]
146                             <tr>
147                                 <td>[% field.name | html %]</td>
148                                 <td>[% field.authorised_value_category | html %]</td>
149                                 [% IF show_marcfield %]
150                                     <td>[% field.marcfield | html %]</td>
151                                     <td>
152                                         [% SWITCH field.marcfield_mode %]
153                                             [% CASE 'get' %]Get value from MARC record
154                                             [% CASE 'set' %]Save value to MARC record
155                                         [% END %]
156                                     </td>
157                                 [% END %]
158                                 [% IF show_searchable %]
159                                     <td>
160                                         [% IF field.searchable %]Yes[% ELSE %]No[% END %]
161                                     </td>
162                                 [% END %]
163                                 <td class="actions">
164                                     <a class="btn btn-default btn-xs" href="?op=add_form&amp;field_id=[% field.id | html %]"><i class="fa fa-pencil"></i> Edit</a>
165                                     <a class="confirmdelete btn btn-default btn-xs" href="?op=delete&amp;field_id=[% field.id | uri %]&amp;tablename=[% tablename | uri %]"><i class="fa fa-trash"></i> Delete</a>
166                                 </td>
167                             </tr>
168                         [% END %]
169                     </tbody>
170                 </table>
171             </div><!-- /.page-section -->
172         [% ELSE %]
173             [% IF tablename %]There are no additional fields defined for this table.[% END %]
174         [% END %]
175     [% ELSIF op == 'add_form' %]
176         [% IF field %]
177             <h1>Modify field</h1>
178         [% ELSE %]
179             <h1>Add field</h1>
180         [% END %]
181         <form action="" name="add_form" id="add_field" method="post">
182             <fieldset class="rows">
183                 <ol>
184                     <li>
185                         <label for="name" class="required">Name: </label>
186                         <input type="text" name="name" id="name" value="[% field.name | html %]" class="required focus" required="required" />
187                         <span class="required">Required</span>
188                     </li>
189                     <li>
190                         <label for="av">Authorized value category: </label>
191                         <select id="av" name="authorised_value_category">
192                             <option value="">None</option>
193                             [% PROCESS options_for_authorised_value_categories authorised_value_categories = AuthorisedValues.GetCategories({selected => field.authorised_value_category}) %]
194                         </select>
195                     </li>
196                     [% IF show_marcfield %]
197                         <li>
198                             <label for="marcfield">MARC field: </label>
199                             <input type="text" name="marcfield" id="marcfield" value="[% field.marcfield | html %]" />
200                         </li>
201                         <li>
202                             <label for="marcfield_mode">MARC field mode: </label>
203                             <select id="marcfield_mode" name="marcfield_mode">
204                                 [% IF field.marcfield_mode == 'get' %]
205                                     <option value="get" selected>Get value from MARC record (not modifiable)</option>
206                                 [% ELSE %]
207                                     <option value="get">Get value from MARC record (not modifiable)</option>
208                                 [% END %]
209
210                                 [% IF field.marcfield_mode == 'set' %]
211                                     <option value="set" selected>Save value to MARC record</option>
212                                 [% ELSE %]
213                                     <option value="set">Save value to MARC record</option>
214                                 [% END %]
215                             </select>
216                         </li>
217                     [% END %]
218                     [% IF show_searchable %]
219                         <li>
220                             <label for="searchable">Searchable: </label>
221                             [% IF field.searchable %]
222                                 <input type="checkbox" name="searchable" id="searchable" checked="checked" />
223                             [% ELSE %]
224                                 <input type="checkbox" name="searchable" id="searchable" />
225                             [% END %]
226                         </li>
227                     [% END %]
228                 </ol>
229             </fieldset>
230             <fieldset class="action">
231                 [% IF field %]
232                     <input type="hidden" name="field_id" value="[% field.id | html %]" />
233                 [% END %]
234                 <input type="hidden" name="tablename" value="[% tablename | html %]" />
235                 <input type="hidden" name="op" value="add" />
236                 <input type="submit" class="btn btn-primary" value="Save" />
237                 <a href="?tablename=[% tablename | uri %]" class="cancel">Cancel</a>
238             </fieldset>
239         </form>
240     [% END %]
241
242             </main>
243         </div> <!-- /.col-sm-10.col-sm-push-2 -->
244
245         <div class="col-sm-2 col-sm-pull-10">
246             <aside>
247                 [% INCLUDE 'admin-menu.inc' %]
248             </aside>
249         </div> <!-- /.col-sm-2.col-sm-pull-10 -->
250     </div> <!-- /.row -->
251
252
253 [% MACRO jsinclude BLOCK %]
254     [% INCLUDE "datatables.inc" %]
255     <script>
256         $(document).ready(function(){
257             $('#selecttable').find(":submit").hide();
258             $('#selecttable select').change(function() {
259                 $('#selecttable').submit();
260             });
261
262             $("#fieldst").dataTable($.extend(true, {}, dataTablesDefaults, {
263                 'bAutoWidth': false,
264                 'sDom': 't<"bottom pager"ilpf>',
265                 'sPaginationType': 'full',
266                 'aLengthMenu': [[10, 20, 50, 100, -1], [10, 20, 50, 100, "All"]],
267                 'iDisplayLength': 20,
268                 'aaSorting': [[ 0, "asc" ]],
269             }));
270
271             $(".confirmdelete").click(function(){
272                 return confirm(_("Are you sure you want to delete this field?"));
273             });
274
275             $("#add_field").on('submit', function() {
276                 if ( $("#marcfield").length && $("select[name='authorised_value_category']").length ) {
277                     if ( $("#marcfield").val().length > 0
278                         && $("select[name='authorised_value_category']" ).val().length > 0 ) {
279                         alert(_("You cannot select an authorised value category and a MARC field") );
280                         return false;
281                     }
282                 }
283                 return true;
284             });
285         });
286     </script>
287 [% END %]
288
289 [% INCLUDE 'intranet-bottom.inc' %]