|
Lines 3-15
Link Here
|
| 3 |
[% INCLUDE 'doc-head-open.inc' %] |
3 |
[% INCLUDE 'doc-head-open.inc' %] |
| 4 |
<title>Koha › Administration › Search engine configuration</title> |
4 |
<title>Koha › Administration › Search engine configuration</title> |
| 5 |
[% INCLUDE 'doc-head-close.inc' %] |
5 |
[% INCLUDE 'doc-head-close.inc' %] |
|
|
6 |
[% INCLUDE 'datatables.inc' %] |
| 6 |
[% Asset.js("lib/jquery/plugins/jquery.tablednd.js") | $raw %] |
7 |
[% Asset.js("lib/jquery/plugins/jquery.tablednd.js") | $raw %] |
| 7 |
<script> |
8 |
[% Asset.css("css/datatables.css") | $raw %] |
|
|
9 |
<script type="text/javascript"> |
| 10 |
var searchfieldst; |
| 11 |
var bibliost; |
| 12 |
var authoritiest; |
| 13 |
|
| 8 |
function clean_line( line ) { |
14 |
function clean_line( line ) { |
| 9 |
$(line).find('input[type="text"]').val(""); |
15 |
$(line).find('input[type="text"]').val(""); |
| 10 |
$(line).find('select').find('option:first').attr("selected", "selected"); |
16 |
$(line).find('select').find('option:first').attr("selected", "selected"); |
| 11 |
} |
17 |
} |
| 12 |
|
18 |
|
|
|
19 |
function reset_datatables() { |
| 20 |
var searchfieldSettings = searchfieldst.fnSettings(); |
| 21 |
var biblioSettings = bibliost.fnSettings(); |
| 22 |
var authoritySettings = authoritiest.fnSettings(); |
| 23 |
|
| 24 |
searchfieldSettings._iDisplayLength = 20; |
| 25 |
biblioSettings._iDisplayLength = 20; |
| 26 |
authoritySettings._iDisplayLength = 20; |
| 27 |
|
| 28 |
searchfieldst.fnDraw(); |
| 29 |
bibliost.fnDraw(); |
| 30 |
authoritiest.fnDraw(); |
| 31 |
} |
| 32 |
|
| 33 |
function show_all_rows() { |
| 34 |
var searchfieldSettings = searchfieldst.fnSettings(); |
| 35 |
var biblioSettings = bibliost.fnSettings(); |
| 36 |
var authoritySettings = authoritiest.fnSettings(); |
| 37 |
|
| 38 |
searchfieldSettings._iDisplayLength = -1; |
| 39 |
biblioSettings._iDisplayLength = -1; |
| 40 |
authoritySettings._iDisplayLength = -1; |
| 41 |
|
| 42 |
searchfieldSettings.oPreviousSearch.sSearch = ""; |
| 43 |
biblioSettings.oPreviousSearch.sSearch = ""; |
| 44 |
authoritySettings.oPreviousSearch.sSearch = ""; |
| 45 |
|
| 46 |
searchfieldst.fnDraw(); |
| 47 |
bibliost.fnDraw(); |
| 48 |
authoritiest.fnDraw(); |
| 49 |
} |
| 50 |
|
| 13 |
function clone_line( line ) { |
51 |
function clone_line( line ) { |
| 14 |
var new_line = $(line).clone(); |
52 |
var new_line = $(line).clone(); |
| 15 |
$(new_line).removeClass("nodrag nodrop"); |
53 |
$(new_line).removeClass("nodrag nodrop"); |
|
Lines 27-86
Link Here
|
| 27 |
|
65 |
|
| 28 |
$(document).ready(function() { |
66 |
$(document).ready(function() { |
| 29 |
$("#tabs").tabs(); |
67 |
$("#tabs").tabs(); |
| 30 |
$('.delete').click(function() { |
|
|
| 31 |
$(this).parents('tr').remove(); |
| 32 |
|
68 |
|
| 33 |
var line = $(this).closest("tr"); |
69 |
//searchfieldst = KohaTable("search-fieldst", { |
|
|
70 |
searchfieldst = $('#search-fieldst').dataTable($.extend(true, {}, dataTablesDefaults, { |
| 71 |
"aoColumnDefs": [ |
| 72 |
{ "sType": "string", "aTargets": [ "string-sort" ] } |
| 73 |
], |
| 74 |
"sPaginationType": "full_numbers", |
| 75 |
})); |
| 76 |
|
| 77 |
bibliost = $('#bibliost').dataTable($.extend(true, {}, dataTablesDefaults, { |
| 78 |
"aoColumnDefs": [ |
| 79 |
{ "sType": "string", "aTargets": [ "string-sort" ] } |
| 80 |
], |
| 81 |
"sPaginationType": "full_numbers", |
| 82 |
})); |
| 83 |
|
| 84 |
authoritiest = $('#authoritiest').dataTable($.extend(true, {}, dataTablesDefaults, { |
| 85 |
"aoColumnDefs": [ |
| 86 |
{ "sType": "string", "aTargets": [ "string-sort" ] } |
| 87 |
], |
| 88 |
"sPaginationType": "full_numbers", |
| 89 |
})); |
| 90 |
|
| 91 |
$('#save').click(function() { |
| 92 |
show_all_rows(); |
| 93 |
}); |
| 94 |
|
| 95 |
$('table.dataTable').on('click', '.delete', function() { |
| 96 |
var tableid = $(this).closest('table').attr('id'); |
| 97 |
var t = $('#' + tableid).DataTable(); |
| 98 |
var line = $(this).closest('tr'); |
| 99 |
t.row( $(this).parents('tr') ).remove().draw( false ); |
| 100 |
|
| 101 |
// Show all rows on biblios and authorities table |
| 102 |
// to find some mapping. |
| 103 |
show_all_rows(); |
| 104 |
|
| 34 |
var search_field_name = $(line).find('input[name="mapping_search_field_name"]').val(); |
105 |
var search_field_name = $(line).find('input[name="mapping_search_field_name"]').val(); |
| 35 |
var mappings = $('input[name="mapping_search_field_name"][type="hidden"][value="' + search_field_name + '"]'); |
106 |
var mappings = $('input[name="mapping_search_field_name"][type="hidden"][value="' + search_field_name + '"]'); |
|
|
107 |
|
| 36 |
if (mappings.length == 0) { |
108 |
if (mappings.length == 0) { |
| 37 |
var search_field_line = $('input[name="search_field_name"][value="' + search_field_name + '"]').closest("tr"); |
109 |
var search_field_line = $('input[name="search_field_name"][value="' + search_field_name + '"]').closest("tr"); |
| 38 |
$(search_field_line).find('a.btn-default').removeClass('disabled'); |
110 |
$(search_field_line).find('a.btn-default').removeClass('disabled'); |
| 39 |
} |
111 |
} |
|
|
112 |
|
| 113 |
//Set display length back to 20. |
| 114 |
reset_datatables(); |
| 40 |
}); |
115 |
}); |
| 41 |
|
116 |
|
| 42 |
$("table.mappings").tableDnD( { |
117 |
$("table.mappings").tableDnD( { |
| 43 |
onDragClass: "dragClass", |
118 |
onDragClass: "dragClass", |
| 44 |
} ); |
119 |
} ); |
|
|
120 |
|
| 45 |
$('.add').click(function() { |
121 |
$('.add').click(function() { |
| 46 |
var table = $(this).closest('table'); |
122 |
var tableid = $(this).closest('table').attr('id'); |
| 47 |
var index_name = $(table).attr('data-index_name'); |
123 |
var t = $('#' + tableid).DataTable(); |
| 48 |
var line = $(this).closest("tr"); |
124 |
var line = $(this).closest("tr"); |
|
|
125 |
var new_line = clone_line( line ); |
| 126 |
|
| 49 |
var marc_field = $(line).find('input[data-id="mapping_marc_field"]').val(); |
127 |
var marc_field = $(line).find('input[data-id="mapping_marc_field"]').val(); |
|
|
128 |
|
| 50 |
if ( marc_field.length > 0 ) { |
129 |
if ( marc_field.length > 0 ) { |
| 51 |
var new_line = clone_line( line ); |
130 |
t.row.add($(new_line)).draw( false ); |
| 52 |
new_line.appendTo($('table[data-index_name="'+index_name+'"]>tbody')); |
131 |
t.order([1, 'asc']).draw(); |
| 53 |
$('.delete').click(function() { |
132 |
t.page('last').draw(false); |
| 54 |
$(this).parents('tr').remove(); |
133 |
|
| 55 |
}); |
134 |
// Show all rows on search-fields table |
|
|
135 |
// to find the search field. |
| 136 |
var mappingSettings = mappingst.fnSettings(); |
| 137 |
mappingSettings._iDisplayLength = -1; |
| 138 |
mappingst.fnDraw(); |
| 56 |
|
139 |
|
| 57 |
var search_field_name = $(line).find('select[data-id="mapping_search_field_name"] option:selected').text(); |
140 |
var search_field_name = $(line).find('select[data-id="mapping_search_field_name"] option:selected').text(); |
| 58 |
var search_field_line = $('input[name="search_field_name"][value="' + search_field_name + '"]').closest("tr"); |
141 |
var search_field_line = $('input[name="search_field_name"][value="' + search_field_name + '"]').closest("tr"); |
| 59 |
$(search_field_line).find('a.btn-default').addClass('disabled'); |
142 |
$(search_field_line).find('a.btn-default').addClass('disabled'); |
| 60 |
|
143 |
|
| 61 |
clean_line(line); |
144 |
//Set display length back to 20. |
|
|
145 |
mappingSettings._iDisplayLength = 20; |
| 146 |
mappingst.fnDraw(); |
| 62 |
|
147 |
|
| 63 |
$(table).tableDnD( { |
148 |
clean_line(line); |
| 64 |
onDragClass: "dragClass", |
|
|
| 65 |
} ); |
| 66 |
} |
149 |
} |
| 67 |
}); |
150 |
}); |
|
|
151 |
|
| 68 |
$('.add-search-field').click(function() { |
152 |
$('.add-search-field').click(function() { |
| 69 |
var table = $(this).closest('table'); |
153 |
var t = $('#search-fieldst').DataTable(); |
| 70 |
var line = $(this).closest("tr"); |
154 |
var line = $(this).closest("tr"); |
|
|
155 |
var new_line = clone_line( line ); |
| 156 |
|
| 71 |
var name = $(line).find('input[data-id="search_field_name"]').val(); |
157 |
var name = $(line).find('input[data-id="search_field_name"]').val(); |
| 72 |
var label = $(line).find('input[data-id="search_field_name"]').val(); |
158 |
var label = $(line).find('input[data-id="search_field_name"]').val(); |
|
|
159 |
|
| 73 |
if ( name.length > 0 && label.length > 0 ) { |
160 |
if ( name.length > 0 && label.length > 0 ) { |
| 74 |
var new_line = clone_line( line ); |
161 |
t.row.add($(new_line)).draw( false ); |
| 75 |
new_line.appendTo($('table[data-index_name=search_fields]>tbody')); |
162 |
t.order([1, 'asc']).draw(); |
| 76 |
$('.delete').click(function() { |
163 |
t.page('last').draw(false); |
| 77 |
$(this).parents('tr').remove(); |
|
|
| 78 |
}); |
| 79 |
clean_line(line); |
| 80 |
|
164 |
|
| 81 |
$(table).tableDnD( { |
165 |
clean_line(line); |
| 82 |
onDragClass: "dragClass", |
|
|
| 83 |
} ); |
| 84 |
} |
166 |
} |
| 85 |
}); |
167 |
}); |
| 86 |
}); |
168 |
}); |
|
Lines 175-188
a.add, a.delete {
Link Here
|
| 175 |
[% END %] |
257 |
[% END %] |
| 176 |
</ul> |
258 |
</ul> |
| 177 |
<div id="search_fields"> |
259 |
<div id="search_fields"> |
| 178 |
<table class="search_fields" data-index_name="search_fields"> |
260 |
<table id="search-fieldst" class="search_fields" data-index_name="search_fields"> |
| 179 |
<thead> |
261 |
<thead> |
| 180 |
<tr> |
262 |
<tr> |
| 181 |
<th>Name</th> |
263 |
<th class="string-sort">Name</th> |
| 182 |
<th>Label</th> |
264 |
<th class="string-sort">Label</th> |
| 183 |
<th>Type</th> |
265 |
<th class="string-sort">Type</th> |
| 184 |
<th>Weight</th> |
266 |
<th class="string-sort">Weight</th> |
| 185 |
<th></th> |
267 |
<th class="string-sort"></th> |
| 186 |
</tr> |
268 |
</tr> |
| 187 |
</thead> |
269 |
</thead> |
| 188 |
<tbody> |
270 |
<tbody> |
|
Lines 276-289
a.add, a.delete {
Link Here
|
| 276 |
</div> |
358 |
</div> |
| 277 |
[% FOREACH index IN indexes %] |
359 |
[% FOREACH index IN indexes %] |
| 278 |
<div id="mapping_[% index.index_name | html %]"> |
360 |
<div id="mapping_[% index.index_name | html %]"> |
| 279 |
<table class="mappings" data-index_name="[% index.index_name | html %]"> |
361 |
<table id="[% index.index_name %]t" class="mappings" data-index_name="[% index.index_name | html %]"> |
| 280 |
<thead> |
362 |
<thead> |
| 281 |
<tr class="nodrag nodrop"> |
363 |
<tr class="nodrag nodrop"> |
| 282 |
<th>Search field</th> |
364 |
<th>Search field</th> |
| 283 |
<th>Sortable</th> |
365 |
<th class="string-sort">Sortable</th> |
| 284 |
<th>Facetable</th> |
366 |
<th class="string-sort">Facetable</th> |
| 285 |
<th>Suggestible</th> |
367 |
<th class="string-sort">Suggestible</th> |
| 286 |
<th>Mapping</th> |
368 |
<th class="string-sort">Mapping</th> |
| 287 |
<th></th> |
369 |
<th></th> |
| 288 |
</tr> |
370 |
</tr> |
| 289 |
</thead> |
371 |
</thead> |
|
Lines 391-397
a.add, a.delete {
Link Here
|
| 391 |
[% END %] |
473 |
[% END %] |
| 392 |
</div> |
474 |
</div> |
| 393 |
<p> |
475 |
<p> |
| 394 |
<button class="btn btn-default" type="submit" name="op" value="edit"><i class="fa fa-hdd-o" aria-hidden="true"></i> Save</button> |
476 |
<button id="save" class="btn btn-default" type="submit"><i class="fa fa-hdd-o" aria-hidden="true"></i> Save</button> |
| 395 |
<button class="btn btn-default" type="submit" name="op" value="reset_confirm"><i class="fa fa-refresh" aria-hidden="true"></i> Reset Mappings</button> |
477 |
<button class="btn btn-default" type="submit" name="op" value="reset_confirm"><i class="fa fa-refresh" aria-hidden="true"></i> Reset Mappings</button> |
| 396 |
</p> |
478 |
</p> |
| 397 |
</form> |
479 |
</form> |
| 398 |
- |
|
|