1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-28 08:39:57 +02:00

admin UI: templates & layouts field types added, bugfixes and improvements; Featurebox plugin administration ready, front-end in progress

This commit is contained in:
secretr
2009-11-28 15:34:46 +00:00
parent 76ffe278f0
commit 9626059142
9 changed files with 335 additions and 148 deletions

View File

@@ -2380,7 +2380,7 @@ class e_admin_controller_ui extends e_admin_controller
$selected = array_map('intval', $selected);
$trigger = $tp->toDB(explode('__', $batch_trigger));
$this->triggersEnabled(false); //disable further triggering
$this->setTriggersEnabled(false); //disable further triggering
switch($trigger[0])
{
@@ -2863,7 +2863,7 @@ class e_admin_controller_ui extends e_admin_controller
* @param string $noredirectAction passed to doAfterSubmit()
* @return
*/
protected function _manageSubmit($callbackBefore = '', $callbackAfter = '', $noredirectAction = '')
protected function _manageSubmit($callbackBefore = '', $callbackAfter = '', $callbackError = '', $noredirectAction = '')
{
$model = $this->getModel();
$old_data = $model->getData();
@@ -2901,9 +2901,6 @@ class e_admin_controller_ui extends e_admin_controller
// Scenario II - inner model sanitize
//$this->getModel()->setPosted($this->convertToData($_POST, null, false, true);
// Copy model messages to the default message stack
$model->setMessages();
// Take action based on use choice after success
if(!$this->getModel()->hasError())
{
@@ -2915,6 +2912,19 @@ class e_admin_controller_ui extends e_admin_controller
$this->doAfterSubmit($model->getId(), $noredirectAction);
return true;
}
elseif($callbackError && method_exists($this, $callbackError))
{
// suppress messages if callback returns TRUE
if(true !== $this->$callbackError($_posted, $old_data, $model->getId()))
{
// Copy model messages to the default message stack
$model->setMessages();
}
return false;
}
// Copy model messages to the default message stack
$model->setMessages();
return false;
}
}
@@ -2965,7 +2975,7 @@ class e_admin_ui extends e_admin_controller_ui
*/
public function ListEcolumnsTrigger()
{
$this->triggersEnabled(false); //disable further triggering
$this->setTriggersEnabled(false); //disable further triggering
parent::manageColumns();
}
@@ -3074,7 +3084,7 @@ class e_admin_ui extends e_admin_controller_ui
*/
public function ListDeleteTrigger($posted)
{
$this->triggersEnabled(false);
$this->setTriggersEnabled(false);
$id = intval(array_shift($posted));
$data = array();
$model = $this->getTreeModel()->getNode($id);
@@ -3186,7 +3196,7 @@ class e_admin_ui extends e_admin_controller_ui
*/
public function EditSubmitTrigger()
{
$this->_manageSubmit('beforeUpdate', 'afterUpdate', 'edit');
$this->_manageSubmit('beforeUpdate', 'afterUpdate', 'onUpdateError', 'edit');
}
/**
@@ -3214,7 +3224,7 @@ class e_admin_ui extends e_admin_controller_ui
*/
public function CreateObserver()
{
$this->triggersEnabled(true);
$this->setTriggersEnabled(true);
$this->addTitle(LAN_CREATE, true);
}
@@ -3231,11 +3241,11 @@ class e_admin_ui extends e_admin_controller_ui
*/
public function CreateSubmitTrigger()
{
$this->_manageSubmit('beforeCreate', 'afterCreate');
$this->_manageSubmit('beforeCreate', 'afterCreate', 'onCreateError');
}
/**
* User defined pre-create logic
* User defined pre-create logic, return false to prevent DB query execution
*/
public function beforeCreate($new_data, $old_data)
{
@@ -3249,7 +3259,14 @@ class e_admin_ui extends e_admin_controller_ui
}
/**
* User defined pre-update logic
* User defined error handling, return true to suppress model messages
*/
public function onCreateError($new_data, $old_data)
{
}
/**
* User defined pre-update logic, return false to prevent DB query execution
*/
public function beforeUpdate($new_data, $old_data, $id)
{
@@ -3262,6 +3279,13 @@ class e_admin_ui extends e_admin_controller_ui
{
}
/**
* User defined error handling, return true to suppress model messages
*/
public function onUpdateError($new_data, $old_data, $id)
{
}
/**
* Create - send JS to page Header
* @return
@@ -3442,6 +3466,7 @@ class e_admin_ui extends e_admin_controller_ui
->setValidationRules($this->validationRules)
->setFieldTypes($this->fieldTypes)
->setDataFields($this->dataFields)
->setMessageStackName('admin_ui_model_'.$this->table)
->setParam('db_query', $this->editQry);
return $this;
@@ -3457,7 +3482,8 @@ class e_admin_ui extends e_admin_controller_ui
$this->_tree_model = new e_admin_tree_model();
$this->_tree_model->setModelTable($this->table)
->setFieldIdName($this->pid)
->setParams(array('model_class' => 'e_admin_model', 'db_query' => $this->listQry));
->setMessageStackName('admin_ui_tree_'.$this->table)
->setParams(array('model_class' => 'e_admin_model', 'model_message_stack' => 'admin_ui_model_'.$this->table ,'db_query' => $this->listQry));
return $this;
}
@@ -3774,6 +3800,17 @@ class e_admin_form_ui extends e_form
$option['boolreverse__'.$key] = LAN_BOOL_REVERSE;
}
break;
case 'templates':
case 'layouts':
$parms['raw'] = true;
$val['writeParms'] = $parms;
$tmp = $this->renderElement($key, '', $val);
foreach ($tmp as $k => $name)
{
$option[$key.'__'.$k] = $name;
}
break;
case 'dropdown': // use the array $parm;
unset($parms['__options']); //remove element options if any