diff --git a/install/install.php b/install/install.php
index b97e9961..d01ddbec 100644
--- a/install/install.php
+++ b/install/install.php
@@ -30,25 +30,27 @@ $_deftheme = 'Froxlor';
// validate correct php version
if (version_compare("7.4.0", PHP_VERSION, ">=")) {
- die(
- view($_deftheme . '/misc/phprequirementfailed.html.twig', [
- '{{ basehref }}' => '../',
- '{{ froxlor_min_version }}' => '7.4.0',
- '{{ current_version }}' => PHP_VERSION,
- '{{ current_year }}' => date('Y', time()),
- ])
- );
+ die(view($_deftheme . '/misc/phprequirementfailed.html.twig', [
+ '{{ basehref }}' => '../',
+ '{{ froxlor_min_version }}' => '7.4.0',
+ '{{ current_version }}' => PHP_VERSION,
+ '{{ current_year }}' => date('Y', time()),
+ ]));
}
// validate vendor autoloader
if (!file_exists(dirname(__DIR__) . '/vendor/autoload.php')) {
- die(
- view($_deftheme . '/misc/vendormissinghint.html.twig', [
- '{{ basehref }}' => '../',
- '{{ froxlor_install_dir }}' => dirname(__DIR__),
- '{{ current_year }}' => date('Y', time()),
- ])
- );
+ die(view($_deftheme . '/misc/vendormissinghint.html.twig', [
+ '{{ basehref }}' => '../',
+ '{{ froxlor_install_dir }}' => dirname(__DIR__),
+ '{{ current_year }}' => date('Y', time()),
+ ]));
+}
+
+// check installation status
+if (file_exists(dirname(__DIR__) . '/lib/userdata.inc.php')) {
+ http_response_code(404);
+ die();
}
require dirname(__DIR__) . '/vendor/autoload.php';
diff --git a/lib/formfields/install/formfield.install.php b/lib/formfields/install/formfield.install.php
index f70c44ba..f3e006e9 100644
--- a/lib/formfields/install/formfield.install.php
+++ b/lib/formfields/install/formfield.install.php
@@ -31,6 +31,7 @@ return [
'sections' => [
'step1' => [
'title' => lng('install.database.title'),
+ 'description' => lng('install.database.description'),
'fields' => [
'mysql_host' => [
'label' => lng('mysql.mysql_server'),
@@ -82,6 +83,7 @@ return [
],
'step2' => [
'title' => lng('install.admin.title'),
+ 'description' => lng('install.admin.description'),
'fields' => [
'admin_name' => [
'label' => lng('customer.name'),
@@ -101,6 +103,12 @@ return [
'mandatory' => true,
'value' => old('admin_pass', null, 'installation'),
],
+ 'admin_pass_confirm' => [
+ 'label' => lng('changepassword.new_password_confirm'),
+ 'type' => 'password',
+ 'mandatory' => true,
+ 'value' => old('admin_pass_confirm', null, 'installation'),
+ ],
'admin_email' => [
'label' => lng('customer.email'),
'type' => 'text',
@@ -111,6 +119,7 @@ return [
],
'step3' => [
'title' => lng('install.system.title'),
+ 'description' => lng('install.system.description'),
'fields' => [
'distribution' => [
'label' => lng('admin.configfiles.distribution'),
@@ -170,7 +179,8 @@ return [
]
],
'step4' => [
- 'title' => lng('install.system.title'),
+ 'title' => lng('install.install.title'),
+ 'description' => lng('install.install.description'),
'fields' => [
'system' => [
'label' => lng('install.install.runcmd'),
diff --git a/lng/en.lng.php b/lng/en.lng.php
index ec9692ff..f11ac827 100644
--- a/lng/en.lng.php
+++ b/lng/en.lng.php
@@ -2469,26 +2469,30 @@ Yours sincerely, your administrator',
],
'database' => [
'top' => 'Database',
- 'title' => 'Froxlor requires a database and additionally a privileged user to be able to create users and databases (GRANT option). The given database and unprivileged database-user will be created in this process. The privileged user must exist.',
+ 'title' => 'Create database and user',
+ 'description' => 'Froxlor requires a database and additionally a privileged user to be able to create users and databases (GRANT option). The given database and unprivileged database-user will be created in this process. The privileged user must exist.',
'user' => 'Unprivileged database user',
'dbname' => 'Database name',
'force_create' => 'Backup and overwrite database if exists?',
],
'admin' => [
'top' => 'Admin user',
- 'title' => 'Let\'s create the main administrator user. This user has all privileges to adjust settings and add/update/delete resources like customers, domains, etc.',
+ 'title' => 'Let\'s create the main administrator user.',
+ 'description' => 'This user will be granted all privileges to adjust settings and add/update/delete resources like customers, domains, etc.',
],
'system' => [
'top' => 'System setup',
- 'title' => 'Set your environment as well as server relevant data and options here to let froxlor know about your system. These values are crucial for the system configuration and operating.',
+ 'title' => 'Details about your server',
+ 'description' => 'Set your environment as well as server relevant data and options here to let froxlor know about your system. These values are crucial for the system configuration and operating.',
'servername' => 'Server name (FQDN, no ip-address)',
'phpbackend' => 'PHP backend',
'activate_newsfeed' => 'Enable the official newsfeed
(https://inside.froxlor.org/news/)',
],
'install' => [
'top' => 'Finish setup',
- 'title' => '@todo description',
- 'runcmd' => 'Run the following command as root-user in your shell on this server to install/configure all services',
+ 'title' => 'One last step...',
+ 'description' => 'The command below will download, install and configure your system according to the data you have given in this installation process.',
+ 'runcmd' => 'Run the following command as root-user in your shell on this server:',
],
],
];
diff --git a/templates/Froxlor/install/index.html.twig b/templates/Froxlor/install/index.html.twig
index 0f3ca60d..d7ae1d24 100644
--- a/templates/Froxlor/install/index.html.twig
+++ b/templates/Froxlor/install/index.html.twig
@@ -37,6 +37,7 @@
{% if setup.step > 0 %}
{{ section.description }}
+