View | Details | Raw Unified | Return to bug 20588
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt (-38 / +119 lines)
Lines 3-15 Link Here
3
[% INCLUDE 'doc-head-open.inc' %]
3
[% INCLUDE 'doc-head-open.inc' %]
4
<title>Koha &rsaquo; Administration &rsaquo; Search engine configuration</title>
4
<title>Koha &rsaquo; Administration &rsaquo; 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
- 

Return to bug 20588