summaryrefslogtreecommitdiffstats
path: root/modules-available
diff options
context:
space:
mode:
authorJannik Schönartz2018-01-24 15:55:21 +0100
committerJannik Schönartz2018-01-24 15:55:21 +0100
commita998402d3db47785788c915c2d9134cda792fc7e (patch)
treeed5f707b0f6d02f73d9ab49346f337ae204aac37 /modules-available
parent[usb-lock-off] Added generic rule functionality. Fixed tooltip flickering. Fi... (diff)
downloadslx-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.json7
-rw-r--r--modules-available/usblockoff/lang/en/template-tags.json7
-rw-r--r--modules-available/usblockoff/page.inc.php83
-rw-r--r--modules-available/usblockoff/templates/usb-add-generic-rule.html2
-rw-r--r--modules-available/usblockoff/templates/usb-choose-config.html37
-rw-r--r--modules-available/usblockoff/templates/usb-daemon-config.html26
-rw-r--r--modules-available/usblockoff/templates/usb-device-list.html1
-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