1 package Koha::Template::Plugin::Desks;
3 # Copyright (C) BULAC 2020
5 # This file is part of Koha.
7 # Koha is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
12 # Koha is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with Koha; if not, see <http://www.gnu.org/licenses>.
23 use base qw( Template::Plugin );
31 Koha::Template::Plugin::Desks - A module for dealing with desks in templates
35 This plugin contains getters functions, to fetch all desks a library
36 got or the current one.
42 [% Desk.GetName(desk_id) %]
44 return desk name or empty string
49 my ( $self, $desk_id ) = @_;
50 my $d = Koha::Desks->search( { desk_id => $desk_id} )->unblessed;
51 return @$d ? $d->{'desk_name'} : q{};
54 =head3 GetLoggedInDeskId
56 [% Desks.GetLoggedInDeskId %]
58 return the desk name that is attached to the session or empty string
62 sub GetLoggedInDeskId {
65 return C4::Context->userenv ?
66 C4::Context->userenv->{'desk_id'} :
70 =head3 GetLoggedInDeskName
72 [% Desks.GetLoggedInDeskName %]
74 Return the desk name that is attached to the session or empty string
78 sub GetLoggedInDeskName {
81 return C4::Context->userenv ?
82 C4::Context->userenv->{'desk_name'} :
90 returns all desks existing at the library
95 my ( $self, $params ) = @_;
96 my $selected = $params->{selected};
97 my $unfiltered = $params->{unfiltered} || 0;
98 my $search_params = $params->{search_params} || {};
100 if ( !$unfiltered ) {
101 $search_params->{only_from_group} = $params->{only_from_group} || 0;
104 my $desks = $unfiltered
105 ? Koha::Desks->search( $search_params, { order_by => ['desk_name'] } )->unblessed
106 : Koha::Desks->search_filtered( $search_params, { order_by => ['desk_name'] } )->unblessed;
108 for my $d ( @$desks ) {
109 if ( defined $selected and $d->{desk_id} eq $selected
110 or not defined $selected and C4::Context->userenv and $d->{branchcode} eq ( C4::Context->userenv->{desk_id} // q{} )
123 return 1 if there is at least a desk defined for the library.
129 my $desks = Koha::Desks->search()->unblessed;