use Modern::Perl;
-# standard or CPAN modules used
use CGI qw ( -utf8 );
-use CGI::Cookie;
-use MARC::File::USMARC;
use Try::Tiny;
-# Koha modules used
use C4::Context;
use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
use C4::ImportBatch;
-use C4::Matcher;
-use C4::BackgroundJob;
-use C4::Labels::Batch;
use Koha::MarcOverlayRules;
use Koha::Patron::Categories;
-my $script_name = "/cgi-bin/koha/admin/marc-overlay-rules.pl";
-
-my $input = new CGI;
+my $input = CGI->new;
my $op = $input->param('op') || '';
my $errors = [];
template_name => "admin/marc-overlay-rules.tt",
query => $input,
type => "intranet",
- authnotrequired => 0,
flagsrequired => { parameters => 'manage_marc_overlay_rules' },
- debug => 1,
}
);
-$template->param(script_name => $script_name);
-
-my %cookies = parse CGI::Cookie($cookie);
-our $sessionID = $cookies{'CGISESSID'}->value;
-
my $get_rules = sub {
- # TODO: order?
- return [map { { $_->get_columns() } } Koha::MarcOverlayRules->_resultset->all];
+ return Koha::MarcOverlayRules->search( undef, { order_by => { -asc => 'id' } } )->unblessed;
};
-my $rules;
+my $rules = $get_rules->();
if ($op eq 'remove' || $op eq 'doremove') {
my @remove_ids = $input->multi_param('batchremove');
if ($op eq 'remove') {
$template->{VARS}->{removeConfirm} = 1;
my %remove_ids = map { $_ => undef } @remove_ids;
- $rules = $get_rules->();
for my $rule (@{$rules}) {
$rule->{'removemarked'} = 1 if exists $remove_ids{$rule->{id}};
}
my @remove_ids = $input->multi_param('batchremove');
push @remove_ids, scalar $input->param('id') if $input->param('id');
Koha::MarcOverlayRules->search({ id => { in => \@remove_ids } })->delete();
+ # Update $rules after deletion
$rules = $get_rules->();
}
}
elsif ($op eq 'edit') {
- $template->{VARS}->{edit} = 1;
+ $template->param( edit => 1 );
my $id = $input->param('id');
- $rules = $get_rules->();
for my $rule(@{$rules}) {
if ($rule->{id} == $id) {
$rule->{'edit'} = 1;
$rule->set($rule_data);
$rule->store();
}
+ # Update $rules after edit/add
$rules = $get_rules->();
}
}
-else {
- $rules = $get_rules->();
-}
-my $categorycodes = Koha::Patron::Categories->search_limited({}, {order_by => ['description']});
-$template->param( rules => $rules, categorycodes => $categorycodes, messages => $errors );
+my $categorycodes = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']});
+$template->param(
+ rules => $rules,
+ categorycodes => $categorycodes,
+ messages => $errors
+);
output_html_with_http_headers $input, $cookie, $template->output;