From b3f9dfb54e46e63d14e605ea88605b6bc1ffa17d Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Wed, 27 Feb 2008 03:11:17 -0500 Subject: [PATCH] Allow to skip the config step if config files already exist --- installer/rcube_install.php | 3 +++ installer/styles.css | 17 +++++++++++------ installer/config.php | 18 +++++++++++------- installer/check.php | 5 ++--- installer/test.php | 3 --- installer/index.php | 5 +++-- 6 files changed, 30 insertions(+), 21 deletions(-) diff --git a/installer/check.php b/installer/check.php index 9f54d8f..06eae42 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,10 +29,8 @@ '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 c110276..2719cdb 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 @@ <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 @@ </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 @@ <?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 aab406e..a5225eb 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 8ff2203..44d4531 100644 --- a/installer/rcube_install.php +++ b/installer/rcube_install.php @@ -26,6 +26,7 @@ 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 @@ */ 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 0260b67..1e91ec2 100644 --- a/installer/styles.css +++ b/installer/styles.css @@ -88,19 +88,24 @@ 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 0f499eb..d0cb777 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'); -- Gitblit v1.9.1