Bugzilla – Attachment 20687 Details for
Bug 10737
Add "Add to basket" link on vendor search results page
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Signed Off: 20634: Bug 10737 [Revised] Add "Add to basket" link on vendor search results page
0001-Bug-10737-Revised-Add-Add-to-basket-link-on-vendor-s.patch (text/plain), 12.93 KB, created by
Campbell Reid-Tait
on 2013-08-28 05:04:36 UTC
(
hide
)
Description:
Signed Off: 20634: Bug 10737 [Revised] Add "Add to basket" link on vendor search results page
Filename:
MIME Type:
Creator:
Campbell Reid-Tait
Created:
2013-08-28 05:04:36 UTC
Size:
12.93 KB
patch
obsolete
>From 1ca202ce2f488230c34df68c0ba70e6d4e287dba Mon Sep 17 00:00:00 2001 >From: Owen Leonard <oleonard@myacpl.org> >Date: Thu, 15 Aug 2013 12:09:33 -0400 >Subject: [PATCH] Bug 10737 [Revised] Add "Add to basket" link on vendor > search results page > >This patch adds an "add to basket" link to the vendor search results >page for each open basket associated with each vendor. Clicking it >triggers a modal window with the "add to basket" choices for that vendor >and basket. > >Other changes in this patch: > >- The add-to-basket include has been modified in order to make it more > useful in this context. >- booksellers.pl has been modified to check for an existing budget so > that the add-to-basket include can properly display a warning if there > are none. >- "New basket" and "Receive shipment" buttons associated with each > vendor search result have been converted to Bootstrap-styled buttons. >- Basket closed date has been moved into its own column so that the > table can be sorted by that value. >- Table columns containing dates now use the "title-string" sort option, > eliminating the need for a special date sorting algorithm. >- Converted some &'s to &'s > >To test, apply the patch and search for a vendor. For each vendor in >your search results baskets which are open should include an "add to >basket" link. Clicking it should open a modal dialog with the same "add >to basket" options offered on the basket page. The correct vendor ID and >basket number should be associated with each link. > >The newly-styled "new basket" and "receive shipment" buttons should work >correctly. Table sorting should work correctly, including the new >"closed" column. > >Since the add-to-basket include file was modified, the "add to basket" >button on the basket view page should also be tested (acqui/basket.pl). > >Signed-off-by: Campbell Reid-Tait <campbellreidtait@gmail.com> >--- > acqui/booksellers.pl | 16 ++++++- > .../en/includes/acquisitions-add-to-basket.inc | 11 +++-- > .../intranet-tmpl/prog/en/modules/acqui/basket.tt | 2 +- > .../prog/en/modules/acqui/booksellers.tt | 50 +++++++++++++------- > 4 files changed, 57 insertions(+), 22 deletions(-) > >diff --git a/acqui/booksellers.pl b/acqui/booksellers.pl >index 6db0bad..bb65dbc 100755 >--- a/acqui/booksellers.pl >+++ b/acqui/booksellers.pl >@@ -53,6 +53,7 @@ use strict; > use warnings; > use C4::Auth; > use C4::Biblio; >+use C4::Budgets; > use C4::Output; > use CGI; > >@@ -62,7 +63,7 @@ use C4::Members qw/GetMember/; > use C4::Context; > > my $query = CGI->new; >-my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >+my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user( > { template_name => 'acqui/booksellers.tmpl', > query => $query, > type => 'intranet', >@@ -103,6 +104,18 @@ my $viewbaskets = C4::Context->preference('AcqViewBaskets'); > > my $userbranch = $userenv->{branch}; > >+my $budgets = GetBudgetHierarchy; >+my $has_budgets = 0; >+foreach my $r (@{$budgets}) { >+ if (!defined $r->{budget_amount} || $r->{budget_amount} == 0) { >+ next; >+ } >+ next unless (CanUserUseBudget($loggedinuser, $r, $userflags)); >+ >+ $has_budgets = 1; >+ last; >+} >+ > #build result page > my $loop_suppliers = []; > >@@ -150,6 +163,7 @@ $template->param( > loop_suppliers => $loop_suppliers, > supplier => ( $booksellerid || $supplier ), > count => $supplier_count, >+ has_budgets => $has_budgets, > ); > $template->{VARS}->{'allbaskets'} = $allbaskets; > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/acquisitions-add-to-basket.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/acquisitions-add-to-basket.inc >index 01ecec9..46f8400 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/acquisitions-add-to-basket.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/acquisitions-add-to-basket.inc >@@ -1,13 +1,14 @@ >-<fieldset id="acqui_basket_add"> >+<fieldset class="acqui_basket_add"> > <legend>Add order to basket</legend> > [% IF has_budgets %] > <ul> > <li> >- <label for="q">From an existing record: </label> > <form action="/cgi-bin/koha/acqui/neworderbiblio.pl" method="post"> >+ <label>From an existing record: >+ <input type="text" size="25" name="q" /> >+ </label> > <input type="hidden" name="booksellerid" value="[% booksellerid %]" /> > <input type="hidden" name="basketno" value="[% basketno %]" /> >- <input id="q" type="text" size="25" name="q" /> > <input type="submit" class="submit" value="Search" /> > </form> > </li> >@@ -18,6 +19,8 @@ > <li><a href="/cgi-bin/koha/acqui/addorderiso2709.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]"> From a staged file</a></li> > </ul> > [% ELSE %] >- You can't create any orders unless you first <a href="/cgi-bin/koha/admin/aqbudgetperiods.pl">define a budget and a fund</a>. >+ <div class="dialog alert"> >+ <p>You can't create any orders unless you first <a href="/cgi-bin/koha/admin/aqbudgetperiods.pl">define a budget and a fund</a>.</p> >+ </div> > [% END %] > </fieldset> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >index 8cbc46e..5da0b29 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >@@ -30,7 +30,7 @@ > updateColumnsVisibility(false); > [% UNLESS ( closedate ) %] > $('#addtoBasket').on('show', function () { >- $(this).find(".modal-body").html($("#acqui_basket_add")[0].outerHTML); >+ $(this).find(".modal-body").html($(".acqui_basket_add")[0].outerHTML); > }); > [% END %] > }); >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 525ea66..782bed1 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/booksellers.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/booksellers.tt >@@ -14,23 +14,28 @@ > <script type="text/javascript"> > //<![CDATA[ > $(document).ready(function() { >- [% IF (dateformat == 'metric') %] >- dt_add_type_uk_date(); >- [% END %] > $("table.baskets").dataTable($.extend(true, {}, dataTablesDefaults, { > 'sDom': 't', > 'bPaginate': false, > 'bFilter': false, > 'bInfo': false, > "aaSorting": [[ 1, "asc" ]], >+ "aoColumns": [ >+ null,null,null,null,null,null,{ "sType": "title-string" },{ "sType": "title-string" },null >+ ], > 'aoColumnDefs': [ >- { 'aTargets': [-1], 'bSortable': false } >+ { 'aTargets': [-1,-2], 'bSortable': false } > ] > })); > $("#supplierlist").change(function() { > var id = $(this).find("option:selected").val(); > window.location.href = "#" + id; > }); >+ $(".modal").on("show", function(){ >+ var basket = $(this).data("basketno"); >+ var legend = _("Add order to basket") + " " + basket; >+ $(this).find("legend").html(legend); >+ }); > }); > //]]> > </script> >@@ -63,9 +68,9 @@ $(document).ready(function() { > </p> > [% END %] > [% IF ( allbaskets ) %] >- <p><a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&booksellerid=[% booksellerid %]">Show active baskets only</a></p> >+ <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> >+ <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"> > [% FOREACH supplier IN loop_suppliers %] >@@ -80,12 +85,12 @@ $(document).ready(function() { > <span class="action"> > [% IF ( CAN_user_acquisition_order_manage ) %] > [% IF ( supplier.active ) %] >- <input type="button" value="New basket" onclick="window.location.href='/cgi-bin/koha/acqui/basketheader.pl?booksellerid=[% supplier.booksellerid %]&op=add_form'" /> >+ <a class="btn btn-small" href="/cgi-bin/koha/acqui/basketheader.pl?booksellerid=[% supplier.booksellerid %]&op=add_form"><i class="icon-plus"></i> New basket</a> > [% ELSE %] > (inactive) > [% END %] > [% END %] >- <input type="button" value="Receive shipment" onclick="window.location.href='/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% supplier.booksellerid %]'" /> >+ <a class="btn btn-small" href="/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% supplier.booksellerid %]"><i class="icon-inbox"></i> Receive shipment</a> > </span> > <div class="baskets"> > [% IF ( supplier.loop_basket.size ) %] >@@ -99,6 +104,7 @@ $(document).ready(function() { > <th>Items expected</th> > <th>Created by</th> > <th>Date</th> >+ <th>Closed</th> > <th> </th> > </tr> > </thead> >@@ -118,23 +124,35 @@ $(document).ready(function() { > [% basket.authorisedby_firstname %] > [% basket.authorisedby_surname %] > </td> >- <td>[% basket.creationdate | $KohaDates %]</td> >+ <td><span title="[% basket.creationdate %]">[% basket.creationdate | $KohaDates %]</span></td> > <td> > [% IF ( basket.closedate ) %] >- closed on [% basket.closedate | $KohaDates %] >- <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno %]">View</a> >+ <span title="[% basket.closedate %]">[% basket.closedate | $KohaDates %]</span> > [% ELSE %] >- [% IF ( basket.active ) %] >- <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno %]">Modify</a> >- [% ELSE %] >- <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno %]">View</a> >- [% END %] >+ <span title="9999-99-99"></span> >+ [% END %] >+ </td> >+ <td> >+ <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno %]">View</a> >+ >+ [% 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 %] > </tbody> > </table> >+ > [% ELSE %] > <p>No pending baskets</p> > [% END %][%# IF ( supplier.loop_basket.size ) %] >-- >1.7.10.4 >
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 10737
:
20374
|
20564
|
20634
|
20687
|
20797
|
20798