diff options
author | Jannik Schönartz | 2017-12-12 16:56:59 +0100 |
---|---|---|
committer | Jannik Schönartz | 2017-12-12 16:56:59 +0100 |
commit | 186515ab545a70ea8ec3e38b062a89138f9f5a0a (patch) | |
tree | edc46ae5cb09355aed5b6be401c9fa75fe2964a4 /modules-available/usblockoff | |
parent | Moved save/reset/add-usb-device buttons to the right side (diff) | |
download | slx-admin-186515ab545a70ea8ec3e38b062a89138f9f5a0a.tar.gz slx-admin-186515ab545a70ea8ec3e38b062a89138f9f5a0a.tar.xz slx-admin-186515ab545a70ea8ec3e38b062a89138f9f5a0a.zip |
[usb-lock-off] Reformatting code.
Diffstat (limited to 'modules-available/usblockoff')
8 files changed, 289 insertions, 243 deletions
diff --git a/modules-available/usblockoff/api.inc.php b/modules-available/usblockoff/api.inc.php index 9029819d..14bc6805 100644 --- a/modules-available/usblockoff/api.inc.php +++ b/modules-available/usblockoff/api.inc.php @@ -2,9 +2,10 @@ HandleParameters(); -function HandleParameters() { +function HandleParameters() +{ $getAction = Request::get('action', 0, 'string'); - if ($getAction == "newdevice") { + if ($getAction == "newdevice") { $id = Request::get('id', '', 'string'); $serial = Request::get('serial', '', 'sting'); $name = Request::get('name', '', 'string'); @@ -28,22 +29,36 @@ function HandleParameters() { * @param string $serial USB-Device serial number. * @param string $name USB-Device name. */ -function newDevice($id, $serial, $name, $ip, $ruleInformation) { +function newDevice($id, $serial, $name, $ip, $ruleInformation) +{ $NOW = time(); //$machineuuid = Database::queryFirst("SELECT machineuuid, currentuser FROM machine AS m WHERE m.clientip = :ip", array('ip' => $ip)); - $client = Database::queryFirst("SELECT m.machineuuid AS 'muid', m.currentuser AS 'user' FROM machine AS m WHERE m.clientip=:ip", array('ip' => $ip)); + $client = Database::queryFirst("SELECT m.machineuuid AS 'muid', m.currentuser AS 'user' FROM machine AS m WHERE m.clientip=:ip", array('ip' => $ip)); // TODO: Same device when ID/Serial/Name are the same? Maybe hash value but the hash value can be different on multiple unix. $dbresult = Database::queryFirst("SELECT uid FROM `usb_devices` WHERE id=:id AND serial=:serialnr AND name=:name", array( - 'id' => $id, 'serialnr' => $serial, 'name' => $name)); + 'id' => $id, + 'serialnr' => $serial, + 'name' => $name)); if (empty($dbresult)) { $dbquery = Database::exec("INSERT INTO `usb_devices` (id, serial, name, machineuuid, time, user, ruleInformation) VALUES (:id, :serialnr, - :name, :machineuuid, :now, :user, :ruleInformation)", array('id' => $id, 'serialnr' => $serial, 'name' => $name, 'machineuuid' => $client['muid'], 'now' => $NOW, - 'user' => $client['user'], 'ruleInformation' => json_encode($ruleInformation))); + :name, :machineuuid, :now, :user, :ruleInformation)", array('id' => $id, + 'serialnr' => $serial, + 'name' => $name, + 'machineuuid' => $client['muid'], + 'now' => $NOW, + 'user' => $client['user'], + 'ruleInformation' => json_encode($ruleInformation))); echo "Successfully added"; } else { $dbquery = Database::exec("UPDATE `usb_devices` SET machineuuid=:machineuuid, time=:now, user=:user, ruleInformation=:ruleInformation WHERE id=:id AND serial=:serialnr AND name=:name", - array('id' => $id, 'serialnr' => $serial, 'name' => $name, 'machineuuid' => $client['muid'], 'now' => $NOW, 'user' => $client['user'], 'ruleInformation' => json_encode($ruleInformation))); + array('id' => $id, + 'serialnr' => $serial, + 'name' => $name, + 'machineuuid' => $client['muid'], + 'now' => $NOW, + 'user' => $client['user'], + 'ruleInformation' => json_encode($ruleInformation))); echo "Successfully updated"; } @@ -54,6 +69,7 @@ function newDevice($id, $serial, $name, $ip, $ruleInformation) { * * @param string $serial USB-Device serial number. */ -function deleteDevice($serial) { +function deleteDevice($serial) +{ $dbquery = Database::exec("DELETE FROM `usb_devices` WHERE serial=:serial", array('serial' => $serial)); } diff --git a/modules-available/usblockoff/page.inc.php b/modules-available/usblockoff/page.inc.php index e2effad4..efb85fb1 100644 --- a/modules-available/usblockoff/page.inc.php +++ b/modules-available/usblockoff/page.inc.php @@ -2,12 +2,15 @@ $glob3 = 'globale Variable 3'; $name = 'testname'; $logedIn = true; -class Page_usblockoff extends Page { + +class Page_usblockoff extends Page +{ /** * Called before any page rendering happens - early hook to check parameters etc. */ - protected function doPreprocess() { + protected function doPreprocess() + { User::load(); if (!User::isLoggedIn()) { @@ -31,12 +34,14 @@ class Page_usblockoff extends Page { /** * Menu etc. has already been generated, now it's time to generate page content. */ - protected function doRender() { + protected function doRender() + { $this->loadConfigChooser(); } - protected function loadConfigChooser() { + protected function loadConfigChooser() + { $dbquery = Database::simpleQuery("SELECT configid, configname FROM `usb_configs`"); $configs = array(); while ($dbentry = $dbquery->fetch(PDO::FETCH_ASSOC)) { @@ -45,10 +50,11 @@ class Page_usblockoff extends Page { $configs[] = $config; } - Render::addTemplate('usb-choose-config', array( 'config_list' => array_values($configs))); + Render::addTemplate('usb-choose-config', array('config_list' => array_values($configs))); } - protected function deleteConfig() { + protected function deleteConfig() + { $configID = Request::post('id', 0, 'int'); if ($configID != 0) { @@ -58,7 +64,8 @@ class Page_usblockoff extends Page { Util::redirect('?do=usblockoff'); } - protected function updateConfig() { + protected function updateConfig() + { // Add new settings in usbguard-daemon.conf here: $result['RuleFile'] = Request::post('RuleFile', '', 'string'); $result['ImplicitPolicyTarget'] = Request::post('ImplicitPolicyTarget', '', 'string'); @@ -96,18 +103,23 @@ class Page_usblockoff extends Page { } else { $splitstr = explode('=', $line); - $splitstr[1] = $result[$splitstr[0]]; - $newDaemonConf[] = implode('=', $splitstr)."\r\n"; + $splitstr[1] = $result[$splitstr[0]]; + $newDaemonConf[] = implode('=', $splitstr) . "\r\n"; } } // INSERT IN DB if ($id == '0') { $dbquery = Database::exec("INSERT INTO `usb_configs` (configname, rulesconfig, daemonconfig) VALUES (:configname, :rulesconfig, :daemonconfig)", - array('configname' => $configname, 'rulesconfig' => $result['rules'], 'daemonconfig' => implode($newDaemonConf))); + array('configname' => $configname, + 'rulesconfig' => $result['rules'], + 'daemonconfig' => implode($newDaemonConf))); } else { $dbquery = Database::exec("UPDATE `usb_configs` SET configname=:configname, rulesconfig=:rulesconfig, daemonconfig=:daemonconfig WHERE configid=:configid", - array('configid' => $id,'configname' => $configname, 'rulesconfig' => $result['rules'], 'daemonconfig' => implode($newDaemonConf))); + array('configid' => $id, + 'configname' => $configname, + 'rulesconfig' => $result['rules'], + 'daemonconfig' => implode($newDaemonConf))); } } @@ -129,12 +141,13 @@ class Page_usblockoff extends Page { } } - private function ajaxConfig($id) { + private function ajaxConfig($id) + { $form = array(); $rulesConf; - if($id == 0) { + if ($id == 0) { $currentdir = getcwd(); $rulesConf = file_get_contents($currentdir . '/modules/usblockoff/inc/default-configs/rules.conf'); @@ -172,14 +185,15 @@ class Page_usblockoff extends Page { )); } - private function ajaxDeviceList() { + private function ajaxDeviceList() + { $usbdevices = array(); $dbquery = Database::simpleQuery("SELECT * FROM `usb_devices`"); while ($entry = $dbquery->fetch(PDO::FETCH_ASSOC)) { $locationquery = Database::queryFirst("SELECT l.locationname AS 'name', m.clientip AS 'ip' FROM machine AS m JOIN location AS l ON l.locationid=m.locationid - WHERE m.machineuuid=:machineuuid", array( 'machineuuid' => $entry['machineuuid'])); + WHERE m.machineuuid=:machineuuid", array('machineuuid' => $entry['machineuuid'])); $device['uid'] = $entry['uid']; $device['id'] = $entry['id']; @@ -202,28 +216,38 @@ class Page_usblockoff extends Page { $settings = array(); $setting = array(); $setting['title'] = "Action"; - $setting['select_list'] = array(array( + $setting['select_list'] = array(array( 'option' => 'allow', 'active' => true, - ), array( - 'option' => 'block', - 'active' => false, - ), array( - 'option' => 'reject', - 'active' => false, - )); + ), + array( + 'option' => 'block', + 'active' => false, + ), + array( + 'option' => 'reject', + 'active' => false, + )); $setting['helptext'] = array('helptext' => Dictionary::translateFile('rule', 'abr_helptext')); $setting['property'] = 'action'; $setting['settingHtml'] = Render::parse('server-prop-dropdown', (array)$setting); $settings[] = $setting; - $ruleValues = array('id' => true, 'serial' => true, 'name' => true, 'hash' => false, 'parent-hash' => false, 'via-port' => false, 'with-interface' => false, 'interface-policy' => false); + $ruleValues = array('id' => true, + 'serial' => true, + 'name' => true, + 'hash' => false, + 'parent-hash' => false, + 'via-port' => false, + 'with-interface' => false, + 'interface-policy' => false); foreach ($ruleValues as $key => $value) { $settings[] = array( 'settingHtml' => Render::parse('server-prop-bool', array('title' => Dictionary::translateFile('rule', $key), - 'helptext' => array('helptext' => Dictionary::translateFile('rule', $key . "_helptext")), - 'property' => $key, 'currentvalue' => $value)), - ); + 'helptext' => array('helptext' => Dictionary::translateFile('rule', $key . "_helptext")), + 'property' => $key, + 'currentvalue' => $value)), + ); } echo Render::parse('usb-device-list', array( diff --git a/modules-available/usblockoff/templates/server-prop-bool.html b/modules-available/usblockoff/templates/server-prop-bool.html index f430d02c..de7c990a 100644 --- a/modules-available/usblockoff/templates/server-prop-bool.html +++ b/modules-available/usblockoff/templates/server-prop-bool.html @@ -7,9 +7,9 @@ </div> <div class="col-md-2"> {{#helptext}} - <a class="btn btn-default" title="{{helptext}}"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> + <a class="btn btn-default" title="{{helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> {{/helptext}} </div> </div> diff --git a/modules-available/usblockoff/templates/server-prop-dropdown.html b/modules-available/usblockoff/templates/server-prop-dropdown.html index 80667766..337c40aa 100644 --- a/modules-available/usblockoff/templates/server-prop-dropdown.html +++ b/modules-available/usblockoff/templates/server-prop-dropdown.html @@ -4,15 +4,15 @@ <div class="col-md-7"> <select class="form-control" id="prop-{{property}}" name="prop-{{property}}"> {{#select_list}} - <option {{#active}}selected{{/active}}>{{option}}</option> + <option {{#active}}selected{{/active}}>{{option}}</option> {{/select_list}} </select> </div> <div class="col-md-2"> {{#helptext}} - <a class="btn btn-default" title="{{helptext}}"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> + <a class="btn btn-default" title="{{helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> {{/helptext}} </div> </div> diff --git a/modules-available/usblockoff/templates/server-prop-generic.html b/modules-available/usblockoff/templates/server-prop-generic.html index 9e94c23d..3c06585e 100644 --- a/modules-available/usblockoff/templates/server-prop-generic.html +++ b/modules-available/usblockoff/templates/server-prop-generic.html @@ -7,9 +7,9 @@ </div> <div class="col-md-2"> {{#helptext}} - <a class="btn btn-default" title="{{helptext}}"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> + <a class="btn btn-default" title="{{helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> {{/helptext}} </div> </div> diff --git a/modules-available/usblockoff/templates/usb-choose-config.html b/modules-available/usblockoff/templates/usb-choose-config.html index d446e4cf..f2f5bb10 100644 --- a/modules-available/usblockoff/templates/usb-choose-config.html +++ b/modules-available/usblockoff/templates/usb-choose-config.html @@ -3,116 +3,118 @@ <input type="hidden" name="action" id="formAction" value="updateConfig"> <input type="hidden" name="id" value="0" id="configID"> - <div class="panel panel-default"> - <div class="panel-heading">{{lang_general}}</div> - <div class="panel-body"> - <div class="list-group"> + <div class="panel panel-default"> + <div class="panel-heading">{{lang_general}}</div> + <div class="panel-body"> + <div class="list-group"> - <div class="list-group-item"> - <div class="row"> - <div class="col-sm-3"> - <label>{{lang_config}}</label> - </div> - <div class="col-sm-7"> - <div class="col-sm-7"> - <!--<input class="form-control" name="{{name}}" id="{{name}}" value="{{value}}">--> - <select class="form-control" id="select_config" name="select_config" onchange="loadConfig(this);"> - <option value="0">{{lang_createNewConfig}}</option> - {{#config_list}} - <option value={{config_id}}>{{config_name}}</option> - {{/config_list}} - </select> - </div> - </div> - <div class="col-sm-2"> - <a class="btn btn-default" title="{{lang_config_helptext}}"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> - </div> - </div> - </div> + <div class="list-group-item"> + <div class="row"> + <div class="col-sm-3"> + <label>{{lang_config}}</label> + </div> + <div class="col-sm-7"> + <div class="col-sm-7"> + <!--<input class="form-control" name="{{name}}" id="{{name}}" value="{{value}}">--> + <select class="form-control" id="select_config" name="select_config" + onchange="loadConfig(this);"> + <option value="0">{{lang_createNewConfig}}</option> + {{#config_list}} + <option value={{config_id}}>{{config_name}}</option> + {{/config_list}} + </select> + </div> + </div> + <div class="col-sm-2"> + <a class="btn btn-default" title="{{lang_config_helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> - <div class="list-group-item"> - <div class="row"> - <div class="col-sm-3"> - <label>{{lang_configName}}</label> - </div> - <div class="col-sm-7"> - <div class="col-sm-7"> - <input required class="form-control" name="configName" id="configName" value="{{configName}}"> - </div> - </div> - <div class="col-sm-2"> - <a class="btn btn-default" title="{{lang_configName_helptext}}"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> - </div> - </div> - </div> + <div class="list-group-item"> + <div class="row"> + <div class="col-sm-3"> + <label>{{lang_configName}}</label> + </div> + <div class="col-sm-7"> + <div class="col-sm-7"> + <input required class="form-control" name="configName" id="configName" value="{{configName}}"> + </div> + </div> + <div class="col-sm-2"> + <a class="btn btn-default" title="{{lang_configName_helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> - <div class="list-group-item"> - <div class="row"> - <div class="col-sm-3"> - <label>{{lang_deleteConfig}}</label> - </div> - <div class="col-sm-7"> - <div class="col-sm-7"> - <!-- <button class="btn btn-danger confirm-delete" type="submit" onclick="deleteConfig();">{{lang_delete}}</button>--> - <button class="btn btn-danger" value="" id="deleteConfigButton" title="{{lang_delete}}" onclick="deleteConfig(event);"> - <span class="glyphicon glyphicon-trash"> {{lang_delete}}</span> - </button> - </div> - </div> - <div class="col-sm-2"> - <a class="btn btn-default" title="{{lang_deleteConfig_helptext}}"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> - </div> - </div> - </div> + <div class="list-group-item"> + <div class="row"> + <div class="col-sm-3"> + <label>{{lang_deleteConfig}}</label> + </div> + <div class="col-sm-7"> + <div class="col-sm-7"> + <!-- <button class="btn btn-danger confirm-delete" type="submit" onclick="deleteConfig();">{{lang_delete}}</button>--> + <button class="btn btn-danger" value="" id="deleteConfigButton" title="{{lang_delete}}" + onclick="deleteConfig(event);"> + <span class="glyphicon glyphicon-trash"> {{lang_delete}}</span> + </button> + </div> + </div> + <div class="col-sm-2"> + <a class="btn btn-default" title="{{lang_deleteConfig_helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> - </div> - </div> - </div> - <div id="configDIV"></div> + </div> + </div> + </div> + <div id="configDIV"></div> </form> <script type="text/javascript"> -document.addEventListener("DOMContentLoaded", function () { - $('#select_config').change(); -}); + document.addEventListener("DOMContentLoaded", function () { + $('#select_config').change(); + }); -function loadConfig(selectedOption) { - var configID = selectedOption.value; - var configName = $('#select_config option:selected').text(); - $('#configDIV').load("?do=usblockoff&action=loadConfig&id=" + configID); - $('#configID').val(configID); - if (configID == 0) { - $('#configName').val(''); - } else { - $('#configName').val(configName); - } -} + function loadConfig(selectedOption) { + var configID = selectedOption.value; + var configName = $('#select_config option:selected').text(); + $('#configDIV').load("?do=usblockoff&action=loadConfig&id=" + configID); + $('#configID').val(configID); + if (configID == 0) { + $('#configName').val(''); + } else { + $('#configName').val(configName); + } + } -function deleteConfig(event) { - event.preventDefault(); + function deleteConfig(event) { + event.preventDefault(); - BootstrapDialog.confirm({ - title: '{{lang_delete}}', - message: '{{lang_deleteConfigMessage}}', - type: BootstrapDialog.TYPE_DANGER, // <-- Default value is BootstrapDialog.TYPE_PRIMARY - closable: false, // <-- Default value is false - draggable: false, // <-- Default value is false - btnCancelLabel: '{{lang_cancel}}', // <-- Default value is 'Cancel', - btnOKLabel: '{{lang_delete}}', // <-- Default value is 'OK', - btnOKClass: 'btn-danger', // <-- If you didn't specify it, dialog type will be used, - callback: function(result) { - if (result) { - var configID = $('#select_config option:selected').val(); - $('#configID').val(configID); - $('#formAction').val('deleteConfig'); - $('#configForm').submit(); + BootstrapDialog.confirm({ + title: '{{lang_delete}}', + message: '{{lang_deleteConfigMessage}}', + type: BootstrapDialog.TYPE_DANGER, // <-- Default value is BootstrapDialog.TYPE_PRIMARY + closable: false, // <-- Default value is false + draggable: false, // <-- Default value is false + btnCancelLabel: '{{lang_cancel}}', // <-- Default value is 'Cancel', + btnOKLabel: '{{lang_delete}}', // <-- Default value is 'OK', + btnOKClass: 'btn-danger', // <-- If you didn't specify it, dialog type will be used, + callback: function (result) { + if (result) { + var configID = $('#select_config option:selected').val(); + $('#configID').val(configID); + $('#formAction').val('deleteConfig'); + $('#configForm').submit(); + } } - } - }); -} + }); + } </script> diff --git a/modules-available/usblockoff/templates/usb-configuration.html b/modules-available/usblockoff/templates/usb-configuration.html index d6317e11..7032e249 100644 --- a/modules-available/usblockoff/templates/usb-configuration.html +++ b/modules-available/usblockoff/templates/usb-configuration.html @@ -3,52 +3,53 @@ <div class="panel-body"> <div class="list-group"> - {{#list}} + {{#list}} <div class="list-group-item"> <div class="row"> <div class="col-sm-3"> <label>{{name}}</label> </div> <div class="col-sm-7"> - <div class="col-sm-7"> + <div class="col-sm-7"> <input class="form-control" name="{{name}}" id="{{name}}" value="{{value}}"> </div> </div> <div class="col-sm-2"> - <a class="btn btn-default" title="{{helptext}}"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> + <a class="btn btn-default" title="{{helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> </div> </div> </div> - {{/list}} + {{/list}} </div> </div> </div> <div class="panel panel-default"> - <div class="panel-heading">rules.conf</div> - <div class="panel-body"> - <div class="list-group"> + <div class="panel-heading">rules.conf</div> + <div class="panel-body"> + <div class="list-group"> - <div class="form-group"> - <textarea class="form-control" rows="10" name="rules" id="rules">{{rules}}</textarea> - </div> + <div class="form-group"> + <textarea class="form-control" rows="10" name="rules" id="rules">{{rules}}</textarea> + </div> <div class="pull-right"> + <a class="btn btn-default" title="{{lang_howToRuleLang}}" + href="https://dkopecek.github.io/usbguard/documentation/rule-language.html" + style="float: right;" target="_blank"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> <a class="btn btn-success" style="margin-right: 3px;" onclick="loadAddDeviceModal();"> <span style="margin-right: 5px;" class="glyphicon glyphicon-plus"></span> <span>{{lang_devices}}</span> </a> - <a class="btn btn-default" title="{{lang_howToRuleLang}}" href="https://dkopecek.github.io/usbguard/documentation/rule-language.html" - style="float: right;" target="_blank"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> </div> - </div> - </div> + </div> + </div> </div> <div class="pull-right"> @@ -62,7 +63,7 @@ <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header" id="myModalHeader"></div> - <div class="modal-body" id="myModalBody" ></div> + <div class="modal-body" id="myModalBody"></div> <div class="modal-footer"> <button id="myModalAddButton" class="btn btn-success" type="button" onclick="addDevices();"> <span style="margin-right: 5px;" class="glyphicon glyphicon-plus"></span> diff --git a/modules-available/usblockoff/templates/usb-device-list.html b/modules-available/usblockoff/templates/usb-device-list.html index a7ecf989..a6cd96b0 100644 --- a/modules-available/usblockoff/templates/usb-device-list.html +++ b/modules-available/usblockoff/templates/usb-device-list.html @@ -1,24 +1,25 @@ <div> -<form method="post" action="?do=usblockoff" id="addDevicesForm"> - <input type="hidden" name="token" value="{{token}}"> - <input type="hidden" name="action" value="addDevices"> - - <div class="input-group" id="search"> - <span class="input-group-addon"><i class="glyphicon glyphicon-search"></i></span> - <input type="text" id="myInput" class="form-control" onkeyup="search()" placeholder="Search for .." style="font-size: 16px;"/> - <span class="input-group-addon" style="width:0px; padding-left:0px; padding-right:0px; border:none;"></span> - <select class="form-control" id="searchFor" style="font-size: 16px;" onchange="search()"> - <option value="0" select>Name</option> - <option value="1">Date / Time</option> - <option value="2">User Information</option> - <option value="3">USB Information</option> - <option value="4">Rules Information</option> - </select> - </div> - - <div style="max-height: 800px; overflow-x: auto;"> - <table class="table table-hover" id="myTable"> - <thead> + <form method="post" action="?do=usblockoff" id="addDevicesForm"> + <input type="hidden" name="token" value="{{token}}"> + <input type="hidden" name="action" value="addDevices"> + + <div class="input-group" id="search"> + <span class="input-group-addon"><i class="glyphicon glyphicon-search"></i></span> + <input type="text" id="myInput" class="form-control" onkeyup="search()" placeholder="Search for .." + style="font-size: 16px;"/> + <span class="input-group-addon" style="width:0px; padding-left:0px; padding-right:0px; border:none;"></span> + <select class="form-control" id="searchFor" style="font-size: 16px;" onchange="search()"> + <option value="0" select>Name</option> + <option value="1">Date / Time</option> + <option value="2">User Information</option> + <option value="3">USB Information</option> + <option value="4">Rules Information</option> + </select> + </div> + + <div style="max-height: 800px; overflow-x: auto;"> + <table class="table table-hover" id="myTable"> + <thead> <tr> <th width="1" style="text-align: center;">Name</th> <th width="1" style="text-align: center;">Time</th> @@ -26,43 +27,44 @@ <th width="1">USB Info</th> <th width="1">Rule Info</th> </tr> - </thead> - {{#list}} - <input type="hidden" id="{{uid}}-prop-name" value="{{name}}"> - <input type="hidden" id="{{uid}}-prop-id" value="{{id}}"> - <input type="hidden" id="{{uid}}-prop-serial" value="{{serial}}"> - <input type="hidden" id="{{uid}}-prop-via-port" value="{{via-port}}"> - <input type="hidden" id="{{uid}}-prop-hash" value="{{hash}}"> - <input type="hidden" id="{{uid}}-prop-parent-hash" value="{{parent-hash}}"> - <input type="hidden" id="{{uid}}-prop-with-interface" value="{{with-interface}}"> - - <tbody onclick="clickRow(this, {{uid}});" id="{{uid}}"> + </thead> + {{#list}} + <input type="hidden" id="{{uid}}-prop-name" value="{{name}}"> + <input type="hidden" id="{{uid}}-prop-id" value="{{id}}"> + <input type="hidden" id="{{uid}}-prop-serial" value="{{serial}}"> + <input type="hidden" id="{{uid}}-prop-via-port" value="{{via-port}}"> + <input type="hidden" id="{{uid}}-prop-hash" value="{{hash}}"> + <input type="hidden" id="{{uid}}-prop-parent-hash" value="{{parent-hash}}"> + <input type="hidden" id="{{uid}}-prop-with-interface" value="{{with-interface}}"> + + <tbody onclick="clickRow(this, {{uid}});" id="{{uid}}"> <tr> <td nowrap align="center" style="vertical-align: middle;"><label>{{name}}</label></td> <td nowrap align="center" style="vertical-align: middle;">{{time}}<br>{{date}}</td> <td nowrap><font size="0">User: {{user}}<br>Location: {{location}}<br>Client: {{clientip}}</font></td> <td nowrap><font size="0">id: {{id}}<br>Serial: {{serial}}<br>via-port: {{via-port}}</font></td> - <td nowrap><font size="0">hash: {{hash}}<br>parent-hash: {{parent-hash}}<br>with-interface: {{with-interface}}</font></td> + <td nowrap><font size="0">hash: {{hash}}<br>parent-hash: {{parent-hash}}<br>with-interface: + {{with-interface}}</font></td> </tr> - </tbody> - {{/list}} - </table> - </div> + </tbody> + {{/list}} + </table> + </div> - <div class="panel panel-default"> - <div class="panel-heading">Rule Options</div> - <div class="panel-body"> - <div class="list-group"> + <div class="panel panel-default"> + <div class="panel-heading">Rule Options</div> + <div class="panel-body"> + <div class="list-group"> - {{#settings}} - {{{settingHtml}}} - {{/settings}} + {{#settings}} + {{{settingHtml}}} + {{/settings}} - </div> - </div> - </div> + </div> + </div> + </div> -</form> + </form> </div> <script type="text/javascript"> @@ -98,36 +100,36 @@ function search() { var searchForIndex = $('#searchFor').val(); - // Declare variables - var input, filter, table, tr, td, i; - input = document.getElementById("myInput"); - filter = input.value.toUpperCase(); - table = document.getElementById("myTable"); - tr = table.getElementsByTagName("tr"); - - // Loop through all table rows, and hide those who don't match the search query - for (i = 0; i < tr.length; i++) { - td = tr[i].getElementsByTagName("td")[searchForIndex]; - if (td) { - if (td.innerHTML.toUpperCase().indexOf(filter) > -1) { - tr[i].style.display = ""; - } else { - tr[i].style.display = "none"; - } + // Declare variables + var input, filter, table, tr, td, i; + input = document.getElementById("myInput"); + filter = input.value.toUpperCase(); + table = document.getElementById("myTable"); + tr = table.getElementsByTagName("tr"); + + // Loop through all table rows, and hide those who don't match the search query + for (i = 0; i < tr.length; i++) { + td = tr[i].getElementsByTagName("td")[searchForIndex]; + if (td) { + if (td.innerHTML.toUpperCase().indexOf(filter) > -1) { + tr[i].style.display = ""; + } else { + tr[i].style.display = "none"; } } + } } function addDevices() { - $('.selected').each(function() { + $('.selected').each(function () { var rule = $('#prop-action').val(); var selected = $(this); - $('.settings-bs-switch').each(function() { - if($(this).is(":checked")) { + $('.settings-bs-switch').each(function () { + if ($(this).is(":checked")) { var settingname = $(this).attr('name').substring(5); var info = $('#' + $(selected).attr('id') + '-' + $(this).attr('name')); - if(settingname == 'id' || settingname == 'with-interface') { + if (settingname == 'id' || settingname == 'with-interface') { rule += ' ' + settingname + ' ' + info.val(); } else { rule += ' ' + settingname + ' "' + info.val() + '"'; @@ -146,25 +148,26 @@ <style type='text/css'> .selected { - background-color: #F5F5F5; + background-color: #F5F5F5; } + #myTable { - border-collapse: collapse; /* Collapse borders */ - width: 100%; /* Full-width */ - border: 1px solid #ddd; /* Add a grey border */ + border-collapse: collapse; /* Collapse borders */ + width: 100%; /* Full-width */ + border: 1px solid #ddd; /* Add a grey border */ } #myTable th, #myTable td { - padding: 12px; /* Add padding */ + padding: 12px; /* Add padding */ } #myTable tr { - /* Add a bottom border to all table rows */ - border-bottom: 1px solid #ddd; + /* Add a bottom border to all table rows */ + border-bottom: 1px solid #ddd; } #myTable tr.header, #myTable tr:hover { - /* Add a grey background color to the table header and on hover */ - background-color: #f1f1f1; + /* Add a grey background color to the table header and on hover */ + background-color: #f1f1f1; } </style> |