diff options
author | Jannik Schönartz | 2018-01-24 15:55:21 +0100 |
---|---|---|
committer | Jannik Schönartz | 2018-01-24 15:55:21 +0100 |
commit | a998402d3db47785788c915c2d9134cda792fc7e (patch) | |
tree | ed5f707b0f6d02f73d9ab49346f337ae204aac37 /modules-available | |
parent | [usb-lock-off] Added generic rule functionality. Fixed tooltip flickering. Fi... (diff) | |
download | slx-admin-a998402d3db47785788c915c2d9134cda792fc7e.tar.gz slx-admin-a998402d3db47785788c915c2d9134cda792fc7e.tar.xz slx-admin-a998402d3db47785788c915c2d9134cda792fc7e.zip |
[usb-lock-off] Configurations splitted into tabs for a better overview. Removed old code.
Diffstat (limited to 'modules-available')
-rw-r--r-- | modules-available/usblockoff/lang/de/template-tags.json | 7 | ||||
-rw-r--r-- | modules-available/usblockoff/lang/en/template-tags.json | 7 | ||||
-rw-r--r-- | modules-available/usblockoff/page.inc.php | 83 | ||||
-rw-r--r-- | modules-available/usblockoff/templates/usb-add-generic-rule.html | 2 | ||||
-rw-r--r-- | modules-available/usblockoff/templates/usb-choose-config.html | 37 | ||||
-rw-r--r-- | modules-available/usblockoff/templates/usb-daemon-config.html | 26 | ||||
-rw-r--r-- | modules-available/usblockoff/templates/usb-device-list.html | 1 | ||||
-rw-r--r-- | modules-available/usblockoff/templates/usb-rules-config.html (renamed from modules-available/usblockoff/templates/usb-configuration.html) | 47 |
8 files changed, 101 insertions, 109 deletions
diff --git a/modules-available/usblockoff/lang/de/template-tags.json b/modules-available/usblockoff/lang/de/template-tags.json index 3614ed55..15a60aca 100644 --- a/modules-available/usblockoff/lang/de/template-tags.json +++ b/modules-available/usblockoff/lang/de/template-tags.json @@ -39,5 +39,10 @@ "lang_equals": "Gleicht", "lang_equals-ordered": "Gleicht geordnet", "lang_saveAsNewConfig": "Als neue Konfiguration Speichern", - "lang_saveAsNewConfig-helptext": "Erstellt eine neue Konfiguration anstatt die alte zu Überschreiben." + "lang_saveAsNewConfig-helptext": "Erstellt eine neue Konfiguration anstatt die alte zu Überschreiben.", + "lang_add-generic-rule": "Generische Regel hinzufügen", + "lang_device-list": "Geräte Liste", + "lang_rulesConfig": "Regel Konfiguration", + "lang_daemonConfig": "Daemon Konfiguration", + "lang_assignMenu": "Zuweisungsmenü" } diff --git a/modules-available/usblockoff/lang/en/template-tags.json b/modules-available/usblockoff/lang/en/template-tags.json index 914b844b..3daffdb7 100644 --- a/modules-available/usblockoff/lang/en/template-tags.json +++ b/modules-available/usblockoff/lang/en/template-tags.json @@ -39,5 +39,10 @@ "lang_equals": "Equals", "lang_equals-ordered": "Equals ordered", "lang_saveAsNewConfig": "Save as new config", - "lang_saveAsNewConfig-helptext": "If true a new config is created instead of overriding the old one" + "lang_saveAsNewConfig-helptext": "If true a new config is created instead of overriding the old one", + "lang_add-generic-rule": "Add generic rule", + "lang_device-list": "Device list", + "lang_rulesConfig": "Rules config", + "lang_daemonConfig": "Daemon config", + "lang_assignMenu": "Assign menu" } diff --git a/modules-available/usblockoff/page.inc.php b/modules-available/usblockoff/page.inc.php index 9e5664fc..c02fadba 100644 --- a/modules-available/usblockoff/page.inc.php +++ b/modules-available/usblockoff/page.inc.php @@ -136,12 +136,18 @@ class Page_usblockoff extends Page } 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 ajaxConfig($id) + private function ajaxDaemonConfig($id) { $form = array(); $rulesConf = null; @@ -149,12 +155,10 @@ class Page_usblockoff extends Page if ($id == 0) { $currentdir = getcwd(); - $rulesConf = file_get_contents($currentdir . '/modules/usblockoff/inc/default-configs/rules.conf'); $daemonConf = file($currentdir . '/modules/usblockoff/inc/default-configs/usbguard-daemon.conf'); } else { $dbquery = Database::queryFirst("SELECT * FROM `usb_configs` WHERE configid=:id", array('id' => $id)); $daemonConf = explode("\r\n", $dbquery['daemonconfig']); - $rulesConf = $dbquery['rulesconfig']; } $element = array(); @@ -178,8 +182,24 @@ class Page_usblockoff extends Page } } - echo Render::parse('usb-configuration', array( + echo 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']; + } + + echo Render::parse('usb-rules-config', array( 'rules' => $rulesConf, )); } @@ -208,63 +228,8 @@ class Page_usblockoff extends Page $setting['settingHtml'] = Render::parse('server-prop-dropdown', (array)$setting); $settings[] = $setting; - /* - $setting = array(); - $setting['title'] = "Operator"; - $setting['select_list'] = array( - array( - 'option' => 'all-of', - 'active' => true, - ), - array( - 'option' => 'one-of', - 'active' => false, - ), - array( - 'option' => 'none-of', - 'active' => false, - ), - array( - 'option' => 'equals', - 'active' => false, - ), - array( - 'option' => 'equals-ordered', - 'active' => false, - ) - ); - $setting['helptext'] = array('helptext' => Dictionary::translateFile('rule', 'operator_helptext')); - $setting['property'] = 'action'; - $setting['settingHtml'] = Render::parse('server-prop-dropdown', (array)$setting); - $settings[] = $setting; - */ - - /* THIS IS DONE in HTML code because server-prop-dropdown doens't have a value option for a selected - $casualMode = array(); - $setting = array(); - // $setting['helptext'] = array('helptext' => Dictionary::translateFile('rule', '')) - $setting['title'] = 'Device Class'; - $setting['select_list'] = array( - array( - 'option' => 'USB-Sticks', - 'active' => true, - ), - array( - 'option' => 'HID-Devices', - 'active' => false, - ), - array( - 'option' => 'All', - 'active' => false, - ) - ); - $setting['property'] = 'action'; - $setting['settingHtml'] = Render::parse('server-prop-dropdown', (array)$setting); - $casualMode[] = $setting;*/ - echo Render::parse('usb-add-generic-rule', array( 'settings' => array_values($settings), - /*'casual' => array_values($casualMode)*/ )); } diff --git a/modules-available/usblockoff/templates/usb-add-generic-rule.html b/modules-available/usblockoff/templates/usb-add-generic-rule.html index 4e8339c7..6d91dcb5 100644 --- a/modules-available/usblockoff/templates/usb-add-generic-rule.html +++ b/modules-available/usblockoff/templates/usb-add-generic-rule.html @@ -180,7 +180,7 @@ } if (mode == "casual") { if (contains) { - $('#rules').val($('#rules').val() + $('#prop-action').val() + ' with-interface all-of' + ' { ' + + $('#rules').val($('#rules').val() + $('#prop-action').val() + ' with-interface one-of' + ' { ' + $('#casual_selected option:selected').val() + ' }'); } else { $('#rules').val($('#rules').val() + $('#prop-action').val() + ' with-interface ' + $('#casual_selected option:selected').val()); diff --git a/modules-available/usblockoff/templates/usb-choose-config.html b/modules-available/usblockoff/templates/usb-choose-config.html index 0ad7213a..b50447fa 100644 --- a/modules-available/usblockoff/templates/usb-choose-config.html +++ b/modules-available/usblockoff/templates/usb-choose-config.html @@ -87,7 +87,39 @@ </div> </div> </div> - <div id="configDIV"></div> + + <ul class="nav nav-tabs"> + <li class="active"><a data-toggle="tab" href="#rulesConfigMenu">{{lang_rulesConfig}}</a></li> + <li><a data-toggle="tab" href="#deamonConfigMenu">{{lang_daemonConfig}}</a></li> + <li><a data-toggle="tab" href="#assignMenu">{{lang_assignMenu}}</a></li> + </ul> + + <div class="tab-content"> + <div id="rulesConfigMenu" class="tab-pane fade in active"> + <div id="rulesConfigDIV"></div> + </div> + <div id="deamonConfigMenu" class="tab-pane fade"> + <div id="daemonConfigDIV"></div> + </div> + <div id="assignMenu" class="tab-pane fade"> + <h3>Work in progress ...</h3> + <p>Todo: Implement this.</p> + <p>Or not.</p> + <p>¯\_(ツ)_/¯</p> + </div> + </div> + + <div class="pull-right"> + <!-- TODO: Reset Button should't call loadConfig instead do not reset the select input... but how? --> + <button class="btn btn-warning" type="reset" onclick="loadConfig($('#select_config'));"> + <!-- TODO: Add discardChanges to the main-> globalVariables --> + <span class="glyphicon glyphicon-refresh"></span> {{lang_discardChanges}} + </button> + <button type="submit" id="configFormButton" class="btn btn-primary"> + <span class="glyphicon glyphicon-floppy-disk"></span> {{lang_save}} + </button> + </div> + </form> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function () { @@ -104,7 +136,8 @@ function loadConfig(selectedOption) { var configID = selectedOption.value; var configName = $('#select_config option:selected').text(); - $('#configDIV').load("?do=usblockoff&action=loadConfig&id=" + configID); + $('#daemonConfigDIV').load("?do=usblockoff&action=loadDaemonConfig&id=" + configID); + $('#rulesConfigDIV').load("?do=usblockoff&action=loadRulesConfig&id=" + configID); $('#configID').val(configID); if (configID == 0) { $('#configName').val(''); diff --git a/modules-available/usblockoff/templates/usb-daemon-config.html b/modules-available/usblockoff/templates/usb-daemon-config.html new file mode 100644 index 00000000..be8c903c --- /dev/null +++ b/modules-available/usblockoff/templates/usb-daemon-config.html @@ -0,0 +1,26 @@ +<div class="panel panel-default"> + <div class="panel-heading">usbugard-daemon.conf</div> + <div class="panel-body"> + <div class="list-group"> + + {{#list}} + <div class="list-group-item"> + <div class="row"> + <div class="col-sm-3"> + <label>{{name}}</label> + </div> + <div class="col-sm-7"> + <input class="form-control" name="{{name}}" id="{{name}}" value="{{value}}"> + </div> + <div class="col-sm-2"> + <a class="btn btn-default" title="{{helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> + {{/list}} + + </div> + </div> +</div>
\ 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 b5cc82b0..459c6801 100644 --- a/modules-available/usblockoff/templates/usb-device-list.html +++ b/modules-available/usblockoff/templates/usb-device-list.html @@ -116,7 +116,6 @@ } } - // This function is used in the usb-configuration.html. (myModalAddButton) function addDevices() { $('.selected').each(function () { var rule = $('#prop-action').val(); diff --git a/modules-available/usblockoff/templates/usb-configuration.html b/modules-available/usblockoff/templates/usb-rules-config.html index 4b0f1d58..ab3dc664 100644 --- a/modules-available/usblockoff/templates/usb-configuration.html +++ b/modules-available/usblockoff/templates/usb-rules-config.html @@ -1,31 +1,4 @@ <div class="panel panel-default"> - <div class="panel-heading">usbugard-daemon.conf</div> - <div class="panel-body"> - <div class="list-group"> - - {{#list}} - <div class="list-group-item"> - <div class="row"> - <div class="col-sm-3"> - <label>{{name}}</label> - </div> - <div class="col-sm-7"> - <input class="form-control" name="{{name}}" id="{{name}}" value="{{value}}"> - </div> - <div class="col-sm-2"> - <a class="btn btn-default" title="{{helptext}}"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> - </div> - </div> - </div> - {{/list}} - - </div> - </div> -</div> - -<div class="panel panel-default"> <div class="panel-heading">rules.conf</div> <div class="panel-body"> <div class="list-group"> @@ -54,18 +27,6 @@ </div> </div> -<div class="pull-right"> - <!-- TODO: Reset Button should't call loadConfig instead do not reset the select input... but how? --> - <button class="btn btn-warning" type="reset" onclick="loadConfig($('#select_config'));"> - <!-- TODO: Add discardChanges to the main-> globalVariables --> - <span class="glyphicon glyphicon-refresh"></span> {{lang_discardChanges}} - </button> - <button type="submit" id="configFormButton" class="btn btn-primary"> - <span class="glyphicon glyphicon-floppy-disk"></span> {{lang_save}} - </button> -</div> - - <div class="modal fade" id="myModal" tabindex="-1" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> @@ -86,8 +47,7 @@ $('a.btn[title]').tooltip({placement: "auto", html: true}); function loadAddDeviceModal() { - // TODO: Make "Device list" a lang Tag... - $('#myModalHeader').text("Device list").css("font-weight", "Bold"); + $('#myModalHeader').text("{{lang_device-list}}").css("font-weight", "Bold"); $('#myModalAddButton').attr("form", "addDevicesForm"); $('#myModal .modal-dialog').css('width', '60%'); $('#myModal .modal-dialog').css('min-width', '60%'); @@ -96,12 +56,11 @@ } function loadAddGenericRuleModal() { - // TODO: see todo above - $('#myModalHeader').text("Add generic rule").css("font-weight", "Bold"); + $('#myModalHeader').text("{{lang_add-generic-rule}}").css("font-weight", "Bold"); $('#myModalAddButton').attr("form", "addGenericRuleForm"); $('#myModal .modal-dialog').css('width', '60%'); $('#myModal .modal-dialog').css('min-width', '60%'); $('#myModal').modal('show'); $('#myModalBody').load("?do=usblockoff&action=genericRuleBuilder"); } -</script> +</script>
\ No newline at end of file |