diff options
author | Jannik Schönartz | 2018-01-18 18:03:20 +0100 |
---|---|---|
committer | Jannik Schönartz | 2018-01-18 18:03:20 +0100 |
commit | c68121f031d015291f1bf3f90f20de865078561f (patch) | |
tree | b18f59a34a99bfe70bd0c5d6b129b81330577dbd /modules-available/usblockoff/templates | |
parent | [usb-lock-off] Moved with-interfaces from the specific props to the general d... (diff) | |
download | slx-admin-c68121f031d015291f1bf3f90f20de865078561f.tar.gz slx-admin-c68121f031d015291f1bf3f90f20de865078561f.tar.xz slx-admin-c68121f031d015291f1bf3f90f20de865078561f.zip |
[usb-lock-off] Added generic rule functionality. Fixed tooltip flickering. Fixed alignment when windows is very small.
Diffstat (limited to 'modules-available/usblockoff/templates')
4 files changed, 257 insertions, 30 deletions
diff --git a/modules-available/usblockoff/templates/usb-add-generic-rule.html b/modules-available/usblockoff/templates/usb-add-generic-rule.html new file mode 100644 index 00000000..4e8339c7 --- /dev/null +++ b/modules-available/usblockoff/templates/usb-add-generic-rule.html @@ -0,0 +1,195 @@ +<div> + <form method="post" action="?do=usblockoff" id="addGenericRuleForm"> + <input type="hidden" name="token" value="{{token}}"> + <input type="hidden" name="action" value="addGenericRule"> + + <div class="panel panel-default"> + <div class="panel-heading">{{lang_generalOptions}}</div> + <div class="panel-body"> + <div class="list-group"> + + {{#settings}} + {{{settingHtml}}} + {{/settings}} + + </div> + </div> + </div> + + <div class="panel panel-default"> + <div class="panel-heading">{{lang_modeOptions}} + <input class="settings-bs-switch" id="expert_Switch" type="checkbox" name="expert_Switch" + data-on-text="Expert" data-off-text="Casual" data-size="small"> + </div> + <div class="panel-body"> + <div class="list-group"> + + <div id="casualMode"> + + <div class="list-group-item"> + <div class="row"> + <div class="col-md-3"><label>{{lang_deviceClasses}}</label></div> + <div class="col-md-7"> + <select class="form-control" id="casual_selected"> + <option value="08:*:*" selected>{{lang_mass-storage}}</option> + <option value="03:*:*">{{lang_hid}}</option> + <option value="09:*:*">{{lang_hub}}</option> + <option value="07:*:*">{{lang_printer}}</option> + <option value="01:*:*">{{lang_audio}}</option> + <option value="*:*:*">{{lang_all-devices}}</option> + </select> + </div> + <div class="col-md-2"> + <a class="btn btn-default" title="{{lang_classes-helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> + + <div class="list-group-item"> + <div class="row"> + <div class="col-md-3"><label>{{lang_contains}}</label></div> + <div class="col-md-7"> + <input class="settings-bs-switch" id="contains" type="checkbox" value="1" checked + data-size="small"> + </div> + <div class="col-md-2"> + <a class="btn btn-default" title="{{lang_contains-helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> + + </div> + + <div id="expertMode" style="display: none;"> + + <div class="list-group-item"> + <div class="row"> + <div class="col-md-3"><label>{{lang_operator}}</label></div> + <div class="col-md-7"> + <select class="form-control" id="expert_selected"> + <option value="all-of">{{lang_all-of}}</option> + <option value="one-of">{{lang_one-of}}</option> + <option value="none-of">{{lang_none-of}}</option> + <option value="equals" selected>{{lang_equals}}</option> + <option value="equals-ordered">{{lang_equals-ordered}}</option> + </select> + </div> + <div class="col-md-2"> + <a class="btn btn-default" title="{{lang_operator-helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> + + <div class="list-group-item"> + <div class="row"> + <div class="col-md-3"><label>{{lang_deviceClass}}</label></div> + <div class="col-md-7"> + <input class="form-control" type="input" id="input_deviceClass" + value=""> + </div> + <div class="col-md-2"> + <a class="btn btn-default" title="{{lang_deviceClass-helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> + + <div class="list-group-item"> + <div class="row"> + <div class="col-md-3"><label>{{lang_deviceSubClass}}</label></div> + <div class="col-md-7"> + <input class="form-control" type="input" id="input_deviceSubClass" + value=""> + </div> + <div class="col-md-2"> + <a class="btn btn-default" title="{{lang_deviceSubClass-helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> + + <div class="list-group-item"> + <div class="row"> + <div class="col-md-3"><label>{{lang_deviceProtocol}}</label></div> + <div class="col-md-7"> + <input class="form-control" type="input" id="input_deviceProtocol" + value=""> + </div> + <div class="col-md-2"> + <a class="btn btn-default" title="{{lang_deviceProtocol-helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> + + </div> + + </div> + </div> + </div> + + </form> +</div> + +<script type="text/javascript"> + $('a.btn[title]').tooltip({placement: "auto", html: true}); + + + var contains = true; + var c = $('#contains'); + c.bootstrapSwitch(); + c.on('switchChange.bootstrapSwitch', function(event, state) { + contains = state; + }); + var s = $('#expert_Switch'); + var mode = "casual"; + s.bootstrapSwitch(); + s.parent().parent().addClass('pull-right'); + s.parent().parent().css("margin", "-5px"); + + s.on('switchChange.bootstrapSwitch', function(event, state) { + if (state) { + // Expert mode. + $('#casualMode').hide(); + $('#expertMode').show(); + mode = "expert"; + } else { + // Casual mode. + $('#expertMode').hide(); + $('#casualMode').show(); + mode = "casual"; + } + }); + + // Add handler to the modal Button. + $('#myModalAddButton').unbind().click(addRule); + $('#myModalAddButtonText').text('{{lang_addRule}}'); + + function addRule() { + if ($('#rules').val() != "") { + $('#rules').val($('#rules').val() + "\r\n"); + } + if (mode == "casual") { + if (contains) { + $('#rules').val($('#rules').val() + $('#prop-action').val() + ' with-interface all-of' + ' { ' + + $('#casual_selected option:selected').val() + ' }'); + } else { + $('#rules').val($('#rules').val() + $('#prop-action').val() + ' with-interface ' + $('#casual_selected option:selected').val()); + } + } else { + $('#rules').val($('#rules').val() + $('#prop-action').val() + ' with-interface ' + $('#expert_selected option:selected').val() + + ' { ' + $("#input_deviceClass").val() + ":" + $("#input_deviceSubClass").val() + ":" + + $('#input_deviceProtocol').val() + ' }'); + } + $('#myModal').modal('hide'); + } +</script>
\ No newline at end of file diff --git a/modules-available/usblockoff/templates/usb-choose-config.html b/modules-available/usblockoff/templates/usb-choose-config.html index 06dcf92f..0ad7213a 100644 --- a/modules-available/usblockoff/templates/usb-choose-config.html +++ b/modules-available/usblockoff/templates/usb-choose-config.html @@ -2,6 +2,7 @@ <input type="hidden" name="token" value="{{token}}"> <input type="hidden" name="action" id="formAction" value="updateConfig"> <input type="hidden" name="id" value="0" id="configID"> + <input type="hidden" name="saveAsNewConfig" value="0" id="saveAsNewConfig"> <div class="panel panel-default"> <div class="panel-heading">{{lang_general}}</div> @@ -14,16 +15,14 @@ <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> + <!--<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 class="col-sm-2"> <a class="btn btn-default" title="{{lang_config_helptext}}"> @@ -39,9 +38,7 @@ <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> + <input required class="form-control" name="configName" id="configName" value="{{configName}}"> </div> <div class="col-sm-2"> <a class="btn btn-default" title="{{lang_configName_helptext}}"> @@ -54,16 +51,30 @@ <div class="list-group-item"> <div class="row"> <div class="col-sm-3"> + <label>{{lang_saveAsNewConfig}}</label> + </div> + <div class="col-sm-7"> + <input class="settings-bs-switch" id="saveAsNewConfig_CB" type="checkbox" value="0" data-size="small"> + </div> + <div class="col-sm-2"> + <a class="btn btn-default" title="{{lang_saveAsNewConfig-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"></span> {{lang_delete}} - </button> - </div> + <!-- <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"></span> {{lang_delete}} + </button> </div> <div class="col-sm-2"> <a class="btn btn-default" title="{{lang_deleteConfig_helptext}}"> @@ -81,6 +92,13 @@ <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function () { $('#select_config').change(); + $('#saveAsNewConfig_CB').bootstrapSwitch().on('switchChange.bootstrapSwitch', function(event, state) { + if (state) { + $('#saveAsNewConfig').val(1); + } else { + $('#saveAsNewConfig').val(0); + } + }); }); function loadConfig(selectedOption) { diff --git a/modules-available/usblockoff/templates/usb-configuration.html b/modules-available/usblockoff/templates/usb-configuration.html index fdfb0793..4b0f1d58 100644 --- a/modules-available/usblockoff/templates/usb-configuration.html +++ b/modules-available/usblockoff/templates/usb-configuration.html @@ -10,9 +10,7 @@ <label>{{name}}</label> </div> <div class="col-sm-7"> - <div class="col-sm-7"> - <input class="form-control" name="{{name}}" id="{{name}}" value="{{value}}"> - </div> + <input class="form-control" name="{{name}}" id="{{name}}" value="{{value}}"> </div> <div class="col-sm-2"> <a class="btn btn-default" title="{{helptext}}"> @@ -39,9 +37,14 @@ <div class="pull-right"> <a class="btn btn-default" title="{{lang_howToRuleLang}}" href="https://usbguard.github.io/documentation/rule-language.html" - style="margin-right: 3px;" target="_blank"> + style="margin-right: -1px;" target="_blank"> <span class="glyphicon glyphicon-question-sign"></span> </a> + <a class="btn btn-success" onclick="loadAddGenericRuleModal();" + style="margin-right: 3px; float: none;"> + <span class="glyphicon glyphicon-plus"></span> + <span>{{lang_genericRule}}</span> + </a> <a class="btn btn-success" style="float: right;" onclick="loadAddDeviceModal();"> <span style="margin-right: 5px;" class="glyphicon glyphicon-plus"></span> <span>{{lang_devices}}</span> @@ -70,7 +73,7 @@ <div class="modal-body" id="myModalBody"></div> <div class="modal-footer"> <a class="btn btn-default" data-dismiss="modal">{{lang_cancel}}</a> - <button id="myModalAddButton" class="btn btn-success" type="button" onclick="addDevices();"> + <button id="myModalAddButton" class="btn btn-success" type="button"> <span style="margin-right: 5px;" class="glyphicon glyphicon-plus"></span> <span id="myModalAddButtonText"></span> </button> @@ -80,12 +83,10 @@ </div> <script type="text/javascript"> - $('a.btn[title]').tooltip({placement: "left", html: true}); - //var configID = $('#select_config option:selected').val(); - //$('#deleteConfigButton').val(configID); + $('a.btn[title]').tooltip({placement: "auto", html: true}); function loadAddDeviceModal() { - // TODO Change text of the MODAL!! + // TODO: Make "Device list" a lang Tag... $('#myModalHeader').text("Device list").css("font-weight", "Bold"); $('#myModalAddButton').attr("form", "addDevicesForm"); $('#myModal .modal-dialog').css('width', '60%'); @@ -93,4 +94,14 @@ $('#myModal').modal('show'); $('#myModalBody').load("?do=usblockoff&action=deviceList"); } + + function loadAddGenericRuleModal() { + // TODO: see todo above + $('#myModalHeader').text("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> diff --git a/modules-available/usblockoff/templates/usb-device-list.html b/modules-available/usblockoff/templates/usb-device-list.html index a2964987..b5cc82b0 100644 --- a/modules-available/usblockoff/templates/usb-device-list.html +++ b/modules-available/usblockoff/templates/usb-device-list.html @@ -52,7 +52,7 @@ </div> <div class="panel panel-default"> - <div class="panel-heading">Rule Options</div> + <div class="panel-heading">{{lang_ruleOptions}}</div> <div class="panel-body"> <div class="list-group"> @@ -72,6 +72,9 @@ $('.settings-bs-switch').bootstrapSwitch({size: 'small'}); countSelected(); + // Add handler to the modal Button. + $('#myModalAddButton').unbind().click(addDevices); + function clickRow(tbody, uid) { $(tbody).toggleClass('selected'); countSelected(); |