[Eis-commits] SF.net SVN: eis: [207] trunk
Status: Pre-Alpha
Brought to you by:
baslijnse
|
From: <luu...@us...> - 2007-09-12 00:45:40
|
Revision: 207
http://eis.svn.sourceforge.net/eis/?rev=207&view=rev
Author: luukvandenbroek
Date: 2007-09-11 17:45:37 -0700 (Tue, 11 Sep 2007)
Log Message:
-----------
fixed environment all elements are functional now redirect after deleting is not quite right yet as it can fetch wrong page depending on parent
Modified Paths:
--------------
trunk/cfg/applications.xml
trunk/cfg/environments.xml
trunk/mod/eis_engine/elements/AddEnvironment.php
trunk/mod/eis_engine/elements/DeleteEnvironment.php
trunk/mod/eis_engine/elements/DisplayEnvironment.php
trunk/mod/eis_engine/elements/EditEnvironment.php
trunk/mod/eis_engine/locales/en_en/strings.xml
trunk/mod/eis_engine/services/ConfigService.php
Modified: trunk/cfg/applications.xml
===================================================================
--- trunk/cfg/applications.xml 2007-09-11 16:56:12 UTC (rev 206)
+++ trunk/cfg/applications.xml 2007-09-12 00:45:37 UTC (rev 207)
@@ -18,4 +18,10 @@
<application>examples</application>
<environment>minimal</environment>
</application>
+ <application>
+ <name>test</name>
+ <module>eis_engine</module>
+ <application>welcome</application>
+ <environment>minimal</environment>
+ </application>
</applications>
Modified: trunk/cfg/environments.xml
===================================================================
--- trunk/cfg/environments.xml 2007-09-11 16:56:12 UTC (rev 206)
+++ trunk/cfg/environments.xml 2007-09-12 00:45:37 UTC (rev 207)
@@ -1,33 +1,37 @@
<?xml version="1.0" encoding="utf-8" ?>
<environments>
- <default>live</default>
<environment>
<name>install</name>
- <title>EIS Installation environment</title>
+ <title>EIS install environment</title>
<admin>root@localhost</admin>
-
<show_errors>off</show_errors>
<mail_errors>off</mail_errors>
+ <mysql_host></mysql_host>
+ <mysql_user></mysql_user>
+ <mysql_password></mysql_password>
+ <mysql_database></mysql_database>
+ <data_dir></data_dir>
</environment>
<environment>
<name>minimal</name>
- <title>EIS Minimal environment</title>
+ <title>EIS minimal environment</title>
<admin>root@localhost</admin>
-
<show_errors>on</show_errors>
<mail_errors>off</mail_errors>
+ <mysql_host></mysql_host>
+ <mysql_user></mysql_user>
+ <mysql_password></mysql_password>
+ <mysql_database></mysql_database>
+ <data_dir></data_dir>
</environment>
<environment>
<name>dev</name>
<title>EIS Development environment</title>
<admin>root@localhost</admin>
-
<http_user>dev</http_user>
<http_password>dev</http_password>
-
<show_errors>off</show_errors>
<mail_errors>off</mail_errors>
-
<mysql_host>localhost:8889</mysql_host>
<mysql_user>root</mysql_user>
<mysql_password></mysql_password>
@@ -38,13 +42,10 @@
<name>test</name>
<title>EIS Test environment</title>
<admin>root@localhost</admin>
-
<http_user>test</http_user>
<http_password>test</http_password>
-
<show_errors>off</show_errors>
<mail_errors>on</mail_errors>
-
<mysql_host>localhost</mysql_host>
<mysql_user>root</mysql_user>
<mysql_password></mysql_password>
@@ -55,10 +56,8 @@
<name>live</name>
<title>EIS Live environment</title>
<admin>root@localhost</admin>
-
<show_errors>off</show_errors>
<mail_errors>on</mail_errors>
-
<mysql_host>localhost</mysql_host>
<mysql_user>root</mysql_user>
<mysql_password></mysql_password>
Modified: trunk/mod/eis_engine/elements/AddEnvironment.php
===================================================================
--- trunk/mod/eis_engine/elements/AddEnvironment.php 2007-09-11 16:56:12 UTC (rev 206)
+++ trunk/mod/eis_engine/elements/AddEnvironment.php 2007-09-12 00:45:37 UTC (rev 207)
@@ -1,47 +1,56 @@
<?php
class eis_engine_AddEnvironment extends Element {
- function view_default($id) {
+ function view_default($args) {
$sConfig =& $this->e->getService('eis_engine','ConfigService');
$sWidget =& $this->e->getService('eis_widget','MainService');
$path = $this->getPath();
$name = $path[count($path) -2];
- $env = array();
+ $fields = array('name','title','admin','show_errors','mail_errors','mysql_host','mysql_user','mysql_password','mysql_database','data_dir');
+ $defaults = array('show_errors' => 'off', 'mail_errors' => 'on');
+ $posted = $this->e->session->get('form','page');
+
+
+ $env = $sWidget->fillValues($fields,$defaults,$posted,$args);
+
$labels = array();
$inputs = array();
$labels[] = 'eis_engine.l.name';
- $inputs[] = $sWidget->displayString($env['name']);
-
+ $inputs[] = $sWidget->inputString('name',$env['name']);
+
+ $labels[] = 'eis_engine.l.title';
+ $inputs[] = $sWidget->inputString('title',$env['title']);
+
$labels[] = 'eis_engine.l.admin';
- $inputs[] = $sWidget->inputString('module',$env['admin']);
+ $inputs[] = $sWidget->inputString('admin',$env['admin']);
$options = array();
$options[] = array('value' => 'on', 'label' => $this->e->getString('eis_engine.l.on'));
$options[] = array('value' => 'off', 'label' => $this->e->getString('eis_engine.l.off'));
$labels[] = 'eis_engine.l.show_errors';
- $inputs[] = $sWidget->inputString('module',isset($env['show_errors']) ? $env['show_errors']: 'off',$options);
+ $inputs[] = $sWidget->inputString('show_errors',$env['show_errors'],$options);
$labels[] = 'eis_engine.l.mail_errors';
- $inputs[] = $sWidget->inputString('module',isset($env['mail_errors']) ? $env['mail_errors']: 'on',$options);
+ $inputs[] = $sWidget->inputString('mail_errors',$env['mail_errors'],$options);
$labels[] = 'eis_engine.l.mysql_host';
- $inputs[] = $sWidget->inputString('module', isset($env['mysql_host']) ? $env['mysql_host']: '');
+ $inputs[] = $sWidget->inputString('mysql_host',$env['mysql_host']);
$labels[] = 'eis_engine.l.mysql_user';
- $inputs[] = $sWidget->inputString('module',isset($env['mysql_user']) ? $env['mysql_user']: '');
+ $inputs[] = $sWidget->inputString('mysql_user',$env['mysql_user']);
$labels[] = 'eis_engine.l.mysql_password';
- $inputs[] = $sWidget->inputString('module',isset($env['mysql_password']) ? $env['mysql_password']: '');
+ $inputs[] = $sWidget->inputString('mysql_password',$env['mysql_password']);
$labels[] = 'eis_engine.l.mysql_database';
- $inputs[] = $sWidget->inputString('module',isset($env['mysql_database']) ? $env['mysql_database']: '');
+ $inputs[] = $sWidget->inputString('mysql_database',$env['mysql_database']);
$labels[] = 'eis_engine.l.data_dir';
- $inputs[] = $sWidget->inputString('module',isset($env['data_dir']) ? $env['data_dir']: '');
+ $inputs[] = $sWidget->inputString('data_dir',$env['data_dir']);
$form = $sWidget->formTable($labels, $inputs);
@@ -51,20 +60,24 @@
}
function action_ok($data){
- print_r($data);
- exit;
$sConfig =& $this->e->getService('eis_engine','ConfigService');
$environment = array();
foreach($data as $k => $v){
$environment[$k] = $v;
}
+
+ $sConfig->createEnvironment($environment);
- if($sConfig->createEnvironment($environment)){
- $this->e->redirect->hrefPreviousPage();
- }else{
- return;
- }
+ if($sConfig->success()) {
+ $this->e->showMessage('eis_engine.m.environment.added',array($environment['name']));
+ $this->e->redirect($this->e->hrefParentPage());
+ } else {
+ $this->setPost($data);
+ $this->e->showServiceError($sConfig->getError());
+ $this->e->redirect($this->e->hrefCurrentPage());
+ }
+
}
}
?>
Modified: trunk/mod/eis_engine/elements/DeleteEnvironment.php
===================================================================
--- trunk/mod/eis_engine/elements/DeleteEnvironment.php 2007-09-11 16:56:12 UTC (rev 206)
+++ trunk/mod/eis_engine/elements/DeleteEnvironment.php 2007-09-12 00:45:37 UTC (rev 207)
@@ -7,15 +7,36 @@
$sWidget =& $this->e->getService('eis_widget');
$path = $this->getPath();
- $name = $path[count($path) -1];
-
+ $name = $path[count($path) -2];
$env = $sConfig->getEnvironment($name);
if($env == null) {
$this->e->error(404);
}
+
+ $form = $sWidget->displayString($this->e->getString('eis_engine.q.delete.environment', array($name)));
+ $form .= $sWidget->buttonSetOkCancel();
+ print $sWidget->form($form,$this->e->hrefAction('ok'));
+
+
+ }
+ function action_ok(){
+ $sConfig =& $this->e->getService('eis_engine','ConfigService');
+ $path = $this->getPath();
+ $name = $path[count($path) -2];
+
+ $sConfig->deleteEnvironment($name);
+
+ if($sConfig->success()) {
+ $this->e->showMessage('eis_engine.m.environment.deleted',array($name));
+ $this->e->redirect($this->e->hrefPreviousPage(2));
+ } else {
+ $this->setPost($data);
+ $this->e->showServiceError($sConfig->getError());
+ $this->e->redirect($this->e->hrefCurrentPage());
+ }
}
}
?>
Modified: trunk/mod/eis_engine/elements/DisplayEnvironment.php
===================================================================
--- trunk/mod/eis_engine/elements/DisplayEnvironment.php 2007-09-11 16:56:12 UTC (rev 206)
+++ trunk/mod/eis_engine/elements/DisplayEnvironment.php 2007-09-12 00:45:37 UTC (rev 207)
@@ -35,6 +35,9 @@
$labels[] = 'eis_engine.l.name';
$inputs[] = $sWidget->displayString($env['name']);
+ $labels[] = 'eis_engine.l.title';
+ $inputs[] = $sWidget->displayString($env['title']);
+
$labels[] = 'eis_engine.l.admin';
$inputs[] = $sWidget->displayString($env['admin']);
Modified: trunk/mod/eis_engine/elements/EditEnvironment.php
===================================================================
--- trunk/mod/eis_engine/elements/EditEnvironment.php 2007-09-11 16:56:12 UTC (rev 206)
+++ trunk/mod/eis_engine/elements/EditEnvironment.php 2007-09-12 00:45:37 UTC (rev 207)
@@ -1,51 +1,58 @@
<?php
class eis_engine_EditEnvironment extends Element {
- function view_default($id) {
+ function view_default($args) {
$sConfig =& $this->e->getService('eis_engine','ConfigService');
$sWidget =& $this->e->getService('eis_widget','MainService');
$path = $this->getPath();
$name = $path[count($path) -2];
+
+ $defaults = $sConfig->getEnvironment($name);
+ if($defaults == null) {
+ $this->e->error(404);
+ }
- $env = $sConfig->getEnvironment($name);
- if($env == null) {
- $this->e->error(404);
- }
+ $fields = array('name','title','admin','show_errors','mail_errors','mysql_host','mysql_user','mysql_password','mysql_database','data_dir');
+ $posted = $this->e->session->get('form','page');
+ $env = $sWidget->fillValues($fields,$defaults,$posted,$args);
$labels = array();
$inputs = array();
$labels[] = 'eis_engine.l.name';
- $inputs[] = $sWidget->displayString($env['name']);
+ $inputs[] = $sWidget->displayString($defaults['name']);
+ $labels[] = 'eis_engine.l.title';
+ $inputs[] = $sWidget->inputString('title',$env['title']);
+
$labels[] = 'eis_engine.l.admin';
- $inputs[] = $sWidget->inputString('module',$env['admin']);
+ $inputs[] = $sWidget->inputString('admin',$env['admin']);
$options = array();
$options[] = array('value' => 'on', 'label' => $this->e->getString('eis_engine.l.on'));
$options[] = array('value' => 'off', 'label' => $this->e->getString('eis_engine.l.off'));
$labels[] = 'eis_engine.l.show_errors';
- $inputs[] = $sWidget->inputString('module',isset($env['show_errors']) ? $env['show_errors']: 'off',$options);
+ $inputs[] = $sWidget->inputString('show_errors',$env['show_errors'],$options);
$labels[] = 'eis_engine.l.mail_errors';
- $inputs[] = $sWidget->inputString('module',isset($env['mail_errors']) ? $env['mail_errors']: 'on',$options);
+ $inputs[] = $sWidget->inputString('mail_errors',$env['mail_errors'],$options);
$labels[] = 'eis_engine.l.mysql_host';
- $inputs[] = $sWidget->inputString('module', isset($env['mysql_host']) ? $env['mysql_host']: '');
+ $inputs[] = $sWidget->inputString('mysql_host',$env['mysql_host']);
$labels[] = 'eis_engine.l.mysql_user';
- $inputs[] = $sWidget->inputString('module',isset($env['mysql_user']) ? $env['mysql_user']: '');
+ $inputs[] = $sWidget->inputString('mysql_user',$env['mysql_user']);
$labels[] = 'eis_engine.l.mysql_password';
- $inputs[] = $sWidget->inputString('module',isset($env['mysql_password']) ? $env['mysql_password']: '');
+ $inputs[] = $sWidget->inputString('mysql_password',$env['mysql_password']);
$labels[] = 'eis_engine.l.mysql_database';
- $inputs[] = $sWidget->inputString('module',isset($env['mysql_database']) ? $env['mysql_database']: '');
+ $inputs[] = $sWidget->inputString('mysql_database',$env['mysql_database']);
$labels[] = 'eis_engine.l.data_dir';
- $inputs[] = $sWidget->inputString('module',isset($env['data_dir']) ? $env['data_dir']: '');
+ $inputs[] = $sWidget->inputString('data_dir',$env['data_dir']);
$form = $sWidget->formTable($labels, $inputs);
@@ -55,20 +62,29 @@
}
function action_ok($data){
- print_r($data);
- exit;
$sConfig =& $this->e->getService('eis_engine','ConfigService');
+
+ $path = $this->getPath();
+ $name = $path[count($path) -2];
+
+ $environment = array();
+ $environment['name'] = $name;
- $environment = array();
foreach($data as $k => $v){
$environment[$k] = $v;
}
+
+ $sConfig->updateEnvironment($environment);
- if($sConfig->updateEnvironment($environment)){
- $this->e->redirect->hrefPreviousPage();
- }else{
- return;
- }
+ if($sConfig->success()) {
+ $this->e->showMessage('eis_engine.m.environment.updated',array($name));
+ $this->e->redirect($this->e->hrefParentPage());
+ } else {
+ $this->setPost($data);
+ $this->e->showServiceError($sConfig->getError());
+ $this->e->redirect($this->e->hrefCurrentPage());
+ }
+
}
}
?>
Modified: trunk/mod/eis_engine/locales/en_en/strings.xml
===================================================================
--- trunk/mod/eis_engine/locales/en_en/strings.xml 2007-09-11 16:56:12 UTC (rev 206)
+++ trunk/mod/eis_engine/locales/en_en/strings.xml 2007-09-12 00:45:37 UTC (rev 207)
@@ -114,6 +114,11 @@
<value><![CDATA[Name]]></value>
</string>
<string>
+ <name>l.title</name>
+ <value><![CDATA[Title]]></value>
+ </string>
+
+ <string>
<name>l.description</name>
<value><![CDATA[Description]]></value>
</string>
@@ -150,6 +155,11 @@
<value><![CDATA[Protocol]]></value>
</string>
<string>
+ <name>l.title</name>
+ <value><![CDATA[Title]]></value>
+ </string>
+
+ <string>
<name>l.admin</name>
<value><![CDATA[Administrator]]></value>
</string>
@@ -245,8 +255,24 @@
<name>l.delete.environment</name>
<value><![CDATA[Delete environment]]></value>
</string>
+ <string>
+ <name>q.delete.environment</name>
+ <value><![CDATA[Do U want to delete environment '%s'?]]></value>
+ </string>
<string>
+ <name>e.illegalformat.name</name>
+ <value><![CDATA[A name can contain only letters, digits, dashes and underscores.]]></value>
+ </string>
+ <string>
+ <name>e.missing.admin</name>
+ <value><![CDATA[Please enter an admin]]></value>
+ </string>
+ <string>
+ <name>e.missing.title</name>
+ <value><![CDATA[Please enter a title]]></value>
+ </string>
+ <string>
<name>e.missing.module</name>
<value><![CDATA[Please select a module]]></value>
</string>
@@ -278,4 +304,24 @@
<name>m.application.added</name>
<value><![CDATA[Successfully added application '%s' at '%s'.]]></value>
</string>
+ <string>
+ <name>e.environment.duplicate.name</name>
+ <value><![CDATA[Another environment is already known as '%s'.]]></value>
+ </string>
+ <string>
+ <name>e.environment.nonexistent.name</name>
+ <value><![CDATA[There is no environment known as '%s'.]]></value>
+ </string>
+ <string>
+ <name>m.environment.added</name>
+ <value><![CDATA[Successfully added environment '%s'.]]></value>
+ </string>
+ <string>
+ <name>m.environment.updated</name>
+ <value><![CDATA[Successfully updated environment '%s'.]]></value>
+ </string>
+ <string>
+ <name>m.environment.deleted</name>
+ <value><![CDATA[Successfully deletde environment '%s'.]]></value>
+ </string>
</strings>
Modified: trunk/mod/eis_engine/services/ConfigService.php
===================================================================
--- trunk/mod/eis_engine/services/ConfigService.php 2007-09-11 16:56:12 UTC (rev 206)
+++ trunk/mod/eis_engine/services/ConfigService.php 2007-09-12 00:45:37 UTC (rev 207)
@@ -114,22 +114,31 @@
function deleteWebService($id) {
}
- function getEnvironments() {
+ function _loadEnvironments() {
$str = new XmlStruct();
$doc = $str->decodeFile('cfg/environments.xml');
$doc = $str->getValue($doc,'environments');
return $str->getArray($doc,'environment');
+
}
+ function _saveEnvironments($environments) {
+ $doc = array('environments' => array('environment' => $environments));
+ $str = new XmlStruct();
+ $str->encodeFile($doc, 'cfg/environments.xml');
+ }
+ function getEnvironments() {
+ return $this->_loadEnvironments();
+ }
+
function getEnvironment($id) {
- $environments = $this->getEnvironments();
+ $environments = $this->_loadEnvironments();
foreach($environments as $environment) {
if($environment['name'] == $id) {
return $environment;
}
}
- exit;
return null;
}
@@ -141,5 +150,89 @@
}
return $names;
}
+
+ function createEnvironment($obj) {
+ if(!$this->verifyEnvironment($obj,true)) {
+ return 0;
+ }
+
+ $environments = $this->_loadEnvironments();
+ $environments[] = $obj;
+ $this->_saveEnvironments($environments);
+
+ }
+ function updateEnvironment($obj) {
+ if(!$this->verifyEnvironment($obj)) {
+ return 0;
+ }
+
+ $environments = $this->_loadEnvironments();
+ foreach($environments as $k => $environment) {
+ if($environment['name'] == $obj['name']) {
+ $environments[$k] = $obj;
+ }
+ }
+ $this->_saveEnvironments($environments);
+
+ }
+ function deleteEnvironment($id) {
+ $environments = $this->_loadEnvironments();
+ foreach($environments as $k => $environment) {
+ if($environment['name'] == $id) {
+ unset($environments[$k]);
+ }
+ }
+ $this->_saveEnvironments($environments);
+
+ }
+
+ function getDefaultEnvironment() {
+ $str = new XmlStruct();
+ $doc = $str->decodeFile('cfg/environments.xml');
+ $doc = $str->getValue($doc,'environments');
+
+ return $str->getValue($doc,'default');
+ }
+
+
+ function verifyEnvironment($obj,$new = false) {
+
+ if(!isset($obj['title']) || $obj['title'] == '') {
+ $this->setError(0,'eis_engine.e.missing.title');
+ return false;
+ }
+
+ if(!isset($obj['admin']) || $obj['admin'] == '') {
+ $this->setError(0,'eis_engine.e.missing.admin');
+ return false;
+ }
+
+ if(!isset($obj['name']) || $obj['name'] == '') {
+ $this->setError(0,'eis_engine.e.missing.name');
+ return false;
+ } else {
+ //Check format of mountpoint
+ if(!ereg("^[a-zA-Z0-9_]+$",$obj['name'])) {
+ $this->setError(0,'eis_engine.e.illegalformat.name');
+ return false;
+ } else {
+ //Check if the application is already
+ if($this->getEnvironment($obj['name']) != null) {
+ if($new) {
+ $this->setError(0,'eis_engine.e.environment.duplicate.name',array($obj['name']));
+ return false;
+ }
+ } else {
+ if(!$new) {
+ $this->setError(0,'eis_engine.e.environment.nonexistent.name',array($obj['name']));
+ return false;
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
}
?>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|