X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=setup%2Fclass_setup.inc;h=753751c52537d7e43e28845244038b07f8eea244;hb=01e1aa21db184f46c8d78eb80887bf5d6d594d3c;hp=297f956950d6c5ba343c532d540abe4272d557b6;hpb=f6c6299f57889e70a6d01d296bc5083f1a297274;p=gosa.git diff --git a/setup/class_setup.inc b/setup/class_setup.inc index 297f95695..753751c52 100644 --- a/setup/class_setup.inc +++ b/setup/class_setup.inc @@ -18,52 +18,64 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + require_once("class_setupStep.inc"); + class setup { - - var $i_steps = 8; // Number of setup steps + var $i_steps = 9; // Number of setup steps var $i_current= 1; // Current step var $i_last = 1; // Last setup step; var $o_steps = array(); - var $captured_values = array(); function setup() { - - $this->o_steps[1] = new setup_step_1(); - $this->o_steps[2] = new setup_step_2(); - $this->o_steps[3] = new setup_step_3(); - $this->o_steps[4] = new setup_step_4(); - $this->o_steps[5] = new setup_step_5(); - $this->o_steps[6] = new setup_step_6(); - $this->o_steps[7] = new setup_step_7(); - $this->o_steps[8] = new setup_step_8(); + $i = 1; + $this->o_steps[$i++] = new Step_Welcome(); + $this->o_steps[$i++] = new Step_Language(); + $this->o_steps[$i++] = new Step_Checks(); + $this->o_steps[$i++] = new Step_License(); + $this->o_steps[$i++] = new Step_Ldap(); + $this->o_steps[$i++] = new Step_Schema(); + $this->o_steps[$i++] = new Step_Config1(); + $this->o_steps[$i++] = new Step_Config2(); + $this->o_steps[$i++] = new Step_Config3(); + $this->o_steps[$i++] = new Step_Migrate(); + $this->o_steps[$i++] = new Step_Feedback(); + $this->o_steps[$i++] = new Step_Finish(); + $this->i_steps = $i-1; - foreach($this->o_steps as $key => $step){ - $this->o_steps[$key]->parent = $this; + /* Ensure that setup is not reachable if gosa.conf (CONFIG_FILE) */ + if(file_exists(CONFIG_DIR."/".CONFIG_FILE)){ + session_destroy(); + header("Location: index.php") ; + exit(); } - -/* - for($i = 1 ; $i <= $this->i_steps; $ii ++ ){ - $class= "setup_step_".$i; - if(class_exists($class)){ - $this->o_steps[$i] = new $class(); - }else{ - $this->o_steps[$i] = new setup_step(); - trigger_error("Try to create class '".$class."' but it is not available, possibly you have forgotten to add the include in setup.php"); - } - $this->o_steps[$i]->parent = $this; + foreach($this->o_steps as $key => $step){ + $this->o_steps[$key]->parent = &$this; } -*/ } function execute() { - $smarty = get_smarty(); + /* Display phpinfo() dialog when $_GET['info'] is set, + * but only do this, if user is allowed to use the setup. + * If setupStep_Welcome is_completed, we are allowed to view those infos- + */ + if(isset($_GET['info']) && preg_match("/Step_Welcome/i",get_class($this->o_steps[1])) && $this->o_steps[1]->is_completed()){ + phpinfo(); + exit(); + } + + /* display step error msgs */ + $msgs = $this->o_steps[$this->i_current]->check(); + foreach($msgs as $msg){ + print_red($msg); + } + $this->o_steps[$this->i_last]->set_active(FALSE); $this->o_steps[$this->i_current]->set_active(); $content = $this->o_steps[$this->i_current]->execute(); @@ -107,24 +119,60 @@ class setup if($this->o_steps[$i]->is_completed()){ if(isset($this->o_steps[($i+1)])){ $this->o_steps[($i+1)]->set_enabled(); - }else{ - $this->o_steps[($i+1)]->set_enabled(false); - } + }else{ + $this->disable_steps_from($i+1); } } + } + + /* Disable all following steps, if one step isn't compelted right now .*/ + for($i = 1 ; $i <= $this->i_steps ; $i ++ ){ + if($this->o_steps[$i]->is_completed()){ + }else{ + $this->disable_steps_from($i+1); + } + } + + $step = -1; + + if(isset($_POST['setup_goto_step'])){ + $step= $_POST['setup_goto_step']; + } + + if(isset($_GET['step'])){ + $step = $_GET['step']; + }elseif(isset($_POST['next'])){ + $step = $this->i_current + 1; + }elseif(isset($_POST['last'])){ + $step = $this->i_current - 1; + } + + $once = true; + foreach($_POST as $name => $value){ + if(preg_match("/^step_[0-9]*$/",$name) && $once ){ + $step = preg_replace("/^step_/","",$name); + } + } + + if($this->selectable_step($step)){ + $this->i_last = $this->i_current; + $this->i_current = $step; + } + } + - if(isset($_GET['step'])){ - $step = $_GET['step']; - }elseif(isset($_POST['next'])){ - $step = $this->i_current + 1; - }elseif(isset($_POST['last'])){ - $step = $this->i_current - 1; + function disable_steps_from($start) + { + $found = false; + foreach($this->o_steps as $key => $step){ + if($key == $start){ + $found = true; } - if($this->selectable_step($step)){ - $this->i_last = $this->i_current; - $this->i_current = $step; + if($found){ + $this->o_steps[$key]->set_enabled(false); + $this->o_steps[$key]->set_completed(false); } } } @@ -136,29 +184,87 @@ class setup $str = ""; foreach($this->o_steps as $key => $step){ + $step -> update_strings(); + $s_title = $step -> get_title(); $s_info = $step -> get_small_info(); $b_active = $step -> is_active(); $b_enabled = $step -> is_enabled(); + $b_completed= $step -> is_completed(); + + if($b_completed){ + $s = ""._("Completed")." "; + }else{ + $s = "  "; + } + + if($_SESSION['js']){ - $str .="
"; - if($b_enabled){ - if($b_active){ - $str .= ""; - $str .= ""; - $str .= ""; - $str .= "
\n"; + $str .="
"; + + if($b_enabled){ + if($b_active){ + $str .= ""; + }else{ + $str .= ""; + } }else{ - $str .= ""; - $str .= ""; - $str .= "
\n"; + $str .= ""; } + $str .= "
" ; }else{ - $str .= ""; + $str .="
"; + if($b_enabled){ + if($b_active){ + $str .= ""; + }else{ + $str .= ""; + } + }else{ + $str .= ""; + } + $str .= "
" ; } - $str .= "
" ; + } + return($str); + } + + + + function get_bottom_html() + { + /* Skip adding forward/backward button, + * if the currently opened step is a sub dialog + */ + if($this->o_steps[$this->i_current]->dialog){ + $str =""; + }else{ + $str ="

 

"; + $str.="
"; + if(isset($this->o_steps[$this->i_current -1]) && $this->o_steps[$this->i_current -1]->is_enabled()){ + $str .= ""; + }else{ + $str .= ""; + } + $str.= " "; + $str .= ""; + $str .="
"; } return($str); } @@ -167,26 +273,7 @@ class setup /* Create header entry */ function get_header_html() { - $str =""; - $str.="
"; - $str.="
"; - $str.=" "; - $str.= $this->o_steps[$this->i_current]->get_long_title(); - $str.=" "; - $str.="
"; - $str.="
"; - if(isset($this->o_steps[$this->i_current -1]) && $this->o_steps[$this->i_current -1]->is_enabled()){ - $str.=" "; - }else{ - $str.=" "; - } -# if(isset($this->o_steps[$this->i_current +1]) && $this->o_steps[$this->i_current +1]->is_enabled()){ - $str.=" "; -# }else{ -# $str.=" "; -# } - $str.= "
"; - $str.= "
"; + $str= $this->o_steps[$this->i_current]->print_header(); return ($str); } @@ -199,6 +286,17 @@ class setup } return(false); } + + function step_name_to_id($name) + { + foreach($this->o_steps as $id => $class){ + if(get_class($class) == $name){ + return($id); + } + } + return(0); + } + }