[clean] clean code
This commit is contained in:
236
resources/js/script.js
Normal file
236
resources/js/script.js
Normal file
@@ -0,0 +1,236 @@
|
||||
$( document ).ready( () => {
|
||||
// warn the user when leaving
|
||||
window.onbeforeunload = function(){
|
||||
return "Make sure to save your graph locally before leaving";
|
||||
};
|
||||
|
||||
$('body').scrollspy({ target: '#main-nav', offset: 130 })
|
||||
|
||||
$('#fullpage').fullpage({
|
||||
// anchors: ['underPage', 'gradPage', 'phdPage'],
|
||||
sectionsColor: ['#ffffff', '#f8f8f8'],
|
||||
autoScrolling: false,
|
||||
css3: true,
|
||||
fitToSection: false,
|
||||
afterLoad: function(anchorLink, index) {
|
||||
// history.pushState(null, null, "");
|
||||
// console.log(anchorLink);
|
||||
}
|
||||
});
|
||||
|
||||
// Initialize Console
|
||||
ConsoleLogHTML.connect(document.getElementById("console")); // Redirect log messages
|
||||
// ConsoleLogHTML.disconnect(); // Stop redirecting
|
||||
|
||||
// Navbar click scroll
|
||||
$(".navbar a").on('click', function(event) {
|
||||
// Make sure this.hash has a value before overriding default behavior
|
||||
if (this.hash !== "") {
|
||||
// Prevent default anchor click behavior
|
||||
event.preventDefault();
|
||||
|
||||
// Store hash
|
||||
var hash = this.hash;
|
||||
|
||||
// Using jQuery's animate() method to add smooth page scroll
|
||||
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
|
||||
var offset = 0;
|
||||
if (hash === "#home")
|
||||
{
|
||||
offset = -100;
|
||||
}
|
||||
else {
|
||||
offset = -60;
|
||||
}
|
||||
$('html, body').animate({
|
||||
scrollTop: ($(hash).offset().top + offset)
|
||||
}, 1000, function(){
|
||||
// Add hash (#) to URL when done scrolling (default click behavior)
|
||||
// window.location.hash = hash;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('#submission_info').hide();
|
||||
|
||||
$('#ulysses16_submit').hide();
|
||||
$('#att48_submit').hide();
|
||||
$('#st70_submit').hide();
|
||||
$('#a280_submit').hide();
|
||||
$('#pcb442_submit').hide();
|
||||
$('#dsj1000_submit').hide();
|
||||
|
||||
$( "#ulysses16_submit" ).click(function() {
|
||||
upload_leaderboard('ulysses16');
|
||||
$('#ulysses16_submit').removeClass('btn-primary');
|
||||
$('#ulysses16_submit').text('Submitted');
|
||||
$('#ulysses16_submit').prop('disabled', true);
|
||||
});
|
||||
|
||||
$( "#att48_submit" ).click(function() {
|
||||
upload_leaderboard('att48');
|
||||
$('#att48_submit').removeClass('btn-primary');
|
||||
$('#att48_submit').text('Submitted');
|
||||
$('#att48_submit').prop('disabled', true);
|
||||
});
|
||||
|
||||
$( "#st70_submit" ).click(function() {
|
||||
upload_leaderboard('st70');
|
||||
$('#st70_submit').removeClass('btn-primary');
|
||||
$('#st70_submit').text('Submitted');
|
||||
$('#st70_submit').prop('disabled', true);
|
||||
});
|
||||
|
||||
$( "#a280_submit" ).click(function() {
|
||||
upload_leaderboard('a280');
|
||||
$('#a280_submit').removeClass('btn-primary');
|
||||
$('#a280_submit').text('Submitted');
|
||||
$('#a280_submit').prop('disabled', true);
|
||||
});
|
||||
|
||||
$( "#pcb442_submit" ).click(function() {
|
||||
upload_leaderboard('pcb442');
|
||||
$('#pcb442_submit').removeClass('btn-primary');
|
||||
$('#pcb442_submit').text('Submitted');
|
||||
$('#pcb442_submit').prop('disabled', true);
|
||||
});
|
||||
|
||||
$( "#dsj1000_submit" ).click(function() {
|
||||
upload_leaderboard('dsj1000');
|
||||
$('#dsj1000_submit').removeClass('btn-primary');
|
||||
$('#dsj1000_submit').text('Submitted');
|
||||
$('#dsj1000_submit').prop('disabled', true);
|
||||
});
|
||||
|
||||
// Initialize file uploader
|
||||
// initialize with defaults
|
||||
// $("#uploadfile").fileinput();
|
||||
|
||||
// with plugin options
|
||||
$("#uploadfile").fileinput({
|
||||
// theme: "fa",
|
||||
'theme': 'fas',
|
||||
showUpload:false,
|
||||
previewFileType:'py',
|
||||
maxFileCount: 1,
|
||||
allowedFileExtensions: ["py"]
|
||||
});
|
||||
|
||||
var url = window.location;
|
||||
|
||||
// GET REQUEST
|
||||
$("#btnGetFiles").click( (event) => {
|
||||
event.preventDefault();
|
||||
ajaxGet();
|
||||
});
|
||||
|
||||
// DO GET
|
||||
function ajaxGet(){
|
||||
$.ajax({
|
||||
type : "GET",
|
||||
url : "/api/files/getall",
|
||||
success: (data) => {
|
||||
// clear old data
|
||||
$("#listFiles").html("");
|
||||
// render list of files
|
||||
$("#listFiles").append('<ul>');
|
||||
$.each(data, (index, filename) => {
|
||||
$("#listFiles").append('<li><a href=' + url + 'api/files/' + filename +'>' + filename + '</a></li>');
|
||||
});
|
||||
$("#listFiles").append('</ul>');
|
||||
},
|
||||
error : (err) => {
|
||||
$("#listFiles").html(err.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Upload File
|
||||
$('#uploadfile').change(function(e){
|
||||
if(e.target.files[0])
|
||||
{
|
||||
var fileName = e.target.files[0].name;
|
||||
if(fileName !== "my_model.py")
|
||||
{
|
||||
alert('Please upload my_model.py');
|
||||
$('#btnSubmit').prop('disabled', true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#btnSubmit').prop('disabled', false);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Submit results
|
||||
$("#btnSubmit").click((event) => {
|
||||
// stop submit the form, we will post it manually.
|
||||
event.preventDefault();
|
||||
doAjax();
|
||||
});
|
||||
})
|
||||
|
||||
function upload_leaderboard(name) {
|
||||
obj = {}
|
||||
obj.name = name;
|
||||
data = {}
|
||||
if(name === 'ulysses16') {
|
||||
data.fitness = my_res.ulysses16.fitness;
|
||||
}
|
||||
else if (name === 'att48') {
|
||||
data.fitness = my_res.att48.fitness;
|
||||
}
|
||||
else if (name === 'st70') {
|
||||
data.fitness = my_res.st70.fitness;
|
||||
}
|
||||
else if (name === 'a280') {
|
||||
data.fitness = my_res.a280.fitness;
|
||||
}
|
||||
else if (name === 'pcb442') {
|
||||
data.fitness = my_res.pcb442.fitness;
|
||||
}
|
||||
else if (name === 'dsj1000') {
|
||||
data.fitness = my_res.dsj1000.fitness;
|
||||
}
|
||||
data.name = $('#submit_name').val();
|
||||
data.desc = $('#submit_desc').val()
|
||||
data.time = Date.now()
|
||||
obj.data = data;
|
||||
socket.emit('submit', obj);
|
||||
}
|
||||
|
||||
function doAjax() {
|
||||
// Get form
|
||||
var form = $('#fileUploadForm')[0];
|
||||
|
||||
var data = new FormData(form);
|
||||
var file = data.get('uploadfile');
|
||||
|
||||
var renameFile =new File([file], window.id + '.py' ,{type:file.type});
|
||||
var formdata = new FormData();
|
||||
|
||||
formdata.append('uploadfile', renameFile);
|
||||
|
||||
if(window.id) {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
enctype: 'multipart/form-data',
|
||||
url: "/api/files/upload",
|
||||
data: formdata,
|
||||
processData: false, //prevent jQuery from automatically transforming the data into a query string
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success: (data) => {
|
||||
console.log('Emit build request')
|
||||
socket.emit('build', {});
|
||||
},
|
||||
error: (e) => {
|
||||
$("#listFiles").text(e.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
alert('Failed to connect to server');
|
||||
}
|
||||
}
|
||||
149
resources/js/socket_script.js
Normal file
149
resources/js/socket_script.js
Normal file
@@ -0,0 +1,149 @@
|
||||
|
||||
var my_res = {};
|
||||
my_res.ulysses16 = {}
|
||||
my_res.att48 = {}
|
||||
my_res.st70 = {}
|
||||
my_res.a280 = {}
|
||||
my_res.pcb442 = {}
|
||||
my_res.dsj1000 = {}
|
||||
|
||||
my_res.ulysses16.fitness = -1;
|
||||
my_res.att48.fitness = -1;
|
||||
my_res.st70.fitness = -1;
|
||||
my_res.a280.fitness = -1;
|
||||
my_res.pcb442.fitness = -1;
|
||||
my_res.dsj1000.fitness = -1;
|
||||
|
||||
var socket = io();
|
||||
|
||||
// User connected
|
||||
socket.on('connect', () => {
|
||||
$("#status").removeClass('badge-secondary');
|
||||
$("#status").addClass('badge-primary');
|
||||
window.id = socket.id
|
||||
console.log('Session Id: ', socket.id);
|
||||
});
|
||||
|
||||
// User disconnected
|
||||
socket.on('disconnect', () => {
|
||||
$("#status").removeClass('badge-primary');
|
||||
$("#status").addClass('badge-secondary');
|
||||
$("#status").text('offline');
|
||||
});
|
||||
|
||||
// Update online users
|
||||
socket.on('users_count', (clients) => {
|
||||
$("#status").text(clients + ' online');
|
||||
});
|
||||
|
||||
// Server running algorithms
|
||||
socket.on('start', () => {
|
||||
console.log('Building start');
|
||||
});
|
||||
|
||||
// Update Leaderboard Table
|
||||
socket.on('leaderboard', (obj) => {
|
||||
console.log(obj);
|
||||
$(".leaderboard-table").find("tr:not(:first):not(:last)").remove();
|
||||
if(obj.ulysses16.length != 0) {
|
||||
obj.ulysses16.forEach(element => {
|
||||
$('#ulysses16-last').before('<tr id=""><td>' + element.name + '</td><td>' + element.fitness + '</td><td>' + element.desc + '</td></tr>')
|
||||
});
|
||||
$('#ulysses16_best').text(obj.ulysses16[0].fitness);
|
||||
}
|
||||
if(obj.att48.length != 0 ) {
|
||||
obj.att48.forEach(element => {
|
||||
$('#att48-last').before('<tr id=""><td>' + element.name + '</td><td>' + element.fitness + '</td><td>' + element.desc + '</td></tr>')
|
||||
});
|
||||
$('#att48_best').text(obj.att48[0].fitness);
|
||||
}
|
||||
|
||||
if (obj.st70.length != 0) {
|
||||
obj.st70.forEach(element => {
|
||||
$('#st70-last').before('<tr id=""><td>' + element.name + '</td><td>' + element.fitness + '</td><td>' + element.desc + '</td></tr>')
|
||||
});
|
||||
$('#st70_best').text(obj.st70[0].fitness);
|
||||
}
|
||||
|
||||
if (obj.a280.length != 0) {
|
||||
obj.a280.forEach(element => {
|
||||
$('#a280-last').before('<tr id=""><td>' + element.name + '</td><td>' + element.fitness + '</td><td>' + element.desc + '</td></tr>')
|
||||
});
|
||||
$('#a280_best').text(obj.a280[0].fitness);
|
||||
}
|
||||
|
||||
if(obj.pcb442.length != 0) {
|
||||
$('#pcb442_best').text(obj.pcb442[0].fitness);
|
||||
obj.pcb442.forEach(element => {
|
||||
$('#pcb442-last').before('<tr id=""><td>' + element.name + '</td><td>' + element.fitness + '</td><td>' + element.desc + '</td></tr>')
|
||||
});
|
||||
}
|
||||
|
||||
if(obj.dsj1000.length != 0) {
|
||||
obj.dsj1000.forEach(element => {
|
||||
$('#dsj1000-last').before('<tr id=""><td>' + element.name + '</td><td>' + element.fitness + '</td><td>' + element.desc + '</td></tr>')
|
||||
});
|
||||
$('#dsj1000_best').text(obj.dsj1000[0].fitness);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// Log info in console
|
||||
socket.on('info', (msg) => {
|
||||
// var msg = msg.replace(/\x1b[[0-9;]*[a-zA-Z]/g, '');
|
||||
msg = msg.replace(/[^\x20-\x7E]/g, '')
|
||||
if(msg[1] == '[') {
|
||||
msg = msg.substring(1);
|
||||
}
|
||||
console.log(msg);
|
||||
});
|
||||
|
||||
// Update personal result
|
||||
socket.on('result', (res) => {
|
||||
res = JSON.parse(res);
|
||||
$('#submission_info').show();
|
||||
res.forEach(e => {
|
||||
if(e.name === "ulysses16.txt") {
|
||||
my_res.ulysses16.fitness = e.fitness
|
||||
$("#ulysses16_your").text(e.fitness);
|
||||
if(e.fitness > 0) {
|
||||
$('#ulysses16_submit').show();
|
||||
}
|
||||
}
|
||||
if(e.name === "att48.txt") {
|
||||
my_res.att48.fitness = e.fitness
|
||||
$("#att48_your").text(e.fitness);
|
||||
if(e.fitness > 0) {
|
||||
$('#att48_submit').show();
|
||||
}
|
||||
}
|
||||
if(e.name === "st70.txt") {
|
||||
my_res.st70.fitness = e.fitness
|
||||
$("#st70_your").text(e.fitness)
|
||||
if(e.fitness > 0) {
|
||||
$('#st70_submit').show();
|
||||
}
|
||||
}
|
||||
if(e.name === "a280.txt") {
|
||||
my_res.a280.fitness = e.fitness
|
||||
$("#a280_your").text(e.fitness)
|
||||
if(e.fitness > 0) {
|
||||
$('#a280_submit').show();
|
||||
}
|
||||
}
|
||||
if(e.name === "pcb442.txt") {
|
||||
my_res.pcb442.fitness = e.fitness
|
||||
$("#pcb442_your").text(e.fitness)
|
||||
if(e.fitness > 0) {
|
||||
$('#pcb442_submit').show();
|
||||
}
|
||||
}
|
||||
if(e.name === "dsj1000.txt") {
|
||||
my_res.dsj1000.fitness = e.fitness
|
||||
$("#dsj1000_your").text(e.fitness)
|
||||
if(e.fitness > 0) {
|
||||
$('#dsj1000_submit').show();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user