diff options
author | Christian Hofmaier | 2018-03-20 15:35:18 +0100 |
---|---|---|
committer | Christian Hofmaier | 2018-03-20 15:35:18 +0100 |
commit | d2862870c0ecd1e4855db1b0ec3a455fed876af1 (patch) | |
tree | bc6b63b27bc88055435a73ef05c0223768becec3 /modules-available/usblockoff | |
parent | [usb-lock-off] tooltip that first matching rule (from top to bottom) is applied (diff) | |
download | slx-admin-d2862870c0ecd1e4855db1b0ec3a455fed876af1.tar.gz slx-admin-d2862870c0ecd1e4855db1b0ec3a455fed876af1.tar.xz slx-admin-d2862870c0ecd1e4855db1b0ec3a455fed876af1.zip |
[usb-lock-off] now you can add a description which is shown on the front page, edited database, added template tags, made nice red-flag for missing input name :)
Diffstat (limited to 'modules-available/usblockoff')
8 files changed, 74 insertions, 16 deletions
diff --git a/modules-available/usblockoff/install.inc.php b/modules-available/usblockoff/install.inc.php index cf260c61..47a07573 100644 --- a/modules-available/usblockoff/install.inc.php +++ b/modules-available/usblockoff/install.inc.php @@ -16,7 +16,7 @@ $t2 = $res[] = tableCreate('usblockoff_hw_prop', ' PRIMARY KEY (`hwid`, `serial`, `prop`) '); -$res[] = tableCreate('usb_configs', ' +$t4 = $res[] = tableCreate('usb_configs', ' `configid` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `configname` VARCHAR(200) NOT NULL, `rulesconfig` VARCHAR(512), @@ -60,6 +60,11 @@ if ($t1 === UPDATE_DONE || $t2 === UPDATE_DONE) { $res[] = UPDATE_DONE; } +if ($t4 === UPDATE_NOOP) { + Database::exec("ALTER TABLE `usb_configs` + ADD `configdesc` VARCHAR(200)"); +} + if (in_array(UPDATE_DONE, $res)) { finalResponse(UPDATE_DONE, 'Table created successfully'); diff --git a/modules-available/usblockoff/lang/de/template-tags.json b/modules-available/usblockoff/lang/de/template-tags.json index 15a885df..4e623e3a 100644 --- a/modules-available/usblockoff/lang/de/template-tags.json +++ b/modules-available/usblockoff/lang/de/template-tags.json @@ -49,5 +49,11 @@ "lang_configuration": "Konfiguration", "lang_usb-lock-off": "USB Lock-Off", "lang_disabledButtons_helptext": "Sie müssen zuerst die Konfiguration speichern, um Regeln hinzufügen zu können.", - "lang_firstMatchingRuleCounts": "Die erste zutreffende Regel (von Oben nach Unten) wird angewendet." + "lang_firstMatchingRuleCounts": "Die erste zutreffende Regel (von Oben nach Unten) wird angewendet.", + "lang_description": "Beschreibung", + "lang_configurationTable": "Konfigurationstabelle", + "lang_editConfig": "Konfiguration bearbeiten", + "lang_configDesc_helptext": "Beschreibung der Konfiguration.", + "lang_attributes": "Attribute", + "lang_action": "Aktion" } diff --git a/modules-available/usblockoff/lang/en/template-tags.json b/modules-available/usblockoff/lang/en/template-tags.json index 78f7166f..1ddb6334 100644 --- a/modules-available/usblockoff/lang/en/template-tags.json +++ b/modules-available/usblockoff/lang/en/template-tags.json @@ -49,5 +49,11 @@ "lang_configuration": "Configuration", "lang_usb-lock-off": "USB lock off", "lang_disabledButtons_helptext": "You must first save the configuration to add rules.", - "lang_firstMatchingRuleCounts": "First matching rule (from top to bottom) will be applied." + "lang_firstMatchingRuleCounts": "First matching rule (from top to bottom) will be applied.", + "lang_description": "Description", + "lang_configurationTable": "Configuration Table", + "lang_editConfig": "Edit Configuration", + "lang_configDesc_helptext": "Description of the configuration.", + "lang_attributes": "Attributes", + "lang_action": "Action" } diff --git a/modules-available/usblockoff/page.inc.php b/modules-available/usblockoff/page.inc.php index 4a8e4a80..28479234 100644 --- a/modules-available/usblockoff/page.inc.php +++ b/modules-available/usblockoff/page.inc.php @@ -37,7 +37,7 @@ class Page_usblockoff extends Page $this->loadConfigChooser(); } else if ($show === "edit-config") { $configid = Request::get("configid", ""); - $configName = Database::queryFirst("SELECT configname FROM `usb_configs` WHERE configid=:id", array( + $dbquery = Database::queryFirst("SELECT configname, configdesc FROM `usb_configs` WHERE configid=:id", array( 'id' => $configid )); @@ -46,7 +46,8 @@ class Page_usblockoff extends Page Render::addTemplate('usb-edit-config', array( 'configid' => $configid, - 'configName' => $configName['configname'], + 'configName' => $dbquery['configname'], + 'configDesc' => $dbquery['configdesc'], 'rulesConfigHtml' => $rulesConfigHtml, 'daemonConfigHtml' => $daemonConfigHtml )); @@ -200,11 +201,12 @@ class Page_usblockoff extends Page protected function loadConfigChooser() { - $dbquery = Database::simpleQuery("SELECT configid, configname FROM `usb_configs`"); + $dbquery = Database::simpleQuery("SELECT configid, configname, configdesc FROM `usb_configs`"); $configs = array(); while ($dbentry = $dbquery->fetch(PDO::FETCH_ASSOC)) { $config['config_id'] = $dbentry['configid']; $config['config_name'] = $dbentry['configname']; + $config['config_desc'] = $dbentry['configdesc']; $configs[] = $config; } Render::addTemplate('usb-configuration-table', array('config_list' => array_values($configs))); @@ -254,6 +256,7 @@ class Page_usblockoff extends Page $id = Request::post('id', 0, 'int'); $configname = Request::post('configName', '', 'string'); + $configdesc = Request::post('configDesc', '', 'string'); $dbquery = Database::queryFirst("SELECT * FROM `usb_configs` WHERE configid=:id", array('id' => $id)); // Load daemon.conf from db else load default @@ -281,16 +284,18 @@ class Page_usblockoff extends Page // INSERT IN DB if ($id == '0' || $result['saveAsNewConfig']) { - $dbquery = Database::exec("INSERT INTO `usb_configs` (configname, rulesconfig, daemonconfig) VALUES (:configname, :rulesconfig, :daemonconfig)", + $dbquery = Database::exec("INSERT INTO `usb_configs` (configname, rulesconfig, daemonconfig, configdesc) VALUES (:configname, :rulesconfig, :daemonconfig, :configdesc)", array('configname' => $configname, 'rulesconfig' => json_encode($result['rules']), - 'daemonconfig' => implode($newDaemonConf))); + 'daemonconfig' => implode($newDaemonConf), + 'configdesc' => $configdesc)); } else { - $dbquery = Database::exec("UPDATE `usb_configs` SET configname=:configname, rulesconfig=:rulesconfig, daemonconfig=:daemonconfig WHERE configid=:configid", + $dbquery = Database::exec("UPDATE `usb_configs` SET configname=:configname, rulesconfig=:rulesconfig, daemonconfig=:daemonconfig, configdesc=:configdesc WHERE configid=:configid", array('configid' => $id, 'configname' => $configname, 'rulesconfig' => json_encode($result['rules']), - 'daemonconfig' => implode($newDaemonConf))); + 'daemonconfig' => implode($newDaemonConf), + 'configdesc' => $configdesc)); } Message::addSuccess('config-saved'); } diff --git a/modules-available/usblockoff/style.css b/modules-available/usblockoff/style.css index 5867511a..b54b2d88 100644 --- a/modules-available/usblockoff/style.css +++ b/modules-available/usblockoff/style.css @@ -5,4 +5,9 @@ #configurationTable th, #configurationTable td { word-wrap: break-word +} + +.missingInput { + border-color: rgba(255, 0, 0, 0.8); + box-shadow: 0 1px 1px rgba(255, 0, 0, 0.075) inset, 0 0 8px rgba(255, 0, 0, 0.6); }
\ No newline at end of file diff --git a/modules-available/usblockoff/templates/usb-configuration-table.html b/modules-available/usblockoff/templates/usb-configuration-table.html index 45d0c229..35eede5a 100644 --- a/modules-available/usblockoff/templates/usb-configuration-table.html +++ b/modules-available/usblockoff/templates/usb-configuration-table.html @@ -66,8 +66,8 @@ <thead> <tr> <th style="width: 5%" data-sort="int">ID</th> - <th style="width: 40%" data-sort="string">{{lang_configName}}</th> - <th style="width: 35%">{{lang_ruleInfoTODO}}</th> + <th style="width: 35%" data-sort="string">{{lang_configName}}</th> + <th style="width: 40%">{{lang_description}}</th> <th style="width: 10%">{{lang_edit}}</th> <th style="width: 10%">{{lang_delete}}</th> </tr> @@ -77,7 +77,7 @@ <tr> <td>{{config_id}}</td> <td data-sort-value="{{config_name}}">{{config_name}}</td> - <td>TODO: Show Rule information here</td> + <td>{{config_desc}}</td> <td> <a class="btn btn-xs btn-info" href="?do=usblockoff&show=edit-config&configid={{config_id}}"> <span class="glyphicon glyphicon-edit"></span> diff --git a/modules-available/usblockoff/templates/usb-edit-config.html b/modules-available/usblockoff/templates/usb-edit-config.html index 51166138..1cd24ce7 100644 --- a/modules-available/usblockoff/templates/usb-edit-config.html +++ b/modules-available/usblockoff/templates/usb-edit-config.html @@ -14,7 +14,7 @@ <label for="configName">{{lang_configName}}</label> </div> <div class="col-sm-7"> - <input required class="form-control" name="configName" id="configName" value="{{configName}}"> + <input type="text" class="form-control" name="configName" id="configName" value="{{configName}}"> </div> <div class="col-sm-2"> <a class="btn btn-default" title="{{lang_configName_helptext}}"> @@ -22,6 +22,20 @@ </a> </div> </div> + <br> + <div class="row"> + <div class="col-sm-3"> + <label for="configDesc">{{lang_description}}</label> + </div> + <div class="col-sm-7"> + <input class="form-control" name="configDesc" id="configDesc" value="{{configDesc}}"> + </div> + <div class="col-sm-2"> + <a class="btn btn-default" title="{{lang_configDesc_helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> </div> </div> @@ -54,3 +68,20 @@ </div> </form> + + + +<script type="application/javascript"> + document.addEventListener("DOMContentLoaded", function () { + $('form').submit(function () { + var input = $("#configName"); + var name = $.trim(input.val()); + if (!name) { + input.addClass("missingInput"); + return false; + } + }); + }); +</script> + + diff --git a/modules-available/usblockoff/templates/usb-rules-config.html b/modules-available/usblockoff/templates/usb-rules-config.html index 6aed254d..8cb63d88 100644 --- a/modules-available/usblockoff/templates/usb-rules-config.html +++ b/modules-available/usblockoff/templates/usb-rules-config.html @@ -1,9 +1,9 @@ <div class="panel panel-default"> <div class="panel-heading"> + rules.conf <a class="btn btn-default" title="{{lang_firstMatchingRuleCounts}}"> <span class="glyphicon glyphicon-question-sign"></span> </a> - rules.conf </div> <div class="panel-body" id="casualRules"> @@ -14,7 +14,7 @@ <thead> <tr> <th data-sort="string" width="20"><span class="glyphicon glyphicon-th-list"></span></th> - <th width="120">{{lang_target}}</th> + <th width="120">{{lang_action}}</th> <th>{{lang_attributes}}</th> <th>{{lang_edit}}</th> <th>{{lang_delete}}</th> |