From 5b5596a69d2c9cc4a1b71c26afd7af0e6be4fe46 Mon Sep 17 00:00:00 2001 From: Andrew Moore Date: Tue, 29 Apr 2008 18:20:25 -0500 Subject: [PATCH] bug 2047: adding icons to authorized values This patch adds the ability to associate icon images with authorized values. They're not displayed anywhere yet, though. There's also a database update in here. I took version "3.00.00.075", but I can change that later if it gets taken before I commit these patches. DOCUMENTATION CHANGES: When you add or edit authorized values, you can now associate image icons with them. These icons come from the same icon sets that you can have with your itemtypes, such as media type. They don't show up anywhere yet, but that's coming. Keep an eye on http://bugs.koha.org/cgi-bin/bugzilla/show_bug.cgi?id=2047 for more updates. Signed-off-by: Joshua Ferraro --- admin/authorised_values.pl | 76 +++++++++++-------- installer/data/mysql/updatedatabase.pl | 7 ++ .../en/modules/admin/authorised_values.tmpl | 27 +++++++ kohaversion.pl | 2 +- 4 files changed, 79 insertions(+), 33 deletions(-) diff --git a/admin/authorised_values.pl b/admin/authorised_values.pl index 6b76972e0d..42291b8e80 100755 --- a/admin/authorised_values.pl +++ b/admin/authorised_values.pl @@ -21,27 +21,29 @@ use strict; use CGI; use C4::Auth; use C4::Context; +use C4::Koha; use C4::Output; -use C4::Context; - sub AuthorizedValuesForCategory { - my ($searchstring,$type)=@_; - my $dbh = C4::Context->dbh; - $searchstring=~ s/\'/\\\'/g; - my @data=split(' ',$searchstring); - my $count=@data; - my $sth=$dbh->prepare("Select id,category,authorised_value,lib from authorised_values where (category = ?) order by category,authorised_value"); - $sth->execute("$data[0]"); - my @results; - my $cnt=0; - while (my $data=$sth->fetchrow_hashref){ + my ($searchstring,$type)=@_; + my $dbh = C4::Context->dbh; + $searchstring=~ s/\'/\\\'/g; + my @data=split(' ',$searchstring); + my $count=@data; + my $sth=$dbh->prepare( 'Select id, category, authorised_value, lib, imageurl + from authorised_values + where (category = ?) + order by category,authorised_value' ); + $sth->execute("$data[0]"); + my @results; + my $cnt=0; + while (my $data=$sth->fetchrow_hashref){ push(@results,$data); $cnt ++; - } - $sth->finish; - return ($cnt,\@results); + } + $sth->finish; + return ($cnt,\@results); } my $input = new CGI; @@ -76,7 +78,7 @@ if ($op eq 'add_form') { my $data; if ($id) { my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("select id,category,authorised_value,lib from authorised_values where id=?"); + my $sth=$dbh->prepare("select id, category, authorised_value, lib, imageurl from authorised_values where id=?"); $sth->execute($id); $data=$sth->fetchrow_hashref; $sth->finish; @@ -94,11 +96,13 @@ if ($op eq 'add_form') { $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'}, - id => $data->{'id'} - ); + $template->param( category => $data->{'category'}, + authorised_value => $data->{'authorised_value'}, + lib => $data->{'lib'}, + id => $data->{'id'}, + imagesets => C4::Koha::getImageSets( checked => $data->{'imageurl'} ) + ); + ################## ADD_VALIDATE ################################## # called by add_form, used to insert/modify data in DB } elsif ($op eq 'add_validate') { @@ -120,10 +124,15 @@ if ($op eq 'add_form') { warn "**** duplicate_entry = $duplicate_entry"; } unless ( $duplicate_entry ) { - my $sth=$dbh->prepare("UPDATE authorised_values SET category=?,authorised_value=?,lib=? where id=?"); + my $sth=$dbh->prepare( 'UPDATE authorised_values + SET category = ?, + authorised_value = ?, + lib = ?, + imageurl = ? + WHERE id=?' ); my $lib = $input->param('lib'); undef $lib if ($lib eq ""); # to insert NULL instead of a blank string - $sth->execute($new_category, $new_authorised_value, $lib, $id); + $sth->execute($new_category, $new_authorised_value, $lib, $input->param( 'imageurl' ), $id); print "Content-Type: text/html\n\n"; exit; } @@ -135,10 +144,12 @@ if ($op eq 'add_form') { ($duplicate_entry) = $sth->fetchrow_array(); $sth->finish(); unless ( $duplicate_entry ) { - my $sth=$dbh->prepare("INSERT INTO authorised_values (id,category,authorised_value,lib) values (?,?,?,?)"); + my $sth=$dbh->prepare( 'INSERT INTO authorised_values + ( id, category, authorised_value, lib, imageurl ) + values (?, ?, ?, ?, ?)' ); my $lib = $input->param('lib'); undef $lib if ($lib eq ""); # to insert NULL instead of a blank string - $sth->execute($id, $new_category, $new_authorised_value, $lib); + $sth->execute($id, $new_category, $new_authorised_value, $lib, $input->param( 'imageurl' ) ); $sth->finish; print "Content-Type: text/html\n\nparam('category')."\">"; exit; @@ -231,17 +242,18 @@ sub default_form { $toggle=0; } my %row_data; # get a fresh hash for the row data - $row_data{category} = $results->[$i]{'category'}; + $row_data{category} = $results->[$i]{'category'}; $row_data{authorised_value} = $results->[$i]{'authorised_value'}; - $row_data{lib} = $results->[$i]{'lib'}; - $row_data{edit} = "$script_name?op=add_form&id=".$results->[$i]{'id'}; - $row_data{delete} = "$script_name?op=delete_confirm&searchfield=$searchfield&id=".$results->[$i]{'id'}; + $row_data{lib} = $results->[$i]{'lib'}; + $row_data{imageurl} = getitemtypeimagesrc('intranet') . '/' . $results->[$i]{'imageurl'}; + $row_data{edit} = "$script_name?op=add_form&id=".$results->[$i]{'id'}; + $row_data{delete} = "$script_name?op=delete_confirm&searchfield=$searchfield&id=".$results->[$i]{'id'}; push(@loop_data, \%row_data); } - $template->param(loop => \@loop_data, - tab_list => $tab_list, - category => $searchfield); + $template->param( loop => \@loop_data, + tab_list => $tab_list, + category => $searchfield ); if ($offset>0) { my $prevpage = $offset-$pagesize; diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 03f55e8d60..0399292e94 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -1390,6 +1390,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } +$DBversion = "3.00.00.075"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do( q(alter table authorised_values add imageurl varchar(200) default NULL) ); + print "Upgrade to $DBversion done (adding imageurl field to authorised_values table)\n"; + SetVersion ($DBversion); +} + =item DropAllForeignKeys($table) Drop all foreign keys of the table $table diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tmpl index a0818b4746..72a73f0c2a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tmpl @@ -46,6 +46,31 @@ " /> +
  • + +
      + +
    • Icons from collection :
    • + +
    • + +
    • + + +
    + +
    " /> ">Cancel
    @@ -143,6 +168,7 @@ the subfield is not entered through a free field, but though a list of authorize Category Authorized value Description + Icon Edit Delete @@ -151,6 +177,7 @@ the subfield is not entered through a free field, but though a list of authorize + " ">Edit ">Delete diff --git a/kohaversion.pl b/kohaversion.pl index be48725a0c..2c726b4086 100644 --- a/kohaversion.pl +++ b/kohaversion.pl @@ -10,7 +10,7 @@ use strict; sub kohaversion { - our $VERSION = "3.00.00.074"; + our $VERSION = "3.00.00.075"; # version needs to be set this way # so that it can be picked up by Makefile.PL # during install