Bug 10363: Use Koha::AuthorisedValue[s] in the admin page
Now we have packages, we need use them in the pl script. Test plan: Verify there are no regression on addind/editing/deleting authorised values. Done forget to test the branch limitation. Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
parent
12c8242755
commit
64aa24d593
|
|
@ -23,7 +23,7 @@ use Carp;
|
|||
|
||||
use Koha::Database;
|
||||
|
||||
use Koha::Borrower;
|
||||
use Koha::AuthorisedValue;
|
||||
|
||||
use base qw(Koha::Objects);
|
||||
|
||||
|
|
@ -46,27 +46,39 @@ my @objects = Koha::AuthorisedValues->search($params);
|
|||
sub search {
|
||||
my ( $self, $params ) = @_;
|
||||
|
||||
carp("No branchcode passed in for authorised values search!")
|
||||
unless $params->{branchcode};
|
||||
|
||||
my $branchcode = $params->{branchcode};
|
||||
delete( $params->{branchcode} );
|
||||
|
||||
my $rs = $self->_resultset()->search(
|
||||
{
|
||||
%$params,
|
||||
-or => [
|
||||
'authorised_values_branches.branchcode' => undef,
|
||||
'authorised_values_branches.branchcode' => $branchcode,
|
||||
],
|
||||
},
|
||||
{ join => 'authorised_values_branches' }
|
||||
);
|
||||
my $or =
|
||||
$branchcode
|
||||
? {
|
||||
'-or' => [
|
||||
'authorised_values_branches.branchcode' => undef,
|
||||
'authorised_values_branches.branchcode' => $branchcode,
|
||||
]
|
||||
}
|
||||
: {};
|
||||
my $join = $branchcode ? { join => 'authorised_values_branches' } : {};
|
||||
my $rs = $self->_resultset()
|
||||
->search( { %$params, %$or, }, $join );
|
||||
|
||||
my $class = ref($self);
|
||||
return wantarray ? $self->_wrap( $rs->all() ) : $class->new_from_dbic($rs);
|
||||
}
|
||||
|
||||
sub categories {
|
||||
my ( $self ) = @_;
|
||||
my $rs = $self->_resultset->search(
|
||||
undef,
|
||||
{
|
||||
select => ['category'],
|
||||
distinct => 1,
|
||||
order_by => 'category',
|
||||
},
|
||||
);
|
||||
return map $_->get_column('category'), $rs->all;
|
||||
}
|
||||
|
||||
=head3 type
|
||||
|
||||
=cut
|
||||
|
|
|
|||
|
|
@ -17,8 +17,7 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with Koha; if not, see <http://www.gnu.org/licenses>.
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Modern::Perl;
|
||||
|
||||
use CGI qw ( -utf8 );
|
||||
use C4::Auth;
|
||||
|
|
@ -27,31 +26,15 @@ use C4::Context;
|
|||
use C4::Koha;
|
||||
use C4::Output;
|
||||
|
||||
|
||||
sub AuthorizedValuesForCategory {
|
||||
my ($searchstring) = shift or return;
|
||||
my $dbh = C4::Context->dbh;
|
||||
$searchstring=~ s/\'/\\\'/g;
|
||||
my @data=split(' ',$searchstring);
|
||||
my $sth=$dbh->prepare('
|
||||
SELECT id, category, authorised_value, lib, lib_opac, imageurl
|
||||
FROM authorised_values
|
||||
WHERE (category = ?)
|
||||
ORDER BY category, authorised_value
|
||||
');
|
||||
$sth->execute("$data[0]");
|
||||
return $sth->fetchall_arrayref({});
|
||||
}
|
||||
use Koha::AuthorisedValues;
|
||||
|
||||
my $input = new CGI;
|
||||
my $id = $input->param('id');
|
||||
my $op = $input->param('op') || '';
|
||||
our $offset = $input->param('offset') || 0;
|
||||
our $searchfield = $input->param('searchfield');
|
||||
my $op = $input->param('op') || 'list';
|
||||
my $searchfield = $input->param('searchfield');
|
||||
$searchfield = '' unless defined $searchfield;
|
||||
$searchfield =~ s/\,//g;
|
||||
our $script_name = "/cgi-bin/koha/admin/authorised_values.pl";
|
||||
our $dbh = C4::Context->dbh;
|
||||
my @messages;
|
||||
|
||||
our ($template, $borrowernumber, $cookie)= get_template_and_user({
|
||||
template_name => "admin/authorised_values.tt",
|
||||
|
|
@ -62,31 +45,22 @@ our ($template, $borrowernumber, $cookie)= get_template_and_user({
|
|||
debug => 1,
|
||||
});
|
||||
|
||||
$template->param( script_name => $script_name,
|
||||
($op||'else') => 1 );
|
||||
################## ADD_FORM ##################################
|
||||
# called by default. Used to create form to add or modify a record
|
||||
if ($op eq 'add_form') {
|
||||
my $data;
|
||||
my @selected_branches;
|
||||
if ($id) {
|
||||
my $sth=$dbh->prepare("select id, category, authorised_value, lib, lib_opac, imageurl from authorised_values where id=?");
|
||||
$sth->execute($id);
|
||||
$data=$sth->fetchrow_hashref;
|
||||
$sth = $dbh->prepare("SELECT b.branchcode, b.branchname FROM authorised_values_branches AS avb, branches AS b WHERE avb.branchcode = b.branchcode AND avb.av_id = ?;");
|
||||
$sth->execute( $id );
|
||||
while ( my $branch = $sth->fetchrow_hashref ) {
|
||||
push @selected_branches, $branch;
|
||||
}
|
||||
} else {
|
||||
$data->{'category'} = $input->param('category');
|
||||
}
|
||||
my ( $selected_branches, $category, $av );
|
||||
if ($id) {
|
||||
$av = Koha::AuthorisedValues->new->find( $id );
|
||||
$selected_branches = $av->branch_limitations;
|
||||
} else {
|
||||
$category = $input->param('category');
|
||||
}
|
||||
|
||||
my $branches = GetBranches;
|
||||
my @branches_loop;
|
||||
|
||||
foreach my $branchcode ( sort { uc($branches->{$a}->{branchname}) cmp uc($branches->{$b}->{branchname}) } keys %$branches ) {
|
||||
my $selected = ( grep {$_->{branchcode} eq $branchcode} @selected_branches ) ? 1 : 0;
|
||||
my $selected = ( grep {$_->{branchcode} eq $branchcode} @$selected_branches ) ? 1 : 0;
|
||||
push @branches_loop, {
|
||||
branchcode => $branchcode,
|
||||
branchname => $branches->{$branchcode}->{branchname},
|
||||
|
|
@ -96,152 +70,104 @@ if ($op eq 'add_form') {
|
|||
|
||||
if ($id) {
|
||||
$template->param(action_modify => 1);
|
||||
$template->param('heading_modify_authorized_value_p' => 1);
|
||||
} elsif ( ! $data->{'category'} ) {
|
||||
} elsif ( ! $category ) {
|
||||
$template->param(action_add_category => 1);
|
||||
$template->param('heading_add_new_category_p' => 1);
|
||||
} else {
|
||||
$template->param(action_add_value => 1);
|
||||
$template->param('heading_add_authorized_value_p' => 1);
|
||||
}
|
||||
$template->param('use_heading_flags_p' => 1);
|
||||
$template->param( category => $data->{'category'},
|
||||
authorised_value => $data->{'authorised_value'},
|
||||
lib => $data->{'lib'},
|
||||
lib_opac => $data->{'lib_opac'},
|
||||
id => $data->{'id'},
|
||||
imagesets => C4::Koha::getImageSets( checked => $data->{'imageurl'} ),
|
||||
offset => $offset,
|
||||
branches_loop => \@branches_loop,
|
||||
);
|
||||
|
||||
################## ADD_VALIDATE ##################################
|
||||
# called by add_form, used to insert/modify data in DB
|
||||
} elsif ($op eq 'add_validate') {
|
||||
|
||||
if ( $av ) {
|
||||
$template->param(
|
||||
category => $av->category,
|
||||
authorised_value => $av->authorised_value,
|
||||
lib => $av->lib,
|
||||
lib_opac => $av->lib_opac,
|
||||
id => $av->id,
|
||||
imagesets => C4::Koha::getImageSets( checked => $av->imageurl ),
|
||||
);
|
||||
} else {
|
||||
$template->param(
|
||||
category => $category,
|
||||
imagesets => C4::Koha::getImageSets(),
|
||||
);
|
||||
}
|
||||
$template->param(
|
||||
branches_loop => \@branches_loop,
|
||||
);
|
||||
|
||||
} elsif ($op eq 'add') {
|
||||
my $new_authorised_value = $input->param('authorised_value');
|
||||
my $new_category = $input->param('category');
|
||||
my $imageurl = $input->param( 'imageurl' ) || '';
|
||||
$imageurl = '' if $imageurl =~ /removeImage/;
|
||||
$imageurl = '' if $imageurl =~ /removeImage/;
|
||||
my $duplicate_entry = 0;
|
||||
my @branches = $input->param('branches');
|
||||
|
||||
if ( $id ) { # Update
|
||||
my $sth = $dbh->prepare( "SELECT category, authorised_value FROM authorised_values WHERE id = ? ");
|
||||
$sth->execute($id);
|
||||
my ($category, $authorised_value) = $sth->fetchrow_array();
|
||||
if ( $authorised_value ne $new_authorised_value ) {
|
||||
my $sth = $dbh->prepare_cached( "SELECT COUNT(*) FROM authorised_values " .
|
||||
"WHERE category = ? AND authorised_value = ? and id <> ? ");
|
||||
$sth->execute($new_category, $new_authorised_value, $id);
|
||||
($duplicate_entry) = $sth->fetchrow_array();
|
||||
}
|
||||
unless ( $duplicate_entry ) {
|
||||
my $sth=$dbh->prepare( 'UPDATE authorised_values
|
||||
SET category = ?,
|
||||
authorised_value = ?,
|
||||
lib = ?,
|
||||
lib_opac = ?,
|
||||
imageurl = ?
|
||||
WHERE id=?' );
|
||||
my $lib = $input->param('lib');
|
||||
my $lib_opac = $input->param('lib_opac');
|
||||
undef $lib if ($lib eq ""); # to insert NULL instead of a blank string
|
||||
undef $lib_opac if ($lib_opac eq ""); # to insert NULL instead of a blank string
|
||||
$sth->execute($new_category, $new_authorised_value, $lib, $lib_opac, $imageurl, $id);
|
||||
if ( @branches ) {
|
||||
$sth = $dbh->prepare("DELETE FROM authorised_values_branches WHERE av_id = ?");
|
||||
$sth->execute( $id );
|
||||
$sth = $dbh->prepare(
|
||||
"INSERT INTO authorised_values_branches
|
||||
( av_id, branchcode )
|
||||
VALUES ( ?, ? )"
|
||||
);
|
||||
for my $branchcode ( @branches ) {
|
||||
next if not $branchcode;
|
||||
$sth->execute($id, $branchcode);
|
||||
}
|
||||
}
|
||||
$sth->finish;
|
||||
print $input->redirect("/cgi-bin/koha/admin/authorised_values.pl?searchfield=$new_category&offset=$offset");
|
||||
exit;
|
||||
my $av = Koha::AuthorisedValues->new->find( $id );
|
||||
|
||||
$av->lib( $input->param('lib') || undef );
|
||||
$av->lib_opac( $input->param('lib_opac') || undef );
|
||||
$av->category( $new_category );
|
||||
$av->authorised_value( $new_authorised_value );
|
||||
$av->imageurl( $imageurl );
|
||||
eval{
|
||||
$av->store;
|
||||
$av->branch_limitations( \@branches );
|
||||
};
|
||||
if ( $@ ) {
|
||||
push @messages, {type => 'error', code => 'error_on_update' };
|
||||
} else {
|
||||
push @messages, { type => 'message', code => 'success_on_update' };
|
||||
}
|
||||
}
|
||||
else { # Insert
|
||||
my $sth = $dbh->prepare_cached( "SELECT COUNT(*) FROM authorised_values " .
|
||||
"WHERE category = ? AND authorised_value = ? ");
|
||||
$sth->execute($new_category, $new_authorised_value);
|
||||
($duplicate_entry) = $sth->fetchrow_array();
|
||||
unless ( $duplicate_entry ) {
|
||||
my $sth=$dbh->prepare( 'INSERT INTO authorised_values
|
||||
( category, authorised_value, lib, lib_opac, imageurl )
|
||||
values (?, ?, ?, ?, ?)' );
|
||||
my $lib = $input->param('lib');
|
||||
my $lib_opac = $input->param('lib_opac');
|
||||
undef $lib if ($lib eq ""); # to insert NULL instead of a blank string
|
||||
undef $lib_opac if ($lib_opac eq ""); # to insert NULL instead of a blank string
|
||||
$sth->execute( $new_category, $new_authorised_value, $lib, $lib_opac, $imageurl );
|
||||
$id = $dbh->{'mysql_insertid'};
|
||||
if ( @branches ) {
|
||||
$sth = $dbh->prepare(
|
||||
"INSERT INTO authorised_values_branches
|
||||
( av_id, branchcode )
|
||||
VALUES ( ?, ? )"
|
||||
);
|
||||
for my $branchcode ( @branches ) {
|
||||
next if not $branchcode;
|
||||
$sth->execute($id, $branchcode);
|
||||
}
|
||||
}
|
||||
my $category = $input->param('category');
|
||||
print $input->redirect("/cgi-bin/koha/admin/authorised_values.pl?searchfield=$category&offset=$offset");
|
||||
exit;
|
||||
my $av = Koha::AuthorisedValue->new( {
|
||||
category => $new_category,
|
||||
authorised_value => $new_authorised_value,
|
||||
lib => $input->param('lib') || undef,
|
||||
lib_opac => $input->param('lib_opac') || undef,
|
||||
imageurl => $imageurl,
|
||||
} );
|
||||
eval {
|
||||
$av->store;
|
||||
$av->branch_limitations( \@branches );
|
||||
};
|
||||
if ( $@ ) {
|
||||
push @messages, {type => 'error', code => 'error_on_insert' };
|
||||
} else {
|
||||
push @messages, { type => 'message', code => 'success_on_insert' };
|
||||
}
|
||||
}
|
||||
if ( $duplicate_entry ) {
|
||||
$template->param(duplicate_category => $new_category,
|
||||
duplicate_value => $new_authorised_value,
|
||||
else => 1);
|
||||
default_form();
|
||||
}
|
||||
|
||||
################## DELETE_CONFIRM ##################################
|
||||
# called by default form, used to confirm deletion of data in DB
|
||||
} elsif ($op eq 'delete_confirm') {
|
||||
my $sth=$dbh->prepare("select category,authorised_value,lib,lib_opac from authorised_values where id=?");
|
||||
$sth->execute($id);
|
||||
my $data=$sth->fetchrow_hashref;
|
||||
$id = $input->param('id') unless $id;
|
||||
$template->param(searchfield => $searchfield,
|
||||
Tlib => $data->{'lib'},
|
||||
Tlib_opac => $data->{'lib_opac'},
|
||||
Tvalue => $data->{'authorised_value'},
|
||||
id =>$id,
|
||||
);
|
||||
|
||||
# END $OP eq DELETE_CONFIRM
|
||||
################## DELETE_CONFIRMED ##################################
|
||||
# called by delete_confirm, used to effectively confirm deletion of data in DB
|
||||
} elsif ($op eq 'delete_confirmed') {
|
||||
my $id = $input->param('id');
|
||||
my $sth=$dbh->prepare("delete from authorised_values where id=?");
|
||||
$sth->execute($id);
|
||||
print $input->redirect("/cgi-bin/koha/admin/authorised_values.pl?searchfield=$searchfield&offset=$offset");
|
||||
exit;
|
||||
# END $OP eq DELETE_CONFIRMED
|
||||
################## DEFAULT ##################################
|
||||
} else { # DEFAULT
|
||||
default_form();
|
||||
} #---- END $OP eq DEFAULT
|
||||
output_html_with_http_headers $input, $cookie, $template->output;
|
||||
$op = 'list';
|
||||
$searchfield = $new_category;
|
||||
} elsif ($op eq 'delete') {
|
||||
my $av = Koha::AuthorisedValues->new->find( $input->param('id') );
|
||||
my $deleted = eval {$av->delete};
|
||||
if ( $@ or not $deleted ) {
|
||||
push @messages, {type => 'error', code => 'error_on_delete' };
|
||||
} else {
|
||||
push @messages, { type => 'message', code => 'success_on_delete' };
|
||||
}
|
||||
|
||||
exit 0;
|
||||
$op = 'list';
|
||||
$template->param( delete_success => 1 );
|
||||
}
|
||||
|
||||
sub default_form {
|
||||
$template->param(
|
||||
op => $op,
|
||||
searchfield => $searchfield,
|
||||
messages => \@messages,
|
||||
);
|
||||
|
||||
if ( $op eq 'list' ) {
|
||||
# build categories list
|
||||
my $category_list = C4::Koha::GetAuthorisedValueCategories();
|
||||
my @category_list = @{$category_list};
|
||||
my @categories = Koha::AuthorisedValues->new->categories;
|
||||
my @category_list;
|
||||
my %categories; # a hash, to check that some hardcoded categories exist.
|
||||
for my $category ( @category_list ) {
|
||||
for my $category ( @categories ) {
|
||||
push( @category_list, $category );
|
||||
$categories{$category} = 1;
|
||||
}
|
||||
|
||||
|
|
@ -250,42 +176,31 @@ sub default_form {
|
|||
push @category_list, $_ unless $categories{$_};
|
||||
}
|
||||
|
||||
#reorder the list
|
||||
@category_list = sort {lc($a) cmp lc($b)} @category_list;
|
||||
if (!$searchfield) {
|
||||
$searchfield=$category_list[0];
|
||||
}
|
||||
my $tab_list = {
|
||||
values => \@category_list,
|
||||
default => $searchfield,
|
||||
};
|
||||
my ($results) = AuthorizedValuesForCategory($searchfield);
|
||||
my $count = scalar(@$results);
|
||||
my @loop_data = ();
|
||||
# builds value list
|
||||
my $sth = $dbh->prepare("SELECT b.branchcode, b.branchname FROM authorised_values_branches AS avb, branches AS b WHERE avb.branchcode = b.branchcode AND avb.av_id = ?");
|
||||
for (my $i=0; $i < $count; $i++){
|
||||
$sth->execute( $results->[$i]{id} );
|
||||
my @selected_branches;
|
||||
while ( my $branch = $sth->fetchrow_hashref ) {
|
||||
push @selected_branches, $branch;
|
||||
}
|
||||
my %row_data; # get a fresh hash for the row data
|
||||
$row_data{category} = $results->[$i]{'category'};
|
||||
$row_data{authorised_value} = $results->[$i]{'authorised_value'};
|
||||
$row_data{lib} = $results->[$i]{'lib'};
|
||||
$row_data{lib_opac} = $results->[$i]{'lib_opac'};
|
||||
$row_data{imageurl} = getitemtypeimagelocation( 'intranet', $results->[$i]{'imageurl'} );
|
||||
$row_data{edit} = "$script_name?op=add_form&id=".$results->[$i]{'id'}."&offset=$offset";
|
||||
$row_data{delete} = "$script_name?op=delete_confirm&searchfield=$searchfield&id=".$results->[$i]{'id'}."&offset=$offset";
|
||||
$row_data{branches} = \@selected_branches;
|
||||
push(@loop_data, \%row_data);
|
||||
}
|
||||
#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 } );
|
||||
my @loop_data = ();
|
||||
# builds value list
|
||||
for my $av ( @avs_by_category ) {
|
||||
my %row_data; # get a fresh hash for the row data
|
||||
$row_data{category} = $av->category;
|
||||
$row_data{authorised_value} = $av->authorised_value;
|
||||
$row_data{lib} = $av->lib;
|
||||
$row_data{lib_opac} = $av->lib_opac;
|
||||
$row_data{imageurl} = getitemtypeimagelocation( 'intranet', $av->imageurl );
|
||||
$row_data{branches} = $av->branch_limitations;
|
||||
$row_data{id} = $av->id;
|
||||
push(@loop_data, \%row_data);
|
||||
}
|
||||
|
||||
$template->param(
|
||||
loop => \@loop_data,
|
||||
tab_list => $tab_list,
|
||||
category => $searchfield,
|
||||
loop => \@loop_data,
|
||||
category => $searchfield,
|
||||
categories => \@category_list,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
output_html_with_http_headers $input, $cookie, $template->output;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
[% INCLUDE 'doc-head-open.inc' %]
|
||||
<title>Koha › Administration › Authorized values [% IF ( add_form ) %] › [% IF ( action_modify ) %]Modify authorized value[% END %]
|
||||
[% IF ( action_add_value ) %] › New authorized value[% END %]
|
||||
[% IF ( action_add_category ) %] › New category[% END %][% END %]
|
||||
[% IF ( delete_confirm ) %] › Confirm deletion[% END %]
|
||||
[% IF ( else ) %]Authorized values[% END %]</title>
|
||||
<title>Koha › Administration › Authorized values
|
||||
[% IF op == 'add_form' %]
|
||||
[% IF ( action_modify ) %] › Modify authorized value[% END %]
|
||||
[% IF ( action_add_value ) %] › New authorized value[% END %]
|
||||
[% IF ( action_add_category ) %] › New category[% END %]
|
||||
[% END %]
|
||||
</title>
|
||||
[% INCLUDE 'doc-head-close.inc' %]
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
|
||||
|
|
@ -23,11 +25,15 @@
|
|||
$("#branches option:first").attr("selected", "selected");
|
||||
}
|
||||
$('#icons').tabs();
|
||||
|
||||
$("a.delete").click(function(){
|
||||
return confirm(_("Are you sure you want to delete this authorised value?"));
|
||||
});
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
[% IF ( else ) %]
|
||||
[% IF op == 'list' %]
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
$(document).ready(function() {
|
||||
|
|
@ -50,11 +56,10 @@ $(document).ready(function() {
|
|||
<body id="admin_authorised_values" class="admin">
|
||||
[% INCLUDE 'header.inc' %]
|
||||
[% INCLUDE 'cat-search.inc' %]
|
||||
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › [% IF ( add_form ) %] <a href="/cgi-bin/koha/admin/authorised_values.pl">Authorized values</a> › [% IF ( action_modify ) %]Modify authorized value[% END %]
|
||||
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › [% IF op == 'add_form' %] <a href="/cgi-bin/koha/admin/authorised_values.pl">Authorized values</a> › [% IF ( action_modify ) %]Modify authorized value[% END %]
|
||||
[% IF ( action_add_value ) %]New authorized value[% END %]
|
||||
[% IF ( action_add_category ) %]New category[% END %][% END %]
|
||||
[% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/admin/authorised_values.pl">Authorized values</a> › Confirm deletion[% END %]
|
||||
[% IF ( else ) %]Authorized values[% END %]</div>
|
||||
[% IF op == 'list' %]Authorized values[% END %]</div>
|
||||
|
||||
<div id="doc3" class="yui-t2">
|
||||
|
||||
|
|
@ -62,7 +67,7 @@ $(document).ready(function() {
|
|||
<div id="yui-main">
|
||||
<div class="yui-b">
|
||||
|
||||
[% IF ( add_form ) %]
|
||||
[% IF op == 'add_form' %]
|
||||
<h1>
|
||||
[% IF ( action_modify ) %]Modify authorized value[% END %]
|
||||
[% IF ( action_add_value ) %]New authorized value[% END %]
|
||||
|
|
@ -71,9 +76,8 @@ $(document).ready(function() {
|
|||
|
||||
[% IF ( action_modify ) %]<div class="note"><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="[% script_name %]" name="Aform" method="post">
|
||||
<input type="hidden" name="op" value="add_validate" />
|
||||
<input type="hidden" name="offset" value="[% offset %]" />
|
||||
<form action="/cgi-bin/koha/admin/authorised_values.pl" name="Aform" method="post">
|
||||
<input type="hidden" name="op" value="add" />
|
||||
<fieldset class="rows"><ol>
|
||||
<li>
|
||||
[% IF ( action_add_category ) %]<label for="category">Category: </label>
|
||||
|
|
@ -155,32 +159,7 @@ $(document).ready(function() {
|
|||
[% END %]
|
||||
|
||||
|
||||
[% IF ( delete_confirm ) %]
|
||||
<div class="dialog alert">
|
||||
<h3>Confirm deletion</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
<th>Description (OPAC)</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[% searchfield %]</td>
|
||||
<td>[% Tvalue %]</td>
|
||||
<td>[% Tlib %]</td>
|
||||
<td>[% Tlib_opac %]</td>
|
||||
</tr>
|
||||
</table>
|
||||
<form action="[% script_name %]" method="post">
|
||||
<input type="hidden" name="op" value="delete_confirmed" />
|
||||
<input type="hidden" name="id" value="[% id %]" />
|
||||
<input type="hidden" name="searchfield" value="[% searchfield %]" /><fieldset class="action"><input type="submit" value="Yes, delete" class="approve" /></form>
|
||||
<form action="[% script_name %]" method="get"><input type="hidden" name="searchfield" value="[% searchfield %]" /><input type="submit" value="No, do not delete" class="deny" /></form>
|
||||
</div>
|
||||
[% END %]
|
||||
|
||||
[% IF ( else ) %]
|
||||
[% IF op == 'list' %]
|
||||
|
||||
<div id="toolbar" class="btn-toolbar">
|
||||
<a id="addauth" class="btn btn-small" href= "/cgi-bin/koha/admin/authorised_values.pl?op=add_form&category=[% category %]"><i class="icon-plus"> </i> New authorized value for [% category %]</a>
|
||||
|
|
@ -190,22 +169,38 @@ $(document).ready(function() {
|
|||
<h1>Authorized values</h1>
|
||||
<div class="note"><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>
|
||||
|
||||
[% IF ( duplicate_category ) %]
|
||||
<div class="dialog alert">Could not add value "[% duplicate_value %]" for category "[% duplicate_category %]" — value already present.
|
||||
</div>
|
||||
[% FOR m IN messages %]
|
||||
<div class="dialog [% m.type %]">
|
||||
[% SWITCH m.code %]
|
||||
[% CASE 'error_on_update' %]
|
||||
An error occurred when updating this authorised values. Perhaps the value already exists.
|
||||
[% CASE 'error_on_insert' %]
|
||||
An error occurred when inserting this authorised values. Perhaps the value or the category already exists.
|
||||
[% CASE 'error_on_delete' %]
|
||||
An error occurred when deleteing this authorised values. Check the logs.
|
||||
[% CASE 'success_on_update' %]
|
||||
Authorised value updated with success.
|
||||
[% CASE 'success_on_insert' %]
|
||||
Authorised value inserted with success.
|
||||
[% CASE 'success_on_delete' %]
|
||||
Authorised value deleted with success.
|
||||
[% CASE %]
|
||||
[% m.code %]
|
||||
[% END %]
|
||||
</div>
|
||||
[% END %]
|
||||
|
||||
<form action="/cgi-bin/koha/admin/authorised_values.pl" method="post" id="category">
|
||||
<label for="searchfield">Show category: </label>
|
||||
<select name="searchfield" id="searchfield" size="1">
|
||||
[% FOREACH value IN tab_list.values %]
|
||||
[% IF ( value == tab_list.default ) %]
|
||||
<option value="[% value %]" selected="selected">[% value %]</option>
|
||||
<label for="searchfield">Show category: </label>
|
||||
<select name="searchfield" id="searchfield" size="1">
|
||||
[% FOR c IN categories %]
|
||||
[% IF c == searchfield %]
|
||||
<option value="[% c %]" selected="selected">[% c %]</option>
|
||||
[% ELSE %]
|
||||
<option value="[% value %]">[% value %]</option>
|
||||
<option value="[% c %]">[% c %]</option>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</select>
|
||||
<input type="submit" value="Submit" />
|
||||
[% END %]
|
||||
<input type="submit" value="Submit" />
|
||||
</form>
|
||||
[% IF ( category == 'Bsort1' ) %]
|
||||
<p>An authorized value attached to patrons, that can be used for stats purposes</p>
|
||||
|
|
@ -285,8 +280,8 @@ $(document).ready(function() {
|
|||
No limitation
|
||||
[% END %]
|
||||
</td>
|
||||
<td><a href="[% loo.edit %]">Edit</a></td>
|
||||
<td><a href="[% loo.delete %]">Delete</a></td>
|
||||
<td><a href="/cgi-bin/koha/admin/authorised_values.pl?op=add_form&id=[% loo.id %]">Edit</a></td>
|
||||
<td><a class="delete" href="/cgi-bin/koha/admin/authorised_values.pl?op=delete&searchfield=[% searchfield %]&id=[% loo.id %]">Delete</a></td>
|
||||
</tr>
|
||||
[% END %]
|
||||
</tbody></table>[% ELSE %]
|
||||
|
|
@ -294,8 +289,8 @@ $(document).ready(function() {
|
|||
[% END %]
|
||||
|
||||
[% IF ( isprevpage ) %]
|
||||
<form class="inline" action="[% script_name %]" method="post">
|
||||
<input type="hidden" name="offset" value="[% prevpage %]" /><input type="hidden" name="searchfield" value="[% searchfield %]" />
|
||||
<form class="inline" action="/cgi-bin/koha/admin/authorised_values.pl" method="post">
|
||||
<input type="hidden" name="searchfield" value="[% searchfield %]" />
|
||||
<input type="submit" value="<< Previous" /></form>
|
||||
[% END %]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use Modern::Perl;
|
||||
use Test::More; # tests => 25;
|
||||
use Test::More tests => 14;
|
||||
|
||||
use C4::Context;
|
||||
use Koha::AuthorisedValue;
|
||||
|
|
@ -44,9 +44,20 @@ my $av3 = Koha::AuthorisedValue->new(
|
|||
}
|
||||
)->store();
|
||||
|
||||
my $av4 = Koha::AuthorisedValue->new(
|
||||
{
|
||||
category => 'aaav_for_testing',
|
||||
authorised_value => 'value 4',
|
||||
lib => 'display value 4',
|
||||
lib_opac => 'opac display value 4',
|
||||
imageurl => 'image4.png',
|
||||
}
|
||||
)->store();
|
||||
|
||||
ok( $av1->id(), 'AV 1 is inserted' );
|
||||
ok( $av2->id(), 'AV 2 is inserted' );
|
||||
ok( $av3->id(), 'AV 3 is inserted' );
|
||||
ok( $av4->id(), 'AV 4 is inserted' );
|
||||
|
||||
is( $av3->opac_description, 'opac display value 3', 'Got correction opac description if lib_opac is set' );
|
||||
$av3->lib_opac('');
|
||||
|
|
@ -80,4 +91,7 @@ $av1->branch_limitations( [ $branchcode1, $branchcode2 ] );
|
|||
my $limits = $av1->branch_limitations;
|
||||
is( @$limits, 2, 'branch_limitations functions correctly both as setter and getter' );
|
||||
|
||||
done_testing;
|
||||
my @categories = Koha::AuthorisedValues->new->categories;
|
||||
is( @categories, 2, 'There should have 2 categories inserted' );
|
||||
is( $categories[0], $av4->category, 'The first category should be correct (ordered by category name)' );
|
||||
is( $categories[1], $av1->category, 'The second category should be correct (ordered by category name)' );
|
||||
|
|
|
|||
Loading…
Reference in New Issue