Bug 17216: Update the admin interface

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer  <katrin.fischer@bsz-bw.de>

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
This commit is contained in:
Jonathan Druart 2016-08-29 14:06:46 +01:00 committed by Brendan Gallagher
parent d7badeaafa
commit f97249f56e
2 changed files with 59 additions and 27 deletions

View file

@ -26,6 +26,7 @@ use C4::Koha;
use C4::Output;
use Koha::AuthorisedValues;
use Koha::AuthorisedValueCategories;
use Koha::Libraries;
my $input = new CGI;
@ -112,6 +113,9 @@ if ($op eq 'add_form') {
if ( $already_exists and ( not $id or $already_exists->id != $id ) ) {
push @messages, {type => 'error', code => 'already_exists' };
}
elsif ( $new_category eq 'branches' or $new_category eq 'itemtypes' or $new_category eq 'cn_source' ) {
push @messages, {type => 'error', code => 'invalid_category_name' };
}
elsif ( $id ) { # Update
my $av = Koha::AuthorisedValues->new->find( $id );
@ -151,6 +155,36 @@ if ($op eq 'add_form') {
}
}
$op = 'list';
$searchfield = $new_category;
} elsif ($op eq 'add_category' ) {
my $new_category = $input->param('category');
my $already_exists = Koha::AuthorisedValueCategories->find(
{
category_name => $new_category,
}
);
if ( $already_exists ) {
push @messages, {type => 'error', code => 'cat_already_exists' };
}
else { # Insert
my $av = Koha::AuthorisedValueCategory->new( {
category_name => $new_category,
} );
eval {
$av->store;
};
if ( $@ ) {
push @messages, {type => 'error', code => 'error_on_insert_cat' };
} else {
push @messages, { type => 'message', code => 'success_on_insert_cat' };
}
}
$op = 'list';
$searchfield = $new_category;
} elsif ($op eq 'delete') {
@ -174,22 +208,12 @@ $template->param(
if ( $op eq 'list' ) {
# build categories list
my @categories = Koha::AuthorisedValues->new->categories;
my @categories = Koha::AuthorisedValueCategories->search({}, { order_by => ['category_name'] } );
my @category_list;
my %categories; # a hash, to check that some hardcoded categories exist.
for my $category ( @categories ) {
push( @category_list, $category );
$categories{$category} = 1;
push( @category_list, $category->category_name );
}
# push koha system categories
foreach (qw(Asort1 Asort2 Bsort1 Bsort2 SUGGEST DAMAGED LOST REPORT_GROUP REPORT_SUBGROUP DEPARTMENT TERM SUGGEST_STATUS ITEMTYPECAT)) {
push @category_list, $_ unless $categories{$_};
}
#reorder the list
@category_list = sort {$a cmp $b} @category_list;
$searchfield ||= $category_list[0];
my @avs_by_category = Koha::AuthorisedValues->new->search( { category => $searchfield } );

View file

@ -77,25 +77,24 @@ $(document).ready(function() {
[% IF ( action_modify ) %]<div class="note"><i class="fa fa-exclamation"></i> <strong>NOTE:</strong> If you change an authorized value code, existing records using it won't be updated. Changes to value descriptions will show immediately.</div>[% END %]
<form action="/cgi-bin/koha/admin/authorised_values.pl" name="Aform" method="post" class="validated">
<input type="hidden" name="op" value="add" />
<fieldset class="rows"><ol>
<li>
[% IF ( action_add_category ) %]
<label for="category" class="required">Category: </label>
<input type="text" name="category" id="category" size="32" maxlength="32" class="focus required" />
<span class="required">Required</span>
[% ELSE %]<span class="label">Category</span>
<input type="hidden" name="category" value="[% category %]" /> [% category %]
[% END %]
</li>
[% IF action_add_category %]
<li>
<label for="category" class="required">Category: </label>
<input type="text" name="category" id="category" size="32" maxlength="32" class="focus required" />
<span class="required">Required</span>
<input type="hidden" name="op" value="add_category" />
</li>
[% ELSE %]
<li>
<span class="label">Category</span>
<input type="hidden" name="op" value="add" />
<input type="hidden" name="category" value="[% category %]" /> [% category %]
</li>
<li>
<label for="authorised_value">Authorized value: </label>
[% IF ( action_modify ) %]<input type="hidden" id="id" name="id" value="[% id %]" />[% END %]
[% IF ( action_add_category ) %]
<input type="text" id="authorised_value" name="authorised_value" value="[% authorised_value %]" maxlength="80" />
[% ELSE %]
[% IF ( action_modify ) %]<input type="hidden" id="id" name="id" value="[% id %]" />[% END %]
<input type="text" id="authorised_value" name="authorised_value" value="[% authorised_value %]" maxlength="80" class="focus" />
[% END %]
</li>
<li>
<label for="lib">Description: </label>
@ -154,6 +153,7 @@ $(document).ready(function() {
</div>
[% END %]
</div>
[% END %]
</fieldset>
<fieldset class="action"> <input type="hidden" name="id" value="[% id %]" />
<input type="submit" value="Save" /> <a class="cancel" href="/cgi-bin/koha/admin/authorised_values.pl?searchfield=[% category %]">Cancel</a></fieldset>
@ -178,16 +178,24 @@ $(document).ready(function() {
An error occurred when updating this authorized value. Perhaps the value already exists.
[% CASE 'error_on_insert' %]
An error occurred when inserting this authorized value. Perhaps the value or the category already exists.
[% CASE 'error_on_insert_cat' %]
An error occurred when inserting this authorized value category. Perhaps the category name already exists.
[% CASE 'error_on_delete' %]
An error occurred when deleting this authorized value. Check the logs.
[% CASE 'success_on_update' %]
Authorized value updated successfully.
[% CASE 'success_on_insert' %]
Authorized value added successfully.
[% CASE 'success_on_insert_cat' %]
Authorized value category added successfully.
[% CASE 'success_on_delete' %]
Authorized value deleted successfully.
[% CASE 'already_exists' %]
This authorized value already exists.
[% CASE 'cat_already_exists' %]
This authorized value category already exists.
[% CASE 'invalid_category_name' %]
The authorized value category 'branches', 'itemtypes' and 'cn_source' are used internally by Koha and are not valid.
[% CASE %]
[% m.code %]
[% END %]