Bugzilla – Attachment 49014 Details for
Bug 13371
Add filters to the supplier list view
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 13371: Add filters on the supplier list view
Bug-13371-Add-filters-on-the-supplier-list-view.patch (text/plain), 17.10 KB, created by
Alex Arnaud
on 2016-03-11 13:58:36 UTC
(
hide
)
Description:
Bug 13371: Add filters on the supplier list view
Filename:
MIME Type:
Creator:
Alex Arnaud
Created:
2016-03-11 13:58:36 UTC
Size:
17.10 KB
patch
obsolete
>From 8ead1f99d69a7c4f1a7aab24a139a8b947208862 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Mon, 1 Dec 2014 18:08:45 +0100 >Subject: [PATCH] Bug 13371: Add filters on the supplier list view > >This patch adds the ability to filter the basket list depending on its >creator name, basketgroup name, dates (creation, close), etc. > >Test plan: >Go on the supplier list view (acqui/booksellers.pl) and confirm that the >view is more ergonomic and the filters permit to the librarians to find >a basket more easily than before. > >Signed-off-by: Paola Rossi <paola.rossi@cineca.it> >--- > .../prog/en/modules/acqui/booksellers.tt | 282 +++++++++++---------- > 1 file changed, 148 insertions(+), 134 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/booksellers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/booksellers.tt >index 5e6ff45..1887cb8 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/booksellers.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/booksellers.tt >@@ -2,28 +2,75 @@ > [% INCLUDE 'doc-head-open.inc' %] > <title>Koha › Search for vendor [% supplier %]</title> > [% INCLUDE 'doc-head-close.inc' %] >-<style type="text/css"> >-#vendors td{ >- vertical-align: top; >-} >-</style> > <link rel="stylesheet" href="[% themelang %]/css/datatables.css" /> > [% INCLUDE 'datatables.inc' %] >+<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.dataTables.columnFilter.js"></script> >+ > <script type="text/javascript"> > //<![CDATA[ > $(document).ready(function() { >- $("table.baskets").dataTable($.extend(true, {}, dataTablesDefaults, { >- 'sDom': 't', >- 'bPaginate': false, >- 'bFilter': false, >- 'bInfo': false, >- "aaSorting": [[ 1, "asc" ]], >+ var thead_row = $("#baskets").find('thead tr'); >+ var clone = thead_row.clone().addClass('filters_row'); >+ thead_row.before(clone); >+ >+ var table = $("#baskets").dataTable($.extend(true, {}, dataTablesDefaults, { >+ "fnDrawCallback": function ( oSettings ) { >+ if ( oSettings.aiDisplay.length == 0 ) >+ { >+ return; >+ } >+ >+ var nTrs = $('#baskets tbody tr'); >+ var iColspan = nTrs[0].getElementsByTagName('td').length; >+ var sLastGroup = ""; >+ for ( var i=0 ; i<nTrs.length ; i++ ) >+ { >+ var iDisplayIndex = oSettings._iDisplayStart + i; >+ var sGroup = oSettings.aoData[ oSettings.aiDisplay[iDisplayIndex] ]._aData[0]; >+ if ( sGroup != sLastGroup ) >+ { >+ var nGroup = document.createElement( 'tr' ); >+ var nCell = document.createElement( 'td' ); >+ nCell.colSpan = iColspan; >+ nCell.className = "group"; >+ nCell.innerHTML = sGroup; >+ nGroup.appendChild( nCell ); >+ nTrs[i].parentNode.insertBefore( nGroup, nTrs[i] ); >+ sLastGroup = sGroup; >+ } >+ } >+ }, > "aoColumnDefs": [ >- { "sType": "title-string", "aTargets" : [ "title-string" ] }, >- { "sType": "title-numeric", "aTargets" : [ "title-numeric" ] }, >- { 'aTargets': [-1], 'bSortable': false } >- ] >- })); >+ { "bVisible": false, "aTargets": [ 'NoVisible' ] }, >+ { "bSortable": false, "aTargets": ["_all"] } >+ ], >+ 'bSort': true, >+ 'aaSortingFixed': [[ 0, 'asc' ]], >+ 'bPaginate': false, >+ 'bAutoWidth': false >+ })).columnFilter( >+ { >+ 'sPlaceHolder': 'head:after', >+ // The first column is hidden >+ // Without bUseColVis, the filters don't work on the correct column. >+ 'bUseColVis': true, >+ 'aoColumns': [ >+ null, >+ { type: 'number' }, >+ { type: 'text' }, >+ { type: 'number' }, >+ { type: 'number' }, >+ { type: 'number' }, >+ { type: 'text' }, >+ { type: 'date-range' }, >+ { type: 'text' }, >+ { type: 'date-range' }, >+ null >+ >+ ] >+ } >+ ); >+ > $("#supplierlist").change(function() { > var id = $(this).find("option:selected").val(); > window.location.href = "#" + id; >@@ -55,136 +102,103 @@ $(document).ready(function() { > <h1>You searched on <b>vendor [% supplier %],</b> [% count %] results found</h1> > [% END %] > [% IF ( loop_suppliers.size ) %] >- [% UNLESS (count == 1) %] >- <p>Choose a vendor in the list to jump directly to the right place. >- <select id="supplierlist"> >- [% FOREACH supplier1 IN loop_suppliers %] >- <option value="[% supplier1.booksellerid %]">[% supplier1.name %]</option> >- [% END %] >- </select> >- </p> >- [% END %] >- [% IF ( allbaskets ) %] >+ [% IF allbaskets %] > <p><a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&booksellerid=[% booksellerid %]">Show active baskets only</a></p> > [% ELSE %] > <p><a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&booksellerid=[% booksellerid %]&allbaskets=1">Show all baskets</a></p> > [% END %] >- <div id="acqui_order_supplierlist"> >+ <div id="acqui_order_basketlist"> >+ <table id="baskets" class="group"> >+ <thead> >+ <tr> >+ <th class='NoVisible'>bookseller</th> >+ <th>No.</th> >+ <th>Name</th> >+ <th class="title-numeric">Item count</th> >+ <th class="title-numeric">Biblio count</th> >+ <th>Items expected</th> >+ <th>Created by</th> >+ <th class="title-string">Date</th> >+ <th>Basket group</th> >+ <th class="title-string">Closed</th> >+ <th> </th> >+ </tr> >+ </thead> >+ <tbody> > [% FOREACH supplier IN loop_suppliers %] >- <div class="supplier"> >- <span class="suppliername"> >- [% IF (supplier.name) %] >- <a name="[% supplier.booksellerid %]" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% supplier.booksellerid %]">[% supplier.name %]</a> >- [% ELSE %] >- <a name="[% supplier.booksellerid %]" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% supplier.booksellerid %]">NO NAME</a> >- [% END %] >- </span> >- <span class="action"> >- [% IF ( CAN_user_acquisition_order_manage ) %] >- [% IF ( supplier.active ) %] >- <a class="btn btn-small" href="/cgi-bin/koha/acqui/basketheader.pl?booksellerid=[% supplier.booksellerid %]&op=add_form"><i class="fa fa-plus"></i> New basket</a> >+ [% FOREACH basket IN supplier.loop_basket %] >+ [% IF ( basket.uncertainprices ) %] >+ <tr class="problem"> >+ [% ELSE %] >+ <tr> >+ [% END %] >+ <td>[% supplier.name %] ([% supplier.booksellerid %])</td> >+ <td>[% basket.basketno %]</td> >+ <td>[% basket.basketname %]</td> >+ <td> >+ <span title="[% basket.total_items %]">[% basket.total_items %] >+ [% IF basket.total_items_cancelled %] >+ ([% basket.total_items_cancelled %] cancelled) >+ [% END %] >+ </span> >+ </td> >+ <td> >+ <span title="[% basket.total_biblios %]">[% basket.total_biblios %] >+ [% IF basket.total_biblios_cancelled %] >+ ([% basket.total_biblios_cancelled %] cancelled) >+ [% END %] >+ </span> >+ </td> >+ <td>[% basket.expected_items %]</td> >+ <td> >+ [% basket.authorisedby_firstname %] >+ [% basket.authorisedby_surname %] >+ </td> >+ <td><span title="[% basket.creationdate %]">[% basket.creationdate | $KohaDates %]</span></td> >+ <td> >+ [% IF basket.basketgroup %] >+ [% basketgroup = basket.basketgroup %] >+ [% IF basketgroup.closed %] >+ [% basketgroup.name %] (closed) > [% ELSE %] >- (inactive) >+ <a href="/cgi-bin/koha/acqui/basketgroup.pl?op=add&booksellerid=[% basket.booksellerid %]&basketgroupid=[% basketgroup.id %]">[% basketgroup.name %]</a> > [% END %] >- [% END %] >- [% IF ( supplier.loop_basket.size ) %] >- <a class="btn btn-small" href="/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% supplier.booksellerid %]"><i class="fa fa-inbox"></i> Receive shipment</a> >+ [% END %] >+ </td> >+ <td> >+ [% IF ( basket.closedate ) %] >+ <span title="[% basket.closedate %]">[% basket.closedate | $KohaDates %]</span> >+ [% ELSE %] >+ <span title="9999-99-99"></span> > [% END %] >- </span> >- <div class="baskets"> >- [% IF ( supplier.loop_basket.size ) %] >- <table class="baskets"> >- <thead> >- <tr> >- <th>No.</th> >- <th>Name</th> >- <th class="title-numeric">Item count</th> >- <th class="title-numeric">Biblio count</th> >- <th>Items expected</th> >- <th>Created by</th> >- <th class="title-string">Date</th> >- <th>Basket group</th> >- <th class="title-string">Closed</th> >- <th> </th> >- </tr> >- </thead> >- <tbody> >- [% FOREACH basket IN supplier.loop_basket %] >- [% IF ( basket.uncertainprices ) %] >- <tr class="problem"> >- [% ELSE %] >- <tr> >- [% END %] >- <td>[% basket.basketno %]</td> >- <td>[% basket.basketname %]</td> >- <td> >- <span title="[% basket.total_items %]">[% basket.total_items %] >- [% IF basket.total_items_cancelled %] >- ([% basket.total_items_cancelled %] cancelled) >- [% END %] >- </span> >- </td> >- <td> >- <span title="[% basket.total_biblios %]">[% basket.total_biblios %] >- [% IF basket.total_biblios_cancelled %] >- ([% basket.total_biblios_cancelled %] cancelled) >- [% END %] >- </span> >- </td> >- <td>[% basket.expected_items %]</td> >- <td> >- [% basket.authorisedby_firstname %] >- [% basket.authorisedby_surname %] >- </td> >- <td><span title="[% basket.creationdate %]">[% basket.creationdate | $KohaDates %]</span></td> >- <td> >- [% IF basket.basketgroup %] >- [% basketgroup = basket.basketgroup %] >- [% IF basketgroup.closed %] >- [% basketgroup.name %] (closed) >- [% ELSE %] >- <a href="/cgi-bin/koha/acqui/basketgroup.pl?op=add&booksellerid=[% basket.booksellerid %]&basketgroupid=[% basketgroup.id %]">[% basketgroup.name %]</a> >- [% END %] >- [% END %] >- </td> >- <td> >- [% IF ( basket.closedate ) %] >- <span title="[% basket.closedate %]">[% basket.closedate | $KohaDates %]</span> >- [% ELSE %] >- <span title="9999-99-99"></span> >- [% END %] >- </td> >- <td> >- <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno %]">View</a> >- >- [% IF not basket.closedate and supplier.active %] >- | <a id="addtoBasketLabel[% basket.basketno %]" href="#addtoBasket[% basket.basketno %]" role="button" data-toggle="modal">Add to basket</a> >- <!-- Modal --> >- <div id="addtoBasket[% basket.basketno %]" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="addtoBasketLabel[% basket.basketno %]" aria-hidden="true" data-basketno="[% basket.basketname %]"> >- <div class="modal-body"> >- [% INCLUDE 'acquisitions-add-to-basket.inc' booksellerid=supplier.booksellerid basketno=basket.basketno %] >- </div> >- <div class="modal-footer"> >- <a href="#" class="cancel" data-dismiss="modal" aria-hidden="true">Cancel</a> >- </div> >- </div> >- [% END %] >- </td> >- </tr> >- [% END %][%# FOREACH basket IN supplier.loop_basket %] >- </tbody> >- </table> >+ </td> >+ <td> >+ <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno %]">View</a> > >- [% ELSE %] >- <p>No pending baskets</p> >- [% END %][%# IF ( supplier.loop_basket.size ) %] >- </div> >- </div> >- [% END %][%# FOREACH supplier IN loop_suppliers %] >- </div> >+ [% UNLESS ( basket.closedate ) %] >+ | <a id="addtoBasketLabel[% basket.basketno %]" href="#addtoBasket[% basket.basketno %]" role="button" data-toggle="modal">Add to basket</a> >+ <!-- Modal --> >+ <div id="addtoBasket[% basket.basketno %]" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="addtoBasketLabel[% basket.basketno %]" aria-hidden="true" data-basketno="[% basket.basketname %]"> >+ <div class="modal-body"> >+ [% INCLUDE 'acquisitions-add-to-basket.inc' booksellerid=supplier.booksellerid basketno=basket.basketno %] >+ </div> >+ <div class="modal-footer"> >+ <a href="#" class="cancel" data-dismiss="modal" aria-hidden="true">Cancel</a> >+ </div> >+ </div> >+ [% END %] >+ </td> >+ </tr> >+ [% END %][%# FOREACH basket IN supplier.loop_basket %] >+ [% END %] >+ </tbody> >+ </table> >+[% ELSE %] >+ <p>No pending baskets</p> > [% END %][%# IF ( loop_suppliers.size ) %] > </div> > </div> >+</div> > <div class="yui-b"> > [% IF ( booksellerid ) %] > [% INCLUDE 'vendor-menu.inc' %] >-- >2.7.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 13371
:
34057
|
34058
|
34059
|
34167
|
34170
|
34275
|
34295
|
34296
|
34297
|
34298
|
34299
|
34306
|
34423
|
34424
|
34425
|
34433
|
34434
|
34435
|
34436
|
34437
|
34438
|
34439
|
36759
|
49014
|
49015
|
49016
|
49017
|
49018
|
49019
|
49020
|
49021
|
55235
|
55236
|
55237
|
55238
|
55239
|
55240
|
55241
|
55242
|
55243
|
55244
|
55245
|
55978
|
59312