+[% USE raw %]
+[% USE Asset %]
+[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
-<title>Koha › Administration › Record Matching Rules
+<title>Koha › Administration › Record matching rules
[% IF ( matching_rule_form ) %]
[% IF ( edit_matching_rule ) %]
› Modify record matching rule
[% END %]
[% END %]
[% IF ( delete_matching_rule_form ) %]
- › Confirm deletion of record matching rule "[% code %]"
+ › Confirm deletion of record matching rule "[% code | html %]"
[% END %]
</title>
[% INCLUDE 'doc-head-close.inc' %]
-<script type="text/javascript">
-//<![CDATA[
-
-var maxMatchPoint = [% max_matchpoint %];
-var maxMatchCheck = [% max_matchcheck %];
-
-function InsertMatchpoint(loc, index) {
- var original= $("#"+index);
- var clone = original.clone();
- clone.show();
-
- // update IDs and form names
- maxMatchPoint++;
- clone.attr('id', 'mp_' + maxMatchPoint);
- $("span.counter",clone).html(maxMatchPoint);
- $("label",clone).each(function(){
- var s = $(this).attr("for");
- if (s.match(/mp_num/)) {
- $(this).attr("for",s.replace(/mp_num/, 'mp_' + maxMatchPoint));
- }
- });
-
- $("div",clone).each(function(){
- var s = $(this).attr("id");
- if (s.match(/mp_num/)) {
- $(this).attr("id",s.replace(/mp_num/, 'mp_' + maxMatchPoint));
- }
- });
- $("input",clone).each(function(){
- var s = $(this).attr("id");
- if(s.match(/mp_num/)){
- $(this).attr("id",s.replace(/mp_num/, 'mp_' + maxMatchPoint));
- }
+[% BLOCK norms_text %]
+[% SWITCH norm %]
+[% CASE 'none' %]None
+[% CASE 'remove_spaces' %]Remove spaces
+[% CASE 'upper_case' %]Uppercase
+[% CASE 'lower_case' %]Lowercase
+[% CASE 'legacy_default' %]Legacy default
+[% CASE %][% norm | html %]
+[% END %]
+[% END %]
- var s = $(this).attr("name");
- if(s.match(/mp_num/)){
- $(this).attr("name",s.replace(/mp_num/, 'mp_' + maxMatchPoint));
- }
- });
- $("#match_points").append(clone);
-}
-
-function InsertMatchcheck(loc, index) {
- var original= $("#"+index);
- var clone = original.clone();
- clone.show();
-
- // update IDs and form names
- maxMatchCheck++;
- clone.attr('id', 'mc_' + maxMatchCheck);
- $("span.counter",clone).html(maxMatchCheck);
- $("label",clone).each(function(){
- var s = $(this).attr("for");
- if (s.match(/mc_num/)) {
- $(this).attr("for",s.replace(/mc_num/, 'mc_' + maxMatchCheck));
- }
- });
+[% BLOCK norms_options %]
+[%# PARAMS: selected_norm %]
+[% FOREACH norm IN valid_norms %]
+[% IF ( norm == selected_norm ) %]
+ <option value="[% norm | html %]" selected="selected">[% PROCESS norms_text norm=norm %]</option>
+[% ELSE %]
+ <option value="[% norm | html %]">[% PROCESS norms_text norm=norm %]</option>
+[% END %]
+[% END %]
+[% END %]
- $("div",clone).each(function(){
- var s = $(this).attr("id");
- if (s.match(/mc_num/)) {
- $(this).attr("id",s.replace(/mc_num/, 'mc_' + maxMatchCheck));
- }
- });
- $("input",clone).each(function(){
- var s = $(this).attr("id");
- if(s.match(/mc_num/)){
- $(this).attr("id",s.replace(/mc_num/, 'mc_' + maxMatchCheck));
- }
+[% BLOCK norms_select %]
+[%# PARAMS: selected_norm, id, name %]
+[% UNLESS valid_norms.grep(selected_norm).size %]
+[%# Fallback to 'none' %]
+[% selected_norm = 'none' %]
+[% END %]
+ <select id="[% id | html %]" name="[% name | html %]">
+[% PROCESS norms_options selected_norm=selected_norm %]
+ </select>
+[% END %]
- var s = $(this).attr("name");
- if(s.match(/mc_num/)){
- $(this).attr("name",s.replace(/mc_num/, 'mc_' + maxMatchCheck));
- }
- });
- $("#match_checks").append(clone);
-}
-
-function DeleteMatchpoint(loc) {
- $(loc).parent().parent().parent().remove();
- if($(".matchgroup",$("#match_points")).length == 0){
- maxMatchPoint = 0;
- $("#addMatchPoint").show();
- }
-}
-
-function DeleteMatchcheck(loc) {
- $(loc).parent().parent().parent().remove();
- if($(".matchgroup",$("#match_checks")).length == 0){
- maxMatchCheck = 0;
- $("#addMatchCheck").show();
- }
-}
-
-function DoCancel(f) {
- f.op.value='';
- document.Aform.submit();
-}
-
-function CheckMatchingRuleForm(f) {
- var ok=1;
- var _alertString="";
- var alertString2;
- if (f.code.value.length==0) {
- _alertString += "\n- " + _("Matching rule code missing");
- }
- if (f.description.value.length==0) {
- _alertString += "\n- " + _("Description missing");
- }
- if (f.threshold.value.length==0) {
- _alertString += "\n- " + _("Threshold missing");
- }
- if (_alertString.length==0) {
- document.Aform.submit();
- } else {
- alertString2 = _("Form not submitted because of the following problem(s)");
- alertString2 += "\n------------------------------------------------------------------------------------\n";
- alertString2 += _alertString;
- alert(alertString2);
- }
-}
-
-function CheckRuleForm(f) {
- var ok=1;
- var _alertString="";
- var alertString2;
- if (f.sort_rule.value.length==0) {
- _alertString += "\n- " + _("Filing rule code missing");
- }
- if (f.description.value.length==0) {
- _alertString += "\n- " + _("Description missing");
- }
- if (f.sort_routine.value.length==0) {
- _alertString += "\n- " + _("Sort routine missing");
- }
- if (_alertString.length==0) {
- document.Aform.submit();
- } else {
- alertString2 = _("Form not submitted because of the following problem(s)");
- alertString2 += "\n------------------------------------------------------------------------------------\n";
- alertString2 += _alertString;
- alert(alertString2);
- }
-}
-
-//]]>
-</script>
-<style type="text/css">
+<style>
fieldset.rows fieldset.rows { border-width : 0; }
fieldset.rows fieldset.rows fieldset.rows { border-width : 1px; }
fieldset, fieldset.rows { width : 90%; padding: .3em .6em .3em .6em; }
</head>
<body id="admin_matching-rules" class="admin">
[% INCLUDE 'header.inc' %]
-[% INCLUDE 'cat-search.inc' %]
+[% INCLUDE 'prefs-admin-search.inc' %]
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › [% IF ( display_list ) %]Record Matching Rules[% ELSE %]<a href="/cgi-bin/koha/admin/matching-rules.pl">Record Matching Rules</a>[% END %]
+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › [% IF ( display_list ) %]Record matching rules[% ELSE %]<a href="/cgi-bin/koha/admin/matching-rules.pl">Record matching rules</a>[% END %]
[% IF ( matching_rule_form ) %]
[% IF ( edit_matching_rule ) %]
› Modify record matching rule
[% END %]
[% END %]
[% IF ( delete_matching_rule_form ) %]
- › Confirm deletion of record matching rule "[% code %]"
+ › Confirm deletion of record matching rule "[% code | html %]"
[% END %]
</div>
-<div id="doc3" class="yui-t2">
-
- <div id="bd">
- <div id="yui-main">
- <div class="yui-b">
+<div class="main container-fluid">
+ <div class="row">
+ <div class="col-sm-10 col-sm-push-2">
+ <main>
[% IF ( matching_rule_form ) %]
[% IF ( edit_matching_rule ) %]
[% ELSE %]
<h2>Add record matching rule</h2>
[% END %]
-<form action="[% script_name %]" name="Aform" method="post">
- <input type="hidden" name="op" value="[% confirm_op %]" />
+<form action="[% script_name | html %]" name="Aform" method="post">
+ <input type="hidden" name="op" value="[% confirm_op | html %]" />
<fieldset class="rows">
<ol>
<li>
[% IF ( edit_matching_rule ) %]
<span class="label">Matching rule code: </span>
- <input type="hidden" name="matcher_id" value="[% matcher_id %]" />
- <input type="hidden" name="code" value="[% code %]" />
- [% code %]
+ <input type="hidden" name="matcher_id" value="[% matcher_id | html %]" />
+ <input type="hidden" name="code" value="[% code | html %]" />
+ [% code | html %]
[% ELSE %]
<label for="code" class="required">Matching rule code: </label>
<input type="text" id="code" name="code" size="10" maxlength="10" /> <span class="required">Required</span>
</li>
<li><label for="description" class="required">Description: </label>
<input type="text" id="description" name="description" size="50" maxlength="250"
- value="[% description |html %]" /> <span class="required">Required</span>
+ value="[% description | html %]" /> <span class="required">Required</span>
</li>
<li><label for="threshold" class="required">Match threshold: </label>
<input type="text" id="threshold" name="threshold" size="5" maxlength="5"
- value="[% threshold |html %]" /> <span class="required">Required</span>
+ value="[% threshold | html %]" /> <span class="required">Required</span>
+ </li>
+ <li><label for="record_type" class="required">Record type: </label>
+ <select id="record_type" name="record_type">
+ [% IF ( record_type == "authority" ) %]
+ <option value="biblio">Bibliographic record</option>
+ <option value="authority" selected="selected">Authority record</option>
+ [% ELSE %]
+ <option value="biblio" selected="selected">Bibliographic record</option>
+ <option value="authority">Authority record</option>
+ [% END %]
+ </select><span class="required">Required</span>
</li>
</ol>
</fieldset>
[% ELSE %]<p id="addMatchPoint" style="display:none;"><a href="#" class="button" onclick="InsertMatchpoint('mp_1', 'mp_template'); return false;">Add match point</a></p>[% END %]
[% IF ( edit_matching_rule ) %]
[% FOREACH matchpoint IN matchpoints %]
- <div id="mp_[% matchpoint.mp_num %]" class="matchgroup">
+ <div id="mp_[% matchpoint.mp_num | html %]" class="matchgroup">
<fieldset class="rows">
- <legend>Match Point [% matchpoint.mp_num %] | <a href="#" class="button" onclick="InsertMatchpoint('mp_[% matchpoint.mp_num %]', 'mp_template'); return false;">Add match point</a> | <a href="#" class="button" onclick="DeleteMatchpoint(this); return false;">Remove this match point</a></legend>
+ <legend>Match point [% matchpoint.mp_num | html %] | <a href="#" class="button" onclick="InsertMatchpoint('mp_[% matchpoint.mp_num | html %]', 'mp_template'); return false;">Add match point</a> | <a href="#" class="button" onclick="DeleteMatchpoint(this); return false;">Remove this match point</a></legend>
<ol>
<li>
- <label for="mp_[% matchpoint.mp_num %]_search_index">Search index: </label>
- <input type ="text" id="mp_[% matchpoint.mp_num %]_search_index"
- name="mp_[% matchpoint.mp_num %]_search_index" size="20"
- value="[% matchpoint.index |html %]"
+ <label for="mp_[% matchpoint.mp_num | html %]_search_index">Search index: </label>
+ <input type ="text" id="mp_[% matchpoint.mp_num | html %]_search_index"
+ name="mp_[% matchpoint.mp_num | html %]_search_index" size="20"
+ value="[% matchpoint.index | html %]"
maxlength="30" />
</li>
<li>
- <label for="mp_[% matchpoint.mp_num %]_score">Score: </label>
- <input type ="text" id="mp_[% matchpoint.mp_num %]_score"
- name="mp_[% matchpoint.mp_num %]_score" size="5"
- value="[% matchpoint.score |html %]"
+ <label for="mp_[% matchpoint.mp_num | html %]_score">Score: </label>
+ <input type ="text" id="mp_[% matchpoint.mp_num | html %]_score"
+ name="mp_[% matchpoint.mp_num | html %]_score" size="5"
+ value="[% matchpoint.score | html %]"
maxlength="5" />
</li>
</ol>
[% FOREACH component IN matchpoint.components %]
- <fieldset class="rows" id="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]">
+ <fieldset class="rows" id="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]">
<legend>Matchpoint components</legend>
<ol>
<li>
- <label for="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_tag">Tag: </label>
- <input type="text" id="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_tag"
- name="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_tag"
- value="[% component.tag |html %]"
+ <label for="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_tag">Tag: </label>
+ <input type="text" id="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_tag"
+ name="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_tag"
+ value="[% component.tag | html %]"
size="3" maxlength="3" />
</li>
<li>
- <label for="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_subfields">Subfields: </label>
- <input type="text" id="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_subfields"
- name="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_subfields"
- value="[% component.subfields |html %]"
+ <label for="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_subfields">Subfields: </label>
+ <input type="text" id="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_subfields"
+ name="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_subfields"
+ value="[% component.subfields | html %]"
size="10" maxlength="40" />
</li>
<li>
- <label for="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_offset">Offset: </label>
- <input type="text" id="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_offset"
- name="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_offset"
- value="[% component.offset |html %]"
+ <label for="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_offset">Offset: </label>
+ <input type="text" id="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_offset"
+ name="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_offset"
+ value="[% component.offset | html %]"
size="5" maxlength="5" />
</li>
<li>
- <label for="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_length">Length: </label>
- <input type="text" id="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_length"
- name="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_length"
- value="[% component.length |html %]"
+ <label for="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_length">Length: </label>
+ <input type="text" id="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_length"
+ name="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_length"
+ value="[% component.length | html %]"
size="5" maxlength="5" />
</li>
[% FOREACH norm IN component.norms %]
- <li id="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_n_[% norm.norm_num %]">
- <label for="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_n__[% norm.norm_num %]_norm">Normalization rule: </label>
- <input type="text" id="mp_[% norm.mp_num %]_c_[% component.comp_num %]_n__[% norm.norm_num %]_norm"
- name="mp_[% matchpoint.mp_num %]_c_[% component.comp_num %]_n_[% norm.norm_num %]_norm"
- value="[% norm.norm |html %]"
- size="20" maxlength="50" />
+ <li id="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_n_[% norm.norm_num | html %]">
+ <label for="mp_[% matchpoint.mp_num | html %]_c_[% component.comp_num | html %]_n__[% norm.norm_num | html %]_norm">Normalization rule: </label>
+ [%# Note: Following directive in one line, otherwise we have translatabiltiy problems %]
+ [% PROCESS norms_select selected_norm=norm.norm id="mp_${norm.mp_num}_c_${component.comp_num}_n__${norm.norm_num}_norm" name="mp_${matchpoint.mp_num}_c_${component.comp_num}_n_${norm.norm_num}_norm" %]
</li>
[% END %]
</ol>
[% ELSE %]
<div id="mp_1" class="matchgroup">
<fieldset class="rows">
- <legend>Match Point 1 | <a href="#" class="button" onclick="InsertMatchpoint('mp_1', 'mp_template'); return false;">Add match point</a> | <a href="#" class="button" onclick="DeleteMatchpoint(this); return false;">Remove this match point</a></legend>
+ <legend>Match point 1 | <a href="#" class="button" onclick="InsertMatchpoint('mp_1', 'mp_template'); return false;">Add match point</a> | <a href="#" class="button" onclick="DeleteMatchpoint(this); return false;">Remove this match point</a></legend>
<ol>
<li>
<label for="mp_1_search_index">Search index: </label>
</li>
<li id="mp_1_c_1_n_1">
<label for="mp_1_c_1_n_1_norm">Normalization rule: </label>
- <input type="text" id="mp_1_c_1_n_1_norm" name="mp_1_c_1_n_1_norm" size="20" maxlength="50" />
+ [% PROCESS norms_select selected_norm="none" id="mp_1_c_1_n_1_norm" name="mp_1_c_1_n_1_norm" %]
</li>
</ol>
</fieldset>
[% ELSE %]<p id="addMatchCheck" style="display:none;"><a href="#" class="button" onclick="InsertMatchcheck('mc_1', 'mc_template'); return false;">Add match check</a></p>[% END %]
[% IF ( edit_matching_rule ) %]
[% FOREACH matchcheck IN matchchecks %]
- <fieldset class="rows" id="mc_[% matchcheck.mc_num %]">
- <legend>Match check [% matchcheck.mc_num %]<a href="#" class="button" onclick="InsertMatchcheck('mc_[% matchcheck.mc_num %]', 'mc_template'); return false;">Add match check</a> | <a href="#" class="button" onclick="DeleteMatchcheck(this); return false;">Remove this match check</a></legend>
- <input type="hidden" id="mc_[% matchcheck.mc_num %]_id" name="mc_[% matchcheck.mc_num %]_id" value="1" />
+ <div id="mc_[% matchcheck.mc_num | html %]" class="matchgroup">
+ <fieldset class="rows">
+ <legend>Match check [% matchcheck.mc_num | html %]<a href="#" class="button" onclick="InsertMatchcheck('mc_[% matchcheck.mc_num | html %]', 'mc_template'); return false;">Add match check</a> | <a href="#" class="button" onclick="DeleteMatchcheck(this); return false;">Remove this match check</a></legend>
+ <input type="hidden" id="mc_[% matchcheck.mc_num | html %]_id" name="mc_[% matchcheck.mc_num | html %]_id" value="1" />
[% FOREACH src_component IN matchcheck.src_components %]
- <fieldset class="rows" id="mc_[% src_component.mc_num %]_src_c_[% src_component.comp_num %]">
+ <fieldset class="rows" id="mc_[% src_component.mc_num | html %]_src_c_[% src_component.comp_num | html %]">
<legend>Source (incoming) record check field</legend>
<ol>
<li>
- <label for="mc_[% src_component.mc_num %]_src_c_[% src_component.comp_num %]_tag">Tag: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_tag"
- name="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_tag"
- value="[% src_component.tag |html %]"
+ <label for="mc_[% src_component.mc_num | html %]_src_c_[% src_component.comp_num | html %]_tag">Tag: </label>
+ <input type="text" id="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_tag"
+ name="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_tag"
+ value="[% src_component.tag | html %]"
size="3" maxlength="3" />
</li>
<li>
- <label for="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_subfields">Subfields: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_subfields"
- name="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_subfields"
- value="[% src_component.subfields |html %]"
+ <label for="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_subfields">Subfields: </label>
+ <input type="text" id="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_subfields"
+ name="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_subfields"
+ value="[% src_component.subfields | html %]"
size="10" maxlength="40" />
</li>
<li>
- <label for="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_offset">Offset: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_offset"
- name="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_offset"
- value="[% src_component.offset |html %]"
+ <label for="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_offset">Offset: </label>
+ <input type="text" id="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_offset"
+ name="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_offset"
+ value="[% src_component.offset | html %]"
size="5" maxlength="5" />
</li>
<li>
- <label for="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_length">Length: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_length"
- name="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_length"
- value="[% src_component.length |html %]"
+ <label for="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_length">Length: </label>
+ <input type="text" id="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_length"
+ name="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_length"
+ value="[% src_component.length | html %]"
size="5" maxlength="5" />
</li>
[% FOREACH norm IN src_component.norms %]
- <li id="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_n_[% norm.norm_num %]">
- <label for="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_n_[% norm.norm_num %]_norm">Normalization rule: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_n_[% norm.norm_num %]_norm"
- name="mc_[% matchcheck.mc_num %]_src_c_[% src_component.comp_num %]_n_[% norm.norm_num %]_norm"
- value="[% norm.norm |html %]"
- size="20" maxlength="50" />
+ <li id="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_n_[% norm.norm_num | html %]">
+ <label for="mc_[% matchcheck.mc_num | html %]_src_c_[% src_component.comp_num | html %]_n_[% norm.norm_num | html %]_norm">Normalization rule: </label>
+ [%# Note: Following directive in one line, otherwise we have translatabiltiy problems %]
+ [% PROCESS norms_select selected_norm=norm.norm id="mc_${matchcheck.mc_num}_src_c_${src_component.comp_num}_n_${norm.norm_num}_norm" name="mc_${matchcheck.mc_num}_src_c_${src_component.comp_num}_n_${norm.norm_num}_norm" %]
</li>
[% END %]
</ol>
</fieldset>
[% END %]
[% FOREACH tgt_component IN matchcheck.tgt_components %]
- <fieldset class="rows" id="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]">
+ <fieldset class="rows" id="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]">
<legend>Target (database) record check field</legend>
<ol>
<li>
- <label for="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_tag">Tag: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_tag"
- name="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_tag"
- value="[% tgt_component.tag |html %]"
+ <label for="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_tag">Tag: </label>
+ <input type="text" id="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_tag"
+ name="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_tag"
+ value="[% tgt_component.tag | html %]"
size="3" maxlength="3" />
</li>
<li>
- <label for="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_subfields">Subfields: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_subfields"
- name="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_subfields"
- value="[% tgt_component.subfields |html %]"
+ <label for="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_subfields">Subfields: </label>
+ <input type="text" id="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_subfields"
+ name="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_subfields"
+ value="[% tgt_component.subfields | html %]"
size="10" maxlength="40" />
</li>
<li>
- <label for="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_offset">Offset: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_offset"
- name="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_offset"
- value="[% tgt_component.offset |html %]"
+ <label for="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_offset">Offset: </label>
+ <input type="text" id="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_offset"
+ name="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_offset"
+ value="[% tgt_component.offset | html %]"
size="5" maxlength="5" />
</li>
<li>
- <label for="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_length">Length: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_length"
- name="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_length"
- value="[% tgt_component.length |html %]"
+ <label for="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_length">Length: </label>
+ <input type="text" id="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_length"
+ name="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_length"
+ value="[% tgt_component.length | html %]"
size="5" maxlength="5" />
</li>
[% FOREACH norm IN tgt_component.norms %]
- <li id="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_n_[% norm.norm_num %]">
- <label for="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_n_[% norm.norm_num %]_norm">Normalization rule: </label>
- <input type="text" id="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_n_[% norm.norm_num %]_norm"
- name="mc_[% matchcheck.mc_num %]_tgt_c_[% tgt_component.comp_num %]_n_[% norm.norm_num %]_norm"
- value="[% norm.norm |html %]"
- size="20" maxlength="50" />
+ <li id="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_n_[% norm.norm_num | html %]">
+ <label for="mc_[% matchcheck.mc_num | html %]_tgt_c_[% tgt_component.comp_num | html %]_n_[% norm.norm_num | html %]_norm">Normalization rule: </label>
+ [%# Note: Following directive in one line, otherwise we have translatabiltiy problems %]
+ [% PROCESS norms_select selected_norm=norm.norm id="mc_${matchcheck.mc_num}_tgt_c_${tgt_component.comp_num}_n_${norm.norm_num}_norm" name="mc_${matchcheck.mc_num}_tgt_c_${tgt_component.comp_num}_n_${norm.norm_num}_norm" %]
</li>
[% END %]
</ol>
</fieldset>
[% END %]
</fieldset>
+ <br style="clear:both;" />
+ </div>
[% END %]
[% ELSE %]
<div id="mc_1" class="matchgroup">
</li>
<li id="mc_1_src_c_1_n_1">
<label for="mc_1_src_c_1_n_1_norm">Normalization rule: </label>
- <input type="text" id="mc_1_src_c_1_n_1_norm" name="mc_1_src_c_1_n_1_norm" size="20" maxlength="50" />
+ [% PROCESS norms_select selected_norm="none" id="mc_1_src_c_1_n_1_norm" name="mc_1_src_c_1_n_1_norm" %]
</li>
</ol>
</fieldset>
</li>
<li id="mc_1_tgt_c_1_n_1">
<label for="mc_1_tgt_c_1_n_1_norm">Normalization rule: </label>
- <input type="text" id="mc_1_tgt_c_1_n_1_norm" name="mc_1_tgt_c_1_n_1_norm" size="20" maxlength="50" />
+ [% PROCESS norms_select selected_norm="none" id="mc_1_tgt_c_1_n_1_norm" name="mc_1_tgt_c_1_n_1_norm" %]
</li>
</ol>
</fieldset>
[% END %]
[% IF ( delete_matching_rule_form ) %]
-<div class="dialog alert"><h3>Confirm deletion of record matching rule <span class="ex">'[% code %]' ([% description %])</span>?</h3>
-<form action="[% script_name %]" name="Aform" method="post">
- <input type="hidden" name="op" value="[% confirm_op %]" />
- <input type="hidden" name="matcher_id" value="[% matcher_id %]" />
- <input type="submit" value="Delete record matching rule" class="approve" /></form>
- <form action="[% script_name %]" method="get">
- <input type="submit" value="No, Do Not Delete" class="deny" />
-</form></div>
+ <div class="dialog alert">
+ <h3>Confirm deletion of record matching rule <span class="ex">'[% code | html %]' ([% description | html %])</span>?</h3>
+ <form action="[% script_name | html %]" name="Aform" method="post">
+ <input type="hidden" name="op" value="[% confirm_op | html %]" />
+ <input type="hidden" name="matcher_id" value="[% matcher_id | html %]" />
+ <button type="submit" class="approve"><i class="fa fa-fw fa-check"></i> Yes, delete record matching rule</button>
+ </form>
+ <form action="[% script_name | html %]" method="get">
+ <button type="submit" class="deny"><i class="fa fa-fw fa-remove"></i> No, do not delete</button>
+ </form>
+ </div>
[% END %]
[% IF ( display_list ) %]
-<div id="toolbar">
- <script type="text/javascript">
- //<![CDATA[
- // prepare DOM for YUI Toolbar
- $(document).ready(function() {
- yuiToolbar();
- });
- // YUI Toolbar Functions
- function yuiToolbar() {
- new YAHOO.widget.Button("newrule");
- } //]]>
- </script>
- <ul class="toolbar">
- <li><a id="newrule" href="[% script_name %]?op=add_matching_rule">New Record Matching Rule</a></li>
-</ul></div>
-
-<h2>Record Matching Rules</h2>
+<div id="toolbar" class="btn-toolbar">
+ <a class="btn btn-default btn-sm" id="newrule" href="[% script_name | url %]?op=add_matching_rule"><i class="fa fa-plus"></i> New record matching rule</a>
+</div>
+
+<h2>Record matching rules</h2>
[% IF ( added_matching_rule ) %]
-<div class="dialog message">Added record matching rule "[% added_matching_rule %]"</div>
+<div class="dialog message">Added record matching rule "[% added_matching_rule | html %]"</div>
[% END %]
[% IF ( edited_matching_rule ) %]
-<div class="dialog message">Modified record matching rule "[% edited_matching_rule %]"</div>
+<div class="dialog message">Modified record matching rule "[% edited_matching_rule | html %]"</div>
[% END %]
[% IF ( deleted_matching_rule ) %]
-<div class="dialog message">Deleted record matching rule "[% deleted_matching_rule %]"</div>
+<div class="dialog message">Deleted record matching rule "[% deleted_matching_rule | html %]"</div>
[% END %]
[% IF ( available_matching_rules ) %]<table>
<tr>
</tr>
[% FOREACH available_matching_rule IN available_matching_rules %]
<tr>
- <td>[% available_matching_rule.matcher_id %]</td>
- <td>[% available_matching_rule.code %]</td>
- <td>[% available_matching_rule.description %]</td>
- <td>
- <a href="[% available_matching_rule.script_name %]?op=edit_matching_rule&matcher_id=[% available_matching_rule.matcher_id |html %]">Edit</a>
- <a href="[% available_matching_rule.script_name %]?op=delete_matching_rule&matcher_id=[% available_matching_rule.matcher_id |html %]">Delete</a>
+ <td>[% available_matching_rule.matcher_id | html %]</td>
+ <td>[% available_matching_rule.code | html %]</td>
+ <td>[% available_matching_rule.description | html %]</td>
+ <td class="actions">
+ <a class="btn btn-default btn-xs" href="[% available_matching_rule.script_name | url %]?op=edit_matching_rule&matcher_id=[% available_matching_rule.matcher_id | uri %]"><i class="fa fa-pencil"></i> Edit</a>
+ <a class="btn btn-default btn-xs" href="[% available_matching_rule.script_name | url %]?op=delete_matching_rule&matcher_id=[% available_matching_rule.matcher_id | uri %]"><i class="fa fa-trash"></i> Delete</a>
</td>
</tr>
[% END %]
</table>[% ELSE %]<p>There are no saved matching rules.</p>[% END %]
-<div class="pages">[% pagination_bar %]</div>
+<div class="pages">[% pagination_bar | $raw %]</div>
[% END %]
[% IF ( matching_rule_form ) %]
</li>
<li id="mp_num_c_1_n_1">
<label for="mp_num_c_1_n_1_norm">Normalization rule: </label>
- <input type="text" id="mp_num_c_1_n_1_norm" name="mp_num_c_1_n_1_norm" size="20" maxlength="50" />
+ [% PROCESS norms_select selected_norm="none" id="mp_num_c_1_n_1_norm" name="mp_num_c_1_n_1_norm" %]
</li>
</ol>
</fieldset>
</li>
<li id="mc_num_src_c_1_n_1">
<label for="mc_num_src_c_1_n_1_norm">Normalization rule: </label>
- <input type="text" id="mc_num_src_c_1_n_1_norm" name="mc_num_src_c_1_n_1_norm" size="20" maxlength="50" />
+ [% PROCESS norms_select selected_norm="none" id="mc_num_src_c_1_n_1_norm" name="mc_num_src_c_1_n_1_norm" %]
</li>
</ol>
</fieldset>
</li>
<li id="mc_num_tgt_c_1_n_1">
<label for="mc_num_tgt_c_1_n_1_norm">Normalization rule: </label>
- <input type="text" id="mc_num_tgt_c_1_n_1_norm" name="mc_num_tgt_c_1_n_1_norm" size="20" maxlength="50" />
+ [% PROCESS norms_select selected_norm="none" id="mc_num_tgt_c_1_n_1_norm" name="mc_num_tgt_c_1_n_1_norm" %]
</li>
</ol>
</fieldset>
</div>
[% END %]
-</div>
-</div>
-<div class="yui-b">
-[% INCLUDE 'admin-menu.inc' %]
-</div>
-</div>
+ </main>
+ </div> <!-- /.col-sm-10.col-sm-push-2 -->
+
+ <div class="col-sm-2 col-sm-pull-10">
+ <aside>
+ [% INCLUDE 'admin-menu.inc' %]
+ </aside>
+ </div> <!-- /.col-sm-2.col-sm-pull-10 -->
+ </div> <!-- /.row -->
+
+[% MACRO jsinclude BLOCK %]
+ [% Asset.js("js/admin-menu.js") | $raw %]
+ <script>
+ var maxMatchPoint = [% max_matchpoint | html %];
+ var maxMatchCheck = [% max_matchcheck | html %];
+
+ function InsertMatchpoint(loc, index) {
+ var original= $("#"+index);
+ var clone = original.clone();
+ clone.show();
+
+ // update IDs and form names
+ maxMatchPoint++;
+ clone.attr('id', 'mp_' + maxMatchPoint);
+ $("span.counter",clone).html(maxMatchPoint);
+ $("label",clone).each(function(){
+ var s = $(this).attr("for");
+ if (s.match(/mp_num/)) {
+ $(this).attr("for",s.replace(/mp_num/, 'mp_' + maxMatchPoint));
+ }
+ });
+
+ $("div",clone).each(function(){
+ var s = $(this).attr("id");
+ if (s.match(/mp_num/)) {
+ $(this).attr("id",s.replace(/mp_num/, 'mp_' + maxMatchPoint));
+ }
+ });
+ $("input",clone).each(function(){
+ var s = $(this).attr("id");
+ if(s.match(/mp_num/)){
+ $(this).attr("id",s.replace(/mp_num/, 'mp_' + maxMatchPoint));
+ }
+
+ var s = $(this).attr("name");
+ if(s.match(/mp_num/)){
+ $(this).attr("name",s.replace(/mp_num/, 'mp_' + maxMatchPoint));
+ }
+ });
+ $("#match_points").append(clone);
+ }
+
+ function InsertMatchcheck(loc, index) {
+ var original= $("#"+index);
+ var clone = original.clone();
+ clone.show();
+
+ // update IDs and form names
+ maxMatchCheck++;
+ clone.attr('id', 'mc_' + maxMatchCheck);
+ $("span.counter",clone).html(maxMatchCheck);
+ $("label",clone).each(function(){
+ var s = $(this).attr("for");
+ if (s.match(/mc_num/)) {
+ $(this).attr("for",s.replace(/mc_num/, 'mc_' + maxMatchCheck));
+ }
+ });
+
+ $("div",clone).each(function(){
+ var s = $(this).attr("id");
+ if (s.match(/mc_num/)) {
+ $(this).attr("id",s.replace(/mc_num/, 'mc_' + maxMatchCheck));
+ }
+ });
+ $("input",clone).each(function(){
+ var s = $(this).attr("id");
+ if(s.match(/mc_num/)){
+ $(this).attr("id",s.replace(/mc_num/, 'mc_' + maxMatchCheck));
+ }
+
+ var s = $(this).attr("name");
+ if(s.match(/mc_num/)){
+ $(this).attr("name",s.replace(/mc_num/, 'mc_' + maxMatchCheck));
+ }
+ });
+ $("#match_checks").append(clone);
+ }
+
+ function DeleteMatchpoint(loc) {
+ $(loc).parent().parent().parent().remove();
+ if($(".matchgroup",$("#match_points")).length == 0){
+ maxMatchPoint = 0;
+ $("#addMatchPoint").show();
+ }
+ }
+
+ function DeleteMatchcheck(loc) {
+ $(loc).parent().parent().parent().remove();
+ if($(".matchgroup",$("#match_checks")).length == 0){
+ maxMatchCheck = 0;
+ $("#addMatchCheck").show();
+ }
+ }
+
+ function DoCancel(f) {
+ f.op.value='';
+ document.Aform.submit();
+ }
+
+ function CheckMatchingRuleForm(f) {
+ var ok=1;
+ var _alertString="";
+ var alertString2;
+ if (f.code.value.length==0) {
+ _alertString += "\n- " + _("Matching rule code missing");
+ }
+ if (f.description.value.length==0) {
+ _alertString += "\n- " + _("Description missing");
+ }
+ if (f.threshold.value.length==0) {
+ _alertString += "\n- " + _("Threshold missing");
+ }
+ if (_alertString.length==0) {
+ document.Aform.submit();
+ } else {
+ alertString2 = _("Form not submitted because of the following problem(s)");
+ alertString2 += "\n------------------------------------------------------------------------------------\n";
+ alertString2 += _alertString;
+ alert(alertString2);
+ }
+ }
+
+ function CheckRuleForm(f) {
+ var ok=1;
+ var _alertString="";
+ var alertString2;
+ if (f.sort_rule.value.length==0) {
+ _alertString += "\n- " + _("Filing rule code missing");
+ }
+ if (f.description.value.length==0) {
+ _alertString += "\n- " + _("Description missing");
+ }
+ if (f.sort_routine.value.length==0) {
+ _alertString += "\n- " + _("Sort routine missing");
+ }
+ if (_alertString.length==0) {
+ document.Aform.submit();
+ } else {
+ alertString2 = _("Form not submitted because of the following problem(s)");
+ alertString2 += "\n------------------------------------------------------------------------------------\n";
+ alertString2 += _alertString;
+ alert(alertString2);
+ }
+ }
+ </script>
+[% END %]
[% INCLUDE 'intranet-bottom.inc' %]