Skip to content
Snippets Groups Projects
Commit 111ac57b authored by Adrien Béraud's avatar Adrien Béraud
Browse files

tools: JS node: add listen support

parent 153641dd
No related branches found
No related tags found
No related merge requests found
...@@ -16,19 +16,37 @@ const valueGetElement = function(o) { ...@@ -16,19 +16,37 @@ const valueGetElement = function(o) {
return d; return d;
}; };
$(function() { $(function() {
var request = undefined;
const getTools = $("#getTools");
const getBtn = $("#getBtn"); const getBtn = $("#getBtn");
const getDropdown = $("#getDropdown");
const listenBtn = $("#listenBtn").click(function(){onGet('LISTEN');});
const getStopBtn = $("#getStopBtn").detach().click(function(){
if (request === undefined)
return;
request.abort();
getStopBtn.detach();
getDropdown.show();
request = undefined;
});
const putBtn = $("#putBtn"); const putBtn = $("#putBtn");
const result = $("#dhtResult"); const result = $("#dhtResult");
const group = $('<ul class="list-group"/>').appendTo(result); const group = $('<ul class="list-group"/>').appendTo(result);
onGet = function ( ) { onGet = function (method) {
if (request !== undefined)
return false;
const input = $("#getKey").val(); const input = $("#getKey").val();
const req = new XMLHttpRequest(); request = new XMLHttpRequest();
req.onreadystatechange = function(event) { request.onreadystatechange = function(event) {
if (this.readyState >= XMLHttpRequest.LOADING) { if (this.readyState >= XMLHttpRequest.LOADING) {
if (this.readyState == XMLHttpRequest.DONE) if (this.readyState == XMLHttpRequest.DONE) {
getBtn.button('reset'); getBtn.button('reset');
group.empty(); getStopBtn.detach();
getDropdown.show();
request = undefined;
}
if (this.status === 200) { if (this.status === 200) {
group.empty();
const elements = this.responseText.split("\n"); const elements = this.responseText.split("\n");
elements.forEach(function(element) { elements.forEach(function(element) {
if (!element || element.length == 0) if (!element || element.length == 0)
...@@ -37,18 +55,23 @@ $(function() { ...@@ -37,18 +55,23 @@ $(function() {
const d = window.atob(o.data); const d = window.atob(o.data);
$('<li class="list-group-item"/>').append(valueGetElement(o)).appendTo(group); $('<li class="list-group-item"/>').append(valueGetElement(o)).appendTo(group);
}); });
} else { } else if (this.status !== 0) {
group.empty().append($('<li class="list-group-item list-group-item-danger"/>').text("Error loading content: " + this.statusText)); group.empty().append($('<li class="list-group-item list-group-item-danger"/>').text("Error loading content: " + this.statusText));
} }
} }
}; };
req.onerror = function(event) { request.onerror = function(event) {
getBtn.button('reset'); getBtn.button('reset');
getStopBtn.detach();
getDropdown.show();
group.empty().append($('<li class="list-group-item list-group-item-danger"/>').text("Error loading content.")); group.empty().append($('<li class="list-group-item list-group-item-danger"/>').text("Error loading content."));
request = undefined;
}; };
req.open('GET', "http://127.0.0.1:8080/" + input, true); request.open(method, "http://127.0.0.1:8080/" + input, true);
req.send(null); request.send(null);
getBtn.button('loading'); getBtn.button('loading');
getStopBtn.appendTo(getTools);
getDropdown.hide();
return false; return false;
}; };
...@@ -65,7 +88,7 @@ $(function() { ...@@ -65,7 +88,7 @@ $(function() {
dataType: 'json', dataType: 'json',
success: function( result ) { success: function( result ) {
putBtn.button('reset'); putBtn.button('reset');
$('<li class="list-group-item list-group-item-success"/>').append(valueGetElement(result)).appendTo(group.empty()); //$('<li class="list-group-item list-group-item-success"/>').append(valueGetElement(result)).appendTo(group.empty());
}, },
error: function(result) { error: function(result) {
putBtn.button('reset'); putBtn.button('reset');
...@@ -88,11 +111,18 @@ $(function() { ...@@ -88,11 +111,18 @@ $(function() {
<div class="panel-heading"> <div class="panel-heading">
<div class="row"> <div class="row">
<div class="col-sm-6"> <div class="col-sm-6">
<form class="form-inline" onsubmit="return onGet();"> <form class="form-inline" onsubmit="return onGet('GET');">
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" id="getKey" placeholder="Key" aria-label="Key" /> <input type="text" class="form-control" id="getKey" placeholder="Key" aria-label="Key" />
<span class="input-group-btn"> <!--<span class="input-group-addon" id="getStatus"><i class='fa fa-circle-o-notch fa-spin'></i></span>-->
<button id="getBtn" class="btn btn-default" data-loading-text="<i class='fa fa-circle-o-notch fa-spin'></i> Loading" type="submit">Get</button> <span class="input-group-btn" id="getTools">
<button id="getBtn" class="btn btn-default" data-loading-text="<i class='fa fa-circle-o-notch fa-spin'></i>" type="submit">Get</button>
<button id="getDropdown"type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="caret"></span> <span class="sr-only">Toggle Dropdown</span> </button>
<ul class="dropdown-menu">
<li><a id="getDropBtn" href="#">Get</a></li>
<li><a id="listenBtn" href="#">Listen</a></li>
</ul>
<button id="getStopBtn" class="btn btn-default" type="submit"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></button>
</span> </span>
</div> </div>
</form> </form>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment