@@ -, +, @@ process - Go to Administration -> System preferences and set HoldsSplitQueue to "nothing." - Perform a search in the staff client catalog and place multiple holds titles from that result set on hold for a patron. - Perform the same search and select one or more of the titles you selected before in addition to one or more titles with no holds. - After clicking the "Place hold" button you should see a page with the heading "Search patrons or clubs" showing information about existing holds. This section of the page should be clear and readable, with clear distinction between each section of information about each hold. - Test this page again under each different option for the "HoldsSplitQueue" system preference by changing the preference and reloading the page. --- .../intranet-tmpl/prog/css/src/holds.scss | 36 +++ .../prog/css/src/staff-global.scss | 10 + .../prog/en/includes/holds_table.inc | 14 +- .../prog/en/modules/reserve/request.tt | 251 +++++++++++------- 4 files changed, 212 insertions(+), 99 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/css/src/holds.scss --- a/koha-tmpl/intranet-tmpl/prog/css/src/holds.scss +++ a/koha-tmpl/intranet-tmpl/prog/css/src/holds.scss @@ -0,0 +1,36 @@ +.hold_title { + border: 1px solid #b9d8d9; + border-bottom-color: darken( #b9d8d9, 15% ); + border-top-color: lighten( #b9d8d9, 10% ); + border-radius: 5px; + margin: .5em 0; + padding-bottom: 1em; + padding: 1em; +} + +.holds_table { + margin-bottom: 1em; + width: 100%; +} + +.holds_by_library, +.holds_by_itemtype { + margin-bottom: 1em; + margin-left: 1em; + + &:last-child { + .holds_table { + margin-bottom: 0; + } + } +} + +.holds_by_library { + .itemtype_holds { + color: #5D6A8A; + } + + &:last-child { + margin-bottom: 0; + } +} --- a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss +++ a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss @@ -910,6 +910,12 @@ fieldset { } } } + + table { + display: inline-block; + font-size: 105%; + margin: 0; + } } p { @@ -2438,6 +2444,10 @@ td { font-size: 105%; line-height: 200%; + h3 & { + font-size: 70%; + } + a, span { background-color: #E4ECF5; --- a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc @@ -1,7 +1,7 @@ [% USE Koha %] [% SET hold_cancellation = AuthorisedValues.GetAuthValueDropbox('HOLD_CANCELLATION') %] [% USE AuthorisedValues %] - +
[% IF ( CAN_user_reserveforothers_modify_holds_priority ) %] @@ -196,15 +196,21 @@ [% END %]
Priority - - Cancel + + Cancel [% IF Koha.Preference('SuspendHoldsIntranet') %] [% UNLESS ( hold.found ) %] - + [% IF Koha.Preference('AutoResumeSuspendedHolds') %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -10,6 +10,7 @@ [% USE AuthorisedValues %] [% USE Price %] [% USE TablesSettings %] +[% PROCESS 'i18n.inc' %] [% SET footerjs = 1 %] [% INCLUDE 'doc-head-open.inc' %] [% UNLESS ( multi_hold ) %] @@ -18,6 +19,7 @@ Confirm holds › Holds › Circulation › Koha [% END %] [% INCLUDE 'doc-head-close.inc' %] +[% Asset.css("css/holds.css") | $raw %] @@ -54,9 +56,21 @@ Catalog
  • - - Confirm holds - + [% IF ( patron ) %] + + Place holds + + [% ELSE %] + [% IF clubcount %] + + Search patrons or clubs + + [% ELSE %] + + Search patrons + + [% END %] + [% END %]
  • @@ -96,7 +110,17 @@ [% UNLESS ( multi_hold ) %]

    Place a hold on [% INCLUDE 'biblio-title.inc' link = 1 %]

    [% ELSE %] -

    Confirm holds

    +

    + [% IF ( patron ) %] + Place holds + [% ELSE %] + [% IF clubcount %] + Search patrons or clubs + [% ELSE %] + Search patrons + [% END %] + [% END %] +

    [% END %] [% UNLESS club OR patron OR patron.borrowernumber OR noitems %] @@ -114,10 +138,12 @@ [% END %]
    - [% IF clubcount %] - - [% ELSE %] - + [% UNLESS multi_hold %] + [% IF clubcount %] + + [% ELSE %] + + [% END %] [% END %]
      @@ -239,7 +265,6 @@ [% END %] [% END %] - [% UNLESS ( multi_hold ) %]
      @@ -893,112 +918,148 @@ [% FOREACH biblioloo IN biblioloop %] [% IF ( biblioloo.reserveloop ) %] - [% IF ( multi_hold ) %] -

      - - [% biblioloo.title | html %] - -

      - [% END %] +
      + [% IF ( multi_hold ) %] +

      + + [% biblioloo.title | html %] + [% biblioloo.reserveloop.size | html %] [% tn('Hold', 'Holds', biblioloo.reserveloop.size) | $raw %] +

      + [% END %] - [% IF Koha.Preference('HoldsSplitQueue') == 'branch' %] - [% SET branchcodes = [] %] + [% IF Koha.Preference('HoldsSplitQueue') == 'branch' %] - [% FOREACH h IN biblioloo.reserveloop %] - [% branchcodes.push( h.branchcode ) %] - [% END %] - [% branchcodes = branchcodes.unique %] + [% SET branchcodes = [] %] - [% FOREACH b IN branchcodes.sort %] - [% SET holds_by_branch = [] %] [% FOREACH h IN biblioloo.reserveloop %] - [% IF h.branchcode == b %] - [% holds_by_branch.push( h ) %] - [% END %] + [% branchcodes.push( h.branchcode ) %] [% END %] -
      - [% Branches.GetName( b ) | html %] - [% INCLUDE holds_table.inc holds=holds_by_branch %] -
      - [% END # /FOREACh b %] - [% ELSIF Koha.Preference('HoldsSplitQueue') == 'itemtype' %] - [% SET itemtypes = [] %] - - [% FOREACH h IN biblioloo.reserveloop %] - [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] - [% itemtypes.push( hold_itemtype ) %] - [% END %] - [% itemtypes = itemtypes.unique %] + [% branchcodes = branchcodes.unique %] + [% IF ( branchcodes.empty ) %] +
      + There are no holds on this title. +
      + [% ELSE %] + + [% FOREACH b IN branchcodes.sort %] + [% SET holds_by_branch = [] %] + [% FOREACH h IN biblioloo.reserveloop %] + [% IF h.branchcode == b %] + [% holds_by_branch.push( h ) %] + [% END %] + [% END %] +
      +

      [% Branches.GetName( b ) | html %]

      + + [% INCLUDE holds_table.inc holds=holds_by_branch %] +
      + [% END # /FOREACh b %] + [% END # /IF ( branchcodes.empty ) %] + + [% ELSIF Koha.Preference('HoldsSplitQueue') == 'itemtype' %] + + [% SET itemtypes = [] %] - [% FOREACH i IN itemtypes.sort %] - [% SET holds_by_itemtype = [] %] [% FOREACH h IN biblioloo.reserveloop %] [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] - [% IF hold_itemtype == i %] - [% holds_by_itemtype.push( h ) %] - [% END %] + [% itemtypes.push( hold_itemtype ) %] [% END %] - -
      - [% IF i %] - [% ItemTypes.GetDescription( i ) | html %] - [% ELSE %] - Any item type - [% END %] - [% INCLUDE holds_table.inc holds=holds_by_itemtype %] -
      - [% END # /FOREACH i %] - [% ELSIF Koha.Preference('HoldsSplitQueue') == 'branch_itemtype' %] - [% SET branchcodes = [] %] - - [% FOREACH h IN biblioloo.reserveloop %] - [% branchcodes.push( h.branchcode ) %] - [% END %] - [% branchcodes = branchcodes.unique %] - - [% FOREACH b IN branchcodes.sort %] -
      - [% Branches.GetName( b ) | html %] - [% SET holds_by_branch = [] %] - [% FOREACH h IN biblioloo.reserveloop %] - [% IF h.branchcode == b %] - [% holds_by_branch.push( h ) %] - [% END %] - [% END %] - - [% SET itemtypes = [] %] - [% FOREACH h IN holds_by_branch %] - [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] - [% itemtypes.push( hold_itemtype ) %] - [% END %] - [% itemtypes = itemtypes.unique %] + [% itemtypes = itemtypes.unique %] + [% IF ( itemtypes.empty ) %] +
      + There are no holds on this title. +
      + [% ELSE %] [% FOREACH i IN itemtypes.sort %] - [% IF i %] -

      [% ItemTypes.GetDescription( i ) | html %]

      - [% ELSE %] -

      Any item type

      - [% END %] - [% SET holds_by_itemtype = [] %] - [% FOREACH h IN holds_by_branch %] + [% FOREACH h IN biblioloo.reserveloop %] [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] [% IF hold_itemtype == i %] [% holds_by_itemtype.push( h ) %] [% END %] [% END %] - [% INCLUDE holds_table.inc holds=holds_by_itemtype %] - [% END %] -
      - [% END # /FOREACH b %] - [% ELSE %] - [% INCLUDE holds_table.inc holds=biblioloo.reserveloop %] - [% END # /IF HoldsSplitQueue %] +
      + [% IF i %] +

      [% ItemTypes.GetDescription( i ) | html %]

      + [% ELSE %] +

      Any item type

      + [% END %] + [% INCLUDE holds_table.inc holds=holds_by_itemtype %] +
      + [% END # /FOREACH i %] + [% END # /IF ( itemtypes.empty ) %] + + [% ELSIF Koha.Preference('HoldsSplitQueue') == 'branch_itemtype' %] + [% SET branchcodes = [] %] + + [% FOREACH h IN biblioloo.reserveloop %] + [% branchcodes.push( h.branchcode ) %] + [% END %] + [% branchcodes = branchcodes.unique %] + [% IF ( branchcodes.empty ) %] +
      + There are no holds on this title. +
      + [% ELSE %] + + [% FOREACH b IN branchcodes.sort %] +
      +

      [% Branches.GetName( b ) | html %]

      + [% SET holds_by_branch = [] %] + [% FOREACH h IN biblioloo.reserveloop %] + [% IF h.branchcode == b %] + [% holds_by_branch.push( h ) %] + [% END %] + [% END %] + + [% SET itemtypes = [] %] + [% FOREACH h IN holds_by_branch %] + [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] + [% itemtypes.push( hold_itemtype ) %] + [% END %] + [% itemtypes = itemtypes.unique %] + + [% FOREACH i IN itemtypes.sort %] +
      +
      + [% IF i %] + [% ItemTypes.GetDescription( i ) | html %] + [% ELSE %] + Any item type + [% END %] +
      + + [% SET holds_by_itemtype = [] %] + [% FOREACH h IN holds_by_branch %] + [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %] + [% IF hold_itemtype == i %] + [% holds_by_itemtype.push( h ) %] + [% END %] + [% END %] + [% INCLUDE holds_table.inc holds=holds_by_itemtype %] +
      + [% END %] +
      + [% END # /FOREACH b %] + [% END # /IF ( branchcodes.empty ) %] + + [% ELSE %] + + [% IF ( biblioloo.reserveloop.size ) %] + [% INCLUDE holds_table.inc holds=biblioloo.reserveloop %] + [% ELSE %] +
      + There are no holds on this title. +
      + [% END %] + + [% END # /IF HoldsSplitQueue %] +
      [% END # /IF biblioloo.reserveloop %] [% END # FOREACH biblioloo %] -
      - + [% END # IF reserveloop %] [% END # UNLESS patron %] --