diff --git a/app/__init__.py b/app/__init__.py index 71c6ee7e0970ac6a6dea8fa8cde8bf4781bd880e..8f483cb915b3e051a11c130b0d063e17bfc22eb5 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -14,8 +14,8 @@ from flask_cors import CORS, cross_origin app = Flask(__name__) -CORS(app) -# CORS(app, resources={r"/*": {"cors_allowed_origins":"*"} } ) +#CORS(app) +CORS(app, resources={r"/*": {"cors_allowed_origins":"*"} } ) #app.config['BABEL_DEFAULT_LOCALE'] = 'fin' #app.config['BABEL_TRANSLATION_DIRECTORIES'] ='C:/Users/Timo/git/pet-rating/app/translations' diff --git a/app/experiment/views.py b/app/experiment/views.py index 110dfe95dbc6c92a00ebd032e6a7a81dd06f8e33..c7e9cb15a110081e86804ea5cfa7aec542fd5344 100644 --- a/app/experiment/views.py +++ b/app/experiment/views.py @@ -1045,11 +1045,13 @@ def remove_rows(rows): @socketio.on('connect', namespace="/create_embody") def start_create_embody(): + print('io connected') emit('success', {'connection': 'on'}) @socketio.on('draw', namespace="/create_embody") def create_embody(meta): + print("draw initialized") page = meta["page"] embody = meta["embody"] img_path = embody_plot.get_coordinates(page, embody) @@ -1059,6 +1061,7 @@ def create_embody(meta): @socketio.on('connect', namespace="/download_csv") def start_download_csv(): + print('io connected') emit('success', {'connection': 'Start generating CSV file'}) @@ -1073,7 +1076,7 @@ def download_csv(meta): emit('timeout', {'exc': str(data)}) return - # create temporary file + # create temporary file fd, path = mkstemp() with os.fdopen(fd, 'w') as tmp: tmp.write(data) @@ -1082,14 +1085,14 @@ def download_csv(meta): # return path and filename to front so user can start downloading filename = "experiment_{}_{}".format( exp_id, date.today().strftime("%Y-%m-%d")) - path = path.split('/')[-1] + path = path.split('/')[-1] emit('file_ready', {'path': path, 'filename': filename}) @socketio.on('end', namespace="/download_csv") def end_download_csv(): # TODO: not working solution... db session keeps hanging after socket session has ended - # mysqld timeout is set to 180s, so it kills hanging connections, but this is not a good solution + # mysqld timeout is set to 180s, so it kills hanging connections, but this is not a good solution db.session.close() diff --git a/app/static/js/getDrawing.js b/app/static/js/getDrawing.js index 70db2ae5142c7cda61360b362877a3b2d410a20d..8df13c3db64fcae7e0fad064a5e9cb1b82d6eaa6 100644 --- a/app/static/js/getDrawing.js +++ b/app/static/js/getDrawing.js @@ -1,59 +1,62 @@ - - -$(document).ready(function() { - - var drawButtons = $(".embody-get-drawing"); - var imageContainer = $(".embody-image-container") - var progressBarContainer = $(".progress") - var progressBar = $("#image-loading-progress") - - // With sockets - function initConnection(socket) { - - socket.on('success', function(msg) { - console.log(msg) - }); - - socket.on('progress', function(data) { - progressBar.width(100*(data.done/data.from) + '%') - }); - - socket.on('end', function(img) { - // kill connection - socket.emit('end') - socket.disconnect() - - // Draw image to statistic -page - var source = img.path - d = new Date() - imageContainer.attr("src", "/static/embody_drawings/" + source + "?" +d.getTime()) - - // Remove progress bar - progressBarContainer.addClass("hidden") - progressBar.width('0%') - }); - } - - - drawButtons.click(function(event) { - event.preventDefault() - - // Init socket - var socket = io.connect(getDrawingURI); - initConnection(socket) - - var pageId = this.dataset.value.split('-')[0] - var embodyId = this.dataset.value.split('-')[1] - - socket.emit('draw', {page:pageId, embody:embodyId}) - progressBarContainer.removeClass("hidden") - - scrollTo('plotted-image') - }) - - function scrollTo(hash) { - $('html, body').animate({ - 'scrollTop': $('#'+hash).offset().top - 250 - }, 500); - } -}) +$(document).ready(function () { + var drawButtons = $(".embody-get-drawing"); + var imageContainer = $(".embody-image-container"); + var progressBarContainer = $(".progress"); + var progressBar = $("#image-loading-progress"); + + // With sockets + function initConnection(socket) { + socket.on("success", function (msg) { + console.log(msg); + }); + + socket.on("progress", function (data) { + progressBar.width(100 * (data.done / data.from) + "%"); + }); + + socket.on("end", function (img) { + // kill connection + socket.emit("end"); + socket.disconnect(); + + // Draw image to statistic -page + var source = img.path; + d = new Date(); + imageContainer.attr( + "src", + "/static/embody_drawings/" + source + "?" + d.getTime() + ); + + // Remove progress bar + progressBarContainer.addClass("hidden"); + progressBar.width("0%"); + }); + } + + drawButtons.click(function (event) { + event.preventDefault(); + + console.log("SADATDS"); + + // Init socket + var socket = io.connect(getDrawingURI); + initConnection(socket); + + var pageId = this.dataset.value.split("-")[0]; + var embodyId = this.dataset.value.split("-")[1]; + + socket.emit("draw", { page: pageId, embody: embodyId }); + progressBarContainer.removeClass("hidden"); + + scrollTo("plotted-image"); + }); + + function scrollTo(hash) { + $("html, body").animate( + { + scrollTop: $("#" + hash).offset().top - 250, + }, + 500 + ); + } +}); diff --git a/app/static/js/urls.js b/app/static/js/urls.js index d2349e01d48a4087afe894ff7d0d22e1c849c4de..86a9b1e032071bcbfdaf7aaf2bbc4fb2baa0b174 100644 --- a/app/static/js/urls.js +++ b/app/static/js/urls.js @@ -1,6 +1,5 @@ - -const baseURI = 'localhost/'; +const baseURI = "localhost:8000/"; //const baseURI = 'http://onni.utu.fi/'; -var exportURL = baseURI + 'download_csv'; -var getDrawingURI = baseURI + 'create_embody'; \ No newline at end of file +var exportURL = baseURI + "download_csv"; +var getDrawingURI = baseURI + "create_embody"; diff --git a/requirements.txt b/requirements.txt index 9c4419e6189f07406c5f3dfa1d9dee67b492a6b0..5b482fd0a7d61d18ef1ca1228b934c22a189553c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,6 @@ Flask-Login==0.4.1 Flask-Migrate==2.2.1 Flask-Session==0.3.1 Flask-SocketIO==4.3.0 -# Flask-SocketIO==3.3.2 Flask-SQLAlchemy==2.3.2 Flask-Uploads==0.2.1 Flask-WTF==0.14.2 @@ -17,13 +16,12 @@ matplotlib==3.0.3 mysql-connector==2.2.9 networkx==2.2 numpy==1.16.2 +Pillow PyMySQL==0.9.3 pyparsing==2.3.1 python-dateutil==2.7.3 -python-editor==1.0.3 +python-decouple python-engineio==3.13.0 -# python-engineio==3.5.1 -# python-socketio==3.1.2 python-socketio==4.6.0 pytz==2018.7 rope==0.12.0 @@ -33,4 +31,3 @@ uuid==1.30 Werkzeug==0.14.1 WTForms==2.2.1 WTForms-SQLAlchemy==0.1 -python-decouple