diff options
author | Antonio Gallo <tonicucoz@gmail.com> | 2011-07-13 15:28:30 +0000 |
---|---|---|
committer | Antonio Gallo <tonicucoz@gmail.com> | 2011-07-13 15:28:30 +0000 |
commit | d8e1f81df2e40574c0e685910bf99407f7e66017 (patch) | |
tree | a69b5a96dff0f22a37db460d5fb2d88ff49650ec /h-source/Application/Controllers | |
parent | be1d2d6c4c5623c6af59cf72e74e0335d1aa6cb5 (diff) |
administrators can permanently delete a device page - part 1
Diffstat (limited to 'h-source/Application/Controllers')
4 files changed, 53 insertions, 14 deletions
diff --git a/h-source/Application/Controllers/BaseController.php b/h-source/Application/Controllers/BaseController.php index 02db21d..f40d45f 100644 --- a/h-source/Application/Controllers/BaseController.php +++ b/h-source/Application/Controllers/BaseController.php @@ -135,14 +135,14 @@ class BaseController extends Controller $data['language_links'] = $this->buildLanguageLinks($this->lang); $data['lastModif'] = $this->m['HistoryModel'] - ->select() + ->clear()->select() ->inner('hardware') ->on('hardware.id_hard=history.id') - ->where(array('type'=>'hardware','gr'=>'registered','approved'=>'yes')) + ->where(array('type'=>'hardware','gr'=>'registered','deleted'=>'no')) ->orderBy('id_history desc') ->limit(5) ->send(); - + $this->append($data); $this->load('right'); } diff --git a/h-source/Application/Controllers/GenericController.php b/h-source/Application/Controllers/GenericController.php index a5dd24c..2e7a45b 100644 --- a/h-source/Application/Controllers/GenericController.php +++ b/h-source/Application/Controllers/GenericController.php @@ -487,7 +487,7 @@ class GenericController extends BaseController $data['tree'] = null; $data['isDeleted'] = false; - $data['md_javascript'] = "moderator_dialog(\"devicehide\",\"device\");moderator_dialog(\"deviceshow\",\"device\");moderator_dialog(\"deviceapprove\",\"device_app\");"; + $data['md_javascript'] = "moderator_dialog(\"devicehide\",\"device\");moderator_dialog(\"deviceshow\",\"device\");moderator_dialog(\"deviceapprove\",\"device_app\");moderator_dialog(\"deviceclear\",\"device_cl\");"; if ($this->mod->checkType($clean['id_hard'])) { diff --git a/h-source/Application/Controllers/HistoryController.php b/h-source/Application/Controllers/HistoryController.php index 3b6e1d2..a3421a9 100644 --- a/h-source/Application/Controllers/HistoryController.php +++ b/h-source/Application/Controllers/HistoryController.php @@ -32,7 +32,8 @@ class HistoryController extends BaseController 'page' => 'wiki page', 'page_del' => 'wiki page', 'device' => 'device page', - 'device_app' => 'device page', + 'device_app' => 'device page', + 'device_cl' => 'device page', ); public static $actionTable = array( @@ -49,6 +50,7 @@ class HistoryController extends BaseController 'devicehide' => 'hide', 'deviceshow' => 'show', 'deviceapprove' => 'approve', + 'deviceclear' => 'perm deleted', ); protected $strings = array( @@ -182,7 +184,17 @@ class HistoryController extends BaseController 'error_string' => 'Error: the device page is already approved', ), - + + 'deviceclear' => array( + + 'action' => 'deviceclear', + 'check_status' => 'no', + 'to_status' => 'yes', + 'exec_string' => 'The device page has been permanently deleted. Just reload the page', + 'error_string' => 'Error: the device page has already been permanently deleted', +// 'method' => 'oupdate', + + ), ); protected $types = array( @@ -266,7 +278,7 @@ class HistoryController extends BaseController ), - //page blocked or not + //device page blocked or not 'device' => array( 'clean_type' => 'device', @@ -275,11 +287,11 @@ class HistoryController extends BaseController 'field_name' => '-deleted', 'actions' => array('devicehide','deviceshow'), 'group' => 'admin', - 'types_to_show' => 'device_app,device', + 'types_to_show' => 'device_app,device,device_cl', ), - //page blocked or not + //device page approved 'device_app' => array( 'clean_type' => 'device_app', @@ -290,7 +302,18 @@ class HistoryController extends BaseController 'group' => 'admin', ), - + + //device page cleared + 'device_cl' => array( + + 'clean_type' => 'device_cl', + 'model_name' => 'HardwareModel', + 'id_name' => 'id_hard', + 'field_name' => 'cleared', + 'actions' => array('deviceclear'), + 'group' => 'admin', + + ), ); public function __construct($model, $controller, $queryString) @@ -366,6 +389,11 @@ class HistoryController extends BaseController { $this->generic($lang, $token, 'deviceapprove'); } + + public function deviceclear($lang = 'en', $token = '') + { + $this->generic($lang, $token, 'deviceclear'); + } protected function generic($lang = 'en', $token = '', $action = 'hide') { @@ -389,7 +417,7 @@ class HistoryController extends BaseController $message = $this->request->post('message',''); $modelName = 'error'; - + if (array_key_exists($type,$this->types)) { if (in_array($action,$this->types[$type]['actions'])) @@ -406,8 +434,10 @@ class HistoryController extends BaseController $this->model($modelName); $model = $this->m[$modelName]; - $count = $model->select()->where(array($clean['id_name'] => $clean['id'],$clean['field_name'] => $this->strings[$action]['check_status']))->rowNumber(); + $model->select()->where(array($clean['id_name'] => $clean['id'],$clean['field_name'] => $this->strings[$action]['check_status'])); + $count = $model->rowNumber(); + if ($count > 0) { if (eg_strlen($message) < 500) @@ -417,7 +447,15 @@ class HistoryController extends BaseController //hide the message $model->values = array($clean['field_name'] => $this->strings[$action]['to_status']); - $model->pUpdate($clean['id']); + + if (isset($this->strings[$action]['method'])) + { + call_user_func(array($model, $this->strings[$action]['method']),$clean['id']); + } + else + { + $model->pUpdate($clean['id']); + } if ($model->queryResult) { @@ -533,6 +571,7 @@ class HistoryController extends BaseController 'devicehide' => 'hidden', 'deviceshow' => 'restored', 'deviceapprove' => 'approved', + 'deviceclear' => 'permanently deleted', ); $this->append($data); diff --git a/h-source/Application/Controllers/SpecialController.php b/h-source/Application/Controllers/SpecialController.php index 6ef632a..db3975b 100644 --- a/h-source/Application/Controllers/SpecialController.php +++ b/h-source/Application/Controllers/SpecialController.php @@ -104,7 +104,7 @@ class SpecialController extends BaseController $whereClauseArray = array( 'gr' => 'registered', 'type' => 'hardware', - 'approved' => 'yes', + 'deleted' => 'no', ); $this->helper('Pages','special/'.$this->action.'/'.$this->lang,'page'); |