+[% USE raw %]
+[% USE JSON.Escape %]
+[% USE Asset %]
+[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Tools › MARC modification templates</title>
[% INCLUDE 'doc-head-close.inc' %]
-
-<script type="text/javascript">
-//<![CDATA[
-$(document).ready(function() {
- $('#select_template').find("input:submit").hide();
- $('#select_template').change(function() {
- $('#select_template').submit();
- });
- $("span.match_regex_prefix" ).hide();
- $("span.match_regex_suffix" ).hide();
-});
-//]]>
-</script>
-
-<script>
-function onActionChange(selectObj) {
- // get the index of the selected option
- var idx = selectObj.selectedIndex;
-
- // get the value of the selected option
- var action = selectObj.options[idx].value;
-
- switch( action ) {
- case 'delete_field':
- show('field_number_block');
- hide('with_value_block');
- hide('to_field_block');
- break;
-
- case 'update_field':
- hide('field_number_block');
- show('with_value_block');
- hide('to_field_block');
- break;
-
- case 'move_field':
- show('field_number_block');
- hide('with_value_block');
- show('to_field_block');
- break;
-
- case 'copy_field':
- show('field_number_block');
- hide('with_value_block');
- show('to_field_block');
- break;
-
- }
-}
-
-function onConditionalChange(selectObj) {
- // get the index of the selected option
- var idx = selectObj.selectedIndex;
-
- // get the value of the selected option
- var action = selectObj.options[idx].value;
-
- switch( action ) {
- case '':
- hide('conditional_block');
- break;
-
- case 'if':
- case 'unless':
- show('conditional_block');
- break;
- }
-}
-
-function onConditionalComparisonChange(selectObj) {
- // get the index of the selected option
- var idx = selectObj.selectedIndex;
-
- // get the value of the selected option
- var action = selectObj.options[idx].value;
-
- switch( action ) {
- case 'equals':
- case 'not_equals':
- show('conditional_comparison_block');
- break;
-
- default:
- hide('conditional_comparison_block');
- break;
- }
-}
-
-function onToFieldRegexChange( checkboxObj ) {
- if ( checkboxObj.checked ) {
- show('to_field_regex_value_block');
- } else {
- hide('to_field_regex_value_block');
- }
-}
-
-function onConditionalRegexChange( checkboxObj ) {
- if ( checkboxObj.checked ) {
- $("span.match_regex_prefix" ).show();
- $("span.match_regex_suffix" ).show();
- } else {
- $("span.match_regex_prefix" ).hide();
- $("span.match_regex_suffix" ).hide();
- }
-}
-
-function show(eltId) {
- elt = document.getElementById( eltId );
- elt.style.display='inline';
-}
-
-function hide(eltId) {
- clearFormElements( eltId );
- elt = document.getElementById( eltId );
- elt.style.display='none';
-}
-
-function clearFormElements(divId) {
- myBlock = document.getElementById( divId );
-
- var inputElements = myBlock.getElementsByTagName( "input" );
- for (var i = 0; i < inputElements.length; i++) {
- switch( inputElements[i].type ) {
- case "text":
- inputElements[i].value = '';
- break;
- case "checkbox":
- inputElements[i].checked = false;
- break;
- }
- }
-
- var selectElements = myBlock.getElementsByTagName( "select" );
- for (var i = 0; i < selectElements.length; i++) {
- selectElements[i].selectedIndex = 0;
- }
-
-}
-
-function confirmDelete() {
- var agree = confirm(_("Are you sure you wish to delete this template?"));
- return agree;
-}
-
-var modaction_legend_innerhtml;
-var action_submit_value;
-
-function editAction( mmta_id, ordering, action, field_number, from_field, from_subfield, field_value, to_field,
- to_subfield, to_regex_search, to_regex_replace, to_regex_modifiers, conditional, conditional_field, conditional_subfield,
- conditional_comparison, conditional_value, conditional_regex, description
-) {
- document.getElementById('mmta_id').value = mmta_id;
-
- setSelectByValue( 'action', action );
- document.getElementById('action').onchange();
-
- setSelectByValue( 'field_number', field_number );
-
- document.getElementById('from_field').value = from_field;
- document.getElementById('from_subfield').value = from_subfield;
- document.getElementById('field_value').value = field_value;
- document.getElementById('to_field').value = to_field;
- document.getElementById('to_subfield').value = to_subfield;
- $("#to_regex_search").val(to_regex_search);
- $("#to_regex_replace").val(to_regex_replace);
- $("#to_regex_modifiers").val(to_regex_modifiers);
-
- document.getElementById('to_field_regex').checked = conditional_regex.length;
- document.getElementById('to_field_regex').onchange();
-
- setSelectByValue( 'conditional', conditional );
- document.getElementById('conditional').onchange();
-
- document.getElementById('conditional_field').value = conditional_field;
- document.getElementById('conditional_subfield').value = conditional_subfield;
-
- setSelectByValue( 'conditional_comparison', conditional_comparison );
- document.getElementById('conditional_comparison').onchange();
-
- document.getElementById('conditional_value').value = conditional_value;
-
- document.getElementById('conditional_regex').checked = parseInt( conditional_regex );
-
- document.getElementById('description').value = description;
-
- window.modaction_legend_innerhtml = document.getElementById('modaction_legend').innerhtml;
- document.getElementById('modaction_legend').innerhtml = _("Edit action") + ordering;
-
- window.action_submit_value = document.getElementById('action_submit').value;
- document.getElementById('action_submit').value = _("Update action");
-
- show('cancel_edit');
-}
-
-function cancelEditAction() {
- document.getElementById('mmta_id').value = '';
-
- setSelectByValue( 'action', 'delete_field' );
- document.getElementById('action').onchange();
-
- document.getElementById('from_field').value = '';
- document.getElementById('from_subfield').value = '';
- document.getElementById('field_value').value = '';
- document.getElementById('to_field').value = '';
- document.getElementById('to_subfield').value = '';
- $("#to_regex_search").val("");
- $("#to_regex_replace").val("");
- $("#to_regex_modifiers").val("");
-
- document.getElementById('to_field_regex').checked = false;
- document.getElementById('to_field_regex').onchange();
-
- setSelectByValue( 'conditional', '' );
- document.getElementById('conditional').onchange();
-
- document.getElementById('conditional_field').value = '';
- document.getElementById('conditional_subfield').value = '';
-
- setSelectByValue( 'conditional_comparison', '' );
- document.getElementById('conditional_comparison').onchange();
-
- document.getElementById('conditional_value').value = '';
-
- document.getElementById('conditional_regex').checked = false;
-
- document.getElementById('modaction_legend').innerhtml = window.modaction_legend_innerhtml;
- document.getElementById('action_submit').value = window.action_submit_value;
-
- hide('cancel_edit');
-}
-
-function setSelectByValue( selectId, value ) {
- s = document.getElementById( selectId );
-
- for ( i = 0; i < s.options.length; i++ ) {
- if ( s.options[i].value == value ) {
- s.selectedIndex = i;
- }
- }
-}
-
-</script>
-
+<style>
+ #add_action { display: none; }
+</style>
</head>
-<body>
+<body id="tools_marc_modification_templates" class="tools">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> › MARC modification templates</div>
+[% IF ( TemplatesLoop ) %]
+ [% FOREACH TemplatesLoo IN TemplatesLoop %]
+ [% IF ( TemplatesLoo.selected ) %]
+ [% SET template_name = TemplatesLoo.name %]
+ [% END %]
+ [% END %]
+[% END %]
+
+<div id="breadcrumbs">
+ <a href="/cgi-bin/koha/mainpage.pl">Home</a> ›
+ <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> ›
+ [% IF ( template_name ) %]
+ <a href="/cgi-bin/koha/tools/marc_modification_templates.pl">MARC modification templates</a>
+ › [% template_name | html %]
+ [% ELSE %]
+ MARC modification templates
+ [% END %]
+</div>
+
+<div class="main container-fluid">
+ <div class="row">
+ <div class="col-sm-10 col-sm-push-2">
+ <main>
+
+ <div id="toolbar" class="btn-toolbar">
+ <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>
+ [% IF ( template_id != '' ) %]
+ <a href="#" id="new_action" class="btn btn-default"><i class="fa fa-plus"></i> New action</a>
+ [% END %]
+ </div>
-<div id="doc3" class="yui-t2">
- <div id="bd">
- <div id="yui-main">
- <div class="yui-b">
- <h2>MARC modification templates</h2>
-
[% IF error %]
[% IF error == 'no_from_field' %]
<div class="dialog message">Error: no field value specified.</div>
[% IF ( TemplatesLoop ) %]
- <form method="get" action="/cgi-bin/koha/tools/marc_modification_templates.pl" id="select_template">
- <label for="select_template">Template: </label>
- <select name="template_id" id="select_template" style="width:20em;">
- [% FOREACH TemplatesLoo IN TemplatesLoop %]
- [% IF ( TemplatesLoo.selected ) %]
- <option value="[% TemplatesLoo.template_id %]" selected="selected"> [% TemplatesLoo.name %]</option>
- [% ELSE %]
- <option value="[% TemplatesLoo.template_id %]"> [% TemplatesLoo.name %]</option>
- [% END %]
- [% END %]
- </select>
- <input type="hidden" name="op" value="select_template">
- <input type="submit" value="Go" />
- </form>
-
- <form method="get" action="/cgi-bin/koha/tools/marc_modification_templates.pl" id="delete_template">
- <input type="hidden" name="template_id" value="[% template_id %]" />
- <input type="hidden" name="op" value="delete_template">
- <input type="submit" value="Delete template" onClick="return confirmDelete()" />
- </form>
-
+ [% IF ( template_id == '' ) %]
- [% IF ( ActionsLoop ) %]
- <table>
- <caption>Actions for this template</caption>
+ <h2>MARC modification templates [% template_id | html %]</h2>
- <tr>
- <th>Change order</th>
- <th>Order</th>
- <th>Action</th>
- <th>Description</th>
- <th> </th>
- <th> </th>
- </tr>
-
- [% FOREACH ActionsLoo IN ActionsLoop %]
+ <table id="templatest">
+ <thead>
<tr>
- <td style="white-space:nowrap;">
- <a title="Move action up" href="marc_modification_templates.pl?op=move_action&where=up&template_id=[% ActionsLoo.template_id %]&mmta_id=[% ActionsLoo.mmta_id %]">
- <img src="[% interface %]/[% theme %]/img/go-up.png" border="0" alt="Go up" />
- </a>
-
- <a title="Move action to top" href="marc_modification_templates.pl?op=move_action&where=top&template_id=[% ActionsLoo.template_id %]&mmta_id=[% ActionsLoo.mmta_id %]">
- <img src="[% interface %]/[% theme %]/img/go-top.png" border="0" alt="Go top" />
- </a>
-
- <a title="Move action to bottom" href="marc_modification_templates.pl?op=move_action&where=bottom&template_id=[% ActionsLoo.template_id %]&mmta_id=[% ActionsLoo.mmta_id %]">
- <img src="[% interface %]/[% theme %]/img/go-bottom.png" border="0" alt="Go bottom" />
- </a>
-
- <a title="Move action down" href="marc_modification_templates.pl?op=move_action&where=down&template_id=[% ActionsLoo.template_id %]&mmta_id=[% ActionsLoo.mmta_id %]">
- <img src="[% interface %]/[% theme %]/img/go-down.png" border="0" alt="Go down" />
- </a>
- </td>
-
- <td>[% ActionsLoo.ordering %]</td>
- <td>
- [% IF ( ActionsLoo.action_delete_field ) %] Delete [% END %]
- [% IF ( ActionsLoo.action_update_field ) %] Update [% END %]
- [% IF ( ActionsLoo.action_move_field ) %] Move [% END %]
- [% IF ( ActionsLoo.action_copy_field ) %] Copy [% END %]
-
- [% UNLESS ( ActionsLoo.action_update_field ) %]
- [% IF ( ActionsLoo.field_number ) %]
- 1st
- [% END %]
- [% END %]
-
- field
-
- [% ActionsLoo.from_field %][% IF ( ActionsLoo.from_subfield ) %]$[% ActionsLoo.from_subfield %][% END %]
-
- [% IF ( ActionsLoo.field_value ) %]
- with value <i>[% ActionsLoo.field_value %]</i>
- [% END %]
-
- [% IF ( ActionsLoo.to_field ) %]
- to [% ActionsLoo.to_field %][% IF ( ActionsLoo.to_subfield ) %]$[% ActionsLoo.to_subfield %][% END %]
-
- [% IF ( ActionsLoo.to_regex_search ) %]
- using RegEx s<strong>/[% ActionsLoo.to_regex_search %]/[% ActionsLoo.to_regex_replace %]/[% ActionsLoo.to_regex_modifiers %]</strong>
- [% END %]
- [% END %]
-
- [% IF ( ActionsLoo.conditional ) %]
- [% IF ( ActionsLoo.conditional_if ) %] if [% END %]
- [% IF ( ActionsLoo.conditional_unless ) %] unless [% END %]
-
- [% ActionsLoo.conditional_field %][% IF ( ActionsLoo.conditional_subfield ) %]$[% ActionsLoo.conditional_subfield %][% END %]
-
- [% IF ( ActionsLoo.conditional_comparison_exists ) %] exists [% END %]
- [% IF ( ActionsLoo.conditional_comparison_not_exists ) %] does not exist [% END %]
- [% IF ( ActionsLoo.conditional_comparison_equals ) %] matches [% END %]
- [% IF ( ActionsLoo.conditional_comparison_not_equals ) %] does not match [% END %]
-
- [% IF ( ActionsLoo.conditional_regex ) %] RegEx m/[% END %]
- <strong>[% ActionsLoo.conditional_value %]</strong>
- [% IF ( ActionsLoo.conditional_regex ) %]/[% END %]
- [% END %]
- </td>
- <td>[% ActionsLoo.description %]</td>
- <td><a href="#modaction" onclick='editAction(
- "[% ActionsLoo.mmta_id |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.ordering |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.action |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.field_number |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.from_field |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.from_subfield |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.field_value |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.to_field |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.to_subfield |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.to_regex_search |replace('\\\\', '\\\\') |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.to_regex_replace |replace('\\\\', '\\\\') |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.to_regex_modifiers |replace('\\\\', '\\\\') |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.conditional |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.conditional_field |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.conditional_subfield |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.conditional_comparison |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.conditional_value |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.conditional_regex |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
- "[% ActionsLoo.description |replace('\\\\', '\\\\') |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]"
- )'>Edit</a></td>
- <td><a href="marc_modification_templates.pl?template_id=[% ActionsLoo.template_id %]&op=delete_action&mmta_id=[% ActionsLoo.mmta_id %]">Delete</a></td>
+ <th>Template</th>
+ <th>Actions</th>
</tr>
- [% END %]
+ </thead>
+ <tbody>
+ [% FOREACH TemplatesLoo IN TemplatesLoop %]
+ <tr>
+ <td>[% TemplatesLoo.name | html %]</td>
+ <td class="actions">
+ <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"></i> Edit actions</a>
+ <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>
+ <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"></i> Delete</a>
+ </td>
+ </tr>
+ [% END %]
+ </tbody>
</table>
+
[% ELSE %]
- <div class="dialog message"><p>There are no defined actions for this template.</p></div>
- [% END %]
- <form method="post" action="/cgi-bin/koha/tools/marc_modification_templates.pl" id="add_action" >
- <a name="modaction"></a>
- <fieldset>
- <legend id="modaction_legend">Add a new action</legend>
-
- <select name="action" id="action" onchange="onActionChange(this);">
- <option value="delete_field">Delete</option>
- <option value="update_field">Add/Update</option>
- <option value="move_field">Move</option>
- <option value="copy_field">Copy</option>
- </select>
-
- <span id="field_number_block">
- <select name="field_number" id="field_number">
- <option value="0">All</option>
- <option value="1">1st</option>
+ <h2>Actions for <i>[% template_name | html %]</i></h2>
+
+ [% IF ( ActionsLoop ) %]
+
+ <table id="template_actions" class="template_actions">
+ <thead>
+ <tr>
+ <th>Change order</th>
+ <th>Rank</th>
+ <th>Action</th>
+ <th>Description</th>
+ <th> </th>
+ <th> </th>
+ </tr>
+ </thead>
+ <tbody>
+ [% FOREACH ActionsLoo IN ActionsLoop %]
+ <tr>
+ <td class="actions">
+ <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 %]">
+ <i class="fa fa-arrow-up fa-lg order-control"></i>
+ </a>
+
+ <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 %]">
+ <i class="fa fa-arrow-up fa-lg overline order-control"></i>
+ </a>
+
+ <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 %]">
+ <i class="fa fa-arrow-down fa-lg underline order-control"></i>
+ </a>
+
+ <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 %]">
+ <i class="fa fa-arrow-down fa-lg order-control"></i>
+ </a>
+ </td>
+
+ <td>[% ActionsLoo.ordering | html %]</td>
+ <td>
+ [% IF ( ActionsLoo.action_delete_field ) %] Delete [% END %]
+ [% IF ( ActionsLoo.action_add_field ) %] Add new [% END %]
+ [% IF ( ActionsLoo.action_update_field ) %] Update existing or add new [% END %]
+ [% IF ( ActionsLoo.action_move_field ) %] Move [% END %]
+ [% IF ( ActionsLoo.action_copy_field ) %] Copy [% END %]
+ [% IF ( ActionsLoo.action_copy_and_replace_field ) %] Copy and replace [% END %]
+
+ [% UNLESS ( ActionsLoo.action_update_field ) %]
+ [% IF ( ActionsLoo.field_number ) %]
+ 1st
+ [% END %]
+ [% END %]
+
+ field
+
+ [% ActionsLoo.from_field | html %][% IF ( ActionsLoo.from_subfield ) %]$[% ActionsLoo.from_subfield | html %][% END %]
+
+ [% IF ( ActionsLoo.field_value ) %]
+ with value <i>[% ActionsLoo.field_value | html %]</i>
+ [% END %]
+
+ [% IF ( ActionsLoo.to_field ) %]
+ to [% ActionsLoo.to_field | html %][% IF ( ActionsLoo.to_subfield ) %]$[% ActionsLoo.to_subfield | html %][% END %]
+
+ [% IF ( ActionsLoo.to_regex_search ) %]
+ using RegEx s<strong>/[% ActionsLoo.to_regex_search | html %]/[% ActionsLoo.to_regex_replace | html %]/[% ActionsLoo.to_regex_modifiers | html %]</strong>
+ [% END %]
+ [% END %]
+
+ [% IF ( ActionsLoo.conditional ) %]
+ [% IF ( ActionsLoo.conditional_if ) %] if [% END %]
+ [% IF ( ActionsLoo.conditional_unless ) %] unless [% END %]
+
+ [% ActionsLoo.conditional_field | html %][% IF ( ActionsLoo.conditional_subfield ) %]$[% ActionsLoo.conditional_subfield | html %][% END %]
+
+ [% IF ( ActionsLoo.conditional_comparison_exists ) %] exists [% END %]
+ [% IF ( ActionsLoo.conditional_comparison_not_exists ) %] does not exist [% END %]
+ [% IF ( ActionsLoo.conditional_comparison_equals ) %] matches [% END %]
+ [% IF ( ActionsLoo.conditional_comparison_not_equals ) %] does not match [% END %]
+
+ [% IF ( ActionsLoo.conditional_regex ) %] RegEx m/[% END %]<strong>[% ActionsLoo.conditional_value | html %]</strong>[% IF ( ActionsLoo.conditional_regex ) %]/[% END %]
+ [% END %]
+ </td>
+ <td>[% ActionsLoo.description | html %]</td>
+ <td>
+ <a class="btn btn-default btn-xs edit_action" href="#modaction" data-mmta_id="[% ActionsLoo.mmta_id %]"><i class="fa fa-pencil"></i> Edit</a>
+ </td>
+ <td>
+ <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"></i> Delete</a>
+ </td>
+ </tr>
+ [% END # /FOREACH ActionsLoo %]
+ </tbody>
+ </table>
+ [% ELSE %]
+ <div class="dialog message template_actions"><p>There are no defined actions for this template.</p></div>
+ [% END # /IF ActionsLoop %]
+
+ <form method="post" action="/cgi-bin/koha/tools/marc_modification_templates.pl" id="add_action" >
+ <a name="modaction"></a>
+ <fieldset>
+ <legend id="modaction_legend">Add a new action</legend>
+ <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>
+
+ <select name="action" id="action" onchange="onActionChange(this);">
+ <option value="delete_field">Delete</option>
+ <option value="add_field">Add new</option>
+ <option value="update_field">Update existing or add new</option>
+ <option value="move_field">Move</option>
+ <option value="copy_field">Copy</option>
+ <option value="copy_and_replace_field">Copy and replace</option>
</select>
- </span>
- 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" />
+ <span id="field_number_block">
+ <select name="field_number" id="field_number">
+ <option value="0">All</option>
+ <option value="1">1st</option>
+ </select>
+ </span>
- <span name="with_value_block" id="with_value_block" style="display:none;">
- with value <input type="text" name="field_value" id="field_value" />
- </span>
+ 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" />
- <span name="to_field_block" id="to_field_block" style="display:none;">
- 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" />
+ <span name="with_value_block" id="with_value_block" style="display:none;">
+ with value <input type="text" name="field_value" id="field_value" />
+ </span>
- <span name="to_field_regex_block" id="to_field_regex_block">
- <sup>
- <label for="to_field_regex">RegEx</label>
- <input type="checkbox" name="to_field_regex" id="to_field_regex" onchange="onToFieldRegexChange(this);" />
+ <span name="to_field_block" id="to_field_block" style="display:none;">
+ 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" />
- <span name="to_field_regex_value_block" id="to_field_regex_value_block" style="display:none;">
- 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" />
- </span>
- </sup>
+ <span name="to_field_regex_block" id="to_field_regex_block">
+ <sup>
+ <label for="to_field_regex">RegEx</label>
+ <input type="checkbox" name="to_field_regex" id="to_field_regex" onchange="onToFieldRegexChange(this);" />
+
+ <span name="to_field_regex_value_block" id="to_field_regex_value_block" style="display:none;">
+ 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" />
+ </span>
+ </sup>
+ </span>
</span>
- </span>
- <p/>
+ <p/>
- <select name="conditional" id="conditional" onchange="onConditionalChange(this);">
- <option value="" selected />
- <option value="if">if</option>
- <option value="unless">unless</option>
- </select>
+ <select name="conditional" id="conditional" onchange="onConditionalChange(this);">
+ <option value="" selected="selected" />
+ <option value="if">if</option>
+ <option value="unless">unless</option>
+ </select>
- <span name="conditional_block" id="conditional_block" style="display:none;">
- 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" />
+ <span name="conditional_block" id="conditional_block" style="display:none;">
+ 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" />
- <select name="conditional_comparison" id="conditional_comparison" onchange="onConditionalComparisonChange(this);">
- <option value="" />
- <option value="exists">exists</option>
- <option value="not_exists">doesn't exist</option>
- <option value="equals">matches</option>
- <option value="not_equals">doesn't match</option>
- </select>
+ <select name="conditional_comparison" id="conditional_comparison" onchange="onConditionalComparisonChange(this);">
+ <option value="" />
+ <option value="exists">exists</option>
+ <option value="not_exists">doesn't exist</option>
+ <option value="equals">matches</option>
+ <option value="not_equals">doesn't match</option>
+ </select>
- <span name="conditional_comparison_block" id="conditional_comparison_block" style="display:none;">
+ <span name="conditional_comparison_block" id="conditional_comparison_block" style="display:none;">
- <span class="match_regex_prefix">m/</span><input type="text" id="conditional_value" name="conditional_value" /><span class="match_regex_suffix">/</span>
+ <span class="match_regex_prefix">m/</span><input type="text" id="conditional_value" name="conditional_value" /><span class="match_regex_suffix">/</span>
- <sup>
- <label for="conditional_regex">RegEx</label>
- <input type="checkbox" name="conditional_regex" id="conditional_regex" onchange="onConditionalRegexChange(this);" />
- </sup>
+ <sup>
+ <label for="conditional_regex">RegEx</label>
+ <input type="checkbox" name="conditional_regex" id="conditional_regex" onchange="onConditionalRegexChange(this);" />
+ </sup>
+ </span>
</span>
- </span>
- <input type="hidden" name="template_id" value="[% template_id %]" />
- <input type="hidden" name="mmta_id" id="mmta_id" />
- <input type="hidden" name="op" value="add_action" />
+ <input type="hidden" name="template_id" value="[% template_id | html %]" />
+ <input type="hidden" name="mmta_id" id="mmta_id" />
+ <input type="hidden" name="op" value="add_action" />
- <br/><br/>
- <label for="description">Description:</label>
- <input type="text" name="description" id="description" size="60" />
+ <br/><br/>
+ <label for="description">Description:</label>
+ <input type="text" name="description" id="description" size="60" />
- <br/><br/>
- <input id="action_submit" type="submit" value="Add action" /> <a href="#modaction" id="cancel_edit" onclick="cancelEditAction();" style="display:none;">Cancel</a>
+ <br/><br/>
+ <input id="action_submit" type="submit" value="Add action" /> <a href="#modaction" id="cancel_edit" onclick="cancelEditAction();">Cancel</a>
- </fieldset>
- </form>
+ </fieldset>
+ </form>
+
+ [% END %]
[% ELSE %]
<div class="dialog message"><p>There are no defined templates. Please create a template first.</p></div>
- [% END %]
+ [% END # /IF TemplatesLoop %]
+
+ <!-- Modal to create new template -->
+ <div class="modal" id="createTemplate" tabindex="-1" role="dialog" aria-labelledby="LabelcreateTemplate" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
+ <h3 id="LabelcreateTemplate">Create a new template</h3>
+ </div>
+ <form method="post" action="/cgi-bin/koha/tools/marc_modification_templates.pl" id="add_template" class="validated">
+ <div class="modal-body">
+ <fieldset>
+ <p>
+ <label for="template_name" class="required">Name: </label>
+ <input name="template_name" id="template_name" type="text" size="30" required="required" class="required" />
+ <span class="required">Required</span>
+ </p>
+
+ <input type="hidden" name="op" value="create_template" />
+
+ <p>
+ <label for="duplicate_a_template">Duplicate a template:</label>
+ <select name="template_id" id="duplicate_a_template">
+ <option value=""> -- None --</option>
+ [% FOREACH TemplatesLoo IN TemplatesLoop %]
+ <option value="[% TemplatesLoo.template_id | html %]"> [% TemplatesLoo.name | html %]</option>
+ [% END %]
+ </select>
+ <input type="hidden" name="duplicate_current_template" id="duplicate_current_template" />
+ </p>
+ </fieldset>
+ </div>
+ <div class="modal-footer">
+ <button type="submit" class="btn btn-default">Submit</button>
+ <button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+
+ </main>
+ </div> <!-- /.col-sm-10.col-sm-push-2 -->
+
+ <div class="col-sm-2 col-sm-pull-10">
+ <aside>
+ [% INCLUDE 'tools-menu.inc' %]
+ </aside>
+ </div> <!-- /.col-sm-2.col-sm-pull-10 -->
+ </div> <!-- /.row -->
+
+[% MACRO jsinclude BLOCK %]
+ [% Asset.js("js/tools-menu.js") | $raw %]
+ <script>
+ var MSG_MMT_SUBFIELDS_MATCH = _("Both subfield values should be filled or empty.");
+ var MSG_MMT_DESTINATION_REQUIRED = _("The destination should be filled.");
+ var MSG_MMT_CONTROL_FIELD_EMPTY = _("If the field is a control field, the subfield should be empty");
+ var MSG_MMT_CONTROL_FIELD = _("A control field cannot be used with a regular field.");
+ var MSG_MMT_SOURCE_SUBFIELD = _("The source subfield should be filled for update.");
+ var MSG_MMT_SOURCE_FIELD = _("The source field should be filled.");
+ var MSG_MMT_EVERY = _("Every");
+ var MSG_MMT_ALL = _("All");
+ var MSG_MMT_CONFIRM_DEL_TEMPLATE = _("Are you sure you wish to delete this template?");
+ var MSG_MMT_CONFIRM_DEL_TEMPLATE_ACTION = _("Are you sure you wish to delete this template action?");
+ var MSG_MMT_EDIT_ACTION = _("Edit action %s");
+ var MSG_MMT_UPDATE_ACTION = _("Update action");
+ var MSG_MMT_CONDITIONAL_FIELD_REQUIRED = _("The conditional field should be filled.");
+ var MSG_MMT_CONDITIONAL_COMPARISON_REQUIRED = _("The conditional comparison operator should be filled.");
+ var MSG_MMT_CONDITIONAL_VALUE_REQUIRED = _("The conditional value should be filled.");
+ var MSG_MMT_CONDITIONAL_VALUE_REGEX_REQUIRED = _("The conditional regular expression should be filled.");
+ var mmtas = [% ActionsLoop.json %]
+ </script>
+ [% Asset.js("js/marc_modification_templates.js") | $raw %]
+[% END %]
- <form method="post" action="/cgi-bin/koha/tools/marc_modification_templates.pl" id="add_template" >
- <fieldset>
- <legend>Create a new template</legend>
-
- <label for="template_name" class="required">Name: </label>
- <input name="template_name" id="template_name" type="text" size="30" required="required" />
-
- <input type="hidden" name="op" value="create_template" />
- <input type="submit" value="Create template" />
-
- [% IF ( template_id ) %]
- <input type="hidden" name="template_id" value="[% template_id %]" />
- <input type="checkbox" name="duplicate_current_template" id="duplicate_current_template" />
- <label for="duplicate_current_template">Duplicate current template</label>
- [% END %]
- </fieldset>
- </form>
- </div>
- </div>
-
- <div class="yui-b">
- [% INCLUDE 'tools-menu.inc' %]
- </div>
- </div>
-</div>
[% INCLUDE 'intranet-bottom.inc' %]