diff options
author | Simon Rettberg | 2017-04-21 12:31:25 +0200 |
---|---|---|
committer | Simon Rettberg | 2017-04-21 12:31:25 +0200 |
commit | b7ad64152d434c6a6188c7c75a2d538432c44371 (patch) | |
tree | 6407f1a3e803c4c204518593f5f3d7375256c930 /modules-available/locationinfo/templates | |
parent | [locationinfo] Properly support certificate and hostname verification (diff) | |
download | slx-admin-b7ad64152d434c6a6188c7c75a2d538432c44371.tar.gz slx-admin-b7ad64152d434c6a6188c7c75a2d538432c44371.tar.xz slx-admin-b7ad64152d434c6a6188c7c75a2d538432c44371.zip |
[locationinfo] Generate credentials in server-settings server side
There's no need to generate parameters server side that get passed to
the template engine which generates javascript code that generates
html snippets in the browser.
We now generate everything server side right away.
Diffstat (limited to 'modules-available/locationinfo/templates')
5 files changed, 119 insertions, 141 deletions
diff --git a/modules-available/locationinfo/templates/location-info.html b/modules-available/locationinfo/templates/location-info.html index c2242241..8af29df0 100644 --- a/modules-available/locationinfo/templates/location-info.html +++ b/modules-available/locationinfo/templates/location-info.html @@ -178,7 +178,6 @@ */ function loadServerSettingsModal(serverid) { $('#myModalHeader').text("{{lang_locationSettings}}").css("font-weight", "Bold"); - $('#myModalSubmitButton').attr("form", "settingsForm"); $('#myModal .modal-dialog').css('width', ''); $('#myModal').modal('show'); $('#myModalBody').load("?do=locationinfo&action=serverSettings&id=" + serverid); diff --git a/modules-available/locationinfo/templates/server-prop-bool.html b/modules-available/locationinfo/templates/server-prop-bool.html new file mode 100644 index 00000000..f430d02c --- /dev/null +++ b/modules-available/locationinfo/templates/server-prop-bool.html @@ -0,0 +1,16 @@ +<div class="list-group-item"> + <div class="row"> + <div class="col-md-3"><label for="prop-{{property}}">{{title}}</label></div> + <div class="col-md-7"> + <input class="settings-bs-switch" id="prop-{{property}}" type="checkbox" name="prop-{{property}}" value="1" + {{#currentvalue}}checked{{/currentvalue}}> + </div> + <div class="col-md-2"> + {{#helptext}} + <a class="btn btn-default" title="{{helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + {{/helptext}} + </div> + </div> +</div>
\ No newline at end of file diff --git a/modules-available/locationinfo/templates/server-prop-dropdown.html b/modules-available/locationinfo/templates/server-prop-dropdown.html new file mode 100644 index 00000000..80667766 --- /dev/null +++ b/modules-available/locationinfo/templates/server-prop-dropdown.html @@ -0,0 +1,19 @@ +<div class="list-group-item"> + <div class="row"> + <div class="col-md-3"><label for="prop-{{property}}">{{title}}</label></div> + <div class="col-md-7"> + <select class="form-control" id="prop-{{property}}" name="prop-{{property}}"> + {{#select_list}} + <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> + {{/helptext}} + </div> + </div> +</div>
\ No newline at end of file diff --git a/modules-available/locationinfo/templates/server-prop-generic.html b/modules-available/locationinfo/templates/server-prop-generic.html new file mode 100644 index 00000000..9e94c23d --- /dev/null +++ b/modules-available/locationinfo/templates/server-prop-generic.html @@ -0,0 +1,16 @@ +<div class="list-group-item"> + <div class="row"> + <div class="col-md-3"><label for="prop-{{property}}">{{title}}</label></div> + <div class="col-md-7"> + <input class="form-control" id="prop-{{property}}" type="{{inputtype}}" name="prop-{{property}}" + value="{{currentvalue}}"> + </div> + <div class="col-md-2"> + {{#helptext}} + <a class="btn btn-default" title="{{helptext}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + {{/helptext}} + </div> + </div> +</div>
\ No newline at end of file diff --git a/modules-available/locationinfo/templates/server-settings.html b/modules-available/locationinfo/templates/server-settings.html index 09b3870c..c9b713e6 100644 --- a/modules-available/locationinfo/templates/server-settings.html +++ b/modules-available/locationinfo/templates/server-settings.html @@ -1,163 +1,91 @@ -<div> - <form method="post" action="?do=locationinfo" id="settingsForm"> +<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-md-3"> + <label>{{lang_entryName}}</label> + </div> + <div class="col-md-7"> + <input required class="form-control" name="name" type="text" value="{{name}}" id="name-input" + form="form-{{currentbackend}}"> + </div> + <div class="col-md-2"> + <a class="btn btn-default" title="{{lang_nameTooltip}}"> + <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_serverType}}</label> + </div> + <div class="col-md-7"> + <select class="form-control" onchange="servertype_changed(this.value)"> + {{#backendList}} + <option value="{{backendtype}}" {{#active}}selected{{/active}}>{{display}}</option> + {{/backendList}} + </select> + </div> + <div class="col-md-2"> + <a class="btn btn-default" id="help-type" title="{{lang_typeTooltip}}"> + <span class="glyphicon glyphicon-question-sign"></span> + </a> + </div> + </div> + </div> + </div> + </div> +</div> + +{{#backendList}} +<div id="formwrapper-{{backendtype}}" {{^active}}class="collapse"{{/active}}> + <form method="post" action="?do=locationinfo" id="form-{{backendtype}}"> <input type="hidden" name="token" value="{{token}}"> <input type="hidden" name="action" value="updateServerSettings"> <input type="hidden" name="id" value="{{id}}"> + <input type="hidden" name="type" value="{{backendtype}}"> <div class="panel panel-default"> - <div class="panel-heading">{{lang_general}}</div> + <div class="panel-heading">{{lang_credentials}}</div> <div class="panel-body"> <div class="list-group"> - - <div class="list-group-item"> - <div class="row"> - <div class="col-md-3"> - <label>{{lang_locationName}}</label> - </div> - <div class="col-md-7"> - <input required class="form-control" id="input-name-{{id}}" name="name" type="text" - value="{{name}}"> - </div> - <div class="col-md-2"> - <a class="btn btn-default" id="help-name" title="{{lang_nameTooltip}}"> - <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_serverType}}</label> - </div> - <div class="col-md-7"> - <select class="form-control" id="input-type-{{id}}" name="type" value="{{typ}}" - onchange="servertype_changed(this.value);"> - {{#backendList}} - <option id="{{typ}}" value="{{typ}}" {{#active}}selected{{/active}}>{{display}} - {{/backendList}} - </select> - </div> - <div class="col-md-2"> - <a class="btn btn-default" id="help-type" title="{{lang_typeTooltip}}"> - <span class="glyphicon glyphicon-question-sign"></span> - </a> - </div> - </div> - </div> - + {{#credentials}} + {{{credentialsHtml}}} + {{/credentials}} </div> </div> </div> - - <div class="panel panel-default" id="credentials-div"> - <div class="panel-heading">{{lang_credentials}}</div> - <div class="panel-body"> - <div class="list-group" id="credentials-list"></div> - </div> - </div> - <div id="credentials" class="list-group"></div> </form> </div> +{{/backendList}} <script type="text/javascript"> - var type = "{{servertype}}"; - if (type == "") { - type = $('#input-type-{{id}}').val(); - } - - loadCredentials(true); - initalizeBootstrap(); - - /** - * Initialize the bootstrap elements. - */ - function initalizeBootstrap() { - $('#help-name').tooltip(); - $('#help-type').tooltip(); - } + var currentBackend = "{{currentbackend}}"; /** - * Loads the dynamic credentials forms. + * Show proper form after switching backend type * - * @param {bool} useValue If false the form elements will be empty. Default = true. - */ - function loadCredentials(useValue) { - // {{name}} name of auth {{type}} type of auth (string, int etc.) {{value}} value from the db - {{#backendList}} - if (type == "{{typ}}") { - {{#credentials}} - $('#credentials-div').fadeIn('fast'); - - if ("{{type}}" == "string") { - $("#credentials-list").append('<div class="list-group-item"><div class="row">\ - <div class="col-md-3"><label>{{name}}</label></div>\ - <div class="col-md-7">\ - <input required class="form-control" id="input-{{uid}}" type="text" name="{{uid}}" value="{{value}}" form="settingsForm"></div>\ - <div class="col-md-2"><a class="btn btn-default" id="help-{{uid}}" title="{{title}}"><span class="glyphicon glyphicon-question-sign"></span></a></div>\ - </div></div>'); - } else if ("{{type}}" == "int") { - $("#credentials-list").append('<div class="list-group-item"><div class="row">\ - <div class="col-md-3"><label>{{name}}</label></div>\ - <div class="col-md-7">\ - <input required class="form-control" id="input-{{uid}}" type="number" name="{{uid}}" value="{{value}}" form="settingsForm"></div>\ - <div class="col-md-2"><a class="btn btn-default" id="help-{{uid}}" title="{{title}}"><span class="glyphicon glyphicon-question-sign"></span></a></div>\ - </div></div>'); - } else if ("{{type}}" == "password") { - $("#credentials-list").append('<div class="list-group-item"><div class="row">\ - <div class="col-md-3"><label>{{name}}</label></div>\ - <div class="col-md-7">\ - <input required class="form-control" id="input-{{uid}}" {{#mask}}type="password"{{/mask}}{{^mask}}type="text"{{/mask}} name="{{uid}}" value="{{value}}" form="settingsForm"></div>\ - <div class="col-md-2"><a class="btn btn-default" id="help-{{uid}}" title="{{title}}"><span class="glyphicon glyphicon-question-sign"></span></a></div>\ - </div></div>'); - } else if ("{{type}}" == "bool") { - $("#credentials-list").append('<div class="list-group-item"><div class="row">\ - <div class="col-md-3"><label>{{name}}</label></div>\ - <div class="col-md-7">\ - <input class="bs-switch" id="input-{{uid}}" type="checkbox" name="{{uid}}" value="true" form="settingsForm" {{#value}}checked{{/value}}></div>\ - <div class="col-md-2"><a class="btn btn-default" id="help-{{uid}}" title="{{title}}"><span class="glyphicon glyphicon-question-sign"></span></a></div>\ - </div></div>'); - $('#input-{{uid}}').bootstrapSwitch({ - size: "small" - }); - } else if ("{{type}}" == "array") { - $("#credentials-list").append('<div class="list-group-item"><div class="row">\ - <div class="col-md-3"><label>{{name}}</label></div>\ - <div class="col-md-7">\ - <select class="form-control" id="input-selection-{{uid}}" name="{{uid}}" form="settingsForm">\ - {{#array}}\ - <option value="{{option}}" {{#active}}selected{{/active}}>{{option}}</option>\ - {{/array}}\ - </select></div>\ - <div class="col-md-2"><a class="btn btn-default" id="help-{{uid}}" title="{{title}}"><span class="glyphicon glyphicon-question-sign"></span></a></div>\ - </div></div>'); - } - - $('#help-{{uid}}').tooltip(); - if (!useValue) { - $('#input-{{uid}}').val(""); - } - {{/credentials}} - {{^credentials}} - $('#credentials-div').hide(); - {{/credentials}} - } - {{/backendList}} - - } - - /** - * After the servertype switch changed, the new credentials needs to be loaded. - * - * @param {string} value The new type of the server which credentials needs to be loaded. + * @param {string} value The new currentBackend of the server which credentials needs to be loaded. */ function servertype_changed(value) { - type = value; - $('#credentials-div').fadeOut('fast', function() { - $('#credentials-list').empty(); - loadCredentials(false); + if (value === currentBackend) + return; + var newBackend = value; + console.log('From ' + currentBackend + ' to ' + value); + $('#formwrapper-' + currentBackend).fadeOut('fast', function() { + console.log('Fading in ' + newBackend); + $('#formwrapper-' + newBackend).fadeIn('fast'); + $('#myModalSubmitButton, #name-input').attr('form', 'form-' + newBackend); }); + currentBackend = value; } + $('a.btn[title]').tooltip(); + $('#myModalSubmitButton').attr('form', 'form-' + currentBackend); + $('.settings-bs-switch').bootstrapSwitch({size:'small'}); + </script> |