use CGI;
use C4::Auth;
use C4::Context;
+use C4::Koha;
use C4::Output;
use C4::Interface::CGI::Output;
use C4::Search;
use HTML::Template;
use C4::Context;
+my %tabsysprefs;
+$tabsysprefs{acquisitions}="Acquisitions";
+$tabsysprefs{gist}="Acquisitions";
+$tabsysprefs{authoritysep}="Authorities";
+$tabsysprefs{ISBD}="Catalogue";
+$tabsysprefs{marc}="Catalogue";
+$tabsysprefs{autoBarcode}="Catalogue";
+$tabsysprefs{marcflavour}="Catalogue";
+$tabsysprefs{SubscriptionHistory}="OPAC";
+$tabsysprefs{maxoutstanding}="Circulation";
+$tabsysprefs{printcirculationslips}="Circulation";
+$tabsysprefs{ReturnBeforeExpiry}="Circulation";
+$tabsysprefs{suggestion}="OPAC";
+$tabsysprefs{automembernum}="Members";
+$tabsysprefs{noissuescharge}="Circulation";
+$tabsysprefs{opacthemes}="OPAC";
+$tabsysprefs{opaclanguages}="OPAC";
+$tabsysprefs{LibraryName}="OPAC";
+$tabsysprefs{opacstylesheet}="OPAC";
+$tabsysprefs{BiblioDefaultView}="OPAC";
+$tabsysprefs{opaclargeimage}="OPAC";
+$tabsysprefs{opacsmallimage}="OPAC";
+$tabsysprefs{hidelostitems}="OPAC";
+$tabsysprefs{KohaAdmin}="Admin";
+$tabsysprefs{checkdigit}="Members";
+$tabsysprefs{dateformat}="Admin";
+$tabsysprefs{insecure}="Admin";
+$tabsysprefs{ldapinfos}="Admin";
+$tabsysprefs{ldapserver}="Admin";
+$tabsysprefs{itemcallnumber}="Catalogue";
+$tabsysprefs{maxreserves}="Circulation";
+$tabsysprefs{virtualshelves}="OPAC";
+$tabsysprefs{hide_marc}="Catalogue";
sub StringSearch {
my ($env,$searchstring,$type)=@_;
$searchstring=~ s/\'/\\\'/g;
my @data=split(' ',$searchstring);
my $count=@data;
- my $sth=$dbh->prepare("Select variable,value,explanation,type,options from systempreferences where (variable like ?) order by variable");
- $sth->execute("$data[0]%");
my @results;
my $cnt=0;
- while (my $data=$sth->fetchrow_hashref){
- push(@results,$data);
- $cnt ++;
+ if ($type){
+ foreach my $syspref (sort keys %tabsysprefs){
+ if ($tabsysprefs{$syspref} eq $type){
+ my $sth=$dbh->prepare("Select variable,value,explanation,type,options from systempreferences where (variable like ?) order by variable");
+ $sth->execute($syspref);
+ while (my $data=$sth->fetchrow_hashref){
+ push(@results,$data);
+ $cnt++;
+ }
+ $sth->finish;
+ }
+ }
+ } else {
+ my $strsth ="Select variable,value,explanation,type,options from systempreferences where variable not in (";
+ foreach my $syspref (keys %tabsysprefs){
+ $strsth .= $dbh->quote($syspref).",";
+ }
+ $strsth =~ s/,$/) /;
+ $strsth .= " order by variable";
+ warn $strsth;
+ my $sth=$dbh->prepare($strsth);
+ $sth->execute();
+ while (my $data=$sth->fetchrow_hashref){
+ push(@results,$data);
+ $cnt++;
+ }
+ $sth->finish;
}
- $sth->finish;
return ($cnt,\@results);
}
+
my $input = new CGI;
my $searchfield=$input->param('searchfield');
my $offset=$input->param('offset');
flagsrequired => {parameters => 1},
debug => 1,
});
-my $pagesize=20;
+my $pagesize=100;
my $op = $input->param('op');
$searchfield=~ s/\,//g;
if ($op) {
$template->param(script_name => $script_name,
- $op => 1); # we show only the TMPL_VAR names $op
+ $op => 1,); # we show only the TMPL_VAR names $op
} else {
$template->param(script_name => $script_name,
- else => 1); # we show only the TMPL_VAR names $op
+ else => 1,); # we show only the TMPL_VAR names $op
}
if ($op eq 'update_and_reedit') {
$sth->execute($input->param('variable'));
if ($sth->rows) {
unless (C4::Context->config('demo') eq 1) {
- my $sth=$dbh->prepare("update systempreferences set value=?,explanation=? where variable=?");
- $sth->execute($value, $input->param('explanation'), $input->param('variable'));
+ my $sth=$dbh->prepare("update systempreferences set value=?,explanation=?,type=?,options=? where variable=?");
+ $sth->execute($value, $input->param('explanation'), $input->param('variable'), $input->param('preftype'), $input->param('prefoptions'));
$sth->finish;
}
} else {
unless (C4::Context->config('demo') eq 1) {
- my $sth=$dbh->prepare("insert into systempreferences (variable,value,explanation) values (?,?,?)");
- $sth->execute($input->param('variable'), $input->param('value'), $input->param('explanation'));
+ my $sth=$dbh->prepare("insert into systempreferences (variable,value,explanation) values (?,?,?,?,?)");
+ $sth->execute($input->param('variable'), $input->param('value'), $input->param('explanation'), $input->param('preftype'), $input->param('prefoptions'));
$sth->finish;
}
}
$template->param('type-yesno' => 1);
$data->{'value'}=C4::Context->boolean_preference($data->{'variable'});
($data->{'value'} eq '1') ? ($template->param('value-yes'=>1)) : ($template->param('value-no'=>1));
- } elsif ($data->{'type'} eq 'free') {
- $template->param('type-free' => 1);
- $template->param('fieldlength' => $data->{'options'});
} elsif ($data->{'type'} eq 'Integer') {
$template->param('type-free' => 1);
$template->param('fieldlength' => $data->{'options'});
+ } elsif ($data->{'type'} eq 'Textarea') {
+ $template->param('type-textarea' => 1);
+ $data->{options} =~ /(.*)\|(.*)/;
+ $template->param('cols' => $1, 'rows' => $2);;
} elsif ($data->{'type'} eq 'Float') {
$template->param('type-free' => 1);
$template->param('fieldlength' => $data->{'options'});
} elsif ($data->{'type'} eq 'Themes') {
- $template->param('type-reorderlist' => 1);
+ $template->param('type-choice' => 1);
my $type='';
($data->{'variable'}=~m#opac#i) ? ($type='opac') : ($type='intranet');
@options=();
$counter++;
}
} elsif ($data->{'type'} eq 'Languages') {
- $template->param('type-reorderlist' => 1);
+ $template->param('type-choice' => 1);
my $type='';
@options=();
my $currently_selected_languages;
push @options, { option => $language, counter => $counter };
$counter++;
}
+ } else {
+ $template->param('type-free' => 1);
+ $template->param('fieldlength' => $data->{'options'}>0?$data->{'options'}:60);
}
$template->param(explanation => $data->{'explanation'},
value => $data->{'value'},
type => $data->{'type'},
options => \@options,
+ preftype => $data->{'type'},
+ prefoptions => $data->{'options'},
searchfield => $searchfield);
################## ADD_VALIDATE ##################################
$sth->execute($input->param('variable'));
if ($sth->rows) {
unless (C4::Context->config('demo') eq 1) {
- my $sth=$dbh->prepare("update systempreferences set value=?,explanation=? where variable=?");
- $sth->execute($input->param('value'), $input->param('explanation'), $input->param('variable'));
+ my $sth=$dbh->prepare("update systempreferences set value=?,explanation=?,type=?,options=? where variable=?");
+ $sth->execute($input->param('value'), $input->param('explanation'), $input->param('preftype'), $input->param('prefoptions'), $input->param('variable'));
$sth->finish;
}
} else {
unless (C4::Context->config('demo') eq 1) {
- my $sth=$dbh->prepare("insert into systempreferences (variable,value,explanation) values (?,?,?)");
- $sth->execute($input->param('variable'), $input->param('value'), $input->param('explanation'));
+ my $sth=$dbh->prepare("insert into systempreferences (variable,value,explanation,type,options) values (?,?,?,?,?)");
+ $sth->execute($input->param('variable'), $input->param('value'), $input->param('explanation'), $input->param('preftype'), $input->param('prefoptions'));
$sth->finish;
}
}
$sth->finish;
+ print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=systempreferences.pl?tab=".$tabsysprefs{$input->param('variable')}."\"></html>";
+ exit;
################## DELETE_CONFIRM ##################################
# called by default form, used to confirm deletion of data in DB
} elsif ($op eq 'delete_confirm') {
# END $OP eq DELETE_CONFIRMED
################## DEFAULT ##################################
} else { # DEFAULT
- if ($searchfield ne '') {
- $template->param(searchfield => "<p>You Searched for <strong>$searchfield</strong></p>");
- }
+ #Adding tab management for system preferences
+ my $tab=$input->param('tab');
+
my $env;
- my ($count,$results)=StringSearch($env,$searchfield,'web');
- my $toggle="white";
+ my ($count,$results)=StringSearch($env,$searchfield,$tab);
+ my $toggle=0;
my @loop_data = ();
for (my $i=$offset; $i < ($offset+$pagesize<$count?$offset+$pagesize:$count); $i++){
- if ($toggle eq 'white'){
- $toggle="#ffffcc";
+ if ($toggle eq 0){
+ $toggle=1;
} else {
- $toggle="white";
+ $toggle=0;
}
my %row_data; # get a fresh hash for the row data
$row_data{variable} = $results->[$i]{'variable'};
$row_data{value} = $results->[$i]{'value'};
$row_data{explanation} = $results->[$i]{'explanation'};
+ $row_data{toggle} = $toggle;
$row_data{edit} = "$script_name?op=add_form&searchfield=".$results->[$i]{'variable'};
$row_data{delete} = "$script_name?op=delete_confirm&searchfield=".$results->[$i]{'variable'};
push(@loop_data, \%row_data);
}
- $template->param(loop => \@loop_data);
+ $tab=($tab?$tab:"Others");
+ $template->param(loop => \@loop_data, $tab => 1);
if ($offset>0) {
my $prevpage = $offset-$pagesize;
$template->param("<a href=$script_name?offset=".$prevpage.'<< Prev</a>');