Koha/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basketgroup.tt
Jonathan Druart be33e1b465 Bug 16055: Do not allow basketgroup deletion unless empty
If a basketgroup has basket attached, it should not be deletable.
This patch just removes the Delete button from the interface if it
cannot be deleted.
When editing a basketgroup, the "Delete basket group" button is no
longer displayed.

Test plan:
1/ Create a basketgroup
2/ Attach 1+ baskets to this basketgroup
3/ Confirm you are not able to delete it
4/ Remove the baskets from this basketgroup
5/ Confirm you are able to delete it

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Brendan Gallagher <bredan@bywatersolutions.com>
2016-04-20 20:29:13 +00:00

403 lines
26 KiB
Text

[% USE Branches %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Basket grouping for [% booksellername |html %]</title>
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'datatables.inc' %]
<script type="text/javascript" src="[% themelang %]/lib/yui/utilities/utilities.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/yui/button/button-min.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/yui/container/container_core-min.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/yui/menu/menu-min.js"></script>
<script type="text/javascript" src="[% themelang %]/js/basketgroup.js"></script>
[% IF ( grouping ) %]
<script type="text/javascript" src="[% themelang %]/lib/yui/yahoo-dom-event/yahoo-dom-event.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/yui/animation/animation-min.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/yui/dragdrop/dragdrop-min.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/yui/element/element-min.js"></script>
<style type="text/css">
/*margin and padding on body element
can introduce errors in determining
element position and are not recommended;
we turn them off as a foundation for YUI
CSS treatments. */
#basketgroupcolumns {
width: 58em;
}
#ungrouped {
overflow: auto;
height: 400px;
}
.draglist{
width: 200px;
height: 300px;
overflow: auto;
}
div.workarea_alt { padding: 5px; float:left; width: 95%;}
div.closed { background-color: pink; padding:10px; float:left; width: 45%;}
ul.draglist {
position: relative;
background: #EEE;
padding-bottom:10;
border: 1px inset gray;
list-style: none;
margin:0;
padding: 5px;
}
ul.draglist li {
margin: 1px;
cursor: move;
list-style: none;
}
ul.draglist_alt {
position: relative;
border: 1px solid gray;
list-style: none;
margin: 0;
background: #f7f7f7;
padding: 5px;
cursor: move;
}
ul.draglist_alt li {
margin: 1px;
list-style: none;
}
li.grouped {
background-color: #D1E6EC;
border:1px solid #7EA6B2;
list-style: none;
}
li.ungrouped {
background-color: #D8D4E2;
border:1px solid #6B4C86;
}
fieldset.various li {
list-style: none;
clear: none;
}
</style>
[% END %]
<script type="text/javascript">
//<![CDATA[
YAHOO.util.Event.onDOMReady(DDApp.init, DDApp, true);
var MSG_CONFIRM_CLOSE_BASKETGROUP = _("Are you sure you want to close this basketgroup?");
var MSG_CLOSE_EMPTY_BASKET = _("Why close an empty basket?");
var MSG_SAVE_BEFORE_PRINTING = _("You need to save the page before printing");
var MSG_REOPEN_BASKETGROUP = _("reopen basketgroup");
var MSG_FILE_DOWNLOAD_ERROR = _("Error downloading the file");
function submitForm(form) {
if (form.close.checked == true) {
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "closed");
input.setAttribute("value", "1");
form.appendChild(input);
}
}
$(document).ready(function() {
$("#basket_groups").tabs();
$("table").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumnDefs": [
{ "aTargets": [ -1 ], "bSortable": false, "bSearchable": false },
],
"bAutoWidth": false,
"sPaginationType": "four_button"
} ));
});
//]]>
</script>
</head>
<body id="acq_basketgroup" class="acq">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'acquisitions-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a> &rsaquo;
[% IF ( grouping ) %]
<a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% booksellername |html %]</a> &rsaquo; <a href="/cgi-bin/koha/acqui/basketgroup.pl?booksellerid=[% booksellerid %]">Basket grouping</a> &rsaquo; Add basket group for [% booksellername |html %]</div>
[% ELSE %]
<a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% booksellername |html %]</a> &rsaquo; Basket grouping</div>
[% END %]
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
[% IF ( grouping ) %]
[% IF (closedbg) %]
<div id="toolbar" class="btn-toolbar">
<div class="btn-group"><a href="[% script_name %]?op=reopen&amp;basketgroupid=[% basketgroupid %]&amp;booksellerid=[% booksellerid %]&amp;mode=singlebg" class="btn btn-small" id="reopenbutton"><i class="fa fa-download"></i> Reopen this basket group</a></div>
<div class="btn-group"><a href="[% script_name %]?op=export&amp;basketgroupid=[% basketgroupid %]&amp;booksellerid=[% booksellerid %]" class="btn btn-small" id="exportbutton"><i class="fa fa-download"></i> Export this basket group as CSV</a></div>
<div class="btn-group"><a href="[% script_name %]?op=print&amp;basketgroupid=[% basketgroupid %]&amp;booksellerid=[% booksellerid %]" class="btn btn-small" id="printbutton"><i class="fa fa-download"></i> Print this basket group in PDF</a></div>
<div class="btn-group"><a href="[% script_name %]?op=ediprint&amp;basketgroupid=[% basketgroupid %]&amp;booksellerid=[% booksellerid %]" class="btn btn-small" id="printbutton"><i class="fa fa-download"></i> Generate edifact order</a></div>
</div>
[% END %]
[% IF (name && closedbg) %]
<h1>Basket group [% name %] ([% basketgroupid %]) for <a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% booksellername |html %]</a></h1>
[% ELSIF (name) %]
<h1>Edit basket group [% name %] ([% basketgroupid %]) for <a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% booksellername |html %]</a></h1>
[% ELSE %]
<h1>Add basket group for <a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% booksellername |html %]</a></h1>
[% END %]
<div id="basketgroupcolumns" class="yui-g">
[% UNLESS (closedbg) %]
<div class="yui-u">
<form action="[% scriptname %]" method="post" name="basketgroups" id="basketgroups">
<div id="groups">
<fieldset class="brief">
<div class="workarea_alt" >
<h3>Ungrouped baskets</h3>
<ul id="ungrouped" class="draglist_alt">
[% IF ( baskets ) %]
[% FOREACH basket IN baskets %]
<li class="ungrouped" id="b-[% basket.basketno %]" >
<a href="basket.pl?basketno=[% basket.basketno %]">
[% IF ( basket.basketname ) %]
[% basket.basketname %]
[% ELSE %]
No name, basketnumber: [% basket.basketno %]
[% END %]
</a>, <br />
Total: [% basket.total %]
<input type="hidden" class="basket" name="basket" value="[% basket.basketno %]" />
</li>
[% END %]
[% END %]
</ul>
</div>
</fieldset>
</div>
</form>
</div>
[% END %]
<div class="yui-u first">
<form action="" method="post" id="groupingform" onsubmit="return submitForm(this)">
<fieldset id="various" class="brief">
<ol>
[% UNLESS (closedbg) %]
<li>
<label for="basketgroupname">Basket group name:</label>
<input type="text" name="basketgroupname" id="basketgroupname" value="[% name %]" class="focus" />
</li>
[% ELSE %]
<input type="hidden" name="basketgroupname" id="basketgroupname" value="[% name %]" />
[% END %]
<li>
[% UNLESS (closedbg) %]
<label for="billingplace">Billing place:</label>
<select name="billingplace" id="billingplace" style="width:13em;">
<option value="">--</option>
[% FOREACH billingplaceloo IN billingplaceloop %]
[% IF ( billingplaceloo.selected ) %]<option value="[% billingplaceloo.value %]" selected="selected">[% billingplaceloo.branchname %]</option>
[% ELSE %]<option value="[% billingplaceloo.value %]">[% billingplaceloo.branchname %]</option>[% END%]
[% END %]
</select>
[% ELSE %]
<span class="label">Billing place:</span>
[% FOREACH billingplaceloo IN billingplaceloop %]
[% IF ( billingplaceloo.selected ) %]
<input name="billingplace" id="billingplace" type ="hidden" value="[% billingplaceloo.value %]" />[% billingplaceloo.branchname %]
[% END %]
[% END %]
[% END %]
</li>
[% UNLESS (closedbg) %]
<li>
<label for="deliveryplace">Delivery place:</label>
<select name="deliveryplace" id="deliveryplace" style="width:13em;">
<option value="">--</option>
[% FOREACH deliveryplaceloo IN deliveryplaceloop %]
[% IF ( deliveryplaceloo.selected ) %]<option value="[% deliveryplaceloo.value %]" selected="selected">[% deliveryplaceloo.branchname %]</option>
[% ELSE %]<option value="[% deliveryplaceloo.value %]">[% deliveryplaceloo.branchname %]</option>[% END %]
[% END %]
<select>
</li>
<li><p>or</p></li>
<li>
<label for="freedeliveryplace">Delivery place:</label>
<textarea cols="26" rows="3" name="freedeliveryplace" id="freedeliveryplace">[% freedeliveryplace %]</textarea>
</li>
[% ELSE %]
<li>
<span class="label">Delivery place:</span>
[% IF (freedeliveryplace) %]
<input name="freedeliveryplace" id="freedeliveryplace" type ="hidden" value="[% freedeliveryplace %]" />[% freedeliveryplace %]
<input name="deliveryplace" id="deliveryplace" type ="hidden" value="" />
[% ELSE %]
[% FOREACH deliveryplaceloo IN deliveryplaceloop %]
[% IF ( deliveryplaceloo.selected ) %]
<input name="deliveryplace" id="deliveryplace" type ="hidden" value="[% deliveryplaceloo.value %]" />[% deliveryplaceloo.branchname %]
[% END %]
[% END %]
<input name="freedeliveryplace" id="freedeliveryplace" type ="hidden" value="" />
[% END %]
</li>
[% END %]
<li>
[% UNLESS (closedbg) %]
<label for="deliverycomment">Delivery comment:</label>
<textarea cols="26" rows="3" name="deliverycomment" id="deliverycomment">[% deliverycomment %]</textarea>
[% ELSE %]
<span class="label">Delivery comment:</span>[% deliverycomment %]
<input name="deliverycomment" id="deliverycomment" type="hidden" value = "[% deliverycomment %]" />
[% END %]
</li>
<li>
<span class="label">Baskets in this group:</span>
[% UNLESS (closedbg) %]
<ul class="draglist" id="bg">
[% ELSE %]
<ul>
[% END %]
[% FOREACH selectedbasket IN selectedbaskets %]
<li class="grouped" id="b-[% selectedbasket.basketno %]" >
<a href="basket.pl?basketno=[% selectedbasket.basketno %]">
[% IF ( selectedbasket.basketname ) %]
[% selectedbasket.basketname %]
[% ELSE %]
No name, basketnumber: [% selectedbasket.basketno %]
[% END %]
</a>, <br />
Total: [% selectedbasket.total %]
<input type="hidden" class="basket" name="basket" value="[% selectedbasket.basketno %]" />
</li>
[% END %]
</ul>
</li>
[% UNLESS (closedbg) %]
<li><label><input type="checkbox" id="closedbg" name="closedbg" />Close basket group</label></li>
[% ELSE %]
<input type="hidden" id="closedbg" name="closedbg" value ="1"/>
[% END %]
</ol>
</fieldset>
[% UNLESS (closedbg) %]
<fieldset class="action"><input type="hidden" name="booksellerid" value="[% booksellerid %]" />
[% IF ( basketgroupid ) %]
<input type="hidden" name="basketgroupid" value="[% basketgroupid %]" />
[% END %]
<input type="hidden" name="op" value="attachbasket" />
<input type="submit" value="Save" /> <a href="/cgi-bin/koha/acqui/basketgroup.pl?booksellerid=[% booksellerid %]" class="cancel">Cancel</a>
</fieldset>
[% END %]
</form>
</div>
</div>
[% ELSE %]
<div id="toolbar" class="btn-toolbar">
<div class="btn-group"><a href="/cgi-bin/koha/acqui/basketgroup.pl?op=add&amp;booksellerid=[% booksellerid %]" class="btn btn-small" id="newbasketgroup"><i class="fa fa-plus"></i> New basket group</a></div>
</div>
<h1>Basket grouping for <a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% booksellername |html %]</a></h1>
<div id="basket_groups" class="toptabs">
<ul class="ui-tabs-nav">
[% UNLESS ( listclosed) %]<li class="ui-tabs-active"><a href="#opened">Open</a></li>
[% ELSE%]<li><a href="#opened">Open</a></li>[% END %]
[% IF ( listclosed) %]<li class="ui-tabs-active"><a href="#closed">Closed</a></li>
[% ELSE %]<li><a href="#closed">Closed</a></li>[% END %]
</ul>
<div id="opened">
<table id="basket_group_opened">
<thead>
<tr>
<th>Name</th>
<th>Number</th>
<th>Billing place</th>
<th>Delivery place</th>
<th>Number of baskets</th>
<th>Action</th>
</tr>
</thead>
<tbody>
[% FOREACH basketgroup IN basketgroups %]
[% UNLESS ( basketgroup.closed ) %]
<tr>
<td>[% IF ( basketgroup.name ) %]
[% basketgroup.name %]
[% ELSE %]
Basket group no. [% basketgroup.id %]
[% END %]
</td>
<td>[% basketgroup.id %]</td>
<td>[% Branches.GetName( basketgroup.billingplace ) %]</td>
<td>[% IF (basketgroup.freedeliveryplace) %]Free delivery place[% ELSE %][% Branches.GetName( basketgroup.deliveryplace ) %][% END %]</td>
<td>[% basketgroup.basketsqty %]</td>
<td>
<input type="button" onclick="closeandprint('[% basketgroup.id %]');" value="Close and export as PDF" />
<form action="/cgi-bin/koha/acqui/basketgroup.pl" method="get"><input type="hidden" name="op" value="add" /><input type="hidden" name="booksellerid" value="[% basketgroup.booksellerid %]" /><input type="hidden" name="basketgroupid" value="[% basketgroup.id %]" /><input type="submit" value="Edit" /></form>
[% UNLESS basketgroup.basketsqty %]
<form action="/cgi-bin/koha/acqui/basketgroup.pl" method="get"><input type="hidden" name="op" value="delete" /><input type="hidden" name="booksellerid" value="[% basketgroup.booksellerid %]" /><input type="hidden" name="basketgroupid" value="[% basketgroup.id %]" /><input type="submit" value="Delete" /></form>
[% END %]
</td>
</tr>
[% END %]
[% END %]
</tbody>
</table>
</div>
<div id="closed">
<table id="basket_group_closed">
<thead>
<tr>
<th>Name</th>
<th>Number</th>
<th>Billing place</th>
<th>Delivery place</th>
<th>Number of baskets</th>
<th>Action</th>
</tr>
</thead>
<tbody>
[% FOREACH basketgroup IN basketgroups %]
[% IF ( basketgroup.closed ) %]
<tr>
<td>
[% IF ( basketgroup.name ) %]
[% basketgroup.name %]
[% ELSE %]
Basket group no. [% basketgroup.id %]
[% END %]
</td>
<td>[% basketgroup.id %]</td>
<td>[% Branches.GetName( basketgroup.billingplace ) %]</td>
<td>[% IF (basketgroup.freedeliveryplace) %]Free delivery place[% ELSE %][% Branches.GetName( basketgroup.deliveryplace ) %][% END %]</td>
<td>[% basketgroup.basketsqty %]</td>
<td>
<form action="/cgi-bin/koha/acqui/basketgroup.pl" method="get"><input type="hidden" name="op" value="add" /><input type="hidden" name="booksellerid" value="[% basketgroup.booksellerid %]" /><input type="hidden" name="basketgroupid" value="[% basketgroup.id %]" /><input type="submit" value="View" /></form>
<form action="/cgi-bin/koha/acqui/basketgroup.pl" method="get"><input type="hidden" name="op" value="reopen" /><input type="hidden" name="booksellerid" value="[% basketgroup.booksellerid %]" /><input type="hidden" name="basketgroupid" value="[% basketgroup.id %]" /><input type="submit" value="Reopen" /></form>
<form action="/cgi-bin/koha/acqui/basketgroup.pl" method="get"><input type="hidden" name="op" value="print" /><input type="hidden" name="basketgroupid" value="[% basketgroup.id %]" /><input type="submit" value="Export as PDF" /></form>
<form action="/cgi-bin/koha/acqui/basketgroup.pl" method="get"><input type="hidden" name="op" value="export" /><input type="hidden" name="basketgroupid" value="[% basketgroup.id %]" /><input type="submit" value="Export as CSV" /></form>
<form action="/cgi-bin/koha/acqui/basketgroup.pl" method="get"><input type="hidden" name="op" value="ediprint" /><input type="hidden" name="basketgroupid" value="[% basketgroup.id %]" /><input type="submit" value="Generate edifact order" /></form>
</td>
</tr>
[% END %]
[% END %]
</tbody>
</table>
</div>
</div>
[% END %]
</div>
</div>
<div class="yui-b">
[% IF ( booksellerid ) %]
[% INCLUDE 'vendor-menu.inc' %]
[% END %]
[% INCLUDE 'acquisitions-menu.inc' %]
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]