3 [% PROCESS 'i18n.inc' %]
5 [% USE TablesSettings %]
6 [% INCLUDE 'doc-head-open.inc' %]
7 <title>[% FILTER collapse %]
8 [% t("Catalog concerns") | html %] ›
9 [% t("Cataloging") | html %] ›
10 [% t("Koha") | html %]
12 [% INCLUDE 'doc-head-close.inc' %]
15 <body id="cat_concerns" class="cat">
16 [% INCLUDE 'header.inc' %]
17 [% INCLUDE 'cataloging-search.inc' %]
19 <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
22 <a href="/cgi-bin/koha/mainpage.pl">Home</a>
25 <a href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cataloging</a>
28 <a href="#" aria-current="page">
35 <div class="main container-fluid">
37 <div class="col-sm-10 col-sm-push-2">
41 <div class="page-section">
42 <fieldset class="action" style="cursor:pointer;">
43 <a id="hideResolved"><i class="fa fa-minus-square"></i> Hide resolved</a>
44 | <a id="showAll"><i class="fa fa-bars"></i> Show all</a>
47 <table id="table_concerns">
54 <th data-class-name="actions noExport">Actions</th>
60 </div> <!-- /.col-sm-10.col-sm-push-2 -->
62 <div class="col-sm-2 col-sm-pull-10">
64 [% INCLUDE 'cat-menu.inc' %]
66 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
69 [% INCLUDE 'modals/display_ticket.inc' %]
71 [% MACRO jsinclude BLOCK %]
72 [% INCLUDE 'datatables.inc' %]
73 [% INCLUDE 'columns_settings.inc' %]
74 [% INCLUDE 'js-date-format.inc' %]
75 [% INCLUDE 'js-patron-format.inc' %]
76 [% INCLUDE 'js-biblio-format.inc' %]
78 $(document).ready(function() {
80 logged_in_user_borrowernumber = [% logged_in_user.borrowernumber | html %];
82 var table_settings = [% TablesSettings.GetTableSettings('cataloguing', 'concerns', 'table_concerns', 'json') | $raw %];
85 let additional_filters = {
86 resolved_date: function(){
95 var tickets_url = '/api/v1/tickets';
96 var tickets = $("#table_concerns").kohaTable({
106 'emptyTable': '<div class="dialog message">' + _("Congratulations, there are no catalog concerns.") + '</div>',
108 "targets": [0, 1, 2, 3],
109 "render": function(data, type, row, meta) {
110 if (type == 'display') {
112 return data.escapeHtml();
121 "data": "reported_date:reporter.firstname",
122 "render": function(data, type, row, meta) {
123 let reported = '<span class="date clearfix">' + $datetime(row.reported_date) + '</span>';
124 reported += '<span class="reporter clearfix">' + $patron_to_html(row.reporter, {
125 display_cardnumber: false,
134 "data": "title:body",
135 "render": function(data, type, row, meta) {
136 let resolved = ( row.resolved_date ) ? true : false;
137 let result = '<a role="button" href="#" data-toggle="modal" data-target="#ticketDetailsModal" data-concern="' + encodeURIComponent(row.ticket_id) + '" data-resolved="'+resolved+'">' + row.title + '</a>';
138 if (row.updates_count) {
139 result += '<span class="pull-right"><a role="button" href="#" data-toggle="modal" data-target="#ticketDetailsModal" data-concern="' + encodeURIComponent(row.ticket_id) + '" data-resolved="'+resolved+'"><i class="fa fa-comment" aria-hidden="true"></i> ' + row.updates_count + '</a></span>';
141 result += '<div id="detail_' + row.ticket_id + '" class="hidden">' + row.body + '</div>';
148 "data": "biblio.title",
149 "render": function(data, type, row, meta) {
150 return $biblio_to_html(row.biblio, {
158 "data": "resolver.firstname:resolver.surname:resolved_date",
159 "render": function(data, type, row, meta) {
161 if (row.resolved_date) {
162 result += _("Resolved by:") + ' <span>' + $patron_to_html(row.resolver, {
163 display_cardnumber: false,
166 result += '<span class="clearfix">' + $datetime(row.resolved_date) + '</span>';
176 "data": function(row, type, val, meta) {
177 let resolved = ( row.resolved_date ) ? true : false;
178 let result = '<a class="btn btn-default btn-xs" role="button" href="#" data-toggle="modal" data-target="#ticketDetailsModal" data-concern="' + encodeURIComponent(row.ticket_id) + '" data-resolved="'+resolved+'"><i class="fa-solid fa-eye" aria-hidden="true"></i> ' + _("Details") + '</a>';
185 }, table_settings, 1, additional_filters);
187 $('#hideResolved').on("click", function() {
189 tickets.DataTable().draw();
192 $('#showAll').on("click", function() {
194 tickets.DataTable().draw();
198 [% Asset.js("js/modals/display_ticket.js") | $raw %]
200 [% INCLUDE 'intranet-bottom.inc' %]