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

(-)a/catalogue/itemsearch.pl (-6 / +5 lines)
Lines 19-25 Link Here
19
use Modern::Perl;
19
use Modern::Perl;
20
use CGI;
20
use CGI;
21
21
22
use JSON qw( to_json );
22
use JSON qw( to_json from_json );
23
23
24
use C4::Auth qw( get_template_and_user );
24
use C4::Auth qw( get_template_and_user );
25
use C4::Circulation qw( barcodedecode );
25
use C4::Circulation qw( barcodedecode );
Lines 34-40 use Koha::ItemTypes; Link Here
34
use Koha::Libraries;
34
use Koha::Libraries;
35
35
36
my $cgi = CGI->new;
36
my $cgi = CGI->new;
37
my %params = $cgi->Vars;
38
37
39
my $format = $cgi->param('format');
38
my $format = $cgi->param('format');
40
my $template_name = 'catalogue/itemsearch.tt';
39
my $template_name = 'catalogue/itemsearch.tt';
Lines 43-51 if (defined $format and $format eq 'json') { Link Here
43
    $template_name = 'catalogue/itemsearch_json.tt';
42
    $template_name = 'catalogue/itemsearch_json.tt';
44
43
45
    # Map DataTables parameters with 'regular' parameters
44
    # Map DataTables parameters with 'regular' parameters
46
    $cgi->param('rows', scalar $cgi->param('iDisplayLength'));
45
    $cgi->param('rows', scalar $cgi->param('length'));
47
    $cgi->param('page', (scalar $cgi->param('iDisplayStart') / scalar $cgi->param('iDisplayLength')) + 1);
46
    $cgi->param('page', (scalar $cgi->param('start') / scalar $cgi->param('length')) + 1);
48
    my @columns = split /,/, scalar $cgi->param('sColumns');
47
    my @columns = split /,/, from_json scalar $cgi->param('columns');
49
    $cgi->param('sortby', $columns[ scalar $cgi->param('iSortCol_0') ]);
48
    $cgi->param('sortby', $columns[ scalar $cgi->param('iSortCol_0') ]);
50
    $cgi->param('sortorder', scalar $cgi->param('sSortDir_0'));
49
    $cgi->param('sortorder', scalar $cgi->param('sSortDir_0'));
51
50
Lines 275-281 if ( defined $format ) { Link Here
275
            print "$line\n" unless $line =~ m|^\s*$|;
274
            print "$line\n" unless $line =~ m|^\s*$|;
276
        }
275
        }
277
    } elsif ($format eq 'json') {
276
    } elsif ($format eq 'json') {
278
        $template->param(sEcho => scalar $cgi->param('sEcho'));
277
        $template->param(draw => scalar $cgi->param('draw'));
279
        output_with_http_headers $cgi, $cookie, $template->output, 'json';
278
        output_with_http_headers $cgi, $cookie, $template->output, 'json';
280
    }
279
    }
281
280
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt (-15 / +12 lines)
Lines 469-491 Link Here
469
469
470
            $('#results').dataTable($.extend(true, {}, dataTablesDefaults, {
470
            $('#results').dataTable($.extend(true, {}, dataTablesDefaults, {
471
                "destroy": true,
471
                "destroy": true,
472
                "serverSide":  true,
472
                "serverSide": true,
473
                "processing": true,
473
                "processing": true,
474
                "ajax":  '/cgi-bin/koha/catalogue/itemsearch.pl',
474
                "ajax": {
475
                'fnServerData': function(sSource, aoData, fnCallback) {
475
                    url: '/cgi-bin/koha/catalogue/itemsearch.pl',
476
                    aoData.push( { 'name': 'format', 'value': 'json' } );
476
                    type: 'POST',
477
                    for (i in params) {
477
                    data: function ( d ) {
478
                        aoData.push(params[i]);
478
                        for (i in params) {
479
                    }
479
                            d[params[i].name] = params[i].value;
480
                    $.ajax({
481
                        'dataType': 'json',
482
                        'type': 'POST',
483
                        'url': sSource,
484
                        'data': aoData,
485
                        'success': function(json){
486
                            fnCallback(json);
487
                        }
480
                        }
488
                    });
481
                        d.format = 'json';
482
                        d.columns = JSON.stringify( d.columns );
483
                        console.log(d.draw);
484
                        return d;
485
                    }
489
                },
486
                },
490
                "dom": '<"top pager"ilp>t<"bottom pager"ip>r',
487
                "dom": '<"top pager"ilp>t<"bottom pager"ip>r',
491
                "order": [[1, 'asc']],
488
                "order": [[1, 'asc']],
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch_json.tt (-4 / +3 lines)
Lines 1-7 Link Here
1
{
1
{
2
  "sEcho": [% sEcho | html %],
2
  "draw": [% draw | html %],
3
  "iTotalRecords": [% total_rows | html %],
3
  "recordsTotal": [% total_rows | html %],
4
  "iTotalDisplayRecords": [% total_rows | html %],
4
  "recordsFiltered": [% total_rows | html %],
5
  "data": [
5
  "data": [
6
  [%- FOREACH item IN results -%]
6
  [%- FOREACH item IN results -%]
7
    [%- INCLUDE 'catalogue/itemsearch_item.json.inc' item = item, user = user -%]
7
    [%- INCLUDE 'catalogue/itemsearch_item.json.inc' item = item, user = user -%]
8
- 

Return to bug 34913