Koha/koha-tmpl/intranet-tmpl/prog/en/modules/admin/transport-cost-matrix.tt
Owen Leonard 69ceb326f6 Bug 16305 - Remove the use of "onclick" from transport cost matrix
This patch updates the transport cost matrix template to eliminate the
use of event attributes (onclick and onblur) in favor of JS separate
from the markup.

To test, apply the patch and go to Administration -> Transport cost
matrix.

- Click in any table cell. Form fields in the cell should activate.
- Check and uncheck the "disable" checkbox. The form field should be
  correctly disabled and enabled.
- Fill various enabled fields and submit the form to confirm that data
  is saved correctly.

Signed-off-by: Marc Véron <veron@veron.ch>

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

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
2016-04-29 15:49:48 +00:00

143 lines
5.4 KiB
Text

[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Administration &rsaquo; Transport cost matrix</title>
[% INCLUDE 'doc-head-close.inc' %]
<script type="text/javascript">
//<![CDATA[
function check_transport_cost(e) {
var val = e.value;
if (val && val != '' && !isNaN(parseFloat(val)) && val >= 0.0) {
return;
}
alert(_("Cost must be expressed as a decimal number >= 0"));
}
function disable_transport_cost_chg(e) {
var input_name = e.name;
var cost_id = input_name.replace(/disable_/,''); // Parse the code_id out of the input name
disable_transport_cost(cost_id, e.checked);
}
function disable_transport_cost(cost_id, disable) {
if (disable) {
$('#celldiv_'+cost_id).find('input[type=text]').prop('disabled', true).addClass('disabled-transfer');
} else {
$('#celldiv_'+cost_id).find('input:disabled').prop('disabled', false).removeClass('disabled-transfer');
}
}
function enable_cost_input(cost_id) {
var cell = $('#celldiv_'+cost_id);
var cost = $(cell).text();
var disabled = $(cell).hasClass('disabled-transfer');
$(cell).removeClass('disabled-transfer');
$('#celldiv_'+cost_id).html(
'<input type="text" name="cost_'+cost_id+'" class="cost_input" size="4" value="'+$.trim(cost)+'" />'+
'<br/>Disable <input name="disable_'+cost_id+'" value="1" class="disable_transport_cost" type="checkbox" '+(disabled ? 'checked' : '')+' />'
);
disable_transport_cost(cost_id, disabled);
}
function form_submit (f) {
$(f).find('input:disabled').prop('disabled', false);
return true;
}
$(document).ready(function(){
$(".enable_cost_input").on("click",function(){
var cost_id = $(this).data("cost-id");
enable_cost_input( cost_id );
});
$("body").on("blur",".cost_input",function(){
check_transport_cost(this);
});
$("body").on("change",".disable_transport_cost",function(){
disable_transport_cost_chg(this);
});
})
//]]>
</script>
<style type="text/css">
.disabled-transfer {
background-color: #FF8888;
}
</style>
</head>
<body id="admin_transport_cost_matrix" class="admin">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> &rsaquo; Transport cost matrix</div>
<div id="doc3" class="yui-t1">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<h1 class="parameters">
Defining transport costs between libraries
</h1>
[% IF ( WARNING_transport_cost_matrix_off ) %]
<div class="dialog message">Because the "UseTransportCostMatrix" system preference is currently not enabled, the transport cost matrix is not being used. Go <a href="/cgi-bin/koha/admin/preferences.pl?op=search&amp;searchfield=UseTransportCostMatrix">here</a> if you wish to enable this feature.</div>
[% END %]
[% IF ( errors ) %]<div class="dialog alert">
<h4>There were problems with your submission</h4>
<ul>
[% FOR e IN errors %]
<li>Invalid value for [% e %]</li>
[% END %]
</ul>
</div>[% END %]
<form method="post" action="?" onsubmit="return form_submit(this);">
<input type="hidden" name="op" value="set-cost-matrix" />
<fieldset id="transport-cost-matrix">
<div class="help">
<p>Costs are decimal values between some arbitrary maximum value (e.g. 1 or 100) and 0 which is the minimum (no) cost.</p>
<p>Red cells signify no transfer allowed.</p>
<p>Click on individual cells to edit.</p>
</div>
<table>
<tr>
<th>From \ To</th>
[% FOR b IN branchloop %]
<th>[% b.name %]</th>
[% END %]
</tr>
[% FOR bf IN branchfromloop %]
<tr>
<th>[% bf.name %]</th>
[% FOR bt IN bf.branchtoloop %]
<td>
[% IF bt.skip %]
&nbsp;
[% ELSE %]
[% IF bt.disabled %]
<div id="celldiv_[% bt.id %]" class="disabled-transfer">
[% ELSE %]
<div id="celldiv_[% bt.id %]">
[% END %]
<div class="enable_cost_input" data-cost-id="[% bt.id %]">[% bt.disabled ? '&nbsp;' : bt.value %]</div>
<input type="hidden" name="cost_[% bt.id %]" value="[% bt.value %]" />
[% IF bt.disabled %]
<input type="hidden" name="disable_[% bt.id %]" value="1" />
[% END %]
</div>
[% END %]
</td>
[% END %]
</tr>
[% END %]
</table>
</fieldset>
<fieldset class="action">
<input type="submit" value="Save" class="submit" /> <a href="/cgi-bin/koha/admin/transport-cost-matrix.pl" class="cancel">Cancel</a>
</fieldset>
</form>
</div>
</div>
<div class="yui-b">
[% INCLUDE 'admin-menu.inc' %]
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]