nlphub/src/main/webapp/js/main.js

156 lines
4.7 KiB
JavaScript

$(document).ready(function(){
// $("#upload-button").uploadFile({
// url : "uploader.php",
// fileName : "myfile",
// maxFileCount : 100,
// multiple : false,
// maxFileSize : 1024 * 1000 * 1,
// showFileCounter : false,
// showCancel : true,
// allowedTypes : "txt",
// //dragDropStr : "<img class='img-prompt' src='images/upload.png' width='60px' height='60px' style='display:block; margin:auto;'>",
// doneStr : "Done",
// abortStr : "End",
// cancelStr : "Cancel",
// extErrorStr : "Only text file (.txt), please",
// sizeErrorStr : "Max size: 1 Mb",
// onLoad : function(obj) {
// //resizeTutor();
// },
// onSuccess : function(files, data, xhr) {
// alert("Success");
// /*$(".ajax-file-upload-statusbar")
// .hide();
// $(".obfuscating").css('opacity', '0.6');
// $(".obfuscating").show();
// $("#uploadedimg").attr("src", "images/" + uName + "/" + files[0]);
// source = $("#uploadedimg").attr("src");
// window.setTimeout(function(){ sizePopupUpload(); $("#popup-1-section").show();}, 500);*/
// },
// onError : function(files, status,
// errMsg, pd) {
// alert(errMsg);
// }
// });
$( "#execute-button" ).click(function() {
var firstnameBox = $.trim( $('#input-textarea').val() )
if (firstnameBox == "") {
$('#input-textarea').css("border-color","red");
$('#input-textarea').attr("placeholder", "Paste your text here!");
}
else {
$('#input-textarea').css("border-color","#555");
doStartComputation();
}
});
doCallback = function(uri) {
$.ajax({
url : "nlphub-servlet",
type : 'GET',
datatype : 'json',
data : {
uri : uri
},
success : function(data) {
var obj = eval("(" + data + ")");
var str = JSON.stringify(obj, undefined, 4);
$('#result').html(syntaxHighlight(str));
}
});
}
doStartComputation = function() {
var options = "default";
options = $("input[type=checkbox]:checked").map(
function () {return this.value;}).get().join("|");
$('#result').html("");
//var token2Send = getUrlParameter("token") == null ? "" : getUrlParameter("token");
var tokenParam = getUrlParameter("token");
var token2Send = ((tokenParam == null) || (tokenParam.length == 0)) ? "18fed2d9-030b-4c77-93af-af2015d945f7-843339462" : getUrlParameter("token");
webSocket.send({
'action': 'start',
'text' : $("#input-textarea").val(),
'options' : options,
'token' : token2Send
}).done(function() {
showProgressBar(true);
enableCommands(false);
}).fail(function(e) {
console.log("failed");
});
}
doHandleResponse = function(message) {
if (message.response == "error") {
$('#result').html("<span style='color: red;'>"+message.value+"</span>");
enableCommands(true);
showProgressBar(false);
}
else if (message.response == "computing") {
showProgressBar(true);
enableCommands(false);
}
else if (message.response == "computed") {
showProgressBar(false);
enableCommands(true);
console.log("message="+message.value);
if (message.value.startsWith("http")) {
$('#downloadLink').html("Result:&nbsp;<a class=\"waves-effect waves-light btn red darken-1\" href=\""+message.value+"\">Download</a>&nbsp;" +
"<a class=\"waves-effect waves-light btn blue darken-1\" href=\"Javascript:doCallback(encodeURI('"+message.value.trim()+"'));\">View</a>");
}
}
}
});
function showProgressBar(show) {
var display = (show) ? "visible" : "hidden";
$('#progressBar').css('visibility', display);
}
function enableCommands(enable) {
if (enable) {
$('#execute-button').removeAttr("disabled");
$('#execute-button').text('Execute');
$('input[type=checkbox]').removeAttr("disabled");
} else {
$('#execute-button').text('Computing ...');
$('input[type=checkbox]').attr('disabled', 'true');
$('#execute-button').attr('disabled', 'disabled');
$('#downloadLink').html("");
}
}
function syntaxHighlight(json) {
if (typeof json != 'string') {
json = JSON.stringify(json, undefined, 1);
}
json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
var cls = 'number';
if (/^"/.test(match)) {
if (/:$/.test(match)) {
cls = 'key';
} else {
cls = 'string';
}
} else if (/true|false/.test(match)) {
cls = 'boolean';
} else if (/null/.test(match)) {
cls = 'null';
}
return '<span class="' + cls + '">' + match + '</span>';
});
}
function getUrlParameter(name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
var results = regex.exec(location.search);
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
};