Lines 152-174
Link Here
|
152 |
</tr> |
152 |
</tr> |
153 |
</thead> |
153 |
</thead> |
154 |
<tbody> |
154 |
<tbody> |
155 |
[% FOREACH request IN requests %] |
|
|
156 |
[% status = request.status | html %] |
157 |
[% type = request.get_type %] |
158 |
<tr> |
159 |
<td>[% request.id | html %]</td> |
160 |
<td> [% IF request.metadata.Author %][% request.metadata.Author | html %][% ELSE %]<span>N/A</span>[% END %] </td> |
161 |
<td> [% IF request.metadata.Title %][% request.metadata.Title | html %][% ELSE %]<span>N/A</span>[% END %] </td> |
162 |
<td>[% request.backend | html %]</td> |
163 |
<td> [% IF type %][% type | html %][% ELSE %]<span>N/A</span>[% END %] </td> |
164 |
<td>[% request.status_alias ? request.statusalias.lib_opac : request.capabilities.$status.name | html %]</td> |
165 |
<td data-order="[% request.placed | html %]">[% request.placed | $KohaDates %]</td> |
166 |
<td data-order="[% request.updated | html %]">[% request.updated | $KohaDates %]</td> |
167 |
<td> |
168 |
<a href="/cgi-bin/koha/opac-illrequests.pl?op=view&illrequest_id=[% request.id | uri %]" class="btn btn-primary btn-sm">View</a> |
169 |
</td> |
170 |
</tr> |
171 |
[% END %] |
172 |
</tbody> |
155 |
</tbody> |
173 |
</table> |
156 |
</table> |
174 |
[% ELSIF op == 'view' %] |
157 |
[% ELSIF op == 'view' %] |
Lines 369-377
Link Here
|
369 |
[% BLOCK jsinclude %] |
352 |
[% BLOCK jsinclude %] |
370 |
[% INCLUDE 'datatables.inc' %] |
353 |
[% INCLUDE 'datatables.inc' %] |
371 |
<script> |
354 |
<script> |
372 |
$("#illrequestlist").kohaTable({ |
355 |
function display_extended_attribute(row, type) { |
373 |
order: [[3, "desc"]], |
356 |
var arr = $.grep(row.extended_attributes, ( x => x.type === type )); |
374 |
}); |
357 |
if (arr.length > 0) { |
|
|
358 |
return escape_str(arr[0].value); |
359 |
} |
360 |
|
361 |
return ''; |
362 |
} |
363 |
|
364 |
function display_request_status(row) { |
365 |
let status = row._strings.status.str; |
366 |
let status_alias = row._strings.status_av ? |
367 |
row._strings.status_av.str ? |
368 |
row._strings.status_av.str : |
369 |
row._strings.status_av.code : |
370 |
null; |
371 |
|
372 |
let status_label = status + (status_alias ? " <i><strong>"+status_alias+"</strong></i>" : ""); |
373 |
|
374 |
return status_label; |
375 |
} |
376 |
$("#illrequestlist").dataTable($.extend(true, {}, dataTablesDefaults, { |
377 |
columns: [ |
378 |
{ |
379 |
data: 'ill_request_id', |
380 |
sortable: true, |
381 |
render: (data, type, row, meta) => { |
382 |
return data; |
383 |
}, |
384 |
}, |
385 |
{ |
386 |
data: 'author', |
387 |
sortable: false, |
388 |
render: (data, type, row, meta) => { |
389 |
return display_extended_attribute(row, 'author'); |
390 |
}, |
391 |
}, |
392 |
{ |
393 |
data: 'title', |
394 |
sortable: false, |
395 |
render: (data, type, row, meta) => { |
396 |
return display_extended_attribute(row, 'title'); |
397 |
}, |
398 |
}, |
399 |
{ |
400 |
data: 'ill_backend_id', |
401 |
sortable: true, |
402 |
render: (data, type, row, meta) => { |
403 |
return escape_str(data); |
404 |
}, |
405 |
}, |
406 |
{ |
407 |
data: 'type', |
408 |
sortable: false, |
409 |
render: (data, type, row, meta) => { |
410 |
return display_extended_attribute(row, 'type'); |
411 |
}, |
412 |
}, |
413 |
{ |
414 |
data: 'status', |
415 |
sortable: true, |
416 |
render: (data, type, row, meta) => { |
417 |
return display_request_status(row); |
418 |
}, |
419 |
}, |
420 |
{ |
421 |
data: 'requested_date', |
422 |
sortable: true, |
423 |
render: (data, type, row, meta) => { |
424 |
return $date(data); |
425 |
}, |
426 |
}, |
427 |
{ |
428 |
data: 'timestamp', |
429 |
sortable: true, |
430 |
render: (data, type, row, meta) => { |
431 |
return $date(data); |
432 |
}, |
433 |
}, |
434 |
{ |
435 |
data: '', |
436 |
sortable: false, |
437 |
render: (data, type, row, meta) => { |
438 |
return `<a href="/cgi-bin/koha/opac-illrequests.pl?op=view&illrequest_id=${row.ill_request_id}" class="btn btn-primary btn-sm">View</a>`; |
439 |
}, |
440 |
} |
441 |
], |
442 |
"order": [[ 0, "desc" ]], |
443 |
"dom": '<"dt-info"i><"top pager"<"table_entries"lp>>tr<"bottom pager"ip>', |
444 |
"paging": true, |
445 |
"serverSide": true, |
446 |
"ajax": { |
447 |
"cache": true, |
448 |
"url": '/api/v1/patrons/[% logged_in_user.borrowernumber %]/ill/requests', |
449 |
'beforeSend': function (xhr, settings) { |
450 |
this._xhr = xhr; |
451 |
xhr.setRequestHeader('x-koha-embed', '+strings,extended_attributes'); |
452 |
}, |
453 |
"data": (data, settings) => { |
454 |
const order = data.order[0]; |
455 |
const order_by = (order.dir == 'asc' ? '+' : '-') + 'me.' + data.columns[order.column].data; |
456 |
const page = Math.floor(data.start / data.length) + 1; |
457 |
return { |
458 |
_page: page, |
459 |
_per_page: data.length, |
460 |
_order_by: order_by, |
461 |
}; |
462 |
}, |
463 |
'dataFilter': function (data, type) { |
464 |
const json = {data: JSON.parse(data)}; |
465 |
if (total = this._xhr.getResponseHeader('x-total-count')) { |
466 |
json.recordsTotal = total; |
467 |
json.recordsFiltered = total; |
468 |
} |
469 |
if (total = this._xhr.getResponseHeader('x-base-total-count')) { |
470 |
json.recordsTotal = total; |
471 |
} |
472 |
if (draw = this._xhr.getResponseHeader('x-koha-request-id')) { |
473 |
json.draw = draw; |
474 |
} |
475 |
|
476 |
return JSON.stringify(json); |
477 |
}, |
478 |
}, |
479 |
})); |
375 |
$("#backend-dropdown-options").removeClass("nojs"); |
480 |
$("#backend-dropdown-options").removeClass("nojs"); |
376 |
[% IF services_json.length > 0 %] |
481 |
[% IF services_json.length > 0 %] |
377 |
var services = [% services_json | $raw %]; |
482 |
var services = [% services_json | $raw %]; |