From 6d03b7d4025a502f4bfeba84eb7f5005a4e6beac Mon Sep 17 00:00:00 2001
From: Alex Buckley
Date: Thu, 9 Feb 2017 17:32:29 +0100
Subject: [PATCH] Bug 18346 - Implemented basic and advanced setup modes for
step 3 of the web installer
1. Drop and recreate your database
2. Clear memcached
3. Run through the web installer up to the start of step 3
4. Notice that the 'Choose your setup' page there are only 2
radiobutton options on the page: UNIMARC and MARC21 and neither are
selected by default
5. Select MARC21 and click 'Next'
6. The 'Select default settings' page appears. Notice that the top
checkboxes under the 'Mandatory' headings are selected by default (but can
be unselected and checkboxes under the 'optional' header are not
selected by default and can be selected
7. Do not select any checkboxes, leave the default checkboxes selected
and click the 'Import' button
8. The 'Selected data added' page appears click 'Finish' button
9. Apply patches attached to this bug report, also apply bug 18039
10. Repeat steps 1, and 3
11. Notice the 'Choose your setup' page has 4 radiobutton options, the
two new options are 'Basic' and 'Advanced', with 'Basic' selected by
default. Also notice that 'MARC21' radiobutton is selected by default.
12. Click 'Next' button
13. Notice on the 'Selecting default settings' page instead of default
selected radiobuttons under the header of 'Mandatory' there are bulleted
descriptions of files under the header 'Default'. As shown in the
screenshots in the '9.1.1. MARC21 Basic setup' section of this document: https://koha-community.org/manual/installation/html/web_installer_marc21_setup.html
Also notice as you scroll down there are unselected radiobuttons under
the 'Optional' heading
14. Do not select anything and click the 'Import' button
15. The 'Selected data added' page appears click the 'Finish' button
16. Repeat steps 1,2,3
17. Select 'Advanced' and 'MARC21' on 'Choose your setup' page
18. Notice that instead of bulletpoints there are now unselected
radiobuttons under the 'default' heading on the 'Select default
settings' page, and no radiobutton on this page is selected. i.e. the
page should look similar to the screenshot under the '9.1.2. MARC21
Advanced setup' here: https://koha-community.org/manual/installation/html/web_installer_marc21_setup.html
19. Manually select all radiobuttons under the 'Default' heading and
select 'Import' button
---
.../data/mysql/en/optional/patron_categories.sql | 2 +-
.../data/mysql/en/optional/patron_categories.txt | 6 +-
.../data/mysql/en/optional/sample_holidays.txt | 5 +-
.../data/mysql/en/optional/sample_libraries.txt | 2 +-
.../mysql/en/optional/sample_z3950_servers.txt | 1 +
installer/install.pl | 357 ++++++++++++---------
.../intranet-tmpl/prog/en/includes/calendar.inc | 2 +-
.../prog/en/includes/installer-doc-head-close.inc | 15 +
.../prog/en/modules/admin/categories.tt | 2 +-
.../prog/en/modules/installer/step3.tt | 299 ++++++++++-------
.../intranet-tmpl/prog/en/modules/intranet-main.tt | 2 -
xt/sample_notices.t | 2 +-
12 files changed, 413 insertions(+), 282 deletions(-)
diff --git a/installer/data/mysql/en/optional/patron_categories.sql b/installer/data/mysql/en/optional/patron_categories.sql
index 56439b4..57a00da 100644
--- a/installer/data/mysql/en/optional/patron_categories.sql
+++ b/installer/data/mysql/en/optional/patron_categories.sql
@@ -1,4 +1,4 @@
-INSERT INTO `categories` (`categorycode`, `description`, `enrolmentperiod`, `upperagelimit`, `dateofbirthrequired`, `finetype`, `bulk`, `enrolmentfee`, `overduenoticerequired`, `issuelimit`, `reservefee`, `category_type`) VALUES
+INSERT INTO `categories` (`categorycode`, `description`, `enrolmentperiod`, `upperagelimit`, `dateofbirthrequired`, `finetype`, `bulk`, `enrolmentfee`, `overduenoticerequired`, `issuelimit`, `reservefee`, `category_type`) VALUES
-- Adult Patrons
('PT','Patron',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','A'),
diff --git a/installer/data/mysql/en/optional/patron_categories.txt b/installer/data/mysql/en/optional/patron_categories.txt
index b94941a..45102b3 100644
--- a/installer/data/mysql/en/optional/patron_categories.txt
+++ b/installer/data/mysql/en/optional/patron_categories.txt
@@ -1,6 +1,4 @@
-Sample patron types and categories:
-
-Type: Categories:
+Sample patron types and categories. Types are currently hardcoded but you can manage categories after installation from the administration module.
Adult patron - default patron type
PT - Patron
@@ -21,5 +19,3 @@ Professional - a member of an organization (organization is guarantor)
T - Teacher
S - Staff
B - Board
-
-Types are currently hardcoded, but you can add/edit/delete categories after installation from the administration module.
diff --git a/installer/data/mysql/en/optional/sample_holidays.txt b/installer/data/mysql/en/optional/sample_holidays.txt
index a2d2de9..2f478e1 100644
--- a/installer/data/mysql/en/optional/sample_holidays.txt
+++ b/installer/data/mysql/en/optional/sample_holidays.txt
@@ -1,4 +1 @@
-Sample holidays:
- Sundays
- Christmas
- New Year's
+Sample holidays: Sunday, Christmas, New Year's
diff --git a/installer/data/mysql/en/optional/sample_libraries.txt b/installer/data/mysql/en/optional/sample_libraries.txt
index cbaf05c..2a1bd9a 100644
--- a/installer/data/mysql/en/optional/sample_libraries.txt
+++ b/installer/data/mysql/en/optional/sample_libraries.txt
@@ -1 +1 @@
-A few sample libraries.
+Sample libraries.
diff --git a/installer/data/mysql/en/optional/sample_z3950_servers.txt b/installer/data/mysql/en/optional/sample_z3950_servers.txt
index a0bab98..b7a48c0 100644
--- a/installer/data/mysql/en/optional/sample_z3950_servers.txt
+++ b/installer/data/mysql/en/optional/sample_z3950_servers.txt
@@ -1,3 +1,4 @@
+Allow access to the following servers to search and download record information:
LIBRARY OF CONGRESS
LIBRARY OF CONGRESS NAMES (authority records)
LIBRARY OF CONGRESS SUBJECTS (authority records)
diff --git a/installer/install.pl b/installer/install.pl
index 508496a..7745f94 100755
--- a/installer/install.pl
+++ b/installer/install.pl
@@ -1,5 +1,22 @@
#!/usr/bin/perl
+# This file is part of Koha.
+#
+# Copyright (C) 2017 Catalyst IT
+#
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see .
+
use strict;
use warnings;
use diagnostics;
@@ -40,10 +57,11 @@ if ( defined($language) ) {
my $installer = C4::Installer->new();
my %info;
$info{'dbname'} = C4::Context->config("database");
-$info{'dbms'} =
- ( C4::Context->config("db_scheme")
+$info{'dbms'} = (
+ C4::Context->config("db_scheme")
? C4::Context->config("db_scheme")
- : "mysql" );
+ : "mysql"
+);
$info{'hostname'} = C4::Context->config("hostname");
$info{'port'} = C4::Context->config("port");
$info{'user'} = C4::Context->config("user");
@@ -65,12 +83,14 @@ my $dbh = DBI->connect(
);
if ( $step && $step == 1 ) {
+
#First Step (for both fresh installations and upgrades)
#Checking ALL perl Modules and services needed are installed.
#Whenever there is an error, adding a report to the page
my $op = $query->param('op') || 'noop';
- $template->param( language => 1 );
- $template->param( 'checkmodule' => 1 ); # we start with the assumption that there are no problems and set this to 0 if there are
+ $template->param( language => 1 );
+ $template->param( 'checkmodule' => 1 )
+ ; # we start with the assumption that there are no problems and set this to 0 if there are
unless ( $] >= 5.010000 ) { # Bug 7375
$template->param( problems => 1, perlversion => 1, checkmodule => 0 );
@@ -80,11 +100,11 @@ if ( $step && $step == 1 ) {
$perl_modules->versions_info;
my $modules = $perl_modules->get_attr('missing_pm');
- if (scalar(@$modules)) {
- my @components = ();
+ if ( scalar(@$modules) ) {
+ my @components = ();
my $checkmodule = 1;
foreach (@$modules) {
- my ($module, $stats) = each %$_;
+ my ( $module, $stats ) = each %$_;
$checkmodule = 0 if $stats->{'required'};
push(
@components,
@@ -96,14 +116,18 @@ if ( $step && $step == 1 ) {
}
);
}
- @components = sort {$a->{'name'} cmp $b->{'name'}} @components;
- $template->param( missing_modules => \@components, checkmodule => $checkmodule, op => $op );
+ @components = sort { $a->{'name'} cmp $b->{'name'} } @components;
+ $template->param(
+ missing_modules => \@components,
+ checkmodule => $checkmodule,
+ op => $op
+ );
}
}
elsif ( $step && $step == 2 ) {
-#
-#STEP 2 Check Database connection and access
-#
+
+ #STEP 2 Check Database connection and access
+
$template->param(%info);
my $checkdb = $query->param("checkdb");
$template->param( 'dbconnection' => $checkdb );
@@ -128,7 +152,9 @@ elsif ( $step && $step == 2 ) {
my $grantaccess;
while ( my ($line) = $rq->fetchrow ) {
my $dbname = $info{dbname};
- if ( $line =~ m/^GRANT (.*?) ON `$dbname`\.\*/ || index( $line, '*.*' ) > 0 ) {
+ if ( $line =~ m/^GRANT (.*?) ON `$dbname`\.\*/
+ || index( $line, '*.*' ) > 0 )
+ {
$grantaccess = 1
if (
index( $line, 'ALL PRIVILEGES' ) > 0
@@ -163,23 +189,28 @@ elsif ( $step && $step == 2 ) {
}
}
$template->param( "checkgrantaccess" => $grantaccess );
- } # End mysql connect check...
-
- elsif ( $info{dbms} eq "Pg" ) {
- # Check if database has been created...
- my $rv = $dbh->do( "SELECT * FROM pg_catalog.pg_database WHERE datname = \'$info{dbname}\';" );
- if ( $rv == 1 ) {
- $template->param( 'checkdatabasecreated' => 1 );
- }
-
- # Check if user has all necessary grants on this database...
- my $rq = $dbh->do( "SELECT u.usesuper
- FROM pg_catalog.pg_user as u
- WHERE u.usename = \'$info{user}\';" );
- if ( $rq == 1 ) {
- $template->param( "checkgrantaccess" => 1 );
- }
- } # End Pg connect check...
+ } # End mysql connect check...
+
+ elsif ( $info{dbms} eq "Pg" ) {
+
+ # Check if database has been created...
+ my $rv = $dbh->do(
+"SELECT * FROM pg_catalog.pg_database WHERE datname = \'$info{dbname}\';"
+ );
+ if ( $rv == 1 ) {
+ $template->param( 'checkdatabasecreated' => 1 );
+ }
+
+ # Check if user has all necessary grants on this database...
+ my $rq = $dbh->do(
+ "SELECT u.usesuper
+ FROM pg_catalog.pg_user as u
+ WHERE u.usename = \'$info{user}\';"
+ );
+ if ( $rq == 1 ) {
+ $template->param( "checkgrantaccess" => 1 );
+ }
+ } # End Pg connect check...
}
else {
$template->param( "error" => DBI::err, "message" => DBI::errstr );
@@ -187,11 +218,9 @@ elsif ( $step && $step == 2 ) {
}
}
elsif ( $step && $step == 3 ) {
-#
-#
-# STEP 3 : database setup
-#
-#
+
+ # STEP 3 : database setup
+
my $op = $query->param('op');
if ( $op && $op eq 'finished' ) {
#
@@ -203,18 +232,20 @@ elsif ( $step && $step == 3 ) {
elsif ( $op && $op eq 'finish' ) {
$installer->set_version_syspref();
- # Installation is finished.
- # We just deny anybody access to install
- # And we redirect people to mainpage.
- # The installer will have to relogin since we do not pass cookie to redirection.
+# Installation is finished.
+# We just deny anybody access to install
+# And we redirect people to mainpage.
+# The installer will have to relogin since we do not pass cookie to redirection.
$template->param( "$op" => 1 );
}
+
elsif ( $op && $op eq 'addframeworks' ) {
- #
- # 1ST install, 3rd sub-step : insert the SQL files the user has selected
- #
- my ($fwk_language, $list) = $installer->load_sql_in_order($all_languages, $query->param('framework'));
+ # 1ST install, 3rd sub-step : insert the SQL files the user has selected
+
+ my ( $fwk_language, $list ) =
+ $installer->load_sql_in_order( $all_languages,
+ $query->param('framework') );
$template->param(
"fwklanguage" => $fwk_language,
"list" => $list
@@ -224,42 +255,50 @@ elsif ( $step && $step == 3 ) {
$template->param( "$op" => 1 );
}
elsif ( $op && $op eq 'selectframeworks' ) {
- #
- #
- # 1ST install, 2nd sub-step : show the user the sql datas he can insert in the database.
- #
- #
- # (note that the term "selectframeworks is not correct. The user can select various files, not only frameworks)
-
- #Framework Selection
- #sql data for import are supposed to be located in installer/data//
- # Where is en|fr or any international abbreviation (provided language hash is updated... This will be a problem with internationlisation.)
- # Where is a category of requirement : required, recommended optional
- # level should contain :
- # SQL File for import With a readable name.
- # txt File that explains what this SQL File is meant for.
- # Could be VERY useful to have A Big file for a kind of library.
- # But could also be useful to have some Authorised values data set prepared here.
- # Framework Selection is achieved through checking boxes.
+#
+#
+# 1ST install, 2nd sub-step : show the user the sql datas he can insert in the database.
+#
+#
+# (note that the term "selectframeworks is not correct. The user can select various files, not only frameworks)
+
+#Framework Selection
+#sql data for import are supposed to be located in installer/data//
+# Where is en|fr or any international abbreviation (provided language hash is updated... This will be a problem with internationlisation.)
+# Where is a category of requirement : required, recommended optional
+# level should contain :
+# SQL File for import With a readable name.
+# txt File that explains what this SQL File is meant for.
+# Could be VERY useful to have A Big file for a kind of library.
+# But could also be useful to have some Authorised values data set prepared here.
+# Framework Selection is achieved through checking boxes.
my $langchoice = $query->param('fwklanguage');
$langchoice = $query->cookie('KohaOpacLanguage') unless ($langchoice);
- $langchoice =~ s/[^a-zA-Z_-]*//g;
+ $langchoice =~ s/[^a-zA-Z_-]*//g;
my $marcflavour = $query->param('marcflavour');
- if ($marcflavour){
+ if ($marcflavour) {
$installer->set_marcflavour_syspref($marcflavour);
- };
- $marcflavour = C4::Context->preference('marcflavour') unless ($marcflavour);
+ }
+ $marcflavour = C4::Context->preference('marcflavour')
+ unless ($marcflavour);
+
#Insert into database the selected marcflavour
undef $/;
- my ($marc_defaulted_to_en, $fwklist) = $installer->marc_framework_sql_list($langchoice, $marcflavour);
- $template->param('en_marc_frameworks' => $marc_defaulted_to_en);
- $template->param( "frameworksloop" => $fwklist );
- $template->param( "marcflavour" => ucfirst($marcflavour));
-
- my ($sample_defaulted_to_en, $levellist) = $installer->sample_data_sql_list($langchoice);
- $template->param( "en_sample_data" => $sample_defaulted_to_en);
- $template->param( "levelloop" => $levellist );
- $template->param( "$op" => 1 );
+ my ( $marc_defaulted_to_en, $fwklist ) =
+ $installer->marc_framework_sql_list( $langchoice, $marcflavour );
+ $template->param( 'en_marc_frameworks' => $marc_defaulted_to_en );
+ $template->param( "frameworksloop" => $fwklist );
+ $template->param( "marcflavour" => ucfirst($marcflavour) );
+
+ my ( $sample_defaulted_to_en, $levellist ) =
+ $installer->sample_data_sql_list($langchoice);
+ $template->param( "en_sample_data" => $sample_defaulted_to_en );
+ $template->param( "levelloop" => $levellist );
+ $template->param( "$op" => 1 );
+
+ my $setup = $query->param('setup');
+ $template->param( "setup" => $setup );
+
}
elsif ( $op && $op eq 'choosemarc' ) {
#
@@ -268,46 +307,55 @@ elsif ( $step && $step == 3 ) {
#
#
- #Choose Marc Flavour
- #sql data are supposed to be located in installer/data///marcflavour/marcflavourname
- # Where is database type according to DBD syntax
- # Where is en|fr or any international abbreviation (provided language hash is updated... This will be a problem with internationlisation.)
- # Where is a category of requirement : required, recommended optional
- # level should contain :
- # SQL File for import With a readable name.
- # txt File taht explains what this SQL File is meant for.
- # Could be VERY useful to have A Big file for a kind of library.
- # But could also be useful to have some Authorised values data set prepared here.
- # Marcflavour Selection is achieved through radiobuttons.
+#Choose Marc Flavour
+#sql data are supposed to be located in installer/data///marcflavour/marcflavourname
+# Where is database type according to DBD syntax
+# Where is en|fr or any international abbreviation (provided language hash is updated... This will be a problem with internationlisation.)
+# Where is a category of requirement : required, recommended optional
+# level should contain :
+# SQL File for import With a readable name.
+# txt File taht explains what this SQL File is meant for.
+# Could be VERY useful to have A Big file for a kind of library.
+# But could also be useful to have some Authorised values data set prepared here.
+# Marcflavour Selection is achieved through radiobuttons.
my $langchoice = $query->param('fwklanguage');
+
$langchoice = $query->cookie('KohaOpacLanguage') unless ($langchoice);
- $langchoice =~ s/[^a-zA-Z_-]*//g;
+ $langchoice =~ s/[^a-zA-Z_-]*//g;
my $dir =
- C4::Context->config('intranetdir') . "/installer/data/$info{dbms}/$langchoice/marcflavour";
- unless (opendir( MYDIR, $dir )) {
- if ($langchoice eq 'en') {
+ C4::Context->config('intranetdir')
+ . "/installer/data/$info{dbms}/$langchoice/marcflavour";
+ unless ( opendir( MYDIR, $dir ) ) {
+ if ( $langchoice eq 'en' ) {
warn "cannot open MARC frameworks directory $dir";
- } else {
+ }
+ else {
# if no translated MARC framework is available,
# default to English
- $dir = C4::Context->config('intranetdir') . "/installer/data/$info{dbms}/en/marcflavour";
- opendir(MYDIR, $dir) or warn "cannot open English MARC frameworks directory $dir";
+ $dir = C4::Context->config('intranetdir')
+ . "/installer/data/$info{dbms}/en/marcflavour";
+ opendir( MYDIR, $dir )
+ or warn "cannot open English MARC frameworks directory $dir";
}
}
my @listdir = grep { !/^\./ && -d "$dir/$_" } readdir(MYDIR);
closedir MYDIR;
- my $marcflavour=C4::Context->preference("marcflavour");
+ my $marcflavour = C4::Context->preference("marcflavour");
my @flavourlist;
foreach my $marc (@listdir) {
- my %cell=(
- "label"=> ucfirst($marc),
- "code"=>uc($marc),
- "checked"=> defined($marcflavour) ? uc($marc) eq $marcflavour : 0);
+ my %cell = (
+ "label" => ucfirst($marc),
+ "code" => uc($marc),
+ "checked" => defined($marcflavour)
+ ? uc($marc) eq $marcflavour
+ : 0
+ );
+
# $cell{"description"}= do { local $/ = undef; open INPUT "<$dir/$marc.txt"||""; };
push @flavourlist, \%cell;
}
$template->param( "flavourloop" => \@flavourlist );
- $template->param( "$op" => 1 );
+ $template->param( "$op" => 1 );
}
elsif ( $op && $op eq 'importdatastructure' ) {
#
@@ -327,7 +375,7 @@ elsif ( $step && $step == 3 ) {
#
#Do updatedatabase And report
- if ( ! defined $ENV{PERL5LIB} ) {
+ if ( !defined $ENV{PERL5LIB} ) {
my $find = "C4/Context.pm";
my $path = $INC{$find};
$path =~ s/\Q$find\E//;
@@ -335,60 +383,77 @@ elsif ( $step && $step == 3 ) {
warn "# plack? inserted PERL5LIB $ENV{PERL5LIB}\n";
}
- my $now = POSIX::strftime( "%Y-%m-%dT%H:%M:%S", localtime() );
- my $logdir = C4::Context->config('logdir');
- my $dbversion = C4::Context->preference('Version');
+ my $now = POSIX::strftime( "%Y-%m-%dT%H:%M:%S", localtime() );
+ my $logdir = C4::Context->config('logdir');
+ my $dbversion = C4::Context->preference('Version');
my $kohaversion = Koha::version;
$kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/;
my $filename_suffix = join '_', $now, $dbversion, $kohaversion;
- my ( $logfilepath, $logfilepath_errors ) = ( chk_log($logdir, "updatedatabase_$filename_suffix"), chk_log($logdir, "updatedatabase-error_$filename_suffix") );
+ my ( $logfilepath, $logfilepath_errors ) = (
+ chk_log( $logdir, "updatedatabase_$filename_suffix" ),
+ chk_log( $logdir, "updatedatabase-error_$filename_suffix" )
+ );
- my $cmd = C4::Context->config("intranetdir") . "/installer/data/$info{dbms}/updatedatabase.pl >> $logfilepath 2>> $logfilepath_errors";
+ my $cmd = C4::Context->config("intranetdir")
+ . "/installer/data/$info{dbms}/updatedatabase.pl >> $logfilepath 2>> $logfilepath_errors";
system($cmd );
my $fh;
- open( $fh, "<", $logfilepath ) or die "Cannot open log file $logfilepath: $!";
+ open( $fh, "<", $logfilepath )
+ or die "Cannot open log file $logfilepath: $!";
my @report = <$fh>;
close $fh;
if (@report) {
- $template->param( update_report => [ map { { line => $_ } } split( /\n/, join( '', @report ) ) ] );
+ $template->param( update_report =>
+ [ map { { line => $_ } } split( /\n/, join( '', @report ) ) ]
+ );
$template->param( has_update_succeeds => 1 );
- } else {
- eval{ `rm $logfilepath` };
}
- open( $fh, "<", $logfilepath_errors ) or die "Cannot open log file $logfilepath_errors: $!";
+ else {
+ eval { `rm $logfilepath` };
+ }
+ open( $fh, "<", $logfilepath_errors )
+ or die "Cannot open log file $logfilepath_errors: $!";
@report = <$fh>;
close $fh;
if (@report) {
- $template->param( update_errors => [ map { { line => $_ } } split( /\n/, join( '', @report ) ) ] );
+ $template->param( update_errors =>
+ [ map { { line => $_ } } split( /\n/, join( '', @report ) ) ]
+ );
$template->param( has_update_errors => 1 );
- warn "The following errors were returned while attempting to run the updatedatabase.pl script:\n";
+ warn
+"The following errors were returned while attempting to run the updatedatabase.pl script:\n";
foreach my $line (@report) { warn "$line\n"; }
- } else {
- eval{ `rm $logfilepath_errors` };
+ }
+ else {
+ eval { `rm $logfilepath_errors` };
}
$template->param( $op => 1 );
}
else {
- #
- # check whether it's a 1st install or an update
- #
- #Check if there are enough tables.
- # Paul has cleaned up tables so reduced the count
- #I put it there because it implied a data import if condition was not satisfied.
+#
+# check whether it's a 1st install or an update
+#
+#Check if there are enough tables.
+# Paul has cleaned up tables so reduced the count
+#I put it there because it implied a data import if condition was not satisfied.
my $dbh = DBI->connect(
"DBI:$info{dbms}:dbname=$info{dbname};host=$info{hostname}"
. ( $info{port} ? ";port=$info{port}" : "" )
. ( $info{tlsoptions} ? $info{tlsoptions} : "" ),
$info{'user'}, $info{'password'}
);
- my $rq;
- if ( $info{dbms} eq 'mysql' ) { $rq = $dbh->prepare( "SHOW TABLES" ); }
- elsif ( $info{dbms} eq 'Pg' ) { $rq = $dbh->prepare( "SELECT *
- FROM information_schema.tables
- WHERE table_schema='public' and table_type='BASE TABLE';" ); }
+ my $rq;
+ if ( $info{dbms} eq 'mysql' ) { $rq = $dbh->prepare("SHOW TABLES"); }
+ elsif ( $info{dbms} eq 'Pg' ) {
+ $rq = $dbh->prepare(
+ "SELECT *
+ FROM information_schema.tables
+ WHERE table_schema='public' and table_type='BASE TABLE';"
+ );
+ }
$rq->execute;
my $data = $rq->fetchall_arrayref( {} );
my $count = scalar(@$data);
@@ -399,23 +464,24 @@ elsif ( $step && $step == 3 ) {
$template->param( "count" => $count, "proposeimport" => 1 );
}
else {
- #
- # we have tables, propose to select files to upload or updatedatabase
- #
+ #
+ # we have tables, propose to select files to upload or updatedatabase
+ #
$template->param( "count" => $count, "default" => 1 );
- #
- # 1st part of step 3 : check if there is a databaseversion systempreference
- # if there is, then we just need to upgrade
- # if there is none, then we need to install the database
- #
- if (C4::Context->preference('Version')) {
+ #
+ # 1st part of step 3 : check if there is a databaseversion systempreference
+ # if there is, then we just need to upgrade
+ # if there is none, then we need to install the database
+ #
+ if ( C4::Context->preference('Version') ) {
my $dbversion = C4::Context->preference('Version');
$dbversion =~ /(.*)\.(..)(..)(...)/;
$dbversion = "$1.$2.$3.$4";
- $template->param("upgrading" => 1,
- "dbversion" => $dbversion,
- "kohaversion" => Koha::version(),
- );
+ $template->param(
+ "upgrading" => 1,
+ "dbversion" => $dbversion,
+ "kohaversion" => Koha::version(),
+ );
}
}
}
@@ -433,7 +499,8 @@ else {
if ( $rq->execute ) {
my ($version) = $rq->fetchrow;
if ($version) {
- print $query->redirect("/cgi-bin/koha/installer/install.pl?step=3");
+ print $query->redirect(
+ "/cgi-bin/koha/installer/install.pl?step=3");
exit;
}
}
@@ -441,13 +508,15 @@ else {
}
output_html_with_http_headers $query, $cookie, $template->output;
-sub chk_log { #returns a logfile in $dir or - if that failed - in temp dir
- my ($dir, $name) = @_;
- my $fn=$dir.'/'.$name.'.log';
- if( ! open my $fh, '>', $fn ) {
- $name.= '_XXXX';
+sub chk_log { #returns a logfile in $dir or - if that failed - in temp dir
+ my ( $dir, $name ) = @_;
+ my $fn = $dir . '/' . $name . '.log';
+ if ( !open my $fh, '>', $fn ) {
+ $name .= '_XXXX';
require File::Temp;
- ($fh, $fn)= File::Temp::tempfile( $name, TMPDIR => 1, SUFFIX => '.log');
+ ( $fh, $fn ) =
+ File::Temp::tempfile( $name, TMPDIR => 1, SUFFIX => '.log' );
+
#if this should not work, let croak take over
}
return $fn;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc
index f6d9e9b..a4bbe62 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc
@@ -6,7 +6,7 @@ var debug = "[% debug %]";
var dformat = "[% dateformat %]";
var sentmsg = 0;
if (debug > 1) {alert("dateformat: " + dformat + "\ndebug is on (level " + debug + ")");}
-var MSG_PLEASE_ENTER_A_VALID_DATE = _("Please enter a valid date (should match %s).");
+var MSG_PLEASE_ENTER_A_VALID_DATE = (_("Please enter a valid date (should match %s)."));
function is_valid_date(date) {
// An empty string is considered as a valid date for convenient reasons.
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/installer-doc-head-close.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/installer-doc-head-close.inc
index a4b435c..60d0e66 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/installer-doc-head-close.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/installer-doc-head-close.inc
@@ -1,5 +1,9 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//]]>
+
[% END %]
+
+
[% IF ( finish ) %]
Congratulations, installation complete
-
If this page does not redirect in 5 seconds, click here.
+
If this page does not redirect in 10 seconds, click here.
[% END %]
+
+
[% IF ( choosemarc ) %]
-
Select your MARC flavor
+
Choose your setup
+
Basic setup selects recommended settings by default.
-
Click 'Next' to continue
+
+
Click 'Next' to continue
+
+
[% END %]
[% IF ( selectframeworks ) %]
-
Selecting Default Settings
-
-
[% END %]
@@ -214,22 +269,22 @@
[% END %]
-
[% IF ( default ) %]
[% IF ( upgrading ) %]
- We are upgrading from Koha [% dbversion %] to [% kohaversion %], you must update your database
+ We are upgrading from Koha [% dbversion %] to [% kohaversion %], you must update your database.
+
+
We are ready to do some basic configuration. Please install some basic configuration settings to continue the installation:
+
+
+
+
[% END %]
[% END %]
-
-
[% IF ( updatestructure ) %]