Bug 41823: Update acquisitions admin pages to use grid layout for forms

This patch updates acquisitions-related administration templates with
new markup and CSS for layout forms using CSS grids.

To test, apply the patch rebuild the staff interface CSS.

Check the following pages, confirming that the "New" and
"Edit" versions of the form look correct in each case:

- Administration -> Currencies and exchange rates
- Administration -> Budgets (New, Edit, and Duplicate)
- Administration -> Contracts
- Administration -> Funds -> Add sub fund to a budget
- Administration -> EDI accounts
- Administration -> Library EANs
- Acquisitions -> Vendor -> Contracts

Sponsored-by: Athens County Public Libraries
Signed-off-by: Jessie Z <jzairo@bywatersolutions.com>

Bug 41823: (follow-up) Missed a form requiring an upgrade

- Actions -> Close

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
Owen Leonard 2026-02-11 15:18:24 -05:00 committed by Lucas Gass
parent 09c5bd5a9a
commit cac0556c53
No known key found for this signature in database
GPG Key ID: 60B447398B0D36CA
7 changed files with 462 additions and 235 deletions

View File

@ -227,6 +227,10 @@ fieldset {
.fg-row {
grid-template-columns: 20% 35% 15%;
&.input-checkbox {
grid-template-columns: 20% 1.5rem 65%;
}
&.input-md {
grid-template-columns: 20% 30% 25%;
}

View File

@ -159,52 +159,76 @@
<h1>Duplicate budget</h1>
<form action="/cgi-bin/koha/admin/aqbudgetperiods.pl" id="add_modify_budget" name="f" method="post">
[% INCLUDE 'csrf-token.inc' %]
<fieldset class="rows">
<fieldset class="fg">
<input type="hidden" name="op" value="cud-duplicate_budget" />
<input type="hidden" name="budget_period_id" value="[% budget_period_id | html %]" />
<ol>
<li>
<div class="fg-row input-md">
<div class="fg-label">
<label class="required" for="from">Start date: </label>
<input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate | html %]" class="flatpickr" data-date_to="to" />
<span class="required">Required</span>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li>
</div>
<div class="fg-input">
<input type="text" id="from" name="budget_period_startdate" value="[% budget_period_startdate | html %]" class="flatpickr" data-date_to="to" />
</div>
<div class="required">Required</div>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</div>
<div class="fg-row input-md">
<div class="fg-label">
<label class="required" for="to">End date: </label>
<input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate | html %]" class="flatpickr" />
<span class="required">Required</span>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
</div>
<div class="fg-input">
<input type="text" id="to" name="budget_period_enddate" value="[% budget_period_enddate | html %]" class="flatpickr" />
</div>
<div class="required">Required</div>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</div>
<li>
<div class="fg-row">
<div class="fg-label">
<label class="required" for="budget_period_description">Description</label>
</div>
<div class="fg-input">
<input type="text" id="budget_period_description" name="budget_period_description" value="[% budgetperiod.budget_period_description | html %]" />
<span class="required">Required</span>
</li>
</div>
<div class="required">Required</div>
</div>
<li>
<label for="amount_change_percentage">Change amounts by</label>
<input type="text" id="amount_change_percentage" name="amount_change_percentage" /> %
<div class="hint">(can be positive or negative)</div>
</li>
<div class="fg-row input-sm">
<div class="fg-label">
<label for="amount_change_percentage">Change amounts by:</label>
</div>
<div class="fg-input"> <input type="text" id="amount_change_percentage" name="amount_change_percentage" /> % </div>
<div class="hint">Can be positive or negative</div>
</div>
<li>
<div class="fg-row input-sm">
<div class="fg-label">
<label for="amount_change_round_increment">If amounts changed, round to a multiple of</label>
</div>
<div class="fg-input">
<input type="text" id="amount_change_round_increment" name="amount_change_round_increment" />
<div class="hint">(amounts will be rounded down)</div>
</li>
</div>
<div class="hint">Amounts will be rounded down</div>
</div>
<li>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="mark_as_inactive">Mark the original budget as inactive</label>
</div>
<div class="fg-input">
<input type="checkbox" id="mark_as_inactive" name="mark_original_budget_as_inactive" />
</li>
</div>
</div>
<li>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="reset_all_budgets">Set all funds to zero</label>
</div>
<div class="fg-input">
<input type="checkbox" id="reset_all_budgets" name="reset_all_budgets" />
</li>
</ol>
</div>
</div>
</fieldset>
<fieldset class="action">
@ -224,63 +248,85 @@
[% END %]
<form action="/cgi-bin/koha/admin/aqbudgetperiods.pl" id="add_modify_budget" name="f" method="post">
[% INCLUDE 'csrf-token.inc' %]
<fieldset class="rows">
<fieldset class="fg">
<!-- ################################################################################# -->
<!-- display information about the budget period that must be added or modified -->
<!-- ################################################################################# -->
<input type="hidden" name="op" value="cud-add_validate" />
<input type="hidden" name="budget_period_id" value="[% budget_period_id | html %]" />
<ol>
<li>
<div class="fg-row input-md">
<div class="fg-label">
<label class="required" for="from">Start date: </label>
<input type="text" size="10" id="from" name="budget_period_startdate" value="[% budget_period_startdate | html %]" class="flatpickr" data-date_to="to" />
<span class="required">Required</span>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li>
</div>
<div class="fg-input">
<input type="text" id="from" name="budget_period_startdate" value="[% budget_period_startdate | html %]" class="flatpickr" data-date_to="to" />
</div>
<div class="required">Required</div>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</div>
<div class="fg-row input-md">
<div class="fg-label">
<label class="required" for="to">End date: </label>
<input type="text" size="10" id="to" name="budget_period_enddate" value="[% budget_period_enddate | html %]" class="flatpickr" />
<span class="required">Required</span>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
</div>
<div class="fg-input">
<input type="text" id="to" name="budget_period_enddate" value="[% budget_period_enddate | html %]" class="flatpickr" />
</div>
<div class="required">Required</div>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</div>
<li>
<!-- DESCRIPTION -->
<!-- ############################## -->
<div class="fg-row">
<!-- DESCRIPTION -->
<!-- ############################## -->
<div class="fg-label">
<label class="required" for="budget_period_description">Description: </label>
<input type="text" id="budget_period_description" name="budget_period_description" size="48" maxlength="80" value="[% budget_period_description | html %]" />
<span class="required">Required</span>
</li>
</div>
<div class="fg-input">
<input type="text" id="budget_period_description" name="budget_period_description" maxlength="80" value="[% budget_period_description | html %]" />
</div>
<div class="required">Required</div>
</div>
<li>
<!-- TOTAL -->
<!-- ############################## -->
<div class="fg-row input-sm">
<!-- TOTAL -->
<!-- ############################## -->
<div class="fg-label">
<label for="budget_period_total">Total amount: </label>
<input type="text" id="budget_period_total" name="budget_period_total" size="10" maxlength="80" value="[% budget_period_total | $Price on_editing => 1 %]" />
</li>
</div>
<div class="fg-input">
<input type="text" id="budget_period_total" name="budget_period_total" maxlength="80" value="[% budget_period_total | $Price on_editing => 1 %]" />
</div>
</div>
<li>
<!-- ACTIVE -->
<!-- ############################## -->
<label for="budget_period_active">Make budget active: </label>
<div class="fg-row input-checkbox">
<!-- ACTIVE -->
<!-- ############################## -->
<div class="fg-label">
<label for="budget_period_active">Make budget active</label>
</div>
<div class="fg-input">
[% IF ( budget_period_active ) %]
<input type="checkbox" checked="checked" id="budget_period_active" name="budget_period_active" value="1" />
[% ELSE %]
<input type="checkbox" id="budget_period_active" name="budget_period_active" value="1" />
[% END %]
</li>
</div>
</div>
<li>
<!-- LOCK -->
<!-- ############################## -->
<label for="budget_period_locked">Lock budget: </label>
<div class="fg-row input-checkbox">
<!-- LOCK -->
<!-- ############################## -->
<div class="fg-label">
<label for="budget_period_locked">Lock budget</label>
</div>
<div class="fg-input">
[% IF ( budget_period_locked ) %]
<input type="checkbox" checked="checked" id="budget_period_locked" name="budget_period_locked" value="1" />
[% ELSE %]
<input type="checkbox" id="budget_period_locked" name="budget_period_locked" value="1" />
[% END %]
</li>
</ol>
</div>
</div>
</fieldset>
<fieldset class="action">
@ -371,22 +417,28 @@
</table>
<form action="/cgi-bin/koha/admin/aqbudgetperiods.pl" name="f" method="post" id="move_form">
[% INCLUDE 'csrf-token.inc' %]
<fieldset class="rows">
<ol>
<li>
<fieldset class="fg">
<div class="fg-row">
<div class="fg-label">
<label class="required" for="to_budget_period_id">Select a budget</label>
</div>
<div class="fg-input">
<select name="to_budget_period_id" id="to_budget_period_id" required="required">
<option value=""></option>
[% FOR budget_period IN budget_periods %]
<option value="[% budget_period.budget_period_id | html %]">[% budget_period.budget_period_description | html %]</option>
[% END %]
</select>
</li>
<li>
</div>
</div>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="move_remaining_unspent">Move remaining unspent funds</label>
</div>
<div class="fg-input">
<input type="checkbox" name="move_remaining_unspent" id="move_remaining_unspent" />
</li>
</ol>
</div>
</div>
</fieldset>
<fieldset class="action">
<input type="hidden" name="op" value="cud-close_confirmed" />

View File

@ -304,50 +304,76 @@
[% END %]
[% END %]
</h1>
<fieldset class="rows">
<fieldset class="fg">
<legend class="sr-only">Fund details</legend>
<input type="hidden" name="op" value="cud-add_validate" />
<input type="hidden" name="checked" value="0" />
<ol>
[% IF ( budget_parent_id ) %]
<li>
[% IF ( budget_parent_id ) %]
<div class="fg-row">
<div class="fg-label">
<span class="label">Fund parent: </span>
</div>
<div class="fg-text">
[% budget_parent_name | html %]
[% budget_parent_id | html %]
- [% budget_parent_name | html %]
<input type="hidden" name="budget_parent_id" value="[% budget_parent_id | html %]" />
</li>
[% END %]
<li>
</div>
</div>
[% END %]
<div class="fg-row input-md">
<div class="fg-label">
<label class="required" for="budget_code">Fund code: </label>
<input type="text" name="budget_code" id="budget_code" class="focus" value="[% budget_code | html %]" size="30" />
</li>
</div>
<div class="fg-input">
<input type="text" name="budget_code" id="budget_code" class="focus" value="[% budget_code | html %]" />
</div>
</div>
<li>
<div class="fg-row">
<div class="fg-label">
<label class="required" for="budget_name">Fund name: </label>
<input type="text" name="budget_name" id="budget_name" value="[% budget_name | html %]" size="60" />
</li>
</div>
<div class="fg-input">
<input type="text" name="budget_name" id="budget_name" value="[% budget_name | html %]" />
</div>
</div>
<li>
<div class="fg-row input-sm">
<div class="fg-label">
<label for="budget_amount" class="required">Amount: </label>
<input type="text" name="budget_amount" id="budget_amount" value="[% budget_amount | $Price on_editing => 1 %]" size="8" />
</li>
</div>
<div class="fg-input">
<input type="text" name="budget_amount" id="budget_amount" value="[% budget_amount | $Price on_editing => 1 %]" />
</div>
</div>
<li>
<div class="fg-row input-sm">
<div class="fg-label">
<label for="budget_encumb">Warning at (%): </label>
<input type="text" name="budget_encumb" id="budget_encumb" value="[% budget_encumb | html %]" size="10" />
<span class="hint">0 to disable</span>
</li>
</div>
<div class="fg-input">
<input type="text" name="budget_encumb" id="budget_encumb" value="[% budget_encumb | html %]" />
</div>
<div class="hint">0 to disable</div>
</div>
<li>
<div class="fg-row input-sm">
<div class="fg-label">
<label for="budget_expend">Warning at (amount): </label>
<input type="text" name="budget_expend" id="budget_expend" value="[% budget_expend | $Price on_editing => 1 %]" size="10" />
<span class="hint">0 to disable</span>
</li>
</div>
<div class="fg-input">
<input type="text" name="budget_expend" id="budget_expend" value="[% budget_expend | $Price on_editing => 1 %]" />
</div>
<div class="hint">0 to disable</div>
</div>
<li>
<div class="fg-row">
<div class="fg-label">
<span class="label">Owner: </span>
</div>
<div class="fg-text">
[% IF budget_owner %]
<span id="budget_owner_name">
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% budget_owner.borrowernumber | uri %]"> [% budget_owner.firstname | html %] [% budget_owner.surname | html %] </a> |
@ -358,20 +384,28 @@
<a id="edit_owner" href="#patron_search_modal_owner" data-bs-toggle="modal"><i class="fa fa-search"></i> Select owner</a>
<a id="remove_owner" href="#"><i class="fa fa-trash-can"></i> Remove owner</a>
<input type="hidden" name="budget_owner_id" id="budget_owner_id" value="[% budget_owner.borrowernumber | html %]" />
</li>
</div>
</div>
[% IF budget_has_children %]
<li class="radio">
[% IF budget_has_children %]
<div class="fg-row input-checkbox">
<div class="fg-label">
<label>
<input type="checkbox" id="set_owner_to_children" name="set_owner_to_children" value="1" />
<span>Update all sub funds with this owner</span>
</label>
<span class="hint">Selecting this option will overwrite existing fund owners, if any</span>
</li>
[% END %]
</div>
<div class="fg-input">
<input type="checkbox" id="set_owner_to_children" name="set_owner_to_children" value="1" />
</div>
<div class="hint">Selecting this option will overwrite existing fund owners, if any</div>
</div>
[% END %]
<li>
<div class="fg-row">
<div class="fg-label">
<span class="label">Users:</span>
</div>
<div class="fg-input">
<ul style="float:left;" id="budget_users">
[% FOREACH user IN budget_users %]
<li id="user_[% user.borrowernumber | html %]">
@ -384,48 +418,66 @@
>
</ul>
<input type="hidden" name="budget_users_ids" id="budget_users_id" value="[% budget_users_ids | html %]" />
</li>
<li>
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="budget_branchcode">Library: </label>
</div>
<div class="fg-input">
<select name="budget_branchcode" id="budget_branchcode">
<option value=""></option>
[% PROCESS options_for_libraries libraries => Branches.all( selected => budget_branchcode, unfiltered => 1 ) %]
</select>
</li>
</div>
</div>
<li>
<div class="fg-row input-md">
<div class="fg-label">
<label for="budget_permission">Restrict access to: </label>
</div>
<div class="fg-input">
<select name="budget_permission" id="budget_permission">
<option value="0" [% IF budget_perm_0 %]selected="selected"[% END %]> None </option>
<option value="1" [% IF budget_perm_1 %]selected="selected"[% END %]> Owner </option>
<option value="3" [% IF budget_perm_3 %]selected="selected"[% END %]> Owner and users </option>
<option value="2" [% IF budget_perm_2 %]selected="selected"[% END %]> Owner, users and library </option>
</select>
</li>
</div>
</div>
<li>
<div class="fg-row">
<div class="fg-label">
<label for="budget_notes">Notes: </label>
</div>
<div class="fg-input">
<textarea name="budget_notes" id="budget_notes" cols="80" rows="6">[% budget_notes | html %]</textarea>
</li>
</div>
</div>
<li>
<div class="fg-row">
<div class="fg-label">
<label for="authorised_value_category1">Statistic 1 done on: </label>
</div>
<div class="fg-input">
<select name="sort1_authcat" id="authorised_value_category1">
<option value=""></option>
[% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => sort1_authcat ) %]
</select>
</li>
<li>
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="authorised_value_category2">Statistic 2 done on: </label>
</div>
<div class="fg-input">
<select name="sort2_authcat" id="authorised_value_category2">
<option value=""></option>
[% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => sort2_authcat ) %]
</select>
</li>
</ol>
</div>
</div>
[% IF ( budget_id ) %]
<input type="hidden" name="budget_id" value="[% budget_id | html %]" />

View File

@ -90,37 +90,56 @@
[% ELSE %]
<h1>New contract for [% booksellername | html %]</h1>
[% END %]
<fieldset class="rows">
<ol>
[% IF ( contractnumber ) %]
<li
><span class="label">Contract ID </span>[% contractnumber | html %]
<fieldset class="fg">
[% IF ( contractnumber ) %]
<div class="fg-row">
<div class="fg-label">
<span class="label">Contract ID </span>
</div>
<div class="fg-text">
[% contractnumber | html %]
<input type="hidden" name="contractnumber" value="[% contractnumber | html %]" />
<input type="hidden" name="is_a_modif" value="1" />
</li>
[% END %]
<li
><label for="contractname" class="required">Name:</label> &nbsp;
</div>
</div>
[% END %]
<div class="fg-row">
<div class="fg-label">
<label for="contractname" class="required">Name:</label>
</div>
<div class="fg-input">
<input type="text" name="contractname" id="contractname" size="40" maxlength="80" value="[% contractname | html %]" />
<span class="required">Required</span>
</li>
<li
><label for="contractdescription">Description: </label> &nbsp;
<div class="required">Required</div>
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="contractdescription">Description: </label>
</div>
<div class="fg-input">
<input type="text" name="contractdescription" id="contractdescription" size="40" maxlength="80" value="[% contractdescription | html %]" />
</li>
<li
><label for="from" class="required">Start date:</label> &nbsp;
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="from" class="required">Start date:</label>
</div>
<div class="fg-input">
<input type="text" name="contractstartdate" id="from" value="[% contractstartdate | html %]" maxlength="10" size="10" class="flatpickr" data-date_to="to" />
<span class="required">Required</span>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li
><label for="to" class="required">End date:</label> &nbsp;
<div class="required">Required</div>
</div>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="to" class="required">End date:</label>
</div>
<div class="fg-input">
<input type="text" name="contractenddate" id="to" value="[% contractenddate | html %]" maxlength="10" size="10" class="flatpickr" />
<span class="required">Required</span>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
</ol>
<div class="required">Required</div>
</div>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</div>
</fieldset>
<fieldset class="action">
<input type="submit" class="btn btn-primary" value="Save" /> <a class="cancel" href="/cgi-bin/koha/admin/aqcontract.pl?booksellerid=[% booksellerid | html %]&amp;contractnumber=[% contractnumber | html %]">Cancel</a>

View File

@ -108,58 +108,99 @@
<form action="/cgi-bin/koha/admin/currency.pl" name="Aform" method="post" class="validated">
[% INCLUDE 'csrf-token.inc' %]
<input type="hidden" name="op" value="cud-add_validate" />
<fieldset class="rows">
<fieldset class="fg">
<legend class="sr-only">New currency entry form</legend>
<ol>
<li>
[% IF currency %]
<div class="fg-row input-md">
[% IF currency %]
<div class="fg-label">
<span class="label">Currency: </span>
</div>
<div class="fg-text">
[% currency.currency | html %]
<input type="hidden" name="is_a_modif" value="1" />
<input type="hidden" name="currency_code" id="currency" value="[% currency.currency | html %]" />[% currency.currency | html %]
[% ELSE %]
<input type="hidden" name="currency_code" id="currency" value="[% currency.currency | html %]" />
</div>
[% ELSE %]
<div class="fg-label">
<label for="currency_code" class="required">Currency: </label>
<input type="text" name="currency_code" id="currency_code" class="focus required" size="50" maxlength="50" required="required" /> <span class="required">Required</span>
[% END %]
</li>
<li>
</div>
<div class="fg-input">
<input type="text" name="currency_code" id="currency_code" class="focus required" size="50" maxlength="50" required="required" />
</div>
<div class="required">Required</div>
[% END %]
</div>
<div class="fg-row input-sm">
<div class="fg-label">
<label for="rate" class="required">Rate: </label>
<input type="text" name="rate" id="rate" size="10" maxlength="10" value="[% currency.rate | html %]" required="required" class="required" /> <span class="required">Required</span>
</li>
<li>
</div>
<div class="fg-input">
<input type="text" name="rate" id="rate" size="10" maxlength="10" value="[% currency.rate | html %]" required="required" class="required" />
</div>
<div class="required">Required</div>
</div>
<div class="fg-row input-sm">
<div class="fg-label">
<label for="symbol" class="required">Symbol: </label>
<input type="text" name="symbol" id="symbol" size="5" maxlength="5" value="[% currency.symbol | html %]" required="required" class="required" /> <span class="required">Required</span>
</li>
<li>
</div>
<div class="fg-input">
<input type="text" name="symbol" id="symbol" size="5" maxlength="5" value="[% currency.symbol | html %]" required="required" class="required" />
</div>
<div class="required">Required</div>
</div>
<div class="fg-row input-sm">
<div class="fg-label">
<label for="isocode">ISO code: </label>
</div>
<div class="fg-input">
<input type="text" name="isocode" id="isocode" size="5" maxlength="5" value="[% currency.isocode | html %]" />
</li>
<li> <span class="label">Last updated: </span>[% currency.timestamp | $KohaDates %] </li>
<li>
</div>
</div>
[% IF ( currency ) %]
<div class="fg-row">
<div class="fg-label">
<span class="label">Last updated: </span>
</div>
<div class="fg-text"> [% currency.timestamp | $KohaDates %] </div>
</div>
[% END %]
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="p_sep_by_space">Space separation between symbol and value: </label>
</div>
<div class="fg-input">
[% IF currency.p_sep_by_space %]
<input type="checkbox" id="p_sep_by_space" name="p_sep_by_space" value="1" checked="checked" />
[% ELSE %]
<input type="checkbox" id="p_sep_by_space" name="p_sep_by_space" value="1" />
[% END %]
</li>
<li>
</div>
</div>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="p_cs_precedes">Currency symbol precedes value: </label>
</div>
<div class="fg-input">
[% IF currency.p_cs_precedes %]
<input type="checkbox" id="p_cs_precedes" name="p_cs_precedes" value="1" checked="checked" />
[% ELSE %]
<input type="checkbox" id="p_cs_precedes" name="p_cs_precedes" value="1" />
[% END %]
</li>
<li>
</div>
</div>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="active">Active: </label>
</div>
<div class="fg-input">
[% IF currency.active %]
<input type="checkbox" id="active" name="active" value="1" checked="checked" />
[% ELSE %]
<input type="checkbox" id="active" name="active" value="1" />
[% END %]
<span id="hint" class="hint"></span>
</li>
</ol>
</div>
<div id="hint" class="hint"></div>
</div>
</fieldset>
<fieldset class="action">
@ -271,25 +312,26 @@
</script>
<script nonce="[% Koha.CSPNonce | $raw %]">
function check_currency(val) {
if (val == 1.0) {
$("#active").prop("disabled", false);
if ( val == 1.0 ) {
$("#active").prop('disabled', false);
$("#hint").html("");
} else {
$("#active").prop("checked", false);
$("#active").prop("disabled", true);
$("#active").prop('checked', false);
$("#active").prop('disabled', true);
$("#hint").html(_("The active currency must have a rate of 1.0"));
}
}
$(document).ready(function () {
$(document).ready(function() {
let table_settings = [% TablesSettings.GetTableSettings( 'admin', 'currency', 'currencies-table', 'json' ) | $raw %]
$("#currencies-table").kohaTable({}, table_settings);
// prevents users to check active with a currency != 1
$("#rate").keyup(function () {
check_currency($(this).val());
$("#rate").keyup(function() {
check_currency( $(this).val() );
});
check_currency($("#rate").val());
$("#currency_code").on("blur", function () {
check_currency( $("#rate").val() );
$("#currency_code").on("blur",function(){
toUC(this);
});
});

View File

@ -98,11 +98,13 @@
</h1>
<!-- Basic information -->
<fieldset class="rows">
<fieldset class="fg">
<legend>Basic information</legend>
<ol>
<li>
<div class="fg-row">
<div class="fg-label">
<label for="vendor_id">Vendor: </label>
</div>
<div class="fg-input">
<select name="vendor_id" id="vendor_id">
[% FOREACH vendor IN vendors %]
[% IF account.vendor_id == vendor.id %]
@ -112,14 +114,22 @@
[% END %]
[% END %]
</select>
</li>
<li>
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="description">Description: </label>
</div>
<div class="fg-input">
<input type="text" name="description" id="description" size="20" value="[% account.description | html %]" />
</li>
[% IF plugins %]
<li>
</div>
</div>
[% IF plugins %]
<div class="fg-row">
<div class="fg-label">
<label for="plugin">Plugin: </label>
</div>
<div class="fg-input">
<select name="plugin" id="plugin">
<option value="">Do not use plugin</option>
[% FOREACH plugin IN plugins %]
@ -130,12 +140,16 @@
[% END %]
[% END %]
</select>
</li>
[% ELSE %]
<input type="hidden" name="plugin" value="" />
[% END %]
<li>
</div>
</div>
[% ELSE %]
<input type="hidden" name="plugin" value="" />
[% END %]
<div class="fg-row">
<div class="fg-label">
<label for="id_code_qualifier">Qualifier:</label>
</div>
<div class="fg-input">
<select name="id_code_qualifier" id="id_code_qualifier">
[% FOREACH qualifier IN code_qualifiers %]
[% IF qualifier.code == account.id_code_qualifier %]
@ -145,13 +159,21 @@
[% END %]
[% END %]
</select>
</li>
<li>
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="san">SAN: </label>
</div>
<div class="fg-input">
<input type="text" name="san" id="san" size="20" maxlength="20" value="[% account.san | html %]" />
</li>
<li>
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="standard">Standard:</label>
</div>
<div class="fg-input">
<select name="standard" id="standard">
[% FOREACH standard IN standards %]
[% IF standard == 'BIC' %]
@ -166,16 +188,18 @@
[% END %]
[% END %]
</select>
</li>
</ol>
</div>
</div>
</fieldset>
<!-- Transport settings -->
<fieldset class="rows">
<fieldset class="fg">
<legend>Transport settings</legend>
<ol>
<li>
<div class="fg-row">
<div class="fg-label">
<label for="file_transport_id">File transport: </label>
</div>
<div class="fg-input">
<select name="file_transport_id" id="file_transport_id">
<option value="">Select a file transport configuration</option>
[% FOREACH transport IN file_transports %]
@ -186,76 +210,96 @@
[% END %]
[% END %]
</select>
<div class="hint"> Select a file transport configuration for this EDI account. File transports can be managed in <a href="/cgi-bin/koha/admin/file_transports.pl">Administration &rsaquo; File transports</a>. </div>
</li>
</ol>
</div>
<div class="hint"> Select a file transport configuration for this EDI account. File transports can be managed in <a href="/cgi-bin/koha/admin/file_transports.pl">Administration &rsaquo; File transports</a>. </div>
</div>
</fieldset>
<!-- Message types -->
<fieldset class="rows">
<fieldset class="fg">
<legend>Message types</legend>
<ol>
<li>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="quotes_enabled">Quotes enabled: </label>
</div>
<div class="fg-input">
[% IF account.quotes_enabled %]
<input type="checkbox" name="quotes_enabled" id="quotes_enabled" value="1" checked="checked" />
[% ELSE %]
<input type="checkbox" name="quotes_enabled" id="quotes_enabled" value="1" />
[% END %]
</li>
<li>
</div>
</div>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="orders_enabled">Orders enabled: </label>
</div>
<div class="fg-input">
[% IF account.orders_enabled %]
<input type="checkbox" name="orders_enabled" id="orders_enabled" value="1" checked="checked" />
[% ELSE %]
<input type="checkbox" name="orders_enabled" id="orders_enabled" value="1" />
[% END %]
</li>
<li>
</div>
</div>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="invoices_enabled">Invoices enabled: </label>
</div>
<div class="fg-input">
[% IF account.invoices_enabled %]
<input type="checkbox" name="invoices_enabled" id="invoices_enabled" value="1" checked="checked" />
[% ELSE %]
<input type="checkbox" name="invoices_enabled" id="invoices_enabled" value="1" />
[% END %]
</li>
<li>
</div>
</div>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="responses_enabled">Responses enabled: </label>
</div>
<div class="fg-input">
[% IF account.responses_enabled %]
<input type="checkbox" name="responses_enabled" id="responses_enabled" value="1" checked="checked" />
[% ELSE %]
<input type="checkbox" name="responses_enabled" id="responses_enabled" value="1" />
[% END %]
</li>
</ol>
</div>
</div>
</fieldset>
<!-- Functional switches -->
<fieldset class="rows">
<fieldset class="fg">
<legend>Functional switches</legend>
<ol>
<li>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="auto_orders">Automatic ordering: </label>
</div>
<div class="fg-input">
[% IF account.auto_orders %]
<input type="checkbox" name="auto_orders" id="auto_orders" value="1" checked="checked" />
[% ELSE %]
<input type="checkbox" name="auto_orders" id="auto_orders" value="1" />
[% END %]
<div class="hint"> With automatic ordering quotes generate orders without staff intervention. </div>
</li>
<li>
</div>
<div class="hint"> With automatic ordering quotes generate orders without staff intervention. </div>
</div>
<div class="fg-row input-checkbox">
<div class="fg-label">
<label for="po_is_basketname">Use purchase order numbers: </label>
</div>
<div class="fg-input">
[% IF account.po_is_basketname %]
<input type="checkbox" name="po_is_basketname" id="po_is_basketname" value="1" checked="checked" />
[% ELSE %]
<input type="checkbox" name="po_is_basketname" id="po_is_basketname" value="1" />
[% END %]
<div class="hint">
When enabled, basket names are used as purchase order numbers. <br />For received QUOTE messages, we will use the RFF+ON field to populate the basket name. <br />For generated ORDER messages, we will use the
basket name to populate the BGM segment.</div
>
</li>
</ol>
</div>
<div class="hint">
When enabled, basket names are used as purchase order numbers. <br />For received QUOTE messages, we will use the RFF+ON field to populate the basket name. <br />For generated ORDER messages, we will use the basket
name to populate the BGM segment.
</div>
</div>
</fieldset>
<fieldset class="action">

View File

@ -97,12 +97,14 @@
[% END %]
</h1>
<fieldset class="rows">
<fieldset class="fg">
<legend class="sr-only">EAN details</legend>
<ol>
<li>
<div class="fg-row">
<div class="fg-label">
<label for="branchcode">Library: </label>
</div>
<div class="fg-input">
<select name="branchcode" id="branchcode">
<option value="">All libraries</option>
[% FOREACH branch IN branches %]
@ -113,17 +115,29 @@
[% END %]
[% END %]
</select>
</li>
<li>
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="description">Description: </label>
</div>
<div class="fg-input">
<input type="text" name="description" id="description" size="30" maxlength="128" value="[% ean.description | html %]" />
</li>
<li>
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="ean">EAN: </label>
</div>
<div class="fg-input">
<input type="text" name="ean" id="ean" size="20" maxlength="15" value="[% ean.ean | html %]" />
</li>
<li>
</div>
</div>
<div class="fg-row">
<div class="fg-label">
<label for="id_code_qualifier">Qualifier: </label>
</div>
<div class="fg-input">
<select name="id_code_qualifier" id="id_code_qualifier">
[% FOREACH qualifier IN code_qualifiers %]
[% IF qualifier.code == ean.id_code_qualifier %]
@ -133,8 +147,8 @@
[% END %]
[% END %]
</select>
</li>
</ol>
</div>
</div>
</fieldset>
<fieldset class="action">