summaryrefslogtreecommitdiffstats
path: root/modules-available/dnbd3/templates/page-serverlist.html
diff options
context:
space:
mode:
authorSimon Rettberg2017-10-11 16:01:18 +0200
committerSimon Rettberg2017-10-11 16:01:18 +0200
commit2bf954897109fc761a6aa39bfc4479e087671200 (patch)
tree5879636d5ec5a363074edf0243d2b088a7abe8ca /modules-available/dnbd3/templates/page-serverlist.html
parent[dnbd3] Fix CIDR generation for proxies, add baseconfig hook for clients (diff)
downloadslx-admin-2bf954897109fc761a6aa39bfc4479e087671200.tar.gz
slx-admin-2bf954897109fc761a6aa39bfc4479e087671200.tar.xz
slx-admin-2bf954897109fc761a6aa39bfc4479e087671200.zip
[dnbd3] Implement adding and deleting servers
Diffstat (limited to 'modules-available/dnbd3/templates/page-serverlist.html')
-rw-r--r--modules-available/dnbd3/templates/page-serverlist.html86
1 files changed, 81 insertions, 5 deletions
diff --git a/modules-available/dnbd3/templates/page-serverlist.html b/modules-available/dnbd3/templates/page-serverlist.html
index e50c6bcb..d9d02430 100644
--- a/modules-available/dnbd3/templates/page-serverlist.html
+++ b/modules-available/dnbd3/templates/page-serverlist.html
@@ -72,7 +72,9 @@
</td>
<td>
{{^self}}
- <button class="btn btn-danger btn-xs" name="serverid" value="{{serverid}}"><span class="glyphicon glyphicon-trash"></span></button>
+ <button class="btn btn-danger btn-xs" name="server" value="{{serverid}}" onclick="return confirm('{{lang_wantToDelete}}')">
+ <span class="glyphicon glyphicon-trash"></span>
+ </button>
{{/self}}
</td>
</tr>
@@ -101,12 +103,22 @@
</div>
<div class="modal-body">
<p>{{lang_enterIpOfServer}}</p>
- <form method="post">
+ <form id="addform" method="post" action="?do=dnbd3">
<input type="hidden" name="token" value="{{token}}">
- <input type="text" class="form-control" name="newip">
+ <input type="text" class="form-control" name="newip" id="newip">
<br>
- <button type="submit" class="btn btn-default btn-success pull-right" name="action" value="addserver">{{lang_save}}</button>
+ <div class="buttonbar pull-right">
+ <button id="testbtn" type="submit" class="btn btn-warning">
+ <span class="glyphicon glyphicon-question-sign"></span>
+ {{lang_test}}
+ </button>
+ <button id="savebtn" type="submit" class="btn btn-success" name="action" value="addserver" disabled>
+ <span class="glyphicon glyphicon-floppy-disk"></span>
+ {{lang_save}}
+ </button>
+ </div>
</form>
+ <div id="addtest" class="text-danger"></div>
<div class="clearfix"></div>
</div>
<div class="modal-footer">
@@ -115,4 +127,68 @@
</div>
</div>
-<div class="clearfix"></div> \ No newline at end of file
+<div class="clearfix"></div>
+
+<script type="application/javascript"><!--
+document.addEventListener('DOMContentLoaded', function () {
+ var slxWorking = false;
+ const $form = $('#addform');
+ const $inputs = $form.find(':input');
+ const $result =$('#addtest');
+ const $ip = $('#newip');
+ const $save = $('#savebtn');
+
+ const changeFunc = function() {
+ console.log('sadf');
+ $save.prop('disabled', true);
+ };
+ $ip.change(changeFunc).keypress(changeFunc);
+
+ $form.submit(function (event) {
+ if (!$save.prop('disabled')) return;
+ event.preventDefault();
+ runTest();
+ });
+
+ $('#testbtn').click(function (event) {
+ event.preventDefault();
+ runTest();
+ });
+
+ function runTest() {
+ if (slxWorking === false) {
+ var ip = $ip.val();
+ var form = $('#addform');
+ slxWorking = Math.random();
+ var workCopy = slxWorking;
+ $inputs.prop('disabled', true);
+ $result.empty().removeClass('text-danger').text('...working...');
+ var resetFunc = function(ok) {
+ if (slxWorking === workCopy) {
+ slxWorking = false;
+ $inputs.prop('disabled', false);
+ if (!ok) $result.empty().addClass('text-danger').text('Timeout.');
+ }
+ };
+ setTimeout(resetFunc, 3000);
+ $.post('?do=dnbd3', {action:'servertest', ip:ip, token:TOKEN}, function (data) {
+ if (workCopy !== slxWorking) return;
+ resetFunc(true);
+ if (!data || data.fatal) {
+ $save.prop('disabled', true);
+ }
+ if (data && data.error) {
+ $result.empty().addClass('text-danger').text(data.error);
+ } else {
+ $result.empty().removeClass('text-danger').text('OK, Uptime: ' + data.uptime + ', Clients: ' + data.clientCount);
+ }
+ }, 'json').fail(function(oh, what) {
+ resetFunc(true);
+ console.log(what);
+ $result.empty().addClass('text-danger').text('Fail ' + what);
+ });
+ }
+ }
+});
+
+//--></script> \ No newline at end of file