summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--installer/check.php5
-rw-r--r--installer/config.php18
-rw-r--r--installer/index.php5
-rw-r--r--installer/rcube_install.php3
-rw-r--r--installer/styles.css17
-rw-r--r--installer/test.php3
6 files changed, 30 insertions, 21 deletions
diff --git a/installer/check.php b/installer/check.php
index 9f54d8f8f..06eae4236 100644
--- a/installer/check.php
+++ b/installer/check.php
@@ -1,3 +1,4 @@
+<form action="index.php" method="get">
<?php
$required_php_exts = array('PCRE' => 'pcre', 'Session' => 'session', 'Sockets' => 'sockets');
@@ -28,11 +29,9 @@ $source_urls = array(
'Mail_mime' => 'http://pear.php.net/package/Mail_mime'
);
+echo '<input type="hidden" name="_step" value="' . ($RCI->configured ? 2 : 3) . '" />';
?>
-<form action="index.php" method="get">
-<input type="hidden" name="_step" value="2" />
-
<h3>Checking PHP version</h3>
<?php
diff --git a/installer/config.php b/installer/config.php
index c110276aa..2719cdb87 100644
--- a/installer/config.php
+++ b/installer/config.php
@@ -5,7 +5,7 @@
ini_set('display_errors', 1);
require_once 'include/rcube_html.inc';
-$RCI->load_config();
+// also load the default config to fill in the fields
$RCI->load_defaults();
if (!empty($_POST['submit'])) {
@@ -235,12 +235,16 @@ echo $select_dbba->show($RCI->getprop('db_backend'));
<div id="defaulthostlist">
<?php
-$default_hosts = array_unique((array)$RCI->getprop('default_host'));
+$default_hosts = (array)$RCI->getprop('default_host');
$text_imaphost = new textfield(array('name' => '_default_host[]', 'size' => 30));
-for ($i=0; $i < count($default_hosts); $i++) {
- echo '<div id="defaulthostentry'.$i.'">' . $text_imaphost->show($default_hosts[$i]);
- if ($i > 0)
+$i = 0;
+foreach ($default_hosts as $key => $name) {
+ if (empty($name))
+ continue;
+ $host = is_numeric($key) ? $name : $key;
+ echo '<div id="defaulthostentry'.$i.'">' . $text_imaphost->show($host);
+ if ($i++ > 0)
echo '<a href="#" onclick="removehostfield(this.parentNode);return false" class="removelink" title="Remove this entry">remove</a>';
echo '</div>';
}
@@ -249,7 +253,7 @@ for ($i=0; $i < count($default_hosts); $i++) {
</div>
<div><a href="javascript:addhostfield()" class="addlink" title="Add another field">add</a></div>
-<p class="hint">Leave blank to show a textbox at login</p>
+<p class="hint">Leave blank to show a textbox at login. To use SSL/IMAPS connection, type ssl://hostname</p>
</dd>
<dt class="propname">default_port</dt>
@@ -431,7 +435,7 @@ echo $input_locale->show($RCI->getprop('locale_string'));
<?php
-echo '<p><input type="submit" name="submit" value="UPDATE" ' . ($RCI->failures ? 'disabled' : '') . ' /></p>';
+echo '<p><input type="submit" name="submit" value="' . ($RCI->configured ? 'UPDATE' : 'CREATE') . ' CONFIG" ' . ($RCI->failures ? 'disabled' : '') . ' /></p>';
?>
</form>
diff --git a/installer/index.php b/installer/index.php
index aab406e98..a5225eb54 100644
--- a/installer/index.php
+++ b/installer/index.php
@@ -34,7 +34,8 @@
require_once 'rcube_install.php';
$RCI = rcube_install::get_instance();
-
+ $RCI->load_config();
+
?>
<ol id="progress">
@@ -42,7 +43,7 @@
foreach (array('Check environment', 'Create config', 'Test config') as $i => $item) {
$j = $i + 1;
- $link = $RCI->step > $j ? '<a href="./index.php?_step='.$j.'">' . Q($item) . '</a>' : Q($item);
+ $link = ($RCI->step >= $j || $RCI->configured) ? '<a href="./index.php?_step='.$j.'">' . Q($item) . '</a>' : Q($item);
printf('<li class="step%d%s">%s</li>', $j+1, $RCI->step > $j ? ' passed' : ($RCI->step == $j ? ' current' : ''), $link);
}
?>
diff --git a/installer/rcube_install.php b/installer/rcube_install.php
index 8ff220357..44d453153 100644
--- a/installer/rcube_install.php
+++ b/installer/rcube_install.php
@@ -26,6 +26,7 @@ class rcube_install
var $step;
var $failures = 0;
var $config = array();
+ var $configured = false;
var $last_error = null;
var $email_pattern = '([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9])';
@@ -64,7 +65,9 @@ class rcube_install
*/
function load_config()
{
+ $this->config = array();
$this->_load_config('.php');
+ $this->configured = !empty($this->config);
}
/**
diff --git a/installer/styles.css b/installer/styles.css
index 0260b6741..1e91ec2c0 100644
--- a/installer/styles.css
+++ b/installer/styles.css
@@ -88,19 +88,24 @@ body, td, th, div, p {
padding: 1em 5em 1em 0.2em;
}
+#progress li a {
+ color: #999;
+ text-decoration: none;
+}
+
+#progress li a:hover {
+ text-decoration: underline;
+}
+
#progress li.current {
color: #000;
font-weight: bold;
}
#progress li.passed,
-#progress li.passed a {
+#progress li.passed a,
+#progress li.current a {
color: #333;
- text-decoration: none;
-}
-
-#progress li.passed a:hover {
- text-decoration: underline;
}
fieldset {
diff --git a/installer/test.php b/installer/test.php
index 0f499eba3..d0cb77716 100644
--- a/installer/test.php
+++ b/installer/test.php
@@ -3,9 +3,6 @@
<h3>Check config files</h3>
<?php
-// load local config files
-$RCI->load_config();
-
$read_main = is_readable('../config/main.inc.php');
$read_db = is_readable('../config/db.inc.php');