Commit 30e09326f0b815782395ac5e9fec8e8437acec10

Authored by Megan Watson
2 parents 73bdba34 00b2a929

Merge branch 'edge' of git@github.com:ktgit/knowledgetree into edge

bin/schedulerTask.sh 0 → 100755
  1 +#!/bin/sh
  2 +cd /var/www/installers/knowledgetree/bin/
  3 +while true; do
  4 +php -Cq scheduler.php
  5 +sleep 30
  6 +done
0 \ No newline at end of file 7 \ No newline at end of file
setup/wizard/dbUtil.php
@@ -111,7 +111,7 @@ class dbUtil { @@ -111,7 +111,7 @@ class dbUtil {
111 $this->dbconnection = mysql_connect($dhost, $duname, $dpassword); 111 $this->dbconnection = mysql_connect($dhost, $duname, $dpassword);
112 if($dbname != '') { 112 if($dbname != '') {
113 $this->setDb($dbname); 113 $this->setDb($dbname);
114 - $this->useBD($dbname); 114 + $this->useDb($dbname);
115 } 115 }
116 if($this->dbconnection) 116 if($this->dbconnection)
117 return $this->dbconnection; 117 return $this->dbconnection;
@@ -128,7 +128,7 @@ class dbUtil { @@ -128,7 +128,7 @@ class dbUtil {
128 * @access public 128 * @access public
129 * @return boolean 129 * @return boolean
130 */ 130 */
131 - public function useBD($dbname) { 131 + public function useDb($dbname) {
132 if($dbname != '') { 132 if($dbname != '') {
133 $this->setDb($dbname); 133 $this->setDb($dbname);
134 } 134 }
@@ -152,8 +152,7 @@ class dbUtil { @@ -152,8 +152,7 @@ class dbUtil {
152 * @access public 152 * @access public
153 * @return object The result of the query. 153 * @return object The result of the query.
154 */ 154 */
155 - public function query($query)  
156 - { 155 + public function query($query) {
157 $result = mysql_query($query, $this->dbconnection); 156 $result = mysql_query($query, $this->dbconnection);
158 if($result) { 157 if($result) {
159 return $result; 158 return $result;
@@ -230,10 +229,33 @@ class dbUtil { @@ -230,10 +229,33 @@ class dbUtil {
230 * 229 *
231 * @param none. 230 * @param none.
232 * @access public 231 * @access public
233 - * @return string. 232 + * @return array.
234 */ 233 */
235 public function getErrors() { 234 public function getErrors() {
236 return $this->error; 235 return $this->error;
237 } 236 }
  237 +
  238 + /**
  239 + * Fetches the last generated error
  240 +
  241 + * @return string
  242 + */
  243 + function getLastError() {
  244 + return end($this->error);
  245 + }
  246 +
  247 + /**
  248 + * Start a database transaction
  249 + */
  250 + public function startTransaction() {
  251 + $this->query("START TRANSACTION");
  252 + }
  253 +
  254 + /**
  255 + * Roll back a database transaction
  256 + */
  257 + public function rollback() {
  258 + $this->query("ROLLBACK");
  259 + }
238 } 260 }
239 ?> 261 ?>
240 \ No newline at end of file 262 \ No newline at end of file
setup/wizard/installUtil.php
@@ -385,18 +385,13 @@ class InstallUtil { @@ -385,18 +385,13 @@ class InstallUtil {
385 * @return mixed 385 * @return mixed
386 */ 386 */
387 function getJava() { 387 function getJava() {
388 -// $javaSpecified = $this->javaSpecified();  
389 -// if($javaSpecified) {  
390 -// return $javaSpecified;  
391 -// } else {  
392 - $response = $this->tryJava1();  
393 - if(!is_array($response)) {  
394 - $response = $this->tryJava2();  
395 - if(!is_array($response)) {  
396 - $response = $this->tryJava3();  
397 - }  
398 - }  
399 -// } 388 + $response = $this->tryJava1();
  389 + if(!is_array($response)) {
  390 + $response = $this->tryJava2();
  391 + if(!is_array($response)) {
  392 + $response = $this->tryJava3();
  393 + }
  394 + }
400 395
401 return $response; 396 return $response;
402 } 397 }
setup/wizard/output/outJV 0 → 100644
  1 +java version "1.6.0_14"
  2 +Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
  3 +Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)
setup/wizard/resources/graphics/indicator.pxm deleted
No preview for this file type
setup/wizard/shells/javaVersion.sh 0 → 100644
  1 +#!/bin/bash
  2 +java -version > output/outJV 2>&1 echo $!
0 \ No newline at end of file 3 \ No newline at end of file
setup/wizard/steps/complete.php
@@ -40,15 +40,361 @@ @@ -40,15 +40,361 @@
40 * @version Version 0.1 40 * @version Version 0.1
41 */ 41 */
42 42
43 -class complete extends Step  
44 -{ 43 +class complete extends Step {
  44 +
  45 + /**
  46 + * Reference to Database object
  47 + *
  48 + * @author KnowledgeTree Team
  49 + * @access private
  50 + * @var object
  51 + */
  52 + private $_dbhandler = null;
  53 +
  54 + /**
  55 + * List of services to check
  56 + *
  57 + * @access private
  58 + * @var array
  59 + */
  60 + private $_services = array('Lucene', 'Scheduler');
  61 +
  62 + public function __construct() {
  63 + $this->_dbhandler = new dbUtil();
  64 + }
45 65
46 function configure() { 66 function configure() {
47 $this->temp_variables = array("step_name"=>"complete"); 67 $this->temp_variables = array("step_name"=>"complete");
48 } 68 }
49 69
50 function doStep() { 70 function doStep() {
  71 + $this->doRun();
51 return 'landing'; 72 return 'landing';
52 } 73 }
  74 +
  75 + function doRun() {
  76 + // check filesystem (including location of document directory and logging)
  77 + $this->checkFileSystem();
  78 + // check database
  79 + $this->checkDb();
  80 + // check services
  81 + $this->checkServices();
  82 + }
  83 +
  84 + private function checkFileSystem()
  85 + {
  86 + // defaults
  87 + $this->temp_variables['varDirectory'] = '';
  88 + $this->temp_variables['documentRoot'] = '';
  89 + $this->temp_variables['logDirectory'] = '';
  90 + $this->temp_variables['tmpDirectory'] = '';
  91 + $this->temp_variables['uploadDirectory'] = '';
  92 + $this->temp_variables['config'] = '';
  93 + $this->temp_variables['docLocation'] = '';
  94 +
  95 + $docRoot = '';
  96 +
  97 + // retrieve path information from session
  98 + $config = $this->getDataFromSession("configuration");
  99 + $paths = $config['paths'];
  100 +
  101 + $html = '<td><div class="%s"></div></td>'
  102 + . '<td>%s</td>'
  103 + . '<td class="%s">%s</td>';
  104 +
  105 + // check paths are writeable
  106 + foreach ($paths as $path)
  107 + {
  108 + $output = '';
  109 +
  110 + $result = $this->checkPermission($path['path']);
  111 + $output = sprintf($html, $result['class'],
  112 + $path['path'],
  113 + (($result['class'] == 'tick') ? '' : 'error' ),
  114 + (($result['class'] == 'tick') ? 'Writeable' : 'Not Writeable' ));
  115 +
  116 + $this->temp_variables[($path['setting'] != '') ? $path['setting'] : 'config'] = $output;
  117 +
  118 + // for document location check
  119 + if ($path['setting'] == 'documentRoot') {
  120 + $docRoot = $path['path'];
  121 + }
  122 + }
  123 +
  124 + // check document path internal/external to web root
  125 + // compare SYSTEM_DIR to root path of documentRoot
  126 + $sysDir = preg_replace('/\\\\+|\/+/', '\/', SYSTEM_DIR);
  127 + $docRoot = preg_replace('/\\\\+|\/+/', '\/', $docRoot);
  128 + if (($pos = strpos($docRoot, $sysDir)) !== false) {
  129 + $this->temp_variables['docLocation'] = '<td><div class="cross_orange"></div></td>'
  130 + . '<td class="warning" colspan="2">Your document directory is set to the default, which is inside the web root. '
  131 + . 'This may present a security problem if your documents can be accessed from the web, '
  132 + . 'working around the permission system in KnowledgeTree.</td>';
  133 + }
  134 + else {
  135 + $this->temp_variables['docLocation'] = '<td><div class="tick"></div></td>'
  136 + . '<td>Your document directory is outside the web root.</td>';
  137 + }
  138 + }
  139 +
  140 + private function checkDb()
  141 + {
  142 + // defaults
  143 + $this->temp_variables['dbConnectAdmin'] = '';
  144 + $this->temp_variables['dbConnectUser'] = '';
  145 + $this->temp_variables['dbPrivileges'] = '';
  146 + $this->temp_variables['dbTransaction'] = '';
  147 +
  148 +// $html = '<td><div class="%s"></div></td>'
  149 +// . '<td>%s</td>'
  150 +// . '<td class="%s">%s</td>';
  151 +
  152 + // retrieve database information from session
  153 + $dbconf = $this->getDataFromSession("database");
  154 + //print_r($dbconf);
  155 + // make db connection - admin
  156 + $loaded = $this->_dbhandler->load($dbconf['dhost'], $dbconf['dmsname'], $dbconf['dmspassword'], $dbconf['dname']);
  157 + if (!$loaded) {
  158 + $this->temp_variables['dbConnectAdmin'] .= /*sprintf($html, 'cross',
  159 + $path['path'],
  160 + (($result['class'] == 'tick') ? '' : 'error' ),
  161 + (($result['class'] == 'tick') ? 'Writeable' : 'Not Writeable' ));*/
  162 + '<td><div class="cross"></div></td>'
  163 + . '<td class="error">Unable to connect to database (user: ' . $dbconf['dmsname'] . ')</td>';
  164 + }
  165 + else
  166 + {
  167 + $this->temp_variables['dbConnectAdmin'] .= '<td><div class="tick" style="float:left;"></div></td>'
  168 + . '<td>Database connectivity successful (user: ' . $dbconf['dmsname'] . ')</td>';
  169 + }
  170 +
  171 + // make db connection - user
  172 + $loaded = $this->_dbhandler->load($dbconf['dhost'], $dbconf['dmsusername'], $dbconf['dmsuserpassword'], $dbconf['dname']);
  173 + // if we can log in to the database, check access
  174 + // TODO check write access?
  175 + if ($loaded)
  176 + {
  177 + $this->temp_variables['dbConnectUser'] .= '<td><div class="tick" style="float:left;"></div></td>'
  178 + . '<td>Database connectivity successful (user: ' . $dbconf['dmsusername'] . ')</td>';
  179 +
  180 + $qresult = $this->_dbhandler->query('SELECT COUNT(id) FROM documents');
  181 + if (!$qresult)
  182 + {
  183 + $this->temp_variables['dbPrivileges'] .= '<td><div class="cross" style="float:left;"></div></td>'
  184 + . '<td class="error">'
  185 + . 'Unable to do a basic database query<br/>Error: ' . $this->_dbhandler->getLastError()
  186 + . '</td>';
  187 + }
  188 + else
  189 + {
  190 + $this->temp_variables['dbPrivileges'] .= '<td><div class="tick" style="float:left;"></div></td><td>Basic database query successful</td>';
  191 + }
  192 +
  193 + // check transaction support
  194 + $sTable = 'system_settings';
  195 + $this->_dbhandler->startTransaction();
  196 + $this->_dbhandler->query('INSERT INTO ' . $sTable . ' (name, value) VALUES ("transactionTest", "1")');
  197 + $this->_dbhandler->rollback();
  198 + $res = $this->_dbhandler->query("SELECT id FROM $sTable WHERE name = 'transactionTest' LIMIT 1");
  199 + if (!$res) {
  200 + $this->temp_variables['dbTransaction'] = '<td><div class="cross_orange" style="float:left;"></div></td>'
  201 + . '<span class="error">Transaction support not available in database</span></td>';
  202 + } else {
  203 + $this->temp_variables['dbTransaction'] = '<td><div class="tick" style="float:left;"></div></td><td>Database has transaction support</td>';
  204 + }
  205 + $this->_dbhandler->query('DELETE FROM ' . $sTable . ' WHERE name = "transactionTest"');
  206 + }
  207 + else
  208 + {
  209 + $this->temp_variables['dbConnectUser'] .= '<td><div class="cross" style="float:left;"></div></td>'
  210 + . '<span class="error">Unable to connect to database (user: ' . $dbconf['dmsusername'] . ')</span></td>';
  211 + }
  212 + }
  213 +
  214 + private function checkServices()
  215 + {
  216 + // defaults
  217 + $this->temp_variables['luceneServiceStatus'] = '';
  218 + $this->temp_variables['schedulerServiceStatus'] = '';
  219 +
  220 + return null;
  221 +
  222 + $processOrder = array();
  223 + if (strtolower(OS) == 'windows')
  224 + {
  225 + $processOrder[] = 'Start';
  226 + $processOrder[] = 'Stop';
  227 + }
  228 + else if (strtolower(OS) == 'unix')
  229 + {
  230 + $processOrder[] = 'Stop';
  231 + $processOrder[] = 'Start';
  232 + }
  233 +
  234 + // loop through services and attempt to stop and then start them (in the case of Linux,) or start and stop them (in the case of Windows)
  235 + // (Linux service is started after install, Windows is not)
  236 + foreach ($this->_services as $serviceName)
  237 + {
  238 + // check installed
  239 + $statusCheck = OS."ServiceInstalled";
  240 + $className = OS.$serviceName;
  241 + $service = new $className();
  242 + $installed = $this->$statusCheck($service);
  243 + if ($installed) {
  244 +
  245 + }
  246 + else {
  247 +
  248 + }
  249 +
  250 + // check start/stop - different orders dependant on system
  251 + foreach($processOrder as $operation)
  252 + {
  253 +// $opExec = 'service' . $operation;
  254 +// $opSuccess = $this->$opExec();
  255 +// if ($opSuccess) {
  256 +//
  257 +// }
  258 +// else {
  259 +//
  260 +// }
  261 + }
  262 + }
  263 + }
  264 +
  265 + // these next function are dupes of ones in steps/service.php and steps/configuration.php - abstract these to another class (parent or helper)
  266 + // and remove from here and original classes
  267 +
  268 + /**
  269 + * Check whether a given directory / file path exists and is writable
  270 + *
  271 + * @author KnowledgeTree Team
  272 + * @access private
  273 + * @param string $dir The directory / file to check
  274 + * @param boolean $create Whether to create the directory if it doesn't exist
  275 + * @return array The message and css class to use
  276 + */
  277 + private function checkPermission($dir, $create=false)
  278 + {
  279 + $exist = 'Directory does not exist';
  280 + $write = 'Directory is not writable';
  281 + $ret = array('class' => 'cross');
  282 +
  283 + if(!file_exists($dir)){
  284 + if($create === false){
  285 + $this->done = false;
  286 + $ret['msg'] = $exist;
  287 + return $ret;
  288 + }
  289 + $par_dir = dirname($dir);
  290 + if(!file_exists($par_dir)){
  291 + $this->done = false;
  292 + $ret['msg'] = $exist;
  293 + return $ret;
  294 + }
  295 + if(!is_writable($par_dir)){
  296 + $this->done = false;
  297 + $ret['msg'] = $exist;
  298 + return $ret;
  299 + }
  300 + mkdir($dir, '0755');
  301 + }
  302 +
  303 + if(is_writable($dir)){
  304 + $ret['class'] = 'tick';
  305 + return $ret;
  306 + }
  307 +
  308 + $this->done = false;
  309 + $ret['msg'] = $write;
  310 + return $ret;
  311 + }
  312 +
  313 + /**
  314 + * Check if windows service installed
  315 + *
  316 + * @author KnowledgeTree Team
  317 + * @param object
  318 + * @access public
  319 + * @return boolean
  320 + */
  321 + public function windowsServiceInstalled($service) {
  322 +// print_r($service, true)."<BR>";
  323 + $status = $service->status(); // Check if service has been installed
  324 + echo "STAT: ".$status."<BR>";
  325 + if($status != 'STOPPED') { // Check service status
  326 + $this->error[] = $service->getName()." Could not be added as a WINDOWS Service";
  327 + return false;
  328 + }
  329 + return true;
  330 + }
  331 +
  332 + /**
  333 + * Check if unix service installed
  334 + *
  335 + * @author KnowledgeTree Team
  336 + * @param object
  337 + * @access public
  338 + * @return boolean
  339 + */
  340 + public function unixServiceInstalled($service) {
  341 + $status = $service->status(); // Check if service has been installed
  342 + if($status != 'STARTED') { // Check service status
  343 + $this->error[] = $service->getName()." Could not be added as a UNIX Service";
  344 + return false;
  345 + }
  346 + return true;
  347 + }
  348 +
  349 + /**
  350 + * Starts all services
  351 + *
  352 + * @author KnowledgeTree Team
  353 + * @param object
  354 + * @access public
  355 + * @return mixed
  356 + */
  357 + public function installStep() {
  358 + foreach ($this->services as $serviceName) {
  359 + $className = OS.$serviceName;
  360 + $service = new $className();
  361 + $status = $this->serviceStart($service);
  362 +
  363 + }
  364 +
  365 + return true;
  366 + }
  367 +
  368 + /**
  369 + * Starts service
  370 + *
  371 + * @author KnowledgeTree Team
  372 + * @param object
  373 + * @access private
  374 + * @return string
  375 + */
  376 + private function serviceStart($service) {
  377 + if(OS == 'windows') {
  378 + $service->load(); // Load Defaults
  379 + $service->start(); // Start Service
  380 + return $service->status(); // Get service status
  381 + }
  382 + }
  383 + /**
  384 + * Stops service
  385 + *
  386 + * @author KnowledgeTree Team
  387 + * @param object
  388 + * @access private
  389 + * @return string
  390 + */
  391 + private function serviceStop($service) {
  392 + if(OS == 'windows') {
  393 + $service->load(); // Load Defaults
  394 + $service->stop(); // Stop Service
  395 + return $service->status(); // Get service status
  396 + }
  397 + }
  398 +
53 } 399 }
54 ?> 400 ?>
55 \ No newline at end of file 401 \ No newline at end of file
setup/wizard/steps/database.php
@@ -635,7 +635,7 @@ class database extends Step @@ -635,7 +635,7 @@ class database extends Step
635 * @return boolean 635 * @return boolean
636 */ 636 */
637 private function usedb($con) { 637 private function usedb($con) {
638 - if($this->_dbhandler->useBD($this->dname)) { 638 + if($this->_dbhandler->useDb($this->dname)) {
639 return true; 639 return true;
640 } else { 640 } else {
641 $this->error[] = "Error using database: "; 641 $this->error[] = "Error using database: ";
setup/wizard/steps/services.php
@@ -86,7 +86,7 @@ class services extends Step @@ -86,7 +86,7 @@ class services extends Step
86 * @access private 86 * @access private
87 * @var mixed 87 * @var mixed
88 */ 88 */
89 - private $java_ext_check = 'cross'; 89 + private $java_ext_check = 'cross_orange';
90 90
91 /** 91 /**
92 * Service Installed 92 * Service Installed
@@ -129,12 +129,6 @@ class services extends Step @@ -129,12 +129,6 @@ class services extends Step
129 $this->util = new InstallUtil(); 129 $this->util = new InstallUtil();
130 } 130 }
131 131
132 -  
133 -  
134 -// function getJavaResponse() {  
135 -// return $this->response;  
136 -// }  
137 -  
138 /** 132 /**
139 * Main control of services setup 133 * Main control of services setup
140 * 134 *
@@ -179,81 +173,70 @@ class services extends Step @@ -179,81 +173,70 @@ class services extends Step
179 $this->temp_variables['services'][] = array('class'=>'cross', 'msg'=>$serviceName." Could not be added as a Service"); 173 $this->temp_variables['services'][] = array('class'=>'cross', 'msg'=>$serviceName." Could not be added as a Service");
180 } 174 }
181 } 175 }
182 - $this->temp_variables['java_check'] = $this->java_check;  
183 - $this->temp_variables['java_ext_check'] = $this->java_ext_check;  
184 - $this->temp_variables['service_check'] = $this->service_check; 176 + $this->storeSilent();
  177 +
185 $errors = $this->getErrors(); 178 $errors = $this->getErrors();
186 if(!empty($errors)) 179 if(!empty($errors))
187 return false; 180 return false;
188 return true; 181 return true;
189 } 182 }
190 -  
191 - private function detSettings() {  
192 -// $cmd = $this->java." -version > output/outJV 2>&1 echo $!";  
193 -// echo $cmd;  
194 -// die('bb');  
195 -// $response = $this->util->pexec(SHELL_DIR."javaVersion.sh");  
196 -// if(file_exists(OUTPUT_DIR.'outJV')) {  
197 -// $tmp = file_get_contents(OUTPUT_DIR.'outJV');  
198 -// echo $tmp;  
199 -// preg_match('/"(.*)"/',$tmp, $matches);  
200 -// var_dump($matches);  
201 -// $fp->  
202 -// echo 'a';  
203 -// }  
204 -// var_dump($response);  
205 -// die('aa');  
206 -// var_dump($this->util->pexec($this->java.""));  
207 -// var_dump($this->util->pexec($this->java." -version"));  
208 - }  
209 183
210 public function javaChecks() { 184 public function javaChecks() {
211 - $this->temp_variables['extensions']['class'] = 'cross';  
212 - $this->temp_variables['extensions']['found'] = "Zend Java Bridge Required";  
213 - $this->temp_variables['version']['class'] = 'cross';  
214 - $this->temp_variables['version']['found'] = "Java Runtime Version Incorrect";  
215 - $this->temp_variables['java']['class'] = 'cross';  
216 - $this->temp_variables['java']['found'] = "Java runtime environment required"; 185 + $this->zendBridgeNotInstalled();
  186 + $this->javaVersionInCorrect(); // Set version to incorrect
  187 + $this->javaNotInstalled(); // Set java to not installed
217 if($this->util->javaSpecified()) { 188 if($this->util->javaSpecified()) {
218 - $this->detSettings(); 189 + $this->detSettings(); // AutoDetect java settings
219 } else { 190 } else {
220 - $this->useBridge(); 191 + $this->useBridge(); // Use Bridge to get java settings
221 } 192 }
222 193
223 } 194 }
224 195
225 - function useBridge() { 196 + private function detSettings() {
  197 + $javaExecutable = $this->util->javaSpecified();// Retrieve java bin
  198 + $cmd = "$javaExecutable -version > output/outJV 2>&1 echo $!";
  199 + $response = $this->util->pexec($cmd);
  200 + if(file_exists(OUTPUT_DIR.'outJV')) {
  201 + $tmp = file_get_contents(OUTPUT_DIR.'outJV');
  202 + preg_match('/"(.*)"/',$tmp, $matches);
  203 + if($matches[1] < $this->javaVersion) { // Check Version of java
  204 + $this->javaVersionInCorrect();
  205 + $this->error[] = "Requires Java 1.5+ to be installed";
  206 + } else {
  207 + $this->javaVersionCorrect();
  208 + $this->javaInstalled();
  209 + $this->java_check = 'tick';
  210 + }
  211 + }
  212 + }
  213 +
  214 + private function useBridge() {
226 $zendBridge = $this->zendBridge(); // Find Zend Bridge 215 $zendBridge = $this->zendBridge(); // Find Zend Bridge
227 if($zendBridge) { 216 if($zendBridge) {
228 - $this->temp_variables['extensions']['class'] = 'tick';  
229 - $this->temp_variables['extensions']['found'] = "Java Bridge Installed"; 217 + $this->zendBridgeInstalled();
230 if($this->checkZendBridge()) { // Make sure the Zend Bridge is functional 218 if($this->checkZendBridge()) { // Make sure the Zend Bridge is functional
231 $javaSystem = new Java('java.lang.System'); 219 $javaSystem = new Java('java.lang.System');
232 $version = $javaSystem->getProperty('java.version'); 220 $version = $javaSystem->getProperty('java.version');
233 $ver = substr($version, 0, 3); 221 $ver = substr($version, 0, 3);
234 if($ver < $this->javaVersion) { 222 if($ver < $this->javaVersion) {
235 - $this->temp_variables['version']['class'] = 'cross';  
236 - $this->temp_variables['version']['found'] = "Requires Java 1.5+ to be installed"; 223 + $this->javaVersionInCorrect();
237 $this->error[] = "Requires Java 1.5+ to be installed"; 224 $this->error[] = "Requires Java 1.5+ to be installed";
238 } else { 225 } else {
239 - $this->temp_variables['version']['class'] = 'tick';  
240 - $this->temp_variables['version']['found'] = "Java Version 1.5+ Installed"; 226 + $this->javaVersionCorrect();
241 } 227 }
242 } else { 228 } else {
243 - $this->warnings[] = "Zend Java Bridge Error";  
244 - $this->temp_variables['version']['class'] = 'cross_orange';  
245 - $this->temp_variables['version']['found'] = "Java Runtime Version Cannot be detected";  
246 - $this->temp_variables['extensions']['class'] = 'cross_orange';  
247 - $this->temp_variables['extensions']['found'] = "Zend Java Bridge Error"; 229 + $this->javaVersionWarning();
  230 + $this->zendBridgeWarning();
  231 + $this->warnings[] = "Zend Java Bridge Error";
248 $this->java_ext_check = 'cross_orange'; 232 $this->java_ext_check = 'cross_orange';
249 } 233 }
250 } else { 234 } else {
251 $this->warnings[] = "Zend Java Bridge Required"; 235 $this->warnings[] = "Zend Java Bridge Required";
252 } 236 }
253 if($this->java != '') { // Find Java JRE 237 if($this->java != '') { // Find Java JRE
254 - $this->temp_variables['java']['class'] = 'tick';  
255 - $this->temp_variables['java']['found'] = "Java Runtime Installed";  
256 - $this->java_check = 'tick'; 238 + $this->javaInstalled();
  239 + $this->java_check = 'tick';
257 } else { 240 } else {
258 $this->error[] = "Java runtime environment required"; 241 $this->error[] = "Java runtime environment required";
259 } 242 }
@@ -436,5 +419,53 @@ class services extends Step @@ -436,5 +419,53 @@ class services extends Step
436 { 419 {
437 return $this->temp_variables; 420 return $this->temp_variables;
438 } 421 }
  422 +
  423 + /* Helpers */
  424 +
  425 + private function javaInstalled() {
  426 + $this->temp_variables['java']['class'] = 'tick';
  427 + $this->temp_variables['java']['found'] = "Java Runtime Installed";
  428 + }
  429 +
  430 + private function javaNotInstalled() {
  431 + $this->temp_variables['java']['class'] = 'cross';
  432 + $this->temp_variables['java']['found'] = "Java runtime environment required";
  433 + }
  434 +
  435 + private function javaVersionCorrect() {
  436 + $this->temp_variables['version']['class'] = 'tick';
  437 + $this->temp_variables['version']['found'] = "Java Version 1.5+ Installed";
  438 + }
  439 +
  440 + private function javaVersionWarning() {
  441 + $this->temp_variables['version']['class'] = 'cross_orange';
  442 + $this->temp_variables['version']['found'] = "Java Runtime Version Cannot be detected";
  443 + }
  444 +
  445 + private function javaVersionInCorrect() {
  446 + $this->temp_variables['version']['class'] = 'cross';
  447 + $this->temp_variables['version']['found'] = "Requires Java 1.5+ to be installed";
  448 + }
  449 +
  450 + private function zendBridgeInstalled() {
  451 + $this->temp_variables['extensions']['class'] = 'tick';
  452 + $this->temp_variables['extensions']['found'] = "Java Bridge Installed";
  453 + }
  454 +
  455 + private function zendBridgeNotInstalled() {
  456 + $this->temp_variables['extensions']['class'] = 'cross_orange';
  457 + $this->temp_variables['extensions']['found'] = "Zend Java Bridge Not Installed";
  458 + }
  459 +
  460 + private function zendBridgeWarning() {
  461 + $this->temp_variables['extensions']['class'] = 'cross_orange';
  462 + $this->temp_variables['extensions']['found'] = "Zend Java Bridge Error";
  463 + }
  464 +
  465 + private function storeSilent() {
  466 + $this->temp_variables['java_check'] = $this->java_check;
  467 + $this->temp_variables['java_ext_check'] = $this->java_ext_check;
  468 + $this->temp_variables['service_check'] = $this->service_check;
  469 + }
439 } 470 }
440 ?> 471 ?>
441 \ No newline at end of file 472 \ No newline at end of file
setup/wizard/templates/complete.tpl
1 <h1>Installation Completed</h1> 1 <h1>Installation Completed</h1>
2 2
  3 +<h2>KnowledgeTree post-configuration checkup</h2>
  4 +
  5 +<p>This allows you to check that your KnowledgeTree configuration is set
  6 +up correctly. You can run this at any time after configuration to check
  7 +that things are still set up correctly.</p>
  8 +
3 <div class="errors"> 9 <div class="errors">
4 <?php if(isset($errors)) { 10 <?php if(isset($errors)) {
5 foreach($errors as $k=>$e) { 11 foreach($errors as $k=>$e) {
@@ -8,9 +14,49 @@ @@ -8,9 +14,49 @@
8 }?> 14 }?>
9 </div> 15 </div>
10 16
  17 +<div>
  18 + <h2>Paths and Permissions</h2>
  19 + <table>
  20 + <tr><?php echo $varDirectory; ?></tr>
  21 + <tr><?php echo $documentRoot; ?></tr>
  22 + <tr><?php echo $logDirectory; ?></tr>
  23 + <tr><?php echo $tmpDirectory; ?></tr>
  24 + <tr><?php echo $uploadDirectory; ?></tr>
  25 + <tr><?php echo $config; ?></tr>
  26 + <tr><?php echo $docLocation; ?></tr>
  27 + </table>
  28 +</div>
  29 +<br/>
  30 +<div>
  31 + <h2>Database connectivity</h2>
  32 + <table>
  33 + <tr><?php echo $dbConnectAdmin; ?></tr>
  34 + <tr><?php echo $dbConnectUser; ?></tr>
  35 + </table>
  36 + <h3>Privileges</h3>
  37 + <table>
  38 + <tr><?php echo $dbPrivileges; ?></tr>
  39 + <tr><?php echo $dbTransaction; ?></tr>
  40 + </table>
  41 +</div>
  42 +<br/>
  43 +<div>
  44 + <h2>Services</h2>
  45 + <table>
  46 + <tr><?php echo $luceneServiceStatus; ?></tr>
  47 + <tr><?php echo $schedulerServiceStatus; ?></tr>
  48 + </table>
  49 +</div>
  50 +
11 <form> 51 <form>
12 <div class="buttons"> 52 <div class="buttons">
13 <a href="index.php?step_name=complete&step=previous" class="previous">Previous</a> 53 <a href="index.php?step_name=complete&step=previous" class="previous">Previous</a>
  54 + <a href="">Refresh</a>
14 <a href="../../">Goto Login</a> 55 <a href="../../">Goto Login</a>
  56 + <?php
  57 + if (INSTALL_TYPE == 'Zend') {
  58 + echo '<a href="http://' . $_SERVER['HTTP_HOST'] . '/ZendServer/Index">Zend Server Configuration</a>';
  59 + }
  60 + ?>
15 </div> 61 </div>
16 </form> 62 </form>
17 \ No newline at end of file 63 \ No newline at end of file