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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt (+18 lines)
Lines 493-498 a.add, a.delete { Link Here
493
                                            <th>Order</th>
493
                                            <th>Order</th>
494
                                            <th class="NoSort">Search field</th>
494
                                            <th class="NoSort">Search field</th>
495
                                            <th class="NoSort">Label</th>
495
                                            <th class="NoSort">Label</th>
496
                                            <th class="NoSort">&nbsp;</th>
496
                                        </tr>
497
                                        </tr>
497
                                    </thead>
498
                                    </thead>
498
                                    <tbody>
499
                                    <tbody>
Lines 518-526 a.add, a.delete { Link Here
518
                                                    [% END %]
519
                                                    [% END %]
519
                                                    <input type="hidden" name="facet_name" value="[% f.name | html %]" />
520
                                                    <input type="hidden" name="facet_name" value="[% f.name | html %]" />
520
                                                </td>
521
                                                </td>
522
                                                <td>
523
                                                    <a class="btn btn-default btn-xs delete" style="cursor: pointer;"><i class="fa fa-trash"></i> Delete</a>
524
                                                </td>
521
                                            </tr>
525
                                            </tr>
522
                                        [% END %]
526
                                        [% END %]
523
                                    </tbody>
527
                                    </tbody>
528
                                    <tfoot>
529
                                        <tr>
530
                                            <td></td>
531
                                            <td>
532
                                                <select data-id="facet-search-field">
533
                                                    [% FOREACH search_field IN all_search_fields %]
534
                                                        <option value="[% search_field.name | html %]" data-label="[% search_field.label | html %]">[% search_field.name | html %]</option>
535
                                                    [% END %]
536
                                                </select>
537
                                            </td>
538
                                            <td></td>
539
                                            <td><a class="btn btn-default btn-xs add-facet"><i class="fa fa-plus"></i> Add</a></td>
540
                                        </tr>
541
                                    </tfoot>
524
                                </table>
542
                                </table>
525
                            </div>
543
                            </div>
526
                        [% END %]
544
                        [% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/js/elasticsearch-mappings.js (-1 / +30 lines)
Lines 156-159 $(document).ready(function () { Link Here
156
            clean_line(line);
156
            clean_line(line);
157
        }
157
        }
158
    });
158
    });
159
160
    $('.add-facet').click(function() {
161
        var table = $(this).closest('table');
162
        let table_id = table.attr('id');
163
        let dt = $('#' + table_id).DataTable();
164
        var line = $(this).closest('tr');
165
        let selected_option = $(line).find('select[data-id="facet-search-field"] option:selected');
166
        var search_field_name = selected_option.val();
167
        let dt_data = dt.data();
168
        let already_exists = dt_data.filter((row, idx) => row[1] === search_field_name);
169
        if ( already_exists.length ) {
170
            alert(__("Facet '%s' already exist".format(search_field_name)));
171
            return;
172
        }
173
        if (search_field_name.length > 0) {
174
            const next_id = Math.max.apply(null, dt_data.map(row => row[0])) + 1;
175
            const label = selected_option.data('label');
176
            new_line = [next_id, search_field_name, '<span>%s</span><input type="hidden" name="facet_name" value="%s" />'.format(label.escapeHtml(), search_field_name.escapeHtml()), '<a class="btn btn-default btn-xs delete" style="cursor: pointer;"><i class="fa fa-trash"></i> %s</a>'.format(__("Delete"))];
177
            dt.row.add(new_line).draw();
178
179
            $(table).on( 'click', '.delete', function () {
180
                var table = $(this).closest('table');
181
                let dt = $(table).DataTable();
182
                dt.row( $(this).closest('tr') ).remove().draw();
183
            } );
184
185
            clean_line(line);
186
        }
187
    });
188
159
});
189
});
160
- 

Return to bug 35138