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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbooks.tt (-19 / +17 lines)
Lines 333-380 Link Here
333
        const biblionumber = "[% biblionumber | html %]";
333
        const biblionumber = "[% biblionumber | html %]";
334
        var logged_in_user_borrowernumber = "[% logged_in_user.borrowernumber | html %]";
334
        var logged_in_user_borrowernumber = "[% logged_in_user.borrowernumber | html %]";
335
    </script>
335
    </script>
336
337
    <script>
336
    <script>
338
        $(document).ready(function() {
337
        $(document).ready(function () {
339
            //Set focus to cataloging search
338
            //Set focus to cataloging search
340
            $("input[name=q]:eq(0)").focus();
339
            $("input[name=q]:eq(0)").focus();
341
340
342
            $("#newRecord").click(function(){
341
            $("#newRecord").click(function () {
343
                var url = $("a#newRecordDefault").prop("href");
342
                var url = $("a#newRecordDefault").prop("href");
344
                window.location.href = url;
343
                window.location.href = url;
345
                return false;
344
                return false;
346
            });
345
            });
347
346
348
            $("#z3950search").click(function(){
347
            $("#z3950search").click(function () {
349
                PopupZ3950("Default");
348
                PopupZ3950("Default");
350
                return false;
349
                return false;
351
            });
350
            });
352
351
353
            $(".z3950searchFw").click(function(){
352
            $(".z3950searchFw").click(function () {
354
                PopupZ3950($(this).prop('id'));
353
                PopupZ3950($(this).prop("id"));
355
                return false;
354
                return false;
356
            });
355
            });
357
            $(".merge-items").on("click",function(e){
356
            $(".merge-items").on("click", function (e) {
358
                e.preventDefault();
357
                e.preventDefault();
359
                MergeItems();
358
                MergeItems();
360
            });
359
            });
361
360
362
            $("#useadvanced").click(function(){
361
            $("#useadvanced").click(function () {
363
                Cookies.set( `catalogue_editor_${logged_in_user_borrowernumber}`, "advanced", { expires: 365, path: '/', sameSite: 'Lax' } );
362
                Cookies.set(`catalogue_editor_${logged_in_user_borrowernumber}`, "advanced", { expires: 365, path: "/", sameSite: "Lax" });
364
                return true;
363
                return true;
365
            });
364
            });
366
365
367
            $(".previewData").on("click", function(e){
366
            $(".previewData").on("click", function (e) {
368
                e.preventDefault();
367
                e.preventDefault();
369
                var ltitle = $(this).text();
368
                var ltitle = $(this).text();
370
                var page = $(this).attr("href");
369
                var page = $(this).attr("href");
371
                $("#dataPreviewLabel").text(ltitle);
370
                $("#dataPreviewLabel").text(ltitle);
372
                $("#dataPreview .modal-body").load(page + " div");
371
                $("#dataPreview .modal-body").load(page + " div");
373
                $('#dataPreview').modal("show");
372
                $("#dataPreview").modal("show");
374
            });
373
            });
375
            $("#dataPreview").on("hidden.bs.modal", function(){
374
            $("#dataPreview").on("hidden.bs.modal", function () {
376
                $("#dataPreviewLabel").html("");
375
                $("#dataPreviewLabel").html("");
377
                $("#dataPreview .modal-body").html("<div id=\"loading\"><img src=\"" + interface + "/" + theme + "/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
376
                $("#dataPreview .modal-body").html('<div id="loading"><img src="' + interface + "/" + theme + '/img/spinner-small.gif" alt="" /> ' + _("Loading") + "</div>");
378
            });
377
            });
379
378
380
            var reservoirt = $("#reservoir-table").kohaTable(
379
            var reservoirt = $("#reservoir-table").kohaTable(
Lines 388-395 Link Here
388
        /* this function open a popup to search on z3950 server.  */
387
        /* this function open a popup to search on z3950 server.  */
389
        function PopupZ3950(fw) {
388
        function PopupZ3950(fw) {
390
            var strQuery = GetZ3950Terms(fw);
389
            var strQuery = GetZ3950Terms(fw);
391
            if(strQuery){
390
            if (strQuery) {
392
                window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=" + biblionumber + strQuery,"z3950search",'width=800,height=500,location=yes,toolbar=no,scrollbars=yes,resize=yes');
391
                window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=" + biblionumber + strQuery, "z3950search", "width=800,height=500,location=yes,toolbar=no,scrollbars=yes,resize=yes");
393
            }
392
            }
394
        }
393
        }
395
394
Lines 402-417 Link Here
402
                alert(_("At least two records must be selected for merging."));
401
                alert(_("At least two records must be selected for merging."));
403
            } else {
402
            } else {
404
                var params = [];
403
                var params = [];
405
                $(checkboxes).each(function() {
404
                $(checkboxes).each(function () {
406
                    params.push('biblionumber=' + $(this).val());
405
                    params.push("biblionumber=" + $(this).val());
407
                });
406
                });
408
                var url = '/cgi-bin/koha/cataloguing/merge.pl?' + params.join('&');
407
                var url = "/cgi-bin/koha/cataloguing/merge.pl?" + params.join("&");
409
                location.href = url;
408
                location.href = url;
410
            }
409
            }
411
            return false;
410
            return false;
412
        }
411
        }
413
    </script>
412
    </script>
414
415
    <script>
413
    <script>
416
        /* provide Z3950 search points */
414
        /* provide Z3950 search points */
417
        function GetZ3950Terms(fw){
415
        function GetZ3950Terms(fw){
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/concerns.tt (-130 / +150 lines)
Lines 68-239 Link Here
68
68
69
        var table_settings = [% TablesSettings.GetTableSettings('cataloguing', 'concerns', 'table_concerns', 'json') | $raw %];
69
        var table_settings = [% TablesSettings.GetTableSettings('cataloguing', 'concerns', 'table_concerns', 'json') | $raw %];
70
    </script>
70
    </script>
71
72
    <script>
71
    <script>
73
        $(document).ready(function() {
72
        $(document).ready(function () {
74
            let additional_filters = {
73
            let additional_filters = {
75
                resolved_date: function(){
74
                resolved_date: function () {
76
                    if ( $("#hide_resolved_concerns").is(":checked") ) {
75
                    if ($("#hide_resolved_concerns").is(":checked")) {
77
                        return { "=": null };
76
                        return { "=": null };
78
                    } else {
77
                    } else {
79
                        return;
78
                        return;
80
                    }
79
                    }
81
                },
80
                },
82
                source: 'catalog'
81
                source: "catalog",
83
            };
82
            };
84
            let external_filter_nodes = {
83
            let external_filter_nodes = {
85
                hide_resolved_concerns: "#hide_resolved_concerns",
84
                hide_resolved_concerns: "#hide_resolved_concerns",
86
            };
85
            };
87
86
88
            var tickets_url = '/api/v1/tickets';
87
            var tickets_url = "/api/v1/tickets";
89
            var tickets = $("#table_concerns").kohaTable({
88
            var tickets = $("#table_concerns").kohaTable(
90
                ajax: {
89
                {
91
                    "url": tickets_url
90
                    ajax: {
92
                },
91
                        url: tickets_url,
93
                embed: [
94
                    "assignee",
95
                    "reporter",
96
                    "resolver",
97
                    "biblio",
98
                    "updates+count",
99
                    "+strings"
100
                ],
101
                emptyTable: '<div class="alert alert-info">' + _("Congratulations, there are no catalog concerns.") + '</div>',
102
                columnDefs: [{
103
                    targets: [0, 1, 2, 3],
104
                    render: function(data, type, row, meta) {
105
                        if (type == 'display') {
106
                            if (data != null) {
107
                                return data.escapeHtml();
108
                            } else {
109
                                return "";
110
                            }
111
                        }
112
                        return data;
113
                    }
114
                }],
115
                columns: [{
116
                        data: "reported_date:reporter.firstname",
117
                        render: function(data, type, row, meta) {
118
                            let reported = '<div class="d-flex justify-content-between align-items-start">';
119
                            reported += '<span class="reporter">' + $patron_to_html(row.reporter, {
120
                                display_cardnumber: false,
121
                                url: true
122
                            }) + '</span>';
123
                            reported += '<span class="date text-muted">' + $datetime(row.reported_date) + '</span>';
124
                            reported += '</div>';
125
                            return reported;
126
                       },
127
                        searchable: true,
128
                        orderable: true
129
                    },
92
                    },
130
                    {
93
                    embed: ["assignee", "reporter", "resolver", "biblio", "updates+count", "+strings"],
131
                        data: "title:body",
94
                    emptyTable: '<div class="alert alert-info">' + _("Congratulations, there are no catalog concerns.") + "</div>",
132
                        render: function(data, type, row, meta) {
95
                    columnDefs: [
133
                            let result = '<div class="d-flex justify-content-between align-items-start">';
96
                        {
97
                            targets: [0, 1, 2, 3],
98
                            render: function (data, type, row, meta) {
99
                                if (type == "display") {
100
                                    if (data != null) {
101
                                        return data.escapeHtml();
102
                                    } else {
103
                                        return "";
104
                                    }
105
                                }
106
                                return data;
107
                            },
108
                        },
109
                    ],
110
                    columns: [
111
                        {
112
                            data: "reported_date:reporter.firstname",
113
                            render: function (data, type, row, meta) {
114
                                let reported = '<div class="d-flex justify-content-between align-items-start">';
115
                                reported +=
116
                                    '<span class="reporter">' +
117
                                    $patron_to_html(row.reporter, {
118
                                        display_cardnumber: false,
119
                                        url: true,
120
                                    }) +
121
                                    "</span>";
122
                                reported += '<span class="date text-muted">' + $datetime(row.reported_date) + "</span>";
123
                                reported += "</div>";
124
                                return reported;
125
                            },
126
                            searchable: true,
127
                            orderable: true,
128
                        },
129
                        {
130
                            data: "title:body",
131
                            render: function (data, type, row, meta) {
132
                                let result = '<div class="d-flex justify-content-between align-items-start">';
134
133
135
                            // Title link on the left
134
                                // Title link on the left
136
                            result += '<a id="title_' + row.ticket_id + '" role="button" href="#" class="detail-trigger">' + row.title + '</a>';
135
                                result += '<a id="title_' + row.ticket_id + '" role="button" href="#" class="detail-trigger">' + row.title + "</a>";
137
136
138
                            // Updates count on the right, if it exists
137
                                // Updates count on the right, if it exists
139
                            if (row.updates_count) {
138
                                if (row.updates_count) {
140
                                result += '<span><a role="button" href="#" class="detail-trigger"><i class="fa fa-comment" aria-hidden="true"></i> ' + row.updates_count + '</a></span>';
139
                                    result += '<span><a role="button" href="#" class="detail-trigger"><i class="fa fa-comment" aria-hidden="true"></i> ' + row.updates_count + "</a></span>";
141
                            }
140
                                }
142
141
143
                            // Hidden detail content
142
                                // Hidden detail content
144
                            result += '</div>';
143
                                result += "</div>";
145
                            result += '<div id="detail_' + row.ticket_id + '" style="display:none">' + row.body + '</div>';
144
                                result += '<div id="detail_' + row.ticket_id + '" style="display:none">' + row.body + "</div>";
146
145
147
                            return result;
146
                                return result;
147
                            },
148
                            searchable: true,
149
                            orderable: true,
148
                        },
150
                        },
149
                        searchable: true,
151
                        {
150
                        orderable: true
152
                            data: "biblio.title",
151
                    },
153
                            render: function (data, type, row, meta) {
152
                    {
154
                                return $biblio_to_html(row.biblio, {
153
                        data: "biblio.title",
155
                                    link: 1,
154
                        render: function(data, type, row, meta) {
156
                                });
155
                            return $biblio_to_html(row.biblio, {
157
                            },
156
                                link: 1
158
                            searchable: true,
157
                            });
159
                            orderable: true,
158
                        },
160
                        },
159
                        searchable: true,
161
                        {
160
                        orderable: true
162
                            data: "assignee.firstname:assignee.surname:resolver.firstname:resolver.surname:resolved_date:status",
161
                    },
163
                            render: function (data, type, row, meta) {
162
                    {
164
                                let result = "";
163
                        data: "assignee.firstname:assignee.surname:resolver.firstname:resolver.surname:resolved_date:status",
165
                                if (row.resolved_date) {
164
                        render: function(data, type, row, meta) {
166
                                    result += "<div>";
165
                            let result = '';
167
                                    result +=
166
                            if (row.resolved_date) {
168
                                        _("Resolved by") +
167
                                result += "<div>";
169
                                        " <span>" +
168
                                result += _("Resolved by") + ' <span>' + $patron_to_html(row.resolver, {
170
                                        $patron_to_html(row.resolver, {
169
                                    display_cardnumber: false,
171
                                            display_cardnumber: false,
170
                                    url: true
172
                                            url: true,
171
                                }) + '</span>';
173
                                        }) +
172
                                result += "</div>";
174
                                        "</span>";
173
                                if (row.status) {
175
                                    result += "</div>";
174
                                    result += '<div>';
176
                                    if (row.status) {
175
                                    result += ' ' + _("as") + ' ';
177
                                        result += "<div>";
176
                                    result += row._strings.status ? escape_str(row._strings.status.str) : "";
178
                                        result += " " + _("as") + " ";
177
                                    result += '</div>';
179
                                        result += row._strings.status ? escape_str(row._strings.status.str) : "";
178
                                }
180
                                        result += "</div>";
179
                                result += '<div>' + $datetime(row.resolved_date) + '</div>';
181
                                    }
180
                            } else {
182
                                    result += "<div>" + $datetime(row.resolved_date) + "</div>";
181
                                result += '<div>';
182
                                if (row.status) {
183
                                    result += row._strings.status ? escape_str(row._strings.status.str) : "";
184
                                } else {
183
                                } else {
185
                                    result += _("Open");
184
                                    result += "<div>";
186
                                }
185
                                    if (row.status) {
187
                                result += '</div>';
186
                                        result += row._strings.status ? escape_str(row._strings.status.str) : "";
188
                                if (row.assignee) {
187
                                    } else {
189
                                    result += '<div>';
188
                                        result += _("Open");
190
                                    result += _("Assigned to: ") + ' <span>' + $patron_to_html(row.assignee, {
189
                                    }
191
                                        display_cardnumber: false,
190
                                    result += "</div>";
192
                                        url: true
191
                                    if (row.assignee) {
193
                                    }) + '</span>';
192
                                        result += "<div>";
194
                                    result += '</div>';
193
                                        result +=
194
                                            _("Assigned to: ") +
195
                                            " <span>" +
196
                                            $patron_to_html(row.assignee, {
197
                                                display_cardnumber: false,
198
                                                url: true,
199
                                            }) +
200
                                            "</span>";
201
                                        result += "</div>";
202
                                    }
195
                                }
203
                                }
196
                            }
204
                                return result;
197
                            return result;
205
                            },
206
                            searchable: true,
207
                            orderable: true,
198
                        },
208
                        },
199
                        searchable: true,
209
                        {
200
                        orderable: true
210
                            data: function (row, type, val, meta) {
201
                    },
211
                                let resolved = row.resolved_date ? true : false;
202
                    {
212
                                let result =
203
                        data: function(row, type, val, meta) {
213
                                    '<a class="btn btn-default btn-xs main-trigger" role="button" href="#" data-bs-toggle="modal" data-bs-target="#ticketDetailsModal" data-concern="' +
204
                            let resolved = ( row.resolved_date ) ? true : false;
214
                                    encodeURIComponent(row.ticket_id) +
205
                            let result = '<a class="btn btn-default btn-xs main-trigger" role="button" href="#" data-bs-toggle="modal" data-bs-target="#ticketDetailsModal" data-concern="' + encodeURIComponent(row.ticket_id) + '" data-resolved="'+resolved+'" data-assignee="'+$patron_to_html(row.assignee, { display_cardnumber: false, url: false })+'"><i class="fa-solid fa-eye" aria-hidden="true"></i> ' + _("Details") + '</a>';
215
                                    '" data-resolved="' +
206
                            return result;
216
                                    resolved +
217
                                    '" data-assignee="' +
218
                                    $patron_to_html(row.assignee, { display_cardnumber: false, url: false }) +
219
                                    '"><i class="fa-solid fa-eye" aria-hidden="true"></i> ' +
220
                                    _("Details") +
221
                                    "</a>";
222
                                return result;
223
                            },
224
                            searchable: false,
225
                            orderable: false,
207
                        },
226
                        },
208
                        searchable: false,
227
                    ],
209
                        orderable: false
228
                    createdRow: function (row, data, dataIndex) {
229
                        if (data.status) {
230
                            $(row).addClass(data.status.toLowerCase());
231
                        }
210
                    },
232
                    },
211
                ],
212
                createdRow: function (row, data, dataIndex) {
213
                    if ( data.status ) {
214
                        $(row).addClass(data.status.toLowerCase());
215
                    }
216
                },
233
                },
217
            }, table_settings, 1, additional_filters, undefined, external_filter_nodes);
234
                table_settings,
235
                1,
236
                additional_filters,
237
                undefined,
238
                external_filter_nodes
239
            );
218
240
219
            var txtActivefilter = _("Include resolved");
241
            var txtActivefilter = _("Include resolved");
220
            var txtInactivefilter = _("Filter resolved");
242
            var txtInactivefilter = _("Filter resolved");
221
            function adjust_filter_label(){
243
            function adjust_filter_label() {
222
                if ($("#hide_resolved_concerns").is(":checked")){
244
                if ($("#hide_resolved_concerns").is(":checked")) {
223
                    $("#resolved_filter").html('<i class="fa fa-filter"></i> '+txtActivefilter);
245
                    $("#resolved_filter").html('<i class="fa fa-filter"></i> ' + txtActivefilter);
224
                } else {
246
                } else {
225
                    $("#resolved_filter").html('<i class="fa fa-bars"></i> '+txtInactivefilter);
247
                    $("#resolved_filter").html('<i class="fa fa-bars"></i> ' + txtInactivefilter);
226
                }
248
                }
227
            }
249
            }
228
            $('#resolved_filter').on("click", function() {
250
            $("#resolved_filter").on("click", function () {
229
                $("#hide_resolved_concerns").prop("checked", !$("#hide_resolved_concerns").is(":checked"));
251
                $("#hide_resolved_concerns").prop("checked", !$("#hide_resolved_concerns").is(":checked"));
230
                adjust_filter_label()
252
                adjust_filter_label();
231
                tickets.DataTable().draw();
253
                tickets.DataTable().draw();
232
            });
254
            });
233
            adjust_filter_label();
255
            adjust_filter_label();
234
        });
256
        });
235
    </script>
257
    </script>
236
237
    <script>
258
    <script>
238
        $(document).ready(function() {
259
        $(document).ready(function() {
239
            [% FOR st IN status %]
260
            [% FOR st IN status %]
Lines 262-268 Link Here
262
            [% END %]
283
            [% END %]
263
        });
284
        });
264
    </script>
285
    </script>
265
266
    [% INCLUDE 'select2.inc' %]
286
    [% INCLUDE 'select2.inc' %]
267
    [% Asset.js("js/modals/display_ticket.js") | $raw %]
287
    [% Asset.js("js/modals/display_ticket.js") | $raw %]
268
[% END %]
288
[% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/z3950_search.tt (-5 / +3 lines)
Lines 279-287 Link Here
279
    <script>
279
    <script>
280
        var table_settings = [% TablesSettings.GetTableSettings( 'cataloguing', 'z3950_search', 'resultst', 'json' ) | $raw %];
280
        var table_settings = [% TablesSettings.GetTableSettings( 'cataloguing', 'z3950_search', 'resultst', 'json' ) | $raw %];
281
    </script>
281
    </script>
282
283
    <script>
282
    <script>
284
        $(document).ready(function(){
283
        $(document).ready(function () {
285
            var thetable = $("#resultst").kohaTable(
284
            var thetable = $("#resultst").kohaTable(
286
                {
285
                {
287
                    columnDefs: [{ targets: [1], type: "nsb-nse" }],
286
                    columnDefs: [{ targets: [1], type: "nsb-nse" }],
Lines 294-301 Link Here
294
            InitLastAction();
293
            InitLastAction();
295
        });
294
        });
296
295
297
        function columnsInit(){
296
        function columnsInit() {
298
            $(".dataTables_info").text( $("#result_pagenumbers").text() );
297
            $(".dataTables_info").text($("#result_pagenumbers").text());
299
            $("#result_pagenumbers").hide();
298
            $("#result_pagenumbers").hide();
300
        }
299
        }
301
    </script>
300
    </script>
302
- 

Return to bug 41567