Bug 24201: (follow-up) Rework Desks Plugin
[koha.git] / Koha / Template / Plugin / Desks.pm
blob27d02970815f91fe07659a52e92e518f546c4039
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>.
20 use Modern::Perl;
22 use Template::Plugin;
23 use base qw( Template::Plugin );
25 use C4::Koha;
26 use C4::Context;
27 use Koha::Desks;
29 =head1 NAME
31 Koha::Template::Plugin::Desks - A module for dealing with desks in templates
33 =head1 DESCRIPTION
35 This plugin contains getters functions, to fetch all desks a library
36 got or the current one.
38 =head2 Methods
40 =head3 GetLoggedInDeskId
42 [% Desks.GetLoggedInDeskId %]
44 return the desk name that is attached to the session or empty string
46 =cut
48 sub GetLoggedInDeskId {
49 my ($self) = @_;
51 return C4::Context->userenv
52 ? C4::Context->userenv->{'desk_id'}
53 : '';
56 =head3 GetLoggedInDeskName
58 [% Desks.GetLoggedInDeskName %]
60 Return the desk name that is attached to the session or empty string
62 =cut
64 sub GetLoggedInDeskName {
65 my ($self) = @_;
67 return C4::Context->userenv
68 ? C4::Context->userenv->{'desk_name'}
69 : '';
72 =head3 ListForLibrary
74 [% Desks.ListForLibrary %]
76 returns all desks existing at the library
78 =cut
80 sub ListForLibrary {
81 my ($self) = @_;
82 my $branch_limit =
83 C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
84 return scalar Koha::Desks->search(
85 { branchcode => $branch_limit },
86 { order_by => { '-asc' => 'desk_name' } }