#
# This file is part of Koha.
#
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
#
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# 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; FIXME - Bug 2505
use C4::Output;
use C4::Auth;
-use CGI;
+use CGI qw ( -utf8 );
use C4::Context;
+use Koha::Authority::Types;
+
+use List::MoreUtils qw( uniq );
sub string_search {
my ( $searchstring, $frameworkcode ) = @_;
$u++;
}
$sth->finish;
- $dbh->disconnect;
return ( $cnt, \@results );
}
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
{
- template_name => "admin/marc_subfields_structure.tmpl",
+ template_name => "admin/marc_subfields_structure.tt",
query => $input,
type => "intranet",
authnotrequired => 0,
- flagsrequired => { parameters => 1 },
+ flagsrequired => { parameters => 'parameters_remaining_permissions' },
debug => 1,
}
);
+my $cache = Koha::Cache->get_instance();
my $op = $input->param('op');
$tagfield =~ s/\,//g;
push( @authorised_values, "cn_source" );
# build thesaurus categories list
- $sth2->finish;
- $sth2 = $dbh->prepare("select authtypecode from auth_types");
- $sth2->execute;
- my @authtypes;
- push @authtypes, "";
- while ( ( my $authtypecode ) = $sth2->fetchrow_array ) {
- push @authtypes, $authtypecode;
- }
+ my @authtypes = uniq( "", map { $_->authtypecode } Koha::Authority::Types->search );
# build value_builder list
my @value_builder = ('');
# 2 cases here : on CVS install, $cgidir does not need a /cgi-bin
# on a standard install, /cgi-bin need to be added.
# test one, then the other
- my $cgidir = C4::Context->intranetdir . "/cgi-bin";
+ my $cgidir = C4::Context->config('intranetdir') . "/cgi-bin";
unless ( opendir( DIR, "$cgidir/cataloguing/value_builder" ) ) {
- $cgidir = C4::Context->intranetdir;
+ $cgidir = C4::Context->config('intranetdir');
opendir( DIR, "$cgidir/cataloguing/value_builder" )
|| die "can't opendir $cgidir/value_builder: $!";
}
while ( my $line = readdir(DIR) ) {
- if ( $line =~ /\.pl$/ ) {
+ if ( $line =~ /\.pl$/ &&
+ $line !~ /EXAMPLE\.pl$/ ) { # documentation purposes
push( @value_builder, $line );
}
}
my %row_data; # get a fresh hash for the row data
$row_data{defaultvalue} = $data->{defaultvalue};
$row_data{maxlength} = $data->{maxlength};
- $row_data{tab} = CGI::scrolling_list(
- -name => 'tab',
- -id => "tab$i",
- -values =>
- [ '-1', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10' ],
- -labels => {
- '-1' => 'ignore',
- '0' => '0',
- '1' => '1',
- '2' => '2',
- '3' => '3',
- '4' => '4',
- '5' => '5',
- '6' => '6',
- '7' => '7',
- '8' => '8',
- '9' => '9',
- '10' => 'items (10)',
- },
- -default => $data->{'tab'},
- -size => 1,
- -multiple => 0,
- );
+ $row_data{tab} = {
+ id => "tab$i",
+ default => $data->{'tab'},
+ };
+
$row_data{tagsubfield} =
$data->{'tagsubfield'}
. "<input type=\"hidden\" name=\"tagsubfield\" value=\""
$row_data{liblibrarian} = CGI::escapeHTML( $data->{'liblibrarian'} );
$row_data{libopac} = CGI::escapeHTML( $data->{'libopac'} );
$row_data{seealso} = CGI::escapeHTML( $data->{'seealso'} );
- $row_data{kohafield} = CGI::scrolling_list(
- -name => "kohafield",
- -id => "kohafield$i",
- -values => \@kohafields,
- -default => "$data->{'kohafield'}",
- -size => 1,
- -multiple => 0,
- );
- $row_data{authorised_value} = CGI::scrolling_list(
- -name => "authorised_value",
- -id => "authorised_value$i",
- -values => \@authorised_values,
- -default => $data->{'authorised_value'},
- -size => 1,
- -multiple => 0,
- );
- $row_data{value_builder} = CGI::scrolling_list(
- -name => "value_builder",
- -id => "value_builder$i",
- -values => \@value_builder,
- -default => $data->{'value_builder'},
- -size => 1,
- -multiple => 0,
- );
- $row_data{authtypes} = CGI::scrolling_list(
- -name => "authtypecode",
- -id => "authtypecode$i",
- -values => \@authtypes,
- -default => $data->{'authtypecode'},
- -size => 1,
- -multiple => 0,
- );
+ $row_data{kohafield} = {
+ id => "kohafield$i",
+ values => \@kohafields,
+ default => "$data->{'kohafield'}",
+ };
+ $row_data{authorised_value} = {
+ id => "authorised_value$i",
+ values => \@authorised_values,
+ default => $data->{'authorised_value'},
+ };
+ $row_data{value_builder} = {
+ id => "value_builder$i",
+ values => \@value_builder,
+ default => $data->{'value_builder'},
+ };
+ $row_data{authtypes} = {
+ id => "authtypecode$i",
+ values => \@authtypes,
+ default => $data->{'authtypecode'},
+ };
$row_data{repeatable} = CGI::checkbox(
-name => "repeatable$i",
-checked => $data->{'repeatable'} ? 'checked' : '',
my %row_data; # get a fresh hash for the row data
$row_data{'new_subfield'} = 1;
$row_data{'subfieldcode'} = '';
+ $row_data{'maxlength'} = 9999;
- $row_data{tab} = CGI::scrolling_list(
- -name => 'tab',
- -id => "tab$i",
- -values =>
- [ '-1', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10' ],
- -labels => {
- '-1' => 'ignore',
- '0' => '0',
- '1' => '1',
- '2' => '2',
- '3' => '3',
- '4' => '4',
- '5' => '5',
- '6' => '6',
- '7' => '7',
- '8' => '8',
- '9' => '9',
- '10' => 'items (10)',
- },
- -default => "",
- -size => 1,
- -multiple => 0,
- );
+ $row_data{tab} = {
+ id => "tab$i",
+ default => $data->{'tab'},
+ };
$row_data{tagsubfield} =
"<input type=\"text\" name=\"tagsubfield\" value=\""
. $data->{'tagsubfield'}
$row_data{liblibrarian} = "";
$row_data{libopac} = "";
$row_data{seealso} = "";
- $row_data{kohafield} = CGI::scrolling_list(
- -name => 'kohafield',
- -id => "kohafield$i",
- -values => \@kohafields,
- -default => "",
- -size => 1,
- -multiple => 0,
- );
+ $row_data{kohafield} = {
+ id => "kohafield$i",
+ values => \@kohafields,
+ default => "$data->{'kohafield'}",
+ };
$row_data{hidden} = "";
$row_data{repeatable} = CGI::checkbox(
-name => "repeatable$i",
-value => 1,
-label => ''
);
- $row_data{value_builder} = CGI::scrolling_list(
- -name => "value_builder",
- -id => "value_builder$i",
- -values => \@value_builder,
- -default => $data->{'value_builder'},
- -size => 1,
- -multiple => 0,
- );
- $row_data{authorised_value} = CGI::scrolling_list(
- -name => "authorised_value",
- -id => "authorised_value$i",
- -values => \@authorised_values,
- -size => 1,
- -multiple => 0,
- );
- $row_data{authtypes} = CGI::scrolling_list(
- -name => "authtypecode",
- -id => "authtypecode$i",
- -values => \@authtypes,
- -size => 1,
- -multiple => 0,
- );
+ $row_data{value_builder} = {
+ id => "value_builder$i",
+ values => \@value_builder,
+ default => $data->{'value_builder'},
+ };
+ $row_data{authorised_value} = {
+ id => "authorised_value$i",
+ values => \@authorised_values,
+ default => $data->{'authorised_value'},
+ };
+ $row_data{authtypes} = {
+ id => "authtypecode$i",
+ values => \@authtypes,
+ default => $data->{'authtypecode'},
+ };
$row_data{link} = CGI::escapeHTML( $data->{'link'} );
$row_data{row} = $i;
push( @loop_data, \%row_data );
my $isurl = $input->param("isurl$i") ? 1 : 0;
my $link = $link[$i];
my $defaultvalue = $defaultvalue[$i];
- my $maxlength = $maxlength[$i];
+ my $maxlength = $maxlength[$i] ? $maxlength[$i] : 9999;
if (defined($liblibrarian) && $liblibrarian ne "") {
unless ( C4::Context->config('demo') eq 1 ) {
}
$sth_insert->finish;
$sth_update->finish;
- print
-"Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=marc_subfields_structure.pl?tagfield=$tagfield&frameworkcode=$frameworkcode\"></html>";
+ $cache->clear_from_cache("MarcStructure-0-$frameworkcode");
+ $cache->clear_from_cache("MarcStructure-1-$frameworkcode");
+
+ print $input->redirect("/cgi-bin/koha/admin/marc_subfields_structure.pl?tagfield=$tagfield&frameworkcode=$frameworkcode");
exit;
# END $OP eq ADD_VALIDATE
$sth->execute( $tagfield, $tagsubfield, $frameworkcode );
$sth->finish;
}
- print
-"Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=marc_subfields_structure.pl?tagfield=$tagfield&frameworkcode=$frameworkcode\"></html>";
+ $cache->clear_from_cache("MarcStructure-0-$frameworkcode");
+ $cache->clear_from_cache("MarcStructure-1-$frameworkcode");
+ print $input->redirect("/cgi-bin/koha/admin/marc_subfields_structure.pl?tagfield=$tagfield&frameworkcode=$frameworkcode");
exit;
- $template->param( tagfield => $tagfield );
# END $OP eq DELETE_CONFIRMED
################## DEFAULT ##################################