Commit 79c38dcb6339cfe065472d40f38a1b73ff8dceff

Authored by jarrett
1 parent e3a4474f

Merge Work/Home

Commited By: Jarrett Jordaan

Reviewed By: Megan Watson
Showing 37 changed files with 570 additions and 145 deletions
setup/wizard/config/databases.xml
... ... @@ -15,7 +15,7 @@
15 15 <dport>3306</dport>
16 16 <dname>dms</dname>
17 17 <duname>root</duname>
18   - <dmsadminuser>dmsadminuser</dmsadminuser>
  18 + <dmsadminuser>dmsuser</dmsadminuser>
19 19 <dmsaupass>js9281djw</dmsaupass>
20 20 <dmsuser>dmsuser</dmsuser>
21 21 <dmsupass>djw9281js</dmsupass>
... ...
setup/wizard/htmlHelper.php 0 → 100644
  1 +<?php
  2 + require_once("path.php");
  3 +
  4 + class htmlHelper {
  5 + var $tags = array(
  6 + 'meta' => '<meta%s/>',
  7 + 'metalink' => '<link href="%s"%s/>',
  8 + 'link' => '<a href="%s"%s>%s</a>',
  9 + 'mailto' => '<a href="mailto:%s" %s>%s</a>',
  10 + 'form' => '<form %s>',
  11 + 'formend' => '</form>',
  12 + 'input' => '<input name="%s" %s/>',
  13 + 'textarea' => '<textarea name="%s" %s>%s</textarea>',
  14 + 'hidden' => '<input type="hidden" name="%s" %s/>',
  15 + 'checkbox' => '<input type="checkbox" name="%s" %s/>',
  16 + 'checkboxmultiple' => '<input type="checkbox" name="%s[]"%s />',
  17 + 'radio' => '<input type="radio" name="%s" id="%s" %s />%s',
  18 + 'selectstart' => '<select name="%s"%s>',
  19 + 'selectmultiplestart' => '<select name="%s[]"%s>',
  20 + 'selectempty' => '<option value=""%s>&nbsp;</option>',
  21 + 'selectoption' => '<option value="%s"%s>%s</option>',
  22 + 'selectend' => '</select>',
  23 + 'optiongroup' => '<optgroup label="%s"%s>',
  24 + 'optiongroupend' => '</optgroup>',
  25 + 'checkboxmultiplestart' => '',
  26 + 'checkboxmultipleend' => '',
  27 + 'password' => '<input type="password" name="%s" %s/>',
  28 + 'file' => '<input type="file" name="%s" %s/>',
  29 + 'file_no_model' => '<input type="file" name="%s" %s/>',
  30 + 'submit' => '<input type="submit" %s/>',
  31 + 'submitimage' => '<input type="image" src="%s" %s/>',
  32 + 'button' => '<input type="%s" %s/>',
  33 + 'image' => '<img src="%s" %s/>',
  34 + 'tableheader' => '<th%s>%s</th>',
  35 + 'tableheaderrow' => '<tr%s>%s</tr>',
  36 + 'tablecell' => '<td%s>%s</td>',
  37 + 'tablerow' => '<tr%s>%s</tr>',
  38 + 'block' => '<div%s>%s</div>',
  39 + 'blockstart' => '<div%s>',
  40 + 'blockend' => '</div>',
  41 + 'tag' => '<%s%s>%s</%s>',
  42 + 'tagstart' => '<%s%s>',
  43 + 'tagend' => '</%s>',
  44 + 'para' => '<p%s>%s</p>',
  45 + 'parastart' => '<p%s>',
  46 + 'label' => '<label for="%s"%s>%s</label>',
  47 + 'fieldset' => '<fieldset%s>%s</fieldset>',
  48 + 'fieldsetstart' => '<fieldset><legend>%s</legend>',
  49 + 'fieldsetend' => '</fieldset>',
  50 + 'legend' => '<legend>%s</legend>',
  51 + 'css' => '<link rel="%s" type="text/css" href="%s" %s/>',
  52 + 'style' => '<style type="text/css"%s>%s</style>',
  53 + 'charset' => '<meta http-equiv="Content-Type" content="text/html; charset=%s" />',
  54 + 'ul' => '<ul%s>%s</ul>',
  55 + 'ol' => '<ol%s>%s</ol>',
  56 + 'li' => '<li%s>%s</li>',
  57 + 'error' => '<div%s>%s</div>'
  58 + );
  59 +
  60 + function __construct() {
  61 + }
  62 +
  63 + function js($name) {
  64 + return "<script type=\"text/javascript\" src=\"resources/js/$name\"></script>";
  65 + }
  66 +
  67 + function css($name) {
  68 + return "<link rel=\"stylesheet\" type=\"text/css\" href=\"resources/css/$name\" />";
  69 + }
  70 +
  71 + function image($name, $options = array()) {
  72 + $path = "resources/graphics/$name";
  73 + $image = sprintf($this->tags['image'], $path, $this->_parseAttributes($options, null, '', ' '));
  74 +
  75 + return $image;
  76 + //return "<img src=\"resources/graphics/$name\"/>";
  77 + }
  78 +
  79 + function _parseAttributes($options, $exclude = null, $insertBefore = ' ', $insertAfter = null) {
  80 + if (is_array($options)) {
  81 + $options = array_merge(array('escape' => true), $options);
  82 +
  83 + if (!is_array($exclude)) {
  84 + $exclude = array();
  85 + }
  86 + $keys = array_diff(array_keys($options), array_merge((array)$exclude, array('escape')));
  87 + $values = array_intersect_key(array_values($options), $keys);
  88 + $escape = $options['escape'];
  89 + $attributes = array();
  90 +
  91 + foreach ($keys as $index => $key) {
  92 + $attributes[] = $this->__formatAttribute($key, $values[$index], $escape);
  93 + }
  94 + $out = implode(' ', $attributes);
  95 + } else {
  96 + $out = $options;
  97 + }
  98 + return $out ? $insertBefore . $out . $insertAfter : '';
  99 + }
  100 +
  101 + function __formatAttribute($key, $value, $escape = true) {
  102 + $attribute = '';
  103 + $attributeFormat = '%s="%s"';
  104 + $minimizedAttributes = array('compact', 'checked', 'declare', 'readonly', 'disabled', 'selected', 'defer', 'ismap', 'nohref', 'noshade', 'nowrap', 'multiple', 'noresize');
  105 + if (is_array($value)) {
  106 + $value = '';
  107 + }
  108 +
  109 + if (in_array($key, $minimizedAttributes)) {
  110 + if ($value === 1 || $value === true || $value === 'true' || $value == $key) {
  111 + $attribute = sprintf($attributeFormat, $key, $key);
  112 + }
  113 + } else {
  114 + $attribute = sprintf($attributeFormat, $key, $this->ife($escape, $this->h($value), $value));
  115 + }
  116 + return $attribute;
  117 + }
  118 +
  119 + function ife($condition, $val1 = null, $val2 = null) {
  120 + if (!empty($condition)) {
  121 + return $val1;
  122 + }
  123 + return $val2;
  124 + }
  125 +
  126 + function h($text, $charset = 'UTF-8') {
  127 + if (is_array($text)) {
  128 + return array_map('h', $text);
  129 + }
  130 + return htmlspecialchars($text, ENT_QUOTES, $charset);
  131 + }
  132 + }
  133 +?>
0 134 \ No newline at end of file
... ...
setup/wizard/install.lock
1   -Install Lock File
2 0 \ No newline at end of file
setup/wizard/installUtil.php
... ... @@ -254,9 +254,12 @@ class InstallUtil {
254 254 * @param boolean $create Whether to create the directory if it doesn't exist
255 255 * @return array The message and css class to use
256 256 */
257   - public function checkPermission($dir, $create=false)
  257 + public function checkPermission($dir, $create=false, $file = false)
258 258 {
259   - $exist = 'Directory doesn\'t exist';
  259 + if(!$file)
  260 + $exist = 'Directory doesn\'t exist';
  261 + else
  262 + $exist = 'File doesn\'t exist';
260 263 $write = 'Directory not writable';
261 264 $ret = array('class' => 'cross');
262 265  
... ...
setup/wizard/installWizard.php
... ... @@ -73,7 +73,7 @@ class InstallWizard {
73 73 protected $bypass = null;
74 74  
75 75 /**
76   - * Install bypass flag
  76 + * Level of debugger
77 77 *
78 78 * @author KnowledgeTree Team
79 79 * @access protected
... ... @@ -228,7 +228,7 @@ class InstallWizard {
228 228 if(isset($_GET['debug'])) {
229 229 $this->setDebugLevel($_GET['debug']);
230 230 } else {
231   - $this->setDebugLevel(0);
  231 + $this->setDebugLevel($this->debugLevel);
232 232 }
233 233 $this->setIUtil(new InstallUtil());
234 234 }
... ...
setup/wizard/lib/helpers/config-path-mock-windows 0 → 100644
  1 +C:\ktdms\var
  2 +C:\ktdms\config\config.ini
  3 +C:\ktdms\log
  4 +C:\ktdms\tmp
  5 +C:\ktdms\var\Documents
  6 +C:\ktdms\var\indexes
  7 +C:\ktdms\var\proxies
  8 +C:\ktdms\var\uploads
0 9 \ No newline at end of file
... ...
setup/wizard/lib/services/unixLucene.php
... ... @@ -42,6 +42,7 @@
42 42  
43 43 class unixLucene extends unixService {
44 44 public $util;
  45 +
45 46 private $shutdownScript;
46 47 private $indexerDir;
47 48 private $lucenePidFile;
... ... @@ -58,7 +59,6 @@ class unixLucene extends unixService {
58 59 }
59 60  
60 61 public function load() {
61   - $this->setSystemOutputDir();
62 62 $this->setLuceneDir(SYSTEM_DIR."bin".DS."luceneserver".DS);
63 63 $this->setIndexerDir(SYSTEM_DIR."search2".DS."indexing".DS."bin".DS);
64 64 $this->setLucenePidFile("lucene_test.pid");
... ... @@ -68,12 +68,6 @@ class unixLucene extends unixService {
68 68 $this->setShutdownScript("shutdown.php");
69 69 }
70 70  
71   - function setSystemOutputDir() {
72   - $conf = $this->util->getDataFromSession('configuration');
73   - print_r($conf);
74   - die;
75   -// $conf['path'][''];
76   - }
77 71  
78 72 public function setIndexerDir($indexerDir) {
79 73 $this->indexerDir = $indexerDir;
... ... @@ -190,7 +184,7 @@ class unixLucene extends unixService {
190 184 $state = $this->status();
191 185 if($state != 'STARTED') {
192 186 $cmd = "cd ".$this->getLuceneDir()."; ";
193   - $cmd .= "nohup java {$this->getJavaXmx()} {$this->getJavaXmx()} -jar ".$this->getLuceneSource()." > ".SYS_LOG_DIR."lucene.log 2>&1 & echo $!";
  187 + $cmd .= "nohup java {$this->getJavaXmx()} {$this->getJavaXmx()} -jar ".$this->getLuceneSource()." > ".$this->outputDir."lucene.log 2>&1 & echo $!";
194 188 if(DEBUG) {
195 189 echo "Command : $cmd<br/>";
196 190 return ;
... ...
setup/wizard/lib/services/unixOpenOffice.php
... ... @@ -68,7 +68,7 @@ class unixOpenOffice extends unixService {
68 68 }
69 69  
70 70 public function load() {
71   -
  71 +
72 72 $this->setPort("8100");
73 73 $this->setHost("localhost");
74 74 $this->setLog("openoffice.log");
... ... @@ -76,6 +76,8 @@ class unixOpenOffice extends unixService {
76 76 $this->setOption();
77 77 }
78 78  
  79 +
  80 +
79 81 private function setPort($port = "8100") {
80 82 $this->port = $port;
81 83 }
... ... @@ -156,7 +158,7 @@ class unixOpenOffice extends unixService {
156 158 public function start() {
157 159 $state = $this->status();
158 160 if($state != 'STARTED') {
159   - $cmd = "nohup {$this->getBin()} ".$this->getOption()." > ".SYS_LOG_DIR."{$this->getLog()} 2>&1 & echo $!";
  161 + $cmd = "nohup {$this->getBin()} ".$this->getOption()." > ".$this->outputDir."{$this->getLog()} 2>&1 & echo $!";
160 162 if(DEBUG) {
161 163 echo "Command : $cmd<br/>";
162 164 return ;
... ...
setup/wizard/lib/services/unixScheduler.php
... ... @@ -59,6 +59,7 @@ class unixScheduler extends unixService {
59 59 $this->setSchedulerDir(VAR_BIN_DIR);
60 60 $this->setSchedulerSourceLoc('schedulerTask.sh');
61 61 }
  62 +
62 63  
63 64 function setSystemDir($systemDir) {
64 65 $this->systemDir = $systemDir;
... ... @@ -155,10 +156,10 @@ class unixScheduler extends unixService {
155 156 $source = $this->getSchedulerSourceLoc();
156 157 $this->writeSchedulerTask();
157 158 if($source) { // Source
158   - $cmd = "nohup ".$source." > ".SYS_LOG_DIR."scheduler.log 2>&1 & echo $!";
  159 + $cmd = "nohup ".$source." > ".$this->outputDir."scheduler.log 2>&1 & echo $!";
159 160 } else { // Could be Stack
160 161 $source = SYS_BIN_DIR.$this->schedulerSource;
161   - $cmd = "nohup ".$source." > ".SYS_LOG_DIR."scheduler.log 2>&1 & echo $!";
  162 + $cmd = "nohup ".$source." > ".$this->outputDir."scheduler.log 2>&1 & echo $!";
162 163 }
163 164 if(DEBUG) {
164 165 echo "Command : $cmd<br/>";
... ...
setup/wizard/lib/services/unixService.php
... ... @@ -41,6 +41,30 @@
41 41 */
42 42  
43 43 class unixService extends Service {
  44 +
  45 + public $outputDir;
  46 + public $varDir;
  47 + /**
  48 + * Reference to utility object
  49 + *
  50 + * @author KnowledgeTree Team
  51 + * @access public
  52 + * @param none
  53 + * @return string
  54 + */
  55 + public $util;
  56 +
  57 + public function __construct() {
  58 + $this->util = new InstallUtil();
  59 + $this->setSystemDirs();
  60 + }
  61 +
  62 + function setSystemDirs() {
  63 + $conf = $this->util->getDataFromSession('configuration');
  64 + $this->outputDir = $conf['paths']['logDirectory']['path'].DS;
  65 + $this->varDir = $conf['paths']['varDirectory']['path'].DS;
  66 + }
  67 +
44 68 /**
45 69 * Retrieve Service name
46 70 *
... ...
setup/wizard/lib/services/windowsLucene.php
... ... @@ -121,6 +121,7 @@ class windowsLucene extends windowsService {
121 121 */
122 122 private $luceneDir;
123 123  
  124 +
124 125 /**
125 126 * Service name
126 127 *
... ... @@ -140,7 +141,7 @@ class windowsLucene extends windowsService {
140 141 * @return void
141 142 */
142 143 public function load() {
143   - $this->setSystemOutputDir();
  144 +
144 145 $this->setJavaBin();
145 146 $this->setLuceneDIR(SYSTEM_DIR."bin".DS."luceneserver");
146 147 $this->setLuceneExe("KTLuceneService.exe");
... ... @@ -151,12 +152,6 @@ class windowsLucene extends windowsService {
151 152 $this->setLuceneError("lucene-err.txt");
152 153 }
153 154  
154   - function setSystemOutputDir() {
155   - $conf = $this->util->getDataFromSession('configuration');
156   - print_r($conf);
157   - die;
158   -// $conf['path'][''];
159   - }
160 155  
161 156 /**
162 157 * Retrieve Status Service
... ... @@ -195,8 +190,8 @@ class windowsLucene extends windowsService {
195 190 }
196 191 }
197 192 // TODO: Will not detect, but a java pre-check is done in services, before this
198   - if(file_exists(SYS_OUT_DIR.'outJVHome')) {
199   - $this->javaBin = file_get_contents(SYS_OUT_DIR.'outJVHome');
  193 + if(file_exists($this->varDir.'outJVHome')) {
  194 + $this->javaBin = file_get_contents($this->varDir.'outJVHome');
200 195 if($this->javaBin != '') return true;
201 196 }
202 197  
... ... @@ -326,7 +321,7 @@ class windowsLucene extends windowsService {
326 321 * @return void
327 322 */
328 323 private function setLuceneOut($luceneOut) {
329   - $this->luceneOut = SYS_LOG_DIR.$luceneOut;
  324 + $this->luceneOut = $this->outputDir.$luceneOut;
330 325 }
331 326  
332 327 /**
... ... @@ -350,7 +345,7 @@ class windowsLucene extends windowsService {
350 345 * @return void
351 346 */
352 347 private function setLuceneError($luceneError) {
353   - $this->luceneError = SYS_LOG_DIR.$luceneError;
  348 + $this->luceneError = $this->outputDir.$luceneError;
354 349 }
355 350  
356 351 /**
... ...
setup/wizard/lib/services/windowsScheduler.php
... ... @@ -76,7 +76,7 @@ class windowsScheduler extends windowsService {
76 76 * @return string
77 77 */
78 78 public $name = "KTSchedulerTest";
79   -
  79 +
80 80 /**
81 81 * Load defaults needed by service
82 82 *
... ... @@ -86,12 +86,14 @@ class windowsScheduler extends windowsService {
86 86 * @return void
87 87 */
88 88 function load() {
89   - $this->setSchedulerDIR(SYS_OUT_DIR."bin");
  89 + $this->setSchedulerDIR($this->varDir."bin");
90 90 $this->setSchedulerScriptPath("taskrunner.bat");
91 91 $this->setSchedulerSource("schedulerService.php");
92 92  
93 93 }
94 94  
  95 +
  96 +
95 97 /**
96 98 * Set Scheduler Directory path
97 99 *
... ... @@ -101,6 +103,9 @@ class windowsScheduler extends windowsService {
101 103 * @return string
102 104 */
103 105 private function setSchedulerDIR($schedulerDIR) {
  106 + if(!file_exists($schedulerDIR)) {
  107 + @mkdir($schedulerDIR);
  108 + }
104 109 $this->schedulerDir = $schedulerDIR;
105 110 }
106 111  
... ... @@ -243,10 +248,10 @@ class windowsScheduler extends windowsService {
243 248  
244 249 private function writeTaskRunner() {
245 250 // Check if bin is readable and writable
246   - if(is_readable(SYS_OUT_DIR."bin") && is_writable(SYS_OUT_DIR."bin")) {
247   - if(DEBUG) {
248   - echo "Create {$this->getSchedulerDir()}\\taskrunner.bat<br>";
249   - }
  251 + if(DEBUG) {
  252 + echo "Attempt to Create {$this->getSchedulerDir()}\\taskrunner.bat<br>";
  253 + }
  254 + if(is_readable($this->varDir."bin") && is_writable($this->varDir."bin")) {
250 255 $fp = fopen($this->getSchedulerDir().""."\\taskrunner.bat", "w+");
251 256 $content = "@echo off \n";
252 257 $content .= "\"".PHP_DIR."php.exe\" "."\"{$this->getSchedulerSource()}\"";
... ...
setup/wizard/lib/services/windowsService.php
... ... @@ -59,11 +59,21 @@ class windowsService extends Service {
59 59 * @param none
60 60 * @return string
61 61 */
62   -
63 62 public $util;
64 63  
  64 + public $outputDir;
  65 +
  66 + public $varDir;
  67 +
65 68 public function __construct() {
66 69 $this->util = new InstallUtil();
  70 + $this->setSystemDirs();
  71 + }
  72 +
  73 + function setSystemDirs() {
  74 + $conf = $this->util->getDataFromSession('configuration');
  75 + $this->outputDir = $conf['paths']['logDirectory']['path'].DS;
  76 + $this->varDir = $conf['paths']['varDirectory']['path'].DS;
67 77 }
68 78  
69 79 /**
... ...
setup/wizard/path.php
... ... @@ -70,6 +70,9 @@
70 70 define('SERVICE_LIB', WIZARD_LIB."services".DS);
71 71 define('CONF_DIR', WIZARD_DIR."config".DS);
72 72 define('RES_DIR', WIZARD_DIR."resources".DS);
  73 + define('JS_DIR', RES_DIR."js".DS);
  74 + define('CSS_DIR', RES_DIR."css".DS);
  75 + define('IMG_DIR', RES_DIR."graphics".DS);
73 76 define('STEP_DIR', WIZARD_DIR."steps".DS);
74 77 define('TEMP_DIR', WIZARD_DIR."templates".DS);
75 78 define('SHELL_DIR', WIZARD_DIR."shells".DS);
... ...
setup/wizard/resources/wizard.css renamed to setup/wizard/resources/css/wizard.css
... ... @@ -3,7 +3,7 @@
3 3 body {
4 4 background-attachment:scroll;
5 5 background-color:transparent;
6   - background-image:url("graphics/dame/loginbg.png");
  6 + background-image:url("../graphics/dame/loginbg.png");
7 7 background-position:0 0;
8 8 background-repeat:repeat-x;
9 9 font-family:sans-serif;
... ... @@ -71,7 +71,7 @@ select {
71 71 }
72 72  
73 73 #header {
74   - background: transparent url("graphics/dame/installer_head.png") repeat scroll 0% 0%;
  74 + background: transparent url("../graphics/dame/installer_head.png") repeat scroll 0% 0%;
75 75 text-align: right;
76 76 font-size: 100%;
77 77 color: rgb(167, 167, 167);
... ... @@ -82,12 +82,12 @@ select {
82 82 }
83 83  
84 84 #wrapper {
85   - /*background: white url("graphics/background.gif") repeat-y left;*/
  85 + /*background: white url("../graphics/background.gif") repeat-y left;*/
86 86 }
87 87  
88 88 #container {
89 89 width: 100%;
90   - background: white url("graphics/background.gif") repeat-y left;
  90 + background: white url("../graphics/background.gif") repeat-y left;
91 91 float: right;
92 92 }
93 93  
... ... @@ -175,7 +175,7 @@ select {
175 175 }
176 176  
177 177 #footer {
178   - background-image:url("graphics/dame/navbar.png");
  178 + background-image:url("../graphics/dame/navbar.png");
179 179 height:35px;
180 180 }
181 181  
... ... @@ -187,7 +187,7 @@ select {
187 187 /* Content Styles */
188 188  
189 189 .logo {
190   - background: url("graphics/logo.png") no-repeat;
  190 + background: url("../graphics/logo.png") no-repeat;
191 191 background-position: top left;
192 192 height: 50px;
193 193 width: 200px;
... ... @@ -207,7 +207,7 @@ select {
207 207 }
208 208  
209 209 .indicator a {
210   - background:url("graphics/dame/tick1.png") no-repeat left;
  210 + background:url("../graphics/dame/tick1.png") no-repeat left;
211 211 padding-top:15px;
212 212 padding-bottom:10px;
213 213 padding-left:30px;
... ... @@ -215,7 +215,7 @@ select {
215 215 }
216 216  
217 217 .active {
218   - background:url("graphics/dame/tick1.png") no-repeat left;
  218 + background:url("../graphics/dame/tick1.png") no-repeat left;
219 219 padding-top:15px;
220 220 padding-bottom:10px;
221 221 padding-left:30px;
... ... @@ -223,7 +223,7 @@ select {
223 223 }
224 224  
225 225 .inactive {
226   - background:url("graphics/dame/tick2.png") no-repeat left;
  226 + background:url("../graphics/dame/tick2.png") no-repeat left;
227 227 padding-top:15px;
228 228 padding-bottom:10px;
229 229 padding-left:30px;
... ... @@ -231,7 +231,7 @@ select {
231 231 }
232 232  
233 233 .current {
234   - background:url("graphics/dame/dot.png") no-repeat left;
  234 + background:url("../graphics/dame/dot.png") no-repeat left;
235 235 padding-top:15px;
236 236 padding-bottom:10px;
237 237 padding-left:30px;
... ... @@ -239,20 +239,20 @@ select {
239 239 }
240 240  
241 241 .tick {
242   - background: url("graphics/tick.png") no-repeat;
  242 + background: url("../graphics/tick.png") no-repeat;
243 243 height: 16px;
244 244 width: 16px;
245 245 }
246 246  
247 247 .cross {
248   - background: url("graphics/cross.png") no-repeat;
  248 + background: url("../graphics/cross.png") no-repeat;
249 249 height: 16px;
250 250 width: 16px;
251 251 color:#A30000;
252 252 }
253 253  
254 254 .cross_orange {
255   - background: url("graphics/cross_orange.png") no-repeat;
  255 + background: url("../graphics/cross_orange.png") no-repeat;
256 256 height: 16px;
257 257 width: 16px;
258 258 color:#EC7725;
... ... @@ -289,7 +289,7 @@ select {
289 289 }
290 290  
291 291 .back {
292   - background-image: url("graphics/dame/kt_gradient.jpg");
  292 + background-image: url("../graphics/dame/kt_gradient.jpg");
293 293 background-repeat:repeat-x;
294 294 border:1px solid #CECECE;
295 295 float:left;
... ... @@ -305,7 +305,7 @@ select {
305 305 }
306 306  
307 307 .step input {
308   - background-image: url("graphics/dame/kt_gradient.jpg");
  308 + background-image: url("../graphics/dame/kt_gradient.jpg");
309 309 background-repeat:repeat-x;
310 310 border:1px solid #CECECE;
311 311 float:right;
... ... @@ -340,7 +340,7 @@ select {
340 340 }
341 341  
342 342 .powered-by {
343   - background: url("graphics/powered-by-kt.png") no-repeat;
  343 + background: url("../graphics/powered-by-kt.png") no-repeat;
344 344 background-position: center left;
345 345 height: 50px;
346 346 width: 140px;
... ... @@ -478,7 +478,7 @@ td.dir_description {
478 478 }
479 479  
480 480 .big_ok {
481   - background: url("graphics/big-ok.png") no-repeat;
  481 + background: url("../graphics/big-ok.png") no-repeat;
482 482 padding:4px;
483 483 /*width:16px;
484 484 height:16px;
... ... @@ -505,7 +505,7 @@ td.dir_description {
505 505 }
506 506  
507 507 #tooltips {
508   - background: url("graphics/question.gif") no-repeat;
  508 + background: url("../graphics/question.gif") no-repeat;
509 509 width:16px;
510 510 height:16px;
511 511 cursor:pointer;
... ...
setup/wizard/resources/form.js renamed to setup/wizard/resources/js/form.js
setup/wizard/resources/jquery.blockUI.js renamed to setup/wizard/resources/js/jquery.blockUI.js
setup/wizard/resources/jquery.form.js renamed to setup/wizard/resources/js/jquery.form.js
setup/wizard/resources/js/jquery.hotkeys.js 0 → 100644
  1 +/*
  2 +(c) Copyrights 2007 - 2008
  3 +
  4 +Original idea by by Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
  5 +
  6 +jQuery Plugin by Tzury Bar Yochay
  7 +tzury.by@gmail.com
  8 +http://evalinux.wordpress.com
  9 +http://facebook.com/profile.php?id=513676303
  10 +
  11 +Project's sites:
  12 +http://code.google.com/p/js-hotkeys/
  13 +http://github.com/tzuryby/hotkeys/tree/master
  14 +
  15 +License: same as jQuery license.
  16 +
  17 +USAGE:
  18 + // simple usage
  19 + $(document).bind('keydown', 'Ctrl+c', function(){ alert('copy anyone?');});
  20 +
  21 + // special options such as disableInIput
  22 + $(document).bind('keydown', {combi:'Ctrl+x', disableInInput: true} , function() {});
  23 +
  24 +Note:
  25 + This plugin wraps the following jQuery methods: $.fn.find, $.fn.bind and $.fn.unbind
  26 +
  27 +*/
  28 +
  29 +
  30 +(function (jQuery){
  31 + // keep reference to the original $.fn.bind and $.fn.unbind
  32 + jQuery.fn.__bind__ = jQuery.fn.bind;
  33 + jQuery.fn.__unbind__ = jQuery.fn.unbind;
  34 + jQuery.fn.__find__ = jQuery.fn.find;
  35 +
  36 + var hotkeys = {
  37 + version: '0.7.8',
  38 + override: /keydown|keypress|keyup/g,
  39 + triggersMap: {},
  40 +
  41 + specialKeys: { 27: 'esc', 9: 'tab', 32:'space', 13: 'return', 8:'backspace', 145: 'scroll',
  42 + 20: 'capslock', 144: 'numlock', 19:'pause', 45:'insert', 36:'home', 46:'del',
  43 + 35:'end', 33: 'pageup', 34:'pagedown', 37:'left', 38:'up', 39:'right',40:'down',
  44 + 112:'f1',113:'f2', 114:'f3', 115:'f4', 116:'f5', 117:'f6', 118:'f7', 119:'f8',
  45 + 120:'f9', 121:'f10', 122:'f11', 123:'f12' },
  46 +
  47 + shiftNums: { "`":"~", "1":"!", "2":"@", "3":"#", "4":"$", "5":"%", "6":"^", "7":"&",
  48 + "8":"*", "9":"(", "0":")", "-":"_", "=":"+", ";":":", "'":"\"", ",":"<",
  49 + ".":">", "/":"?", "\\":"|" },
  50 +
  51 + newTrigger: function (type, combi, callback) {
  52 + // i.e. {'keyup': {'ctrl': {cb: callback, disableInInput: false}}}
  53 + var result = {};
  54 + result[type] = {};
  55 + result[type][combi] = {cb: callback, disableInInput: false};
  56 + return result;
  57 + }
  58 + };
  59 + // add firefox num pad char codes
  60 + if (jQuery.browser.mozilla){
  61 + hotkeys.specialKeys = jQuery.extend(hotkeys.specialKeys, { 96: '0', 97:'1', 98: '2', 99:
  62 + '3', 100: '4', 101: '5', 102: '6', 103: '7', 104: '8', 105: '9' });
  63 + }
  64 +
  65 + // a wrapper around of $.fn.find
  66 + // see more at: http://groups.google.com/group/jquery-en/browse_thread/thread/18f9825e8d22f18d
  67 + jQuery.fn.find = function( selector ) {
  68 + this.query=selector;
  69 + return jQuery.fn.__find__.apply(this, arguments);
  70 + };
  71 +
  72 + jQuery.fn.unbind = function (type, combi, fn){
  73 + if (jQuery.isFunction(combi)){
  74 + fn = combi;
  75 + combi = null;
  76 + }
  77 + if (combi && typeof combi === 'string'){
  78 + var selectorId = ((this.prevObject && this.prevObject.query) || (this[0].id && this[0].id) || this[0]).toString();
  79 + var hkTypes = type.split(' ');
  80 + for (var x=0; x<hkTypes.length; x++){
  81 + delete hotkeys.triggersMap[selectorId][hkTypes[x]][combi];
  82 + }
  83 + }
  84 + // call jQuery original unbind
  85 + return this.__unbind__(type, fn);
  86 + };
  87 +
  88 + jQuery.fn.bind = function(type, data, fn){
  89 + // grab keyup,keydown,keypress
  90 + var handle = type.match(hotkeys.override);
  91 +
  92 + if (jQuery.isFunction(data) || !handle){
  93 + // call jQuery.bind only
  94 + return this.__bind__(type, data, fn);
  95 + }
  96 + else{
  97 + // split the job
  98 + var result = null,
  99 + // pass the rest to the original $.fn.bind
  100 + pass2jq = jQuery.trim(type.replace(hotkeys.override, ''));
  101 +
  102 + // see if there are other types, pass them to the original $.fn.bind
  103 + if (pass2jq){
  104 + // call original jQuery.bind()
  105 + result = this.__bind__(pass2jq, data, fn);
  106 + }
  107 +
  108 + if (typeof data === "string"){
  109 + data = {'combi': data};
  110 + }
  111 + if(data.combi){
  112 + for (var x=0; x < handle.length; x++){
  113 + var eventType = handle[x];
  114 + var combi = data.combi.toLowerCase(),
  115 + trigger = hotkeys.newTrigger(eventType, combi, fn),
  116 + selectorId = ((this.prevObject && this.prevObject.query) || (this[0].id && this[0].id) || this[0]).toString();
  117 +
  118 + //trigger[eventType][combi].propagate = data.propagate;
  119 + trigger[eventType][combi].disableInInput = data.disableInInput;
  120 +
  121 + // first time selector is bounded
  122 + if (!hotkeys.triggersMap[selectorId]) {
  123 + hotkeys.triggersMap[selectorId] = trigger;
  124 + }
  125 + // first time selector is bounded with this type
  126 + else if (!hotkeys.triggersMap[selectorId][eventType]) {
  127 + hotkeys.triggersMap[selectorId][eventType] = trigger[eventType];
  128 + }
  129 + // make trigger point as array so more than one handler can be bound
  130 + var mapPoint = hotkeys.triggersMap[selectorId][eventType][combi];
  131 + if (!mapPoint){
  132 + hotkeys.triggersMap[selectorId][eventType][combi] = [trigger[eventType][combi]];
  133 + }
  134 + else if (mapPoint.constructor !== Array){
  135 + hotkeys.triggersMap[selectorId][eventType][combi] = [mapPoint];
  136 + }
  137 + else {
  138 + hotkeys.triggersMap[selectorId][eventType][combi][mapPoint.length] = trigger[eventType][combi];
  139 + }
  140 +
  141 + // add attribute and call $.event.add per matched element
  142 + this.each(function(){
  143 + // jQuery wrapper for the current element
  144 + var jqElem = jQuery(this);
  145 +
  146 + // element already associated with another collection
  147 + if (jqElem.attr('hkId') && jqElem.attr('hkId') !== selectorId){
  148 + selectorId = jqElem.attr('hkId') + ";" + selectorId;
  149 + }
  150 + jqElem.attr('hkId', selectorId);
  151 + });
  152 + result = this.__bind__(handle.join(' '), data, hotkeys.handler)
  153 + }
  154 + }
  155 + return result;
  156 + }
  157 + };
  158 + // work-around for opera and safari where (sometimes) the target is the element which was last
  159 + // clicked with the mouse and not the document event it would make sense to get the document
  160 + hotkeys.findElement = function (elem){
  161 + if (!jQuery(elem).attr('hkId')){
  162 + if (jQuery.browser.opera || jQuery.browser.safari){
  163 + while (!jQuery(elem).attr('hkId') && elem.parentNode){
  164 + elem = elem.parentNode;
  165 + }
  166 + }
  167 + }
  168 + return elem;
  169 + };
  170 + // the event handler
  171 + hotkeys.handler = function(event) {
  172 + var target = hotkeys.findElement(event.currentTarget),
  173 + jTarget = jQuery(target),
  174 + ids = jTarget.attr('hkId');
  175 +
  176 + if(ids){
  177 + ids = ids.split(';');
  178 + var code = event.which,
  179 + type = event.type,
  180 + special = hotkeys.specialKeys[code],
  181 + // prevent f5 overlapping with 't' (or f4 with 's', etc.)
  182 + character = !special && String.fromCharCode(code).toLowerCase(),
  183 + shift = event.shiftKey,
  184 + ctrl = event.ctrlKey,
  185 + // patch for jquery 1.2.5 && 1.2.6 see more at:
  186 + // http://groups.google.com/group/jquery-en/browse_thread/thread/83e10b3bb1f1c32b
  187 + alt = event.altKey || event.originalEvent.altKey,
  188 + mapPoint = null;
  189 +
  190 + for (var x=0; x < ids.length; x++){
  191 + if (hotkeys.triggersMap[ids[x]][type]){
  192 + mapPoint = hotkeys.triggersMap[ids[x]][type];
  193 + break;
  194 + }
  195 + }
  196 +
  197 + //find by: id.type.combi.options
  198 + if (mapPoint){
  199 + var trigger;
  200 + // event type is associated with the hkId
  201 + if(!shift && !ctrl && !alt) { // No Modifiers
  202 + trigger = mapPoint[special] || (character && mapPoint[character]);
  203 + }
  204 + else{
  205 + // check combinations (alt|ctrl|shift+anything)
  206 + var modif = '';
  207 + if(alt) modif +='alt+';
  208 + if(ctrl) modif+= 'ctrl+';
  209 + if(shift) modif += 'shift+';
  210 +
  211 + // modifiers + special keys or modifiers + character or modifiers + shift character or just shift character
  212 + trigger = mapPoint[modif+special];
  213 + if (!trigger){
  214 + if (character){
  215 + trigger = mapPoint[modif+character]
  216 + || mapPoint[modif+hotkeys.shiftNums[character]]
  217 + // '$' can be triggered as 'Shift+4' or 'Shift+$' or just '$'
  218 + || (modif === 'shift+' && mapPoint[hotkeys.shiftNums[character]]);
  219 + }
  220 + }
  221 + }
  222 + if (trigger){
  223 + var result = false;
  224 + for (var x=0; x < trigger.length; x++){
  225 + if(trigger[x].disableInInput){
  226 + // double check event.currentTarget and event.target
  227 + var elem = jQuery(event.target);
  228 + if (jTarget.is("input") || jTarget.is("textarea")
  229 + || elem.is("input") || elem.is("textarea")) {
  230 + return true;
  231 + }
  232 + }
  233 + // call the registered callback function
  234 + result = result || trigger[x].cb.apply(this, [event]);
  235 + }
  236 + return result;
  237 + }
  238 + }
  239 + }
  240 + };
  241 + // place it under window so it can be extended and overridden by others
  242 + window.hotkeys = hotkeys;
  243 + return jQuery;
  244 +})(jQuery);
... ...
setup/wizard/resources/jquery.js renamed to setup/wizard/resources/js/jquery.js
setup/wizard/resources/wizard.js renamed to setup/wizard/resources/js/wizard.js
setup/wizard/steps/configuration.php
... ... @@ -294,8 +294,7 @@ class configuration extends Step
294 294 * @param array $dbconf
295 295 * @return array
296 296 */
297   - public function registerDBConfig($server, $dbconf) {
298   - // Adjust server variables
  297 + public function registerDBConfig($server, $dbconf) { // Adjust server variables
299 298 $server['dbName'] = array('where'=>'file', 'name'=>ucwords($dbconf['dname']), 'section'=>'db', 'value'=>$dbconf['dname'], 'setting'=>'dbName');
300 299 $server['dbUser'] = array('where'=>'file', 'name'=>ucwords($dbconf['duname']), 'section'=>'db', 'value'=>$dbconf['duname'], 'setting'=>'dbUser');
301 300 $server['dbPass'] = array('where'=>'file', 'name'=>ucwords($dbconf['dpassword']), 'section'=>'db', 'value'=>$dbconf['dpassword'], 'setting'=>'dbPass');
... ... @@ -306,6 +305,17 @@ class configuration extends Step
306 305 return $server;
307 306 }
308 307  
  308 + private function registerDirs() { // Adjust directories variables
  309 + $this->readConfigPath();
  310 + $dirs = $this->getFromConfigPath();
  311 + $directories['varDirectory'] = array('section'=>'urls', 'value'=>mysql_real_escape_string($dirs['varDirectory']['path']), 'setting'=>'varDirectory');
  312 + $directories['logDirectory'] = array('section'=>'urls', 'value'=>mysql_real_escape_string($dirs['logDirectory']['path']), 'setting'=>'logDirectory');
  313 + $directories['documentRoot'] = array('section'=>'urls', 'value'=>mysql_real_escape_string($dirs['documentRoot']['path']), 'setting'=>'documentRoot');
  314 + $directories['uiDirectory'] = array('section'=>'urls', 'value'=>'${fileSystemRoot}/presentation/lookAndFeel/knowledgeTree', 'setting'=>'uiDirectory');
  315 + $directories['tmpDirectory'] = array('section'=>'urls', 'value'=>mysql_real_escape_string($dirs['tmpDirectory']['path']), 'setting'=>'tmpDirectory');
  316 +
  317 + return $directories;
  318 + }
309 319 /**
310 320 * Perform the installation associated with the step.
311 321 * Variables required by the installation are stored within the session.
... ... @@ -315,13 +325,10 @@ class configuration extends Step
315 325 */
316 326 public function installStep()
317 327 {
318   - // get data from the server
319   - $conf = $this->getDataFromSession("configuration");
  328 + $conf = $this->getDataFromSession("configuration"); // get data from the server
320 329 $server = $conf['server'];
321 330 $paths = $conf['paths'];
322   -
323   - // initialise writing to config.ini
324   - $this->readConfigPath();
  331 + $this->readConfigPath(); // initialise writing to config.ini
325 332 $dirs = $this->getFromConfigPath();
326 333 if(isset($this->confpaths['configIni'])) { // Check if theres a config path
327 334 $configPath = realpath("../../{$this->confpaths['configIni']}"); // Relative to Config Path File
... ... @@ -335,26 +342,50 @@ class configuration extends Step
335 342 if(file_exists($configPath)) {
336 343 $ini = new Ini($configPath);
337 344 }
  345 + $this->writeUrlSection($ini);
  346 + $this->writeDBSection($ini, $server);
  347 + $this->writeDBPathSection($ini, $paths);
  348 + if(!$ini === false){ // write out the config.ini file
  349 + $ini->write();
  350 + }
  351 + $this->_dbhandler->close(); // close the database connection
  352 + $this->writeConfigPath(); // Write config file
  353 + }
338 354  
339   - // initialise the db connection
340   -
341   - // retrieve database information from session
342   - $dbconf = $this->getDataFromSession("database");
343   -
344   - // make db connection
345   - $this->_dbhandler->load($dbconf['dhost'], $dbconf['duname'], $dbconf['dpassword'], $dbconf['dname']);
346   -
347   - // add db config to server variables
348   - $server = $this->registerDBConfig($server, $dbconf);
349   -
  355 + private function writeUrlSection($ini) {
  356 + $directories = $this->registerDirs();
  357 + foreach($directories as $item) { // write server settings to config_settings table and config.ini
  358 + if(!$ini === false) {
  359 + $ini->updateItem($item['section'], $item['setting'], $item['value']);
  360 + }
  361 + }
  362 + }
  363 +
  364 + private function writeDBPathSection($ini, $paths) {
  365 + $table = 'config_settings';
  366 + if(is_array($paths)) { // write the paths to the config_settings table
  367 + foreach ($paths as $item){
  368 + if(empty($item['setting'])){
  369 + continue;
  370 + }
  371 + $value = mysql_real_escape_string($item['path']);
  372 + $setting = mysql_real_escape_string($item['setting']);
  373 + $sql = "UPDATE {$table} SET value = '{$value}' WHERE item = '{$setting}'";
  374 + $this->_dbhandler->query($sql);
  375 + }
  376 + }
  377 + }
  378 +
  379 + private function writeDBSection($ini, $server) {
  380 + $dbconf = $this->getDataFromSession("database"); // retrieve database information from session
  381 + $this->_dbhandler->load($dbconf['dhost'], $dbconf['duname'], $dbconf['dpassword'], $dbconf['dname']); // initialise the db connection
  382 + $server = $this->registerDBConfig($server, $dbconf); // add db config to server variables
350 383 $table = 'config_settings';
351   - // write server settings to config_settings table and config.ini
352   - foreach($server as $item){
353   -
354   - switch($item['where']){
  384 + foreach($server as $item) { // write server settings to config_settings table and config.ini
  385 + switch($item['where']) {
355 386 case 'file':
356 387 $value = $item['value'];
357   - if($value == 'yes'){
  388 + if($value == 'yes') {
358 389 $value = 'true';
359 390 }
360 391 if($value == 'no'){
... ... @@ -364,7 +395,6 @@ class configuration extends Step
364 395 $ini->updateItem($item['section'], $item['setting'], $value);
365 396 }
366 397 break;
367   -
368 398 case 'db':
369 399 $value = mysql_real_escape_string($item['value']);
370 400 $setting = mysql_real_escape_string($item['setting']);
... ... @@ -374,34 +404,8 @@ class configuration extends Step
374 404 break;
375 405 }
376 406 }
377   -
378   - // write the paths to the config_settings table
379   - if(is_array($paths)) {
380   - foreach ($paths as $item){
381   - if(empty($item['setting'])){
382   - continue;
383   - }
384   -
385   - $value = mysql_real_escape_string($item['path']);
386   - $setting = mysql_real_escape_string($item['setting']);
387   -
388   - $sql = "UPDATE {$table} SET value = '{$value}' WHERE item = '{$setting}'";
389   - $this->_dbhandler->query($sql);
390   - }
391   - }
392   -
393   - // write out the config.ini file
394   - if(!$ini === false){
395   - $ini->write();
396   - }
397   -
398   - // close the database connection
399   - $this->_dbhandler->close();
400   -
401   - // Write config file
402   - $this->writeConfigPath();
403 407 }
404   -
  408 +
405 409 /**
406 410 * Get the server settings information
407 411 *
... ... @@ -473,7 +477,10 @@ class configuration extends Step
473 477 if(WINDOWS_OS)
474 478 $path = preg_replace('/\//', '\\',$path);
475 479 $dirs[$key]['path'] = $path;
476   - $class = $this->util->checkPermission($path, $dir['create']);
  480 + if(isset($dir['file']))
  481 + $class = $this->util->checkPermission($path, $dir['create'], true);
  482 + else
  483 + $class = $this->util->checkPermission($path, $dir['create']);
477 484 if($class['class'] != 'tick') {
478 485 $this->temp_variables['paths_perms'] = $class['class'];
479 486 $this->done = false;
... ... @@ -525,7 +532,7 @@ class configuration extends Step
525 532 array('name' => 'Log Directory', 'setting' => 'logDirectory', 'path' => $_POST['logDirectory'], 'create' => true),
526 533 array('name' => 'Temporary Directory', 'setting' => 'tmpDirectory', 'path' => $_POST['tmpDirectory'], 'create' => true),
527 534 array('name' => 'Uploads Directory', 'setting' => 'uploadDirectory', 'path' => $_POST['uploadDirectory'], 'create' => true),
528   - array('name' => 'Configuration File', 'setting' => 'configFile', 'path' => $_POST['configFile'], 'create' => false),
  535 + array('name' => 'Configuration File', 'setting' => 'configFile', 'path' => $_POST['configFile'], 'create' => false, 'file'=>true),
529 536 );
530 537 }
531 538  
... ... @@ -540,17 +547,11 @@ class configuration extends Step
540 547 private function getFromConfigPath() {
541 548 $configs = array();
542 549 if(isset($this->confpaths['configIni'])) { // Simple check to see if any paths were written
543   - $configPath = realpath("../../{$this->confpaths['configIni']}"); // Relative to Config Path File
544   - if($configPath == '') { // Absolute path probably entered
545   - $configPath = realpath("{$this->confpaths['configIni']}"); // Get absolute path
546   - if($configPath == '') {
547   - $configPath = realpath('../../config/config.ini');
548   - }
549   - }
  550 + $configPath = $this->confpaths['configIni']; // Get absolute path
550 551 } else {
551 552 $configPath = '${fileSystemRoot}/config/config.ini';
552 553 }
553   - $configs['configFile'] = array('name' => 'Configuration File', 'setting' => 'configFile', 'path' => $configPath, 'create' => false);
  554 + $configs['configFile'] = array('name' => 'Configuration File', 'setting' => 'configFile', 'path' => $configPath, 'create' => false, 'file'=>true);
554 555 if(isset($this->confpaths['Documents'])) {
555 556 $docsPath = $this->confpaths['Documents'];
556 557 } else {
... ... @@ -610,7 +611,7 @@ class configuration extends Step
610 611 if(!$configPath) return false;
611 612 $ini = new Ini($configPath);
612 613 $data = $ini->getFileByLine();
613   - $firstline = true;
  614 + $firstline = true;
614 615 foreach ($data as $k=>$v) {
615 616 if($firstline) { // First line holds the var directory
616 617 $firstline = false;
... ...
setup/wizard/template.php
... ... @@ -81,7 +81,7 @@ class Template
81 81 if($isA) {
82 82 $value = $value->fetch();
83 83 }
84   - $this->template_vars[$name] = $value;
  84 + $this->template_vars[$name] = $value;
85 85 }
86 86  
87 87  
... ... @@ -99,7 +99,9 @@ class Template
99 99 if (!file_exists($file)) {
100 100 trigger_error('Template file '.$file.' does not exist ', E_USER_ERROR);
101 101 }
  102 + $this->template_vars['html'] = new htmlHelper();
102 103 extract($this->template_vars); // Extract the vars to local namespace
  104 +
103 105 ob_start();
104 106 include($file);
105 107 $contents = ob_get_contents();
... ...
setup/wizard/templates/complete.tpl
... ... @@ -126,4 +126,4 @@
126 126 }
127 127 ?>
128 128 </form>
129   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
130 129 \ No newline at end of file
  130 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
131 131 \ No newline at end of file
... ...
setup/wizard/templates/configuration.tpl
... ... @@ -118,4 +118,4 @@
118 118 <input type="submit" name="Previous" value="Previous" class="button_previous"/>
119 119 <input type="submit" name="Next" value="Next" class="button_next"/>
120 120 </form>
121   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
  121 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
... ...
setup/wizard/templates/configuration_confirm.tpl
... ... @@ -94,4 +94,4 @@
94 94 <input type="submit" name="Edit" value="Edit" class="button_previous"/>
95 95 <input type="submit" name="Confirm" value="Confirm" class="button_next"/>
96 96 </form>
97   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
  97 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
... ...
setup/wizard/templates/database.tpl
... ... @@ -142,7 +142,7 @@ An second user is required for normal database interaction, the reading and writ
142 142 <input type="submit" name="Next" value="next" class="button_next"/>
143 143 </div>
144 144 </form>
145   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
  145 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
146 146 <script type="text/javascript">
147 147 $('#dname').focus();
148 148 </script>
149 149 \ No newline at end of file
... ...
setup/wizard/templates/database_confirm.tpl
... ... @@ -101,4 +101,4 @@
101 101 <input type="submit" name="Edit" value="Edit" class="button_previous"/>
102 102 <input type="submit" name="Confirm" value="Confirm" class="button_next"/>
103 103 </form>
104   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
105 104 \ No newline at end of file
  105 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
106 106 \ No newline at end of file
... ...
setup/wizard/templates/dependencies.tpl
... ... @@ -151,4 +151,4 @@
151 151 <input type="submit" name="Previous" value="Previous" class="button_previous"/>
152 152 <input type="submit" name="Next" value="Next" class="button_next"/>
153 153 </form>
154   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
155 154 \ No newline at end of file
  155 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
156 156 \ No newline at end of file
... ...
setup/wizard/templates/error.tpl
... ... @@ -2,9 +2,9 @@
2 2 <html>
3 3 <head>
4 4 <title>KnowledgeTree Installer</title>
5   - <script type="text/javascript" src="resources/jquery-tooltip/lib/jquery.js"></script>
6   - <script type="text/javascript" src="resources/wizard.js" ></script>
7   - <link rel="stylesheet" type="text/css" href="resources/wizard.css" />
  5 + <script type="text/javascript" src="resources/js/jquery-tooltip/lib/jquery.js"></script>
  6 + <script type="text/javascript" src="resources/js/wizard.js" ></script>
  7 + <link rel="stylesheet" type="text/css" href="resources/css/wizard.css" />
8 8  
9 9 </head>
10 10  
... ...
setup/wizard/templates/install.tpl
... ... @@ -7,9 +7,9 @@
7 7 <p class="empty_space">
8 8 The wizard will now complete the installation and run a final check on the system.
9 9 </p>
10   - <div class="demo"><img src="resources/graphics/kt_browse.png" /></div>
  10 + <div class="demo"><?php echo $html->image('dame/kt_browse.png'); ?></div>
11 11 </div>
12 12 <input type="submit" name="Previous" value="Previous" class="button_previous"/>
13 13 <input type="submit" name="Install" value="Install" class="button_next"/>
14 14 </form>
15   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
16 15 \ No newline at end of file
  16 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
17 17 \ No newline at end of file
... ...
setup/wizard/templates/license.tpl
... ... @@ -334,7 +334,7 @@ govern.
334 334 </div>
335 335 <input id="accept" type="hidden" name="license" value=""/>
336 336 <input type="submit" name="Previous" value="Previous" class="button_previous"/>
  337 + <input type="submit" name="Next" value="I Agree" onclick="javascript:{document.getElementById('accept').value = 1;}" class="button_next"/>
337 338 <input type="submit" name="Next" value="I Disagree" onclick="javascript:{document.getElementById('accept').value = 0;}" class="button_next"/>
338   - <input type="submit" name="Next" value="I Agree" onclick="javascript:{document.getElementById('accept').value = 1;}" class="button_next"/>
339 339 </form>
340   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
341 340 \ No newline at end of file
  341 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
342 342 \ No newline at end of file
... ...
setup/wizard/templates/registration.tpl
... ... @@ -29,7 +29,7 @@
29 29 <td rowspan='6' width='5%'>&nbsp;</td>
30 30 <td><input value="<?php echo $first_name; ?>" name='submitted[first_name]' id='first' size='<?php echo $input_width; ?>' style="float:left;"/></td>
31 31 <td rowspan='6' width='5%'>&nbsp;</td>
32   - <td rowspan='6'> <img src='resources/graphics/dropbox.png' /> </td>
  32 + <td rowspan='6'> <?php echo $html->image('dropbox.png'); ?> </td>
33 33 </tr>
34 34  
35 35 <tr>
... ... @@ -107,7 +107,7 @@
107 107 <input type="submit" name="Previous" value="Previous" onclick="w.pClick()" class="button_previous"/>
108 108 <input type="submit" name="Next" value="Register" onclick="w.nClick()" class="button_next"/>
109 109 </form>
110   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
  110 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
111 111 <script type="text/javascript">
112 112 $('#first').focus();
113 113 </script>
114 114 \ No newline at end of file
... ...
setup/wizard/templates/registration_confirm.tpl
... ... @@ -6,9 +6,9 @@
6 6 <p class="empty_space">
7 7 Thank you for signing up. You'll receive an email from us shortly with download instructions for the KnowledgeTree Drop Box software.
8 8 </p>
9   - <div class="demo"><img src="resources/graphics/kt_browse.png" /></div>
  9 + <div class="demo"><?php echo $html->image('kt_browse.png'); ?></div>
10 10 </div>
11 11 <input type="submit" name="Previous" value="Previous" class="button_previous"/>
12 12 <input type="submit" name="Confirm" value="Next" class="button_next"/>
13 13 </form>
14   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
15 14 \ No newline at end of file
  15 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
16 16 \ No newline at end of file
... ...
setup/wizard/templates/services.tpl
... ... @@ -196,4 +196,4 @@
196 196 <input type="submit" name="Previous" value="Previous" class="button_previous"/>
197 197 <input type="submit" name="Next" value="Next" class="button_next"/>
198 198 </form>
199   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
200 199 \ No newline at end of file
  200 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
201 201 \ No newline at end of file
... ...
setup/wizard/templates/welcome.tpl
... ... @@ -4,9 +4,9 @@
4 4 <br/>
5 5 <br/>
6 6 <p class="empty_space"> This wizard will lead you through the steps needed to install and configure KnowledgeTree on your server. </p>
7   - <div class="demo"><img src="resources/graphics/kt_browse.png" /></div>
  7 + <div class="demo"><?php echo $html->image('kt_browse.png'); ?> </div>
8 8 </div>
9 9 <input type="submit" name="Next" value="Next" class="button_next"/>
10 10 <!-- <input type="submit" name="Migrate" value="Migrate" class="button_next"/>-->
11 11 </form>
12   -<?php if (AJAX) { ?> <script type="text/javascript" src="resources/form.js"></script> <?php } ?>
13 12 \ No newline at end of file
  13 +<?php if (AJAX) { echo $html->js('form.js'); } ?>
14 14 \ No newline at end of file
... ...
setup/wizard/templates/wizard.tpl
... ... @@ -2,16 +2,17 @@
2 2 <html>
3 3 <head>
4 4 <title>KnowledgeTree Installer</title>
5   - <script type="text/javascript" src="resources/jquery.js"></script>
6   - <script type="text/javascript" src="resources/jquery.form.js"></script>
7   - <script type="text/javascript" src="resources/jquery.blockUI.js"></script>
8   - <script type="text/javascript" src="resources/wizard.js" ></script>
9   - <link rel="stylesheet" type="text/css" href="resources/wizard.css" />
  5 + <?php echo $html->js('jquery.js'); ?>
  6 + <?php echo $html->js('jquery.form.js'); ?>
  7 + <?php echo $html->js('jquery.blockUI.js'); ?>
  8 + <?php echo $html->js('jquery.hotkeys.js'); ?>
  9 + <?php echo $html->js('wizard.js'); ?>
  10 + <?php echo $html->css('wizard.css'); ?>
10 11 </head>
11 12 <body onload="">
12 13 <div id="outer-wrapper">
13 14 <div id="header">
14   - <div id="logo"><img src="resources/graphics/dame/installer-header_logo.png"/></div>
  15 + <div id="logo"><?php echo $html->image('dame/installer-header_logo.png'); ?> </div>
15 16 <div id="install_details">
16 17 <span style="font-size:120%;"> <?php echo $vars['install_version']; ?> </span>
17 18 <span style="font-size:120%;"><?php echo $vars['install_type']; ?></span>
... ... @@ -27,13 +28,13 @@
27 28 <?php echo $content; ?>
28 29 </div>
29 30 </div>
30   - <div id="loading" style="display:none;"> <img src="resources/graphics/loading.gif" height="32px" width="32px"> </div>
  31 + <div id="loading" style="display:none;"> <?php echo $html->image('loading.gif', array("height"=>"32px", "width"=>"32px")); ?> </div>
31 32 </div>
32 33 <div class="clearing">&nbsp;</div>
33 34 </div>
34 35  
35 36 <div id="footer">
36   - <img width="105" height="23" align="right" src="resources/graphics/dame/powered-by-kt.png" style="padding: 5px;"/>
  37 + <?php echo $html->image('dame/powered-by-kt.png', array("height"=>"23px", "width"=>"105px", "style"=>"padding: 5px;")); ?>
37 38 </div>
38 39 </div>
39 40 </body>
... ...