use Modern::Perl;
use CGI qw ( -utf8 );
use C4::Context;
-use C4::Auth;
-use C4::Output;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
use Koha::Libraries;
use Koha::Library::Group;
use Koha::Library::Groups;
-my $cgi = new CGI;
+my $cgi = CGI->new;
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,
+ flagsrequired => { parameters => 'manage_libraries' },
}
);
my $action = $cgi->param('action') || q{};
+my @messages;
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 $ft_hide_patron_info = $cgi->param('ft_hide_patron_info') || 0;
+ my $ft_search_groups_opac = $cgi->param('ft_search_groups_opac') || 0;
+ my $ft_search_groups_staff = $cgi->param('ft_search_groups_staff') || 0;
+ my $ft_local_hold_group = $cgi->param('ft_local_hold_group') || 0;
- my $group = Koha::Library::Group->new(
- {
- parent_id => $parent_id,
- title => $title,
- description => $description,
- branchcode => $branchcode,
+ if ( !$branchcode && Koha::Library::Groups->search( { title => $title } )->count() ) {
+ $template->param( error_duplicate_title => $title );
+ }
+ else {
+ my $group = eval {
+ Koha::Library::Group->new(
+ {
+ parent_id => $parent_id,
+ title => $title,
+ description => $description,
+ ft_hide_patron_info => $ft_hide_patron_info,
+ ft_search_groups_opac => $ft_search_groups_opac,
+ ft_search_groups_staff => $ft_search_groups_staff,
+ ft_local_hold_group => $ft_local_hold_group,
+ branchcode => $branchcode,
+ }
+ )->store();
+ };
+ if ($@) {
+ push @messages, { type => 'alert', code => 'error_on_insert' };
}
- )->store();
-
- $template->param( added => $group );
+ else {
+ $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;
+ my $ft_hide_patron_info = $cgi->param('ft_hide_patron_info') || 0;
+ my $ft_search_groups_opac = $cgi->param('ft_search_groups_opac') || 0;
+ my $ft_search_groups_staff = $cgi->param('ft_search_groups_staff') || 0;
+ my $ft_local_hold_group = $cgi->param('ft_local_hold_group') || 0;
if ($id) {
my $group = Koha::Library::Groups->find($id);
{
title => $title,
description => $description,
+ ft_hide_patron_info => $ft_hide_patron_info,
+ ft_search_groups_opac => $ft_search_groups_opac,
+ ft_search_groups_staff => $ft_search_groups_staff,
+ ft_local_hold_group => $ft_local_hold_group,
}
)->store();
my $root_groups = Koha::Library::Groups->get_root_groups();
-$template->param( root_groups => $root_groups, );
+$template->param( root_groups => $root_groups, messages => \@messages, );
output_html_with_http_headers $cgi, $cookie, $template->output;