4 [% USE TablesSettings %]
6 [% INCLUDE 'doc-head-open.inc' %]
7 <title>MARC modification templates › Cataloging › Koha</title>
8 [% INCLUDE 'doc-head-close.inc' %]
22 <body id="tools_marc_modification_templates" class="tools">
23 [% WRAPPER 'header.inc' %]
24 [% INCLUDE 'cat-search.inc' %]
27 [% IF ( TemplatesLoop ) %]
28 [% FOREACH TemplatesLoo IN TemplatesLoop %]
29 [% IF ( TemplatesLoo.selected ) %]
30 [% SET template_name = TemplatesLoo.name %]
35 [% WRAPPER 'sub-header.inc' %]
36 [% WRAPPER breadcrumbs %]
37 [% WRAPPER breadcrumb_item %]
38 <a href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cataloging</a>
41 [% IF ( template_name ) %]
42 [% WRAPPER breadcrumb_item %]
43 <a href="/cgi-bin/koha/tools/marc_modification_templates.pl">MARC modification templates</a>
45 [% WRAPPER breadcrumb_item bc_active= 1 %]
46 [% template_name | html %]
49 [% WRAPPER breadcrumb_item bc_active= 1 %]
50 <span>MARC modification templates</span>
53 [% END #/ WRAPPER breadcrumbs %]
54 [% END #/ WRAPPER sub-header.inc %]
56 <div class="main container-fluid">
58 <div class="col-sm-10 col-sm-push-2">
61 <div id="toolbar" class="btn-toolbar">
62 <a href="#" data-toggle="modal" data-template_id="" data-target="#createTemplate" id="new_template" class="btn btn-default duplicate_template"><i class="fa fa-plus"></i> New template</a>
63 [% IF ( template_id != '' ) %]
64 <a href="#" class="btn btn-default new_action"><i class="fa fa-plus"></i> New action</a>
65 <a class="btn btn-default delete_template" href="/cgi-bin/koha/tools/marc_modification_templates.pl?template_id=[% template_id | html %]&op=delete_template"><i class="fa fa-fw fa-trash-can"></i> Delete template</a>
70 [% IF error == 'no_from_field' %]
71 <div class="dialog message">Error: no field value specified.</div>
75 [% IF ( TemplatesLoop ) %]
77 [% IF ( template_id == '' ) %]
79 <h1>MARC modification templates [% template_id | html %]</h1>
81 <div class="page-section">
82 <table id="templatest">
87 <th class="NoSort noExport">Actions</th>
91 [% FOREACH TemplatesLoo IN TemplatesLoop %]
93 <td>[% TemplatesLoo.template_id | html %]</td>
94 <td>[% TemplatesLoo.name | html %]</td>
96 <a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/marc_modification_templates.pl?template_id=[% TemplatesLoo.template_id | html %]&op=select_template" ><i class="fa fa-fw fa-pencil-alt"></i> Edit actions</a>
97 <a class="btn btn-default btn-xs duplicate_template" href="#" data-toggle="modal" data-template_id="[% TemplatesLoo.template_id | html %]" data-target="#createTemplate"><i class="fa fa-fw fa-copy"></i> Duplicate</a>
98 <a class="btn btn-default btn-xs delete_template" href="/cgi-bin/koha/tools/marc_modification_templates.pl?template_id=[% TemplatesLoo.template_id | html %]&op=delete_template"><i class="fa fa-fw fa-trash-can"></i> Delete</a>
104 </div> <!-- /.page-section -->
108 <h1>Actions for <em>[% template_name | html %]</em></h1>
110 [% IF ( ActionsLoop ) %]
111 <div class="page-section">
112 <table id="template_actions" class="template_actions">
115 <th>Change order</th>
124 [% FOREACH ActionsLoo IN ActionsLoop %]
127 <a title="Move action up" href="marc_modification_templates.pl?op=move_action&where=up&template_id=[% ActionsLoo.template_id | html %]&mmta_id=[% ActionsLoo.mmta_id | html %]">
128 <i class="fa fa-arrow-up fa-lg order-control"></i>
131 <a title="Move action to top" href="marc_modification_templates.pl?op=move_action&where=top&template_id=[% ActionsLoo.template_id | html %]&mmta_id=[% ActionsLoo.mmta_id | html %]">
132 <i class="fa fa-arrow-up fa-lg overline order-control"></i>
135 <a title="Move action to bottom" href="marc_modification_templates.pl?op=move_action&where=bottom&template_id=[% ActionsLoo.template_id | html %]&mmta_id=[% ActionsLoo.mmta_id | html %]">
136 <i class="fa fa-arrow-down fa-lg underline order-control"></i>
139 <a title="Move action down" href="marc_modification_templates.pl?op=move_action&where=down&template_id=[% ActionsLoo.template_id | html %]&mmta_id=[% ActionsLoo.mmta_id | html %]">
140 <i class="fa fa-arrow-down fa-lg order-control"></i>
144 <td>[% ActionsLoo.ordering | html %]</td>
146 [% IF ( ActionsLoo.action_delete_field ) %] <span>Delete</span> [% END %]
147 [% IF ( ActionsLoo.action_add_field ) %] <span>Add new</span> [% END %]
148 [% IF ( ActionsLoo.action_update_field ) %] <span>Update existing or add new</span> [% END %]
149 [% IF ( ActionsLoo.action_move_field ) %] <span>Move</span> [% END %]
150 [% IF ( ActionsLoo.action_copy_field ) %] <span>Copy</span> [% END %]
151 [% IF ( ActionsLoo.action_copy_and_replace_field ) %] <span>Copy and replace</span> [% END %]
153 [% UNLESS ( ActionsLoo.action_update_field ) %]
154 [% IF ( ActionsLoo.field_number ) %]
161 [% ActionsLoo.from_field | html %][% IF ( ActionsLoo.from_subfield.length ) %]$[% ActionsLoo.from_subfield | html %][% END %]
163 [% IF ( ActionsLoo.field_value ) %]
164 <span>with value</span> <em>[% ActionsLoo.field_value | html %]</em>
167 [% IF ( ActionsLoo.to_field ) %]
168 <span>to</span> [% ActionsLoo.to_field | html %][% IF ( ActionsLoo.to_subfield.length ) %]$[% ActionsLoo.to_subfield | html %][% END %]
170 [% IF ( ActionsLoo.to_regex_search ) %]
171 <span>using RegEx</span> s<strong>/[% ActionsLoo.to_regex_search | html %]/[% ActionsLoo.to_regex_replace | html %]/[% ActionsLoo.to_regex_modifiers | html %]</strong>
175 [% IF ( ActionsLoo.conditional ) %]
176 [% IF ( ActionsLoo.conditional_if ) %] <span>if</span> [% END %]
177 [% IF ( ActionsLoo.conditional_unless ) %] <span>unless</span> [% END %]
179 [% ActionsLoo.conditional_field | html %][% IF ( ActionsLoo.conditional_subfield.length ) %]$[% ActionsLoo.conditional_subfield | html %][% END %]
181 [% IF ( ActionsLoo.conditional_comparison_exists ) %] <span>exists</span> [% END %]
182 [% IF ( ActionsLoo.conditional_comparison_not_exists ) %] <span>does not exist</span> [% END %]
183 [% IF ( ActionsLoo.conditional_comparison_equals ) %] <span>matches</span> [% END %]
184 [% IF ( ActionsLoo.conditional_comparison_not_equals ) %] <span>does not match</span> [% END %]
186 [% IF ( ActionsLoo.conditional_regex ) %] <span>RegEx</span> m/[% END %]<strong>[% ActionsLoo.conditional_value | html %]</strong>[% IF ( ActionsLoo.conditional_regex ) %]/[% END %]
189 <td>[% ActionsLoo.description | html %]</td>
191 <a class="btn btn-default btn-xs edit_action" href="#modaction" data-mmta_id="[% ActionsLoo.mmta_id | html %]"><i class="fa fa-pencil-alt"></i> Edit</a>
194 <a class="btn btn-default btn-xs" href="marc_modification_templates.pl?template_id=[% ActionsLoo.template_id | html %]&op=delete_action&mmta_id=[% ActionsLoo.mmta_id | html %]" onclick="return confirmDeleteAction();"><i class="fa fa-trash-can"></i> Delete</a>
197 [% END # /FOREACH ActionsLoo %]
200 </div> <!-- /.page-section -->
202 <div class="dialog message" id="no_defined_actions">
203 <p>There are no defined actions for this template.</p>
204 <p><a href="#" class="btn btn-default approve new_action"><i class="fa fa-plus" aria-hidden="true"></i> New action</a></p>
206 [% END # /IF ActionsLoop %]
208 <form method="post" action="/cgi-bin/koha/tools/marc_modification_templates.pl" id="add_action" >
209 <a name="modaction"></a>
211 <legend id="modaction_legend">Add a new action</legend>
212 <div id="warning_multivalued" style="color:red; display:none;">You have chosen a condition on the same field as the original field. If your records contain multivalued fields it is highly recommended not to do that.</div>
214 <div class="action_line">
215 <select name="action" id="action" onchange="onActionChange(this);">
216 <option value="delete_field">Delete</option>
217 <option value="add_field">Add new</option>
218 <option value="update_field">Update existing or add new</option>
219 <option value="move_field">Move</option>
220 <option value="copy_field">Copy</option>
221 <option value="copy_and_replace_field">Copy and replace</option>
224 <span id="field_number_block">
225 <select name="field_number" id="field_number">
226 <option value="0">All</option>
227 <option value="1">1st</option>
231 field(s) <input type="text" name="from_field" id="from_field" size="3" maxlength="3" /> <input type="text" name="from_subfield" id="from_subfield" size="1" maxlength="1" title="let blank for the entire field" />
233 <span name="with_value_block" id="with_value_block" style="display:none;">
234 with value <input type="text" name="field_value" id="field_value" />
237 <span name="to_field_block" id="to_field_block" style="display:none;">
238 to field <input type="text" name="to_field" id="to_field" size="3" maxlength="3" /> <input type="text" name="to_subfield" id="to_subfield" size="1" maxlength="1" title="let blank for the entire field" />
240 <span name="to_field_regex_block" id="to_field_regex_block">
242 <label for="to_field_regex">RegEx</label>
243 <input type="checkbox" name="to_field_regex" id="to_field_regex" onchange="onToFieldRegexChange(this);" />
245 <span name="to_field_regex_value_block" id="to_field_regex_value_block" style="display:none;">
246 s/<input type="text" name="to_regex_search" id="to_regex_search" placeholder="regex pattern" />/<input type="text" name="to_regex_replace" id="to_regex_replace" placeholder="regex replacement" />/<input type="text" name="to_regex_modifiers" id="to_regex_modifiers" placeholder="ig" size="3" />
253 <div class="action_line">
254 <select name="conditional" id="conditional" onchange="onConditionalChange(this);">
255 <option value="" selected="selected" />
256 <option value="if">if</option>
257 <option value="unless">unless</option>
260 <span name="conditional_block" id="conditional_block" style="display:none;">
261 field <input type="text" name="conditional_field" id="conditional_field" size="3" maxlength="3" /> <input type="text" name="conditional_subfield" id="conditional_subfield" size="1" maxlength="1" />
263 <select name="conditional_comparison" id="conditional_comparison" onchange="onConditionalComparisonChange(this);">
265 <option value="exists">exists</option>
266 <option value="not_exists">doesn't exist</option>
267 <option value="equals">matches</option>
268 <option value="not_equals">doesn't match</option>
271 <span name="conditional_comparison_block" id="conditional_comparison_block" style="display:none;">
273 <span class="match_regex_prefix">m/</span><input type="text" id="conditional_value" name="conditional_value" /><span class="match_regex_suffix">/</span>
276 <label for="conditional_regex">RegEx</label>
277 <input type="checkbox" name="conditional_regex" id="conditional_regex" onchange="onConditionalRegexChange(this);" />
284 <div class="action_line">
285 <label for="description">Description:</label>
286 <input type="text" name="description" id="description" size="60" />
289 <fieldset class="action">
290 <input type="hidden" name="template_id" value="[% template_id | html %]" />
291 <input type="hidden" name="mmta_id" id="mmta_id" />
292 <input type="hidden" name="op" value="add_action" />
293 <input type="submit" id="action_submit" class="btn btn-primary" value="Add action" />
294 <a href="#modaction" class="cancel" id="cancel_edit" onclick="cancelEditAction();">Cancel</a>
303 <h1>MARC modification templates</h1>
304 <div class="dialog message">
305 <p>There are no defined templates. Please create a template first.</p>
306 <a href="#" data-toggle="modal" data-target="#createTemplate" class="btn btn-default"><i class="fa fa-plus" aria-hidden="true"></i> Create a new template</a>
308 [% END # /IF TemplatesLoop %]
310 <!-- Modal to create new template -->
311 <div class="modal" id="createTemplate" tabindex="-1" role="dialog" aria-labelledby="LabelcreateTemplate" aria-hidden="true">
312 <div class="modal-dialog">
313 <div class="modal-content">
314 <div class="modal-header">
315 <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
316 <h2 id="LabelcreateTemplate">Create a new template</h2>
318 <form method="post" action="/cgi-bin/koha/tools/marc_modification_templates.pl" id="add_template" class="validated">
319 <div class="modal-body">
322 <label for="template_name" class="required">Name: </label>
323 <input name="template_name" id="template_name" type="text" size="30" required="required" class="required" />
324 <span class="required">Required</span>
327 <input type="hidden" name="op" value="create_template" />
330 <label for="duplicate_a_template">Duplicate a template:</label>
331 <select name="template_id" id="duplicate_a_template">
332 <option value=""> -- None --</option>
333 [% FOREACH TemplatesLoo IN TemplatesLoop %]
334 <option value="[% TemplatesLoo.template_id | html %]"> [% TemplatesLoo.name | html %]</option>
337 <input type="hidden" name="duplicate_current_template" id="duplicate_current_template" />
341 <div class="modal-footer">
342 <button type="submit" class="btn btn-default">Submit</button>
343 <button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button>
351 </div> <!-- /.col-sm-10.col-sm-push-2 -->
353 <div class="col-sm-2 col-sm-pull-10">
355 [% INCLUDE 'cat-menu.inc' %]
357 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
358 </div> <!-- /.row -->
360 [% MACRO jsinclude BLOCK %]
361 [% INCLUDE 'datatables.inc' %]
362 [% INCLUDE 'columns_settings.inc' %]
364 table_settings = [% TablesSettings.GetTableSettings('tools', 'marc-modification-templates', 'templatest', 'json') | $raw %];
366 var mmtas = [% ActionsLoop.json | $raw %]
369 [% Asset.js("js/marc_modification_templates.js") | $raw %]
372 [% INCLUDE 'intranet-bottom.inc' %]