From ee259d614000e0121f1567fd40b0721b23d100d5 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Sun, 31 Jan 2016 11:22:51 +0000 Subject: [PATCH] Bug 15707: Add library groups editor Signed-off-by: Mark Tompsett Signed-off-by: Tomas Cohen Arazi Signed-off-by: Jonathan Druart --- admin/library_groups.pl | 102 +++++++ .../prog/en/includes/admin-menu.inc | 1 + .../prog/en/modules/admin/admin-home.tt | 2 + .../prog/en/modules/admin/library_groups.tt | 266 ++++++++++++++++++ 4 files changed, 371 insertions(+) create mode 100755 admin/library_groups.pl create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/admin/library_groups.tt diff --git a/admin/library_groups.pl b/admin/library_groups.pl new file mode 100755 index 0000000000..e506d48789 --- /dev/null +++ b/admin/library_groups.pl @@ -0,0 +1,102 @@ +#! /usr/bin/perl + +# Copyright 2016 ByWater Solutions +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; +use CGI qw ( -utf8 ); +use C4::Context; +use C4::Auth; +use C4::Output; + +use Koha::Libraries; +use Koha::Library::Group; +use Koha::Library::Groups; + +my $cgi = new CGI; + +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "admin/library_groups.tt", + query => $cgi, + type => "intranet", + authnotrequired => 0, + flagsrequired => { parameters => 'parameters_remaining_permissions' }, + debug => 1, + } +); + +my $action = $cgi->param('action') || q{}; + +if ( $action eq 'add' ) { + my $parent_id = $cgi->param('parent_id') || undef; + my $title = $cgi->param('title') || undef; + my $description = $cgi->param('description') || undef; + my $branchcode = $cgi->param('branchcode') || undef; + + my $group = Koha::Library::Group->new( + { + parent_id => $parent_id, + title => $title, + description => $description, + branchcode => $branchcode, + } + )->store(); + + $template->param( added => $group ); +} +elsif ( $action eq 'edit' ) { + my $id = $cgi->param('id') || undef; + my $title = $cgi->param('title') || undef; + my $description = $cgi->param('description') || undef; + + if ($id) { + my $group = Koha::Library::Groups->find($id); + + $group->set( + { + title => $title, + description => $description, + } + )->store(); + + $template->param( edited => $group ); + } +} +elsif ( $action eq 'delete' ) { + my $id = $cgi->param('id'); + + my $group = Koha::Library::Groups->find($id); + + if ($group) { + $group->delete(); + $template->param( + deleted => { + title => $group->title(), + library => $group->library() + ? $group->library()->branchname + : undef + } + ); + } +} + +my $root_groups = Koha::Library::Groups->get_root_groups(); + +$template->param( root_groups => $root_groups, ); + +output_html_with_http_headers $cgi, $cookie, $template->output; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc index 5a08564ca1..b2a330c247 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc @@ -10,6 +10,7 @@
Basic parameters
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt index dd29587e97..652c7966ce 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt @@ -32,6 +32,8 @@
Libraries and groups
Define libraries and groups.
+
Library groups
+
Define library hierarchies.
Item types
Define item types used for circulation rules.
Authorized values
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/library_groups.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/library_groups.tt new file mode 100644 index 0000000000..4e25a549fc --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/library_groups.tt @@ -0,0 +1,266 @@ +[% INCLUDE 'doc-head-open.inc' %] +Koha › Administration › Library groups +[% INCLUDE 'doc-head-close.inc' %] + + + + + + +[% INCLUDE 'header.inc' %] +[% INCLUDE 'cities-admin-search.inc' %] + + + +[% IF added %] +
+ [% IF added.branchcode %] + [% added.library.branchname %] added to group. + [% ELSE %] + Group [% added.title %] created. + [% END %] +
+[% ELSIF deleted %] +
+ [% IF deleted.title %] + Group [% deleted.title %] has been deleted. + [% ELSE %] + [% deleted.library %] has been removed from group. + [% END %] +
+[% END %] + +
+
+
+
+
+ +
+ + [% FOREACH root_group IN root_groups %] + + + + + + + [% PROCESS tree group=root_group %] +
 Description 
+ [% END %] +
+
+ +
+ [% INCLUDE 'admin-menu.inc' %] +
+ + + + + + + + + +
+[% INCLUDE 'intranet-bottom.inc' %] + +[% BLOCK tree %] + + + [% IF group.branchcode %] + [% group.branchcode %] + [% ELSE %] + [% group.title %] + [% END %] + + + [% IF group.branchcode %] + [% group.library.branchname %] + [% ELSE %] + [% group.description %] + [% END %] + + + [% IF group.branchcode %] + + [% ELSE %] +
+ + +
+ +
+ + +
+ [% END %] + + + + [% FOREACH g IN group.children %] + [% PROCESS tree group=g %] + [% END %] +[% END %] -- 2.39.5