@@ -, +, @@ --- Koha/Template/Plugin/Desks.pm | 6 ++++++ circ/set-library.pl | 22 +++++++++++++++++++++- .../prog/en/includes/html_helpers.inc | 10 ++++++++++ .../prog/en/includes/intranet-bottom.inc | 1 + .../intranet-tmpl/prog/en/includes/js_includes.inc | 4 ++++ koha-tmpl/intranet-tmpl/prog/en/modules/auth.tt | 16 ++++++++++++++++ .../prog/en/modules/circ/set-library.tt | 20 ++++++++++++++++++-- koha-tmpl/intranet-tmpl/prog/js/desk_selection.js | 17 +++++++++++++++++ 8 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/js/desk_selection.js --- a/Koha/Template/Plugin/Desks.pm +++ a/Koha/Template/Plugin/Desks.pm @@ -87,4 +87,10 @@ sub ListForLibrary { ); } +sub all { + + my ( $self ) = @_; + return Koha::Desks->search( )->unblessed; +} + 1; --- a/circ/set-library.pl +++ a/circ/set-library.pl @@ -26,6 +26,7 @@ use C4::Auth qw/:DEFAULT get_session/; use C4::Koha; use Koha::BiblioFrameworks; use Koha::Libraries; +use Koha::Desks; my $query = CGI->new(); @@ -42,7 +43,9 @@ my $sessionID = $query->cookie("CGISESSID"); my $session = get_session($sessionID); my $branch = $query->param('branch' ); +my $desk_id = $query->param('desk_id'); my $userenv_branch = C4::Context->userenv->{'branch'} || ''; +my $userenv_desk = C4::Context->userenv->{'desk_id'} || ''; my @updated; # $session lddines here are doing the updating @@ -56,11 +59,27 @@ if ( $branch and my $library = Koha::Libraries->find($branch) ) { $session->flush(); push @updated, { updated_branch => 1, - old_branch => $userenv_branch, + old_branch => $userenv_branch, }; } # else branch the same, no update + if ( !$userenv_desk or $userenv_desk ne $desk_id ) { + my $desk = Koha::Desks->find( { desk_id => $desk_id } ); + my $old_desk_name = ''; + if ($userenv_desk) { + $old_desk_name = Koha::Desks->find( { desk_id => $userenv_desk })->desk_name; + } + $template->param( LoginDeskname => $desk->desk_name ); + $template->param( LoginDeskid => $desk->desk_id ); + $session->param( desk_name => $desk->desk_name ); + $session->param( desk_id => $desk->desk_id ); + push @updated, { + updated_desk => 1, + old_desk => $old_desk_name, + }; + } } else { $branch = $userenv_branch; # fallback value + $desk_id = $userenv_desk; } $template->param(updated => \@updated) if (scalar @updated); @@ -87,6 +106,7 @@ if (scalar @updated and not scalar @recycle_loop) { $template->param( referer => $referer, branch => $branch, + desk_id => $desk_id, recycle_loop=> \@recycle_loop, ); --- a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers.inc @@ -8,6 +8,16 @@ [% END %] [% END %] +[% BLOCK options_for_desks %] + [% FOREACH d IN desks %] + [% IF d.branchcode == branch %] + + [% ELSE %] + + [% END%] + [% END %] + [% END %] + [% BLOCK options_for_authorised_value_categories %] [% FOREACH avc IN authorised_value_categories %] [% IF avc.selected %] --- a/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc @@ -73,5 +73,6 @@ [% jsinclude | $raw # Parse the page template's JavaScript block if necessary %] [% END %] [% KohaPlugins.get_plugins_intranet_js | $raw %] + --- a/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc @@ -26,6 +26,9 @@ [% Asset.js("js/staff-global.js") | $raw %] [% Asset.js("js/commons.js") | $raw %] +[% IF setdesk %] +[% Asset.js("js/desk_selection.js") | $raw %] +[% END %] [% INCLUDE 'validator-strings.inc' %] [% IF ( IntranetUserJS ) %] @@ -146,3 +149,4 @@ [% END %] + --- a/koha-tmpl/intranet-tmpl/prog/en/modules/auth.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/auth.tt @@ -1,8 +1,12 @@ [% USE raw %] [% USE Koha %] [% USE Branches %] +[% USE Desks %] [% USE Categories %] [% SET footerjs = 1 %] +[% IF Desks.all %] + [% SET setdesk = 1 %] +[% END %] [% INCLUDE 'doc-head-open.inc' %] Koha › [% IF ( nopermission ) %]Access denied[% END %] @@ -81,6 +85,18 @@ [% END %] </select> </p> + [% IF Desks.all %] + <p> + <label for="desk">Desk:</label> + <select name="desk_id" id="desk_id" class="input" tabindex="3"> + <option value="">My desk</option> + [% FOREACH d IN Desks.all %] + <option class="[% d.branchcode | html %]" value="[% d.desk_id | html %]" disabled >[% d.desk_name | html %]</option> + [% END %] + </select> + </p> +</fieldset> +[% END %] [% END %] <!-- <p><label><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="3" />Remember me</label></p> --> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/set-library.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/set-library.tt @@ -1,5 +1,9 @@ [% USE Branches %] +[% USE Desks %] [% USE Koha %] +[% IF Desks.all %] + [% SET setdesk = 1 %] +[% END %] [% INCLUDE 'doc-head-open.inc' %] <title>Koha › Circulation › Set library [% INCLUDE 'doc-head-close.inc' %] @@ -36,7 +40,9 @@ Updated: