From 879b00987e6d5de900c8554c241a7bf791ef51e4 Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Tue, 6 Feb 2018 13:37:45 +0100 Subject: [usb-lock-off] Reworked config chooser. Switched from the dropdown config selection to a classic table. --- modules-available/usblockoff/config.json | 2 +- .../usblockoff/lang/de/template-tags.json | 5 +- .../usblockoff/lang/en/template-tags.json | 5 +- modules-available/usblockoff/page.inc.php | 98 ++++++------ .../usblockoff/templates/usb-add-generic-rule.html | 2 +- .../usblockoff/templates/usb-choose-config.html | 171 --------------------- .../templates/usb-configuration-table.html | 70 +++++++++ .../usblockoff/templates/usb-device-list.html | 12 +- .../usblockoff/templates/usb-edit-config.html | 68 ++++++++ .../usblockoff/templates/usb-rules-config.html | 49 +++++- 10 files changed, 252 insertions(+), 230 deletions(-) delete mode 100644 modules-available/usblockoff/templates/usb-choose-config.html create mode 100644 modules-available/usblockoff/templates/usb-configuration-table.html create mode 100644 modules-available/usblockoff/templates/usb-edit-config.html (limited to 'modules-available') diff --git a/modules-available/usblockoff/config.json b/modules-available/usblockoff/config.json index f15ba11d..12049689 100644 --- a/modules-available/usblockoff/config.json +++ b/modules-available/usblockoff/config.json @@ -1,4 +1,4 @@ { "category":"main.beta", - "dependencies": ["bootstrap_switch", "bootstrap_dialog", "statistics"] + "dependencies": ["bootstrap_switch", "bootstrap_dialog", "statistics", "permissionmanager"] } diff --git a/modules-available/usblockoff/lang/de/template-tags.json b/modules-available/usblockoff/lang/de/template-tags.json index 15a60aca..16466922 100644 --- a/modules-available/usblockoff/lang/de/template-tags.json +++ b/modules-available/usblockoff/lang/de/template-tags.json @@ -44,5 +44,8 @@ "lang_device-list": "Geräte Liste", "lang_rulesConfig": "Regel Konfiguration", "lang_daemonConfig": "Daemon Konfiguration", - "lang_assignMenu": "Zuweisungsmenü" + "lang_assignMenu": "Zuweisungsmenü", + "lang_serverName": "Servername", + "lang_configuration": "Konfiguration", + "lang_usb-lock-off": "USB Lock-Off" } diff --git a/modules-available/usblockoff/lang/en/template-tags.json b/modules-available/usblockoff/lang/en/template-tags.json index 3daffdb7..bfa52caf 100644 --- a/modules-available/usblockoff/lang/en/template-tags.json +++ b/modules-available/usblockoff/lang/en/template-tags.json @@ -44,5 +44,8 @@ "lang_device-list": "Device list", "lang_rulesConfig": "Rules config", "lang_daemonConfig": "Daemon config", - "lang_assignMenu": "Assign menu" + "lang_assignMenu": "Assign menu", + "lang_serverName": "Server name", + "lang_configuration": "Configuration", + "lang_usb-lock-off": "USB lock off" } 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(); diff --git a/modules-available/usblockoff/templates/usb-add-generic-rule.html b/modules-available/usblockoff/templates/usb-add-generic-rule.html index 6d91dcb5..07729db4 100644 --- a/modules-available/usblockoff/templates/usb-add-generic-rule.html +++ b/modules-available/usblockoff/templates/usb-add-generic-rule.html @@ -143,13 +143,13 @@ diff --git a/modules-available/usblockoff/templates/usb-configuration-table.html b/modules-available/usblockoff/templates/usb-configuration-table.html new file mode 100644 index 00000000..eb3a8839 --- /dev/null +++ b/modules-available/usblockoff/templates/usb-configuration-table.html @@ -0,0 +1,70 @@ +
+
+
+ +
+
+
+
+ + + + + + + + + + + {{#config_list}} + + + + + + + {{/config_list}} + +
{{lang_serverName}}{{lang_ruleInfoTODO}}{{lang_edit}}{{lang_delete}}
{{config_name}}TODO: Show Rule information here + + + + + + + +
+ +
+
+
+ + \ No newline at end of file diff --git a/modules-available/usblockoff/templates/usb-device-list.html b/modules-available/usblockoff/templates/usb-device-list.html index 459c6801..a7c9afed 100644 --- a/modules-available/usblockoff/templates/usb-device-list.html +++ b/modules-available/usblockoff/templates/usb-device-list.html @@ -55,11 +55,11 @@
{{lang_ruleOptions}}
- - {{#settings}} - {{{settingHtml}}} - {{/settings}} - +
+ {{#settings}} + {{{settingHtml}}} + {{/settings}} +
@@ -120,7 +120,7 @@ $('.selected').each(function () { var rule = $('#prop-action').val(); var selected = $(this); - $('.settings-bs-switch').each(function () { + $('#settingsDIV .settings-bs-switch').each(function () { if ($(this).is(":checked")) { var settingname = $(this).attr('name').substring(5); var info = $('#' + $(selected).attr('id') + '-' + $(this).attr('name')); diff --git a/modules-available/usblockoff/templates/usb-edit-config.html b/modules-available/usblockoff/templates/usb-edit-config.html new file mode 100644 index 00000000..fc7aabfb --- /dev/null +++ b/modules-available/usblockoff/templates/usb-edit-config.html @@ -0,0 +1,68 @@ +
+ + + + +
+
{{lang_general}}
+
+
+ +
+
+
+ +
+
+ +
+
+ + + +
+
+
+ +
+
+
+ + + +
+
+
+ {{{rulesConfigHtml}}} +
+
+
+
+ {{{daemonConfigHtml}} +
+
+
+

Work in progress ...

+

Todo: Implement this.

+

Or not.

+

¯\_(ツ)_/¯

+
+
+ +
+ + + Cancel + +
+ +
diff --git a/modules-available/usblockoff/templates/usb-rules-config.html b/modules-available/usblockoff/templates/usb-rules-config.html index ab3dc664..3827dc03 100644 --- a/modules-available/usblockoff/templates/usb-rules-config.html +++ b/modules-available/usblockoff/templates/usb-rules-config.html @@ -1,6 +1,24 @@
-
rules.conf
-
+
rules.conf + +
+ +
+
+ + + +
+ Work in progress ... +
+ + + +
+
+ + +