Bugzilla – Attachment 192989 Details for
Bug 41823
Update acquisitions admin pages to use grid layout for forms
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 41823: Update acquisitions admin pages to use grid layout for forms
Bug-41823-Update-acquisitions-admin-pages-to-use-g.patch (text/plain), 63.63 KB, created by
Owen Leonard
on 2026-02-11 20:26:54 UTC
(
hide
)
Description:
Bug 41823: Update acquisitions admin pages to use grid layout for forms
Filename:
MIME Type:
Creator:
Owen Leonard
Created:
2026-02-11 20:26:54 UTC
Size:
63.63 KB
patch
obsolete
>From 12fb0098522a73ad7c8c2676cd28fb682b42b4c9 Mon Sep 17 00:00:00 2001 >From: Owen Leonard <oleonard@myacpl.org> >Date: Wed, 11 Feb 2026 15:18:24 -0500 >Subject: [PATCH] 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 and go to Administration. 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 >--- > .../intranet-tmpl/prog/css/src/_forms.scss | 206 +++++++++++++++--- > .../prog/en/modules/admin/aqbudgetperiods.tt | 178 +++++++++------ > .../prog/en/modules/admin/aqbudgets.tt | 146 +++++++++---- > .../prog/en/modules/admin/aqcontract.tt | 69 +++--- > .../prog/en/modules/admin/currency.tt | 115 ++++++---- > .../prog/en/modules/admin/edi_accounts.tt | 146 ++++++++----- > .../prog/en/modules/admin/edi_ean_accounts.tt | 36 ++- > 7 files changed, 626 insertions(+), 270 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/css/src/_forms.scss b/koha-tmpl/intranet-tmpl/prog/css/src/_forms.scss >index bd87ad856ed..fcb947cc758 100644 >--- a/koha-tmpl/intranet-tmpl/prog/css/src/_forms.scss >+++ b/koha-tmpl/intranet-tmpl/prog/css/src/_forms.scss >@@ -19,11 +19,26 @@ fieldset { > } > > &.fg { >+ container-name: form-grid; >+ container-type: inline-size; >+ > .btn.btn-link { > padding: .175rem 0; > } > > .fg-checkbox { >+ .hint { >+ display: inline; >+ } >+ } >+ >+ .fg-pair { >+ display: flex; >+ flex-wrap: nowrap; >+ gap: .5rem; >+ } >+ >+ .fg-radio { > grid-column-start: 2; > } > >@@ -35,28 +50,100 @@ fieldset { > .label { > font-weight: bold; > } >- } > >- .fg-row input[type="text"], >- .fg-row select { >- background-color: #FFF; >- border: 1px solid #AAAAAA; >- border-radius: 4px; >- color: #495057; >- display: inline-block; >- height: calc( 1.5em + .75rem + 2px ); >- line-height: 1.5; >- padding: .375rem .75rem; >- width: 100%; >- } >+ .btn-default { >+ border: 1px solid #AAA; >+ border-radius: .375rem; >+ height: calc( 1.5em + .75rem + 2px ); >+ padding: .375rem .75rem; >+ } >+ >+ .fg-input, >+ .fg-text { >+ display: flex; >+ gap: .5rem; >+ >+ label { >+ margin-right: 1rem; >+ } >+ } >+ >+ &.input-checkbox { >+ display: grid; >+ grid-template-columns: 2rem 85%; >+ >+ .fg-label { >+ grid-column: 2 / 3; >+ grid-row: 1 / 2; >+ justify-self: left; >+ text-align: left; >+ } >+ >+ .fg-input, >+ .fg-text { >+ grid-column: 1 / 1; >+ } >+ >+ .hint { >+ grid-row: 2 / 3; >+ } >+ } >+ >+ input[type="text"], >+ input[type="password"], >+ select { >+ background-color: #FFF; >+ border: 1px solid #AAAAAA; >+ border-radius: 4px; >+ color: #495057; >+ display: inline-block; >+ height: calc( 1.5em + .75rem + 2px ); >+ line-height: 1.5; >+ padding: .375rem .75rem; >+ width: 100%; >+ } >+ >+ input[type="text"] { >+ &.readonly, >+ &:read-only { >+ background: #EEE url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' fill='currentColor'%3E%3Cpath d='M6.5 1.371c.962 0 1.742.78 1.742 1.742v1.549H4.758V3.113c0-.962.78-1.742 1.742-1.742m2.613 5.226V3.113c0-3.484-5.226-3.484-5.226 0v1.549c-.962 0-1.742.78-1.742 1.741v4.355c0 .962.78 1.742 1.742 1.742h5.226c.962 0 1.742-.78 1.742-1.742V6.403c0-.962-.78-1.741-1.742-1.741' style='fill:%23838383'/%3E%3C/svg%3E" ) 1% 50% no-repeat; >+ border-style: inset; >+ border-width: 1px; >+ cursor: default; >+ padding-left: 20px; >+ >+ &:focus { >+ border-color: unset; >+ border-radius: unset; >+ } >+ } >+ } >+ >+ input[type="text"].flatpickr-input { >+ padding-left: calc( 1.5em + 10px ); >+ width: calc( 100% - 20px ); >+ } >+ >+ input[type="checkbox"], >+ input[type="radio"] { >+ margin: .4em 0 0 0; >+ } > >- .fg-row input[type="text"].flatpickr-input { >- padding-left: calc( 1.5em + 10px ); >- width: calc( 100% - 20px ); >+ textarea { >+ border: 1px solid #AAAAAA; >+ border-radius: 4px; >+ color: #495057; >+ padding: .375rem .75rem; >+ width: 100%; >+ } > } > > .fg-row input[type="checkbox"] { >- margin: 0; >+ margin: .4em .4em .4em 0; >+ } >+ >+ .fg-row + .fg-row { >+ margin-top: 1rem; > } > > .fg-label, >@@ -66,17 +153,67 @@ fieldset { > > .fg-text { > padding: .375rem .75rem; >+ >+ label { >+ margin-right: 1rem; >+ } >+ } >+ >+ .form-control[type="file"] { >+ background-color: #FFF; >+ border: 1px solid #AAA; >+ display: inline-block; >+ width: 80%; > } > >- @media only screen and ( min-width: 608px ) { >+ @container form-grid ( width > 768px ) { > .fg-row { > column-gap: .7rem; > display: grid; >- grid-template-columns: 15% 50% 15%; >+ grid-template-columns: 25% 50% 15%; > grid-template-rows: 1fr min-content; > >+ .fg-label { >+ justify-self: right; >+ text-align: right; >+ } >+ >+ .fg-input, >+ .fg-text { >+ grid-column-start: 2; >+ } >+ >+ &.input-md { >+ grid-template-columns: 25% 30% 15%; >+ } >+ >+ &.input-sm { >+ grid-template-columns: 25% 15% 15%; >+ } >+ > &.wide { >- grid-template-columns: 15% 85%; >+ grid-template-columns: 25% 85%; >+ } >+ >+ &.input-checkbox { >+ display: grid; >+ grid-template-columns: 25% 1.5rem 65%; >+ >+ .fg-label { >+ grid-column: 3 / 4; >+ grid-row: 1 / 2; >+ justify-self: left; >+ text-align: left; >+ } >+ >+ .fg-input, >+ .fg-text { >+ grid-column: 2 / 3; >+ } >+ >+ .hint { >+ grid-column: 3 / 4; >+ } > } > > input[type="text"].flatpickr-input { >@@ -84,23 +221,30 @@ fieldset { > width: calc( 100% - 20px ); > } > } >- >- .fg-label { >- justify-self: right; >- text-align: right; >- } > } > >- @media only screen and ( min-width: 1700px ) { >+ @container form-grid ( width > 1700px ) { > .fg-row { >- grid-template-columns: 10% 35% 15%; >+ grid-template-columns: 20% 35% 15%; >+ >+ &.input-md { >+ grid-template-columns: 20% 30% 25%; >+ } >+ >+ &.input-sm { >+ grid-template-columns: 20% 15% 25%; >+ } >+ >+ &.wide { >+ grid-template-columns: 20% 80%; >+ } > } > } > > .hint { > color: #666; > font-size: 95%; >- grid-column-start: 2; >+ grid-column: 4 / 2; > margin: .3rem 0; > } > } >@@ -266,12 +410,12 @@ fieldset { > width: auto; > > span { >- margin-left:5px; >- width:auto; >+ margin-left: 5px; >+ width: auto; > } > } > >- ul>li.hide-radio.selected { >+ ul > li.hide-radio.selected { > background-color: initial; > color: initial; > } >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt >index 6bf1da18ac4..0c618d4efc0 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt >@@ -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> >- >- <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> >+ >+ <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> >- >- <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> >- >- <li> >+ </div> >+ <div class="required">Required</div> >+ </div> >+ >+ <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> >+ >+ <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> >- >- <li> >- <!-- DESCRIPTION --> >- <!-- ############################## --> >+ </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> >+ >+ <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> >- >- <li> >- <!-- TOTAL --> >- <!-- ############################## --> >+ </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> >+ >+ <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> >- >- <li> >- <!-- ACTIVE --> >- <!-- ############################## --> >+ </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> >+ >+ <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 --> >- <!-- ############################## --> >+ <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"> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt >index 9e5af86256c..fdd4c21435d 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt >@@ -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 %]" /> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tt >index 1743ad819cc..01c15343e5c 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tt >@@ -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> >+ </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> >+ <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> >+ </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> >+ <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 %]&contractnumber=[% contractnumber | html %]">Cancel</a> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/currency.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/currency.tt >index 18ce99e98ff..971e20c39ac 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/currency.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/currency.tt >@@ -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"> >@@ -266,30 +307,28 @@ > [% MACRO jsinclude BLOCK %] > [% Asset.js("js/admin-menu.js") | $raw %] > [% INCLUDE 'datatables.inc' %] >- <script> >- let table_settings = [% TablesSettings.GetTableSettings( 'admin', 'currency', 'currencies-table', 'json' ) | $raw %] >- </script> > <script> > 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); > }); > }); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/edi_accounts.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/edi_accounts.tt >index 94a4838b95f..4b5e862604e 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/edi_accounts.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/edi_accounts.tt >@@ -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 › 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 › 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"> >@@ -410,10 +454,8 @@ > [% Asset.js("js/admin-menu.js") | $raw %] > [% INCLUDE 'datatables.inc' %] > <script> >- var table_settings = [% TablesSettings.GetTableSettings( 'admin', 'edi_accounts', 'edi_accounts_table', 'json' ) | $raw %]; >- </script> >- <script> >- $(document).ready(function () { >+ $(document).ready(function(){ >+ var table_settings = [% TablesSettings.GetTableSettings( 'admin', 'edi_accounts', 'edi_accounts_table', 'json' ) | $raw %]; > $("#edi_accounts_table").kohaTable( > { > pagingType: "full", >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/edi_ean_accounts.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/edi_ean_accounts.tt >index a5291b3d10b..d8482a01fd1 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/edi_ean_accounts.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/edi_ean_accounts.tt >@@ -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"> >-- >2.39.5
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 41823
:
192989
|
192990
|
193005
|
193006