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

(-)a/catalogue/itemsearch.pl (+2 lines)
Lines 90-95 if (defined $format and $format eq 'json') { Link Here
90
} elsif (defined $format and $format eq 'barcodes') {
90
} elsif (defined $format and $format eq 'barcodes') {
91
    # Retrieve all results
91
    # Retrieve all results
92
    $cgi->param('rows', 0);
92
    $cgi->param('rows', 0);
93
} elsif (defined$format and $format eq 'shareable') {
94
    # get the item search parameters from the url!?!?
93
} elsif (defined $format) {
95
} elsif (defined $format) {
94
    die "Unsupported format $format";
96
    die "Unsupported format $format";
95
}
97
}
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt (-11 / +33 lines)
Lines 368-373 Link Here
368
            }
368
            }
369
        }
369
        }
370
370
371
        function getParams($form) {
372
            var params = [];
373
            $form.find('select:not(:disabled) option:selected,input[type="text"]:not(:disabled),input[type="hidden"]:not(:disabled),input[type="radio"]:checked').each(function() {
374
                if ( $(this).prop('tagName').toLowerCase() == 'option' ) {
375
                    var name = $(this).parents('select').first().attr('name');
376
                    var value = $(this).val();
377
                    params.push({ 'name': name, 'value': value });
378
                } else {
379
                    params.push({ 'name': $(this).attr('name'), 'value': $(this).val() });
380
                }
381
            });
382
            return params;
383
        }
384
371
        function submitForm($form) {
385
        function submitForm($form) {
372
            var tr = ''
386
            var tr = ''
373
                + '    <tr>'
387
                + '    <tr>'
Lines 451-456 Link Here
451
                    $('#item-search-block').show();
465
                    $('#item-search-block').show();
452
                });
466
                });
453
467
468
            var getShareableLink = $('<a>')
469
                .attr('href', '#')
470
                .html("<i class='fa fa-link'></i> " + _("Copy shareable link") )
471
                .addClass('btn btn-default')
472
                .on('click', function(e) {
473
                    e.preventDefault();
474
                    var params = getParams( $('#itemsearchform') );
475
                    params = params.map(p => {
476
                        if(p.name === 'format') {
477
                            return { ...p, value: 'shareable' };
478
                        }
479
                        return p;
480
                    })
481
                    var url = window.location.href + '?' + $.param(params);
482
                    navigator.clipboard.writeText(url);
483
                });
484
454
            var results_heading = $('<div>').addClass('results-heading')
485
            var results_heading = $('<div>').addClass('results-heading')
455
                .append("<h1>" + _("Item search results") + "</h1>")
486
                .append("<h1>" + _("Item search results") + "</h1>")
456
                .append($('<p>').append(advSearchLink))
487
                .append($('<p>').append(advSearchLink))
Lines 458-478 Link Here
458
                    .addClass("btn-toolbar")
489
                    .addClass("btn-toolbar")
459
                    .attr("id","toolbar")
490
                    .attr("id","toolbar")
460
                    .append(editSearchLink)
491
                    .append(editSearchLink)
492
                    .append(getShareableLink)
461
                );
493
                );
462
            $('#results-wrapper').empty()
494
            $('#results-wrapper').empty()
463
                .append(results_heading)
495
                .append(results_heading)
464
                .append(table);
496
                .append(table);
465
497
466
            var params = [];
498
            var params = getParams($form);
467
            $form.find('select:not(:disabled) option:selected,input[type="text"]:not(:disabled),input[type="hidden"]:not(:disabled),input[type="radio"]:checked').each(function() {
468
                if ( $(this).prop('tagName').toLowerCase() == 'option' ) {
469
                    var name = $(this).parents('select').first().attr('name');
470
                    var value = $(this).val();
471
                    params.push({ 'name': name, 'value': value });
472
                } else {
473
                    params.push({ 'name': $(this).attr('name'), 'value': $(this).val() });
474
                }
475
            });
476
499
477
            $('#results').dataTable($.extend(true, {}, dataTablesDefaults, {
500
            $('#results').dataTable($.extend(true, {}, dataTablesDefaults, {
478
                "destroy": true,
501
                "destroy": true,
479
- 

Return to bug 14322