Browse Source

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 <jmf@liblime.com>
3.0.x
Andrew Moore 16 years ago
committed by Joshua Ferraro
parent
commit
5b5596a69d
  1. 76
      admin/authorised_values.pl
  2. 7
      installer/data/mysql/updatedatabase.pl
  3. 27
      koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tmpl
  4. 2
      kohaversion.pl

76
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<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=authorised_values.pl?searchfield=".$new_category."\"></html>";
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\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=authorised_values.pl?searchfield=".$input->param('category')."\"></html>";
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&amp;id=".$results->[$i]{'id'};
$row_data{delete} = "$script_name?op=delete_confirm&amp;searchfield=$searchfield&amp;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&amp;id=".$results->[$i]{'id'};
$row_data{delete} = "$script_name?op=delete_confirm&amp;searchfield=$searchfield&amp;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;

7
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

27
koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tmpl

@ -46,6 +46,31 @@
<label for="lib">Description</label>
<input type="text" name="lib" id="lib" value="<!-- TMPL_VAR name="lib" -->" />
</li>
<li>
<label for="lib">Icon</label>
<ul>
<!-- TMPL_LOOP NAME="imagesets" -->
<li>Icons from collection <b><!-- TMPL_VAR name="imagesetname" --></b>:</li>
<!-- TMPL_LOOP NAME="images" -->
<li style="float: none; display: inline; clear : none; width: auto;">
<label> <!-- TMPL_IF NAME="StaffImageUrl" -->
<img src="<!-- TMPL_VAR name="StaffImageUrl" -->" alt="<!-- TMPL_VAR name="StaffImageUrl" -->" title="<!-- TMPL_VAR name="StaffImageUrl" -->" />
<!-- TMPL_ELSE -->
<!-- /TMPL_IF -->
<!-- TMPL_IF name="checked" -->
<input type="radio" name="imageurl" value="<!-- TMPL_VAR name="KohaImage" -->" checked="checked" />
<!-- TMPL_ELSE -->
<!-- TMPL_IF NAME="KohaImage" --> <!-- to delete the radio button if there is no image after -->
<input type="radio" name="imageurl" value="<!-- TMPL_VAR name="KohaImage" -->" />
<!-- /TMPL_IF -->
<!-- /TMPL_IF -->
</label>
</li>
<!-- /TMPL_LOOP -->
<!-- /TMPL_LOOP -->
</ul>
</ol></fieldset>
<fieldset class="action"> <input type="hidden" name="id" value="<!-- TMPL_VAR name="id" -->" />
<input type="submit" value="Save" /> <a class="cancel" href="/cgi-bin/koha/admin/authorised_values.pl?searchfield=<!-- TMPL_VAR NAME="category" -->">Cancel</a></fieldset>
@ -143,6 +168,7 @@ the subfield is not entered through a free field, but though a list of authorize
<th>Category</th>
<th>Authorized value</th>
<th>Description</th>
<th>Icon</th>
<th>Edit</th>
<th>Delete</th>
</tr>
@ -151,6 +177,7 @@ the subfield is not entered through a free field, but though a list of authorize
<td><!-- TMPL_VAR name="category" --></td>
<td><!-- TMPL_VAR name="authorised_value" --></td>
<td><!-- TMPL_VAR name="lib" --></td>
<td><img src="<!-- TMPL_VAR name="imageurl" -->"</img></td>
<td><a href="<!-- TMPL_VAR name="edit" -->">Edit</a></td>
<td><a href="<!-- TMPL_VAR name="delete" -->">Delete</a></td>
</tr>

2
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

Loading…
Cancel
Save