diff options
Diffstat (limited to 'modules-available/usblockoff/page.inc.php')
-rw-r--r-- | modules-available/usblockoff/page.inc.php | 98 |
1 files changed, 54 insertions, 44 deletions
diff --git a/modules-available/usblockoff/page.inc.php b/modules-available/usblockoff/page.inc.php index c02fadba..5e1b27b4 100644 --- a/modules-available/usblockoff/page.inc.php +++ b/modules-available/usblockoff/page.inc.php @@ -18,7 +18,7 @@ class Page_usblockoff extends Page Util::redirect('?do=Main'); // does not return } - $this->action = Request::post('action'); + $this->action = Request::any('action'); if ($this->action === 'updateConfig') { $this->updateConfig(); @@ -32,7 +32,25 @@ class Page_usblockoff extends Page */ protected function doRender() { - $this->loadConfigChooser(); + $show = Request::get("show", "config-table"); + if ($show === "config-table") { + $this->loadConfigChooser(); + } else if ($show === "edit-config") { + $configid = Request::get("configid", ""); + $configName = Database::queryFirst("SELECT configname FROM `usb_configs` WHERE configid=:id", array( + 'id' => $configid + )); + + $rulesConfigHtml = $this->loadRulesConfig($configid); + $daemonConfigHtml = $this->loadDaemonConfig($configid); + + Render::addTemplate('usb-edit-config', array( + 'configid' => $configid, + 'configName' => $configName['configname'], + 'rulesConfigHtml' => $rulesConfigHtml, + 'daemonConfigHtml' => $daemonConfigHtml + )); + } } protected function loadConfigChooser() @@ -44,13 +62,12 @@ class Page_usblockoff extends Page $config['config_name'] = $dbentry['configname']; $configs[] = $config; } - - Render::addTemplate('usb-choose-config', array('config_list' => array_values($configs))); + Render::addTemplate('usb-configuration-table', array('config_list' => array_values($configs))); } protected function deleteConfig() { - $configID = Request::post('id', 0, 'int'); + $configID = Request::any('id', 0, 'int'); if ($configID != 0) { Database::exec("DELETE FROM `usb_configs` WHERE configid=:configid", array('configid' => $configID)); @@ -121,33 +138,24 @@ class Page_usblockoff extends Page Message::addSuccess('config-saved'); } - /** - * AJAX - */ - protected function doAjax() - { - User::load(); - if (!User::isLoggedIn()) { - die('Unauthorized'); - } - $action = Request::any('action'); - if ($action === 'deviceList') { - $this->ajaxDeviceList(); - } elseif ($action === 'loadConfig') { - $id = Request::any('id', 0, 'int'); - $this->ajaxConfig($id); - } elseif ($action === 'loadDaemonConfig') { - $id = Request::any('id', 0, 'int'); - $this->ajaxDaemonConfig($id); - } elseif ($action === 'loadRulesConfig') { - $id = Request::any('id', 0, 'int'); - $this->ajaxRulesConfig($id); - } elseif ($action === 'genericRuleBuilder') { - $this->ajaxGenericRuleBuilder(); + private function loadRulesConfig($id) { + $rulesConf = null; + + if ($id == 0) { + $currentdir = getcwd(); + + $rulesConf = file_get_contents($currentdir . '/modules/usblockoff/inc/default-configs/rules.conf'); + } else { + $dbquery = Database::queryFirst("SELECT * FROM `usb_configs` WHERE configid=:id", array('id' => $id)); + $rulesConf = $dbquery['rulesconfig']; } + + return Render::parse('usb-rules-config', array( + 'rules' => $rulesConf, + )); } - private function ajaxDaemonConfig($id) + private function loadDaemonConfig($id) { $form = array(); $rulesConf = null; @@ -182,28 +190,30 @@ class Page_usblockoff extends Page } } - echo Render::parse('usb-daemon-config', array( + return Render::parse('usb-daemon-config', array( 'list' => array_values($form), )); } - private function ajaxRulesConfig($id) { - $rulesConf = null; - - if ($id == 0) { - $currentdir = getcwd(); - - $rulesConf = file_get_contents($currentdir . '/modules/usblockoff/inc/default-configs/rules.conf'); - } else { - $dbquery = Database::queryFirst("SELECT * FROM `usb_configs` WHERE configid=:id", array('id' => $id)); - $rulesConf = $dbquery['rulesconfig']; + /** + * AJAX + */ + protected function doAjax() + { + User::load(); + if (!User::isLoggedIn()) { + die('Unauthorized'); + } + $action = Request::any('action'); + if ($action === 'deviceList') { + $this->ajaxDeviceList(); + } elseif ($action === 'genericRuleBuilder') { + $this->ajaxGenericRuleBuilder(); } - - echo Render::parse('usb-rules-config', array( - 'rules' => $rulesConf, - )); } + + private function ajaxGenericRuleBuilder() { $settings = array(); |