Skip to content

Commit

Permalink
removed web socket closes #732
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthew Letter committed Jun 22, 2017
1 parent 31eaebb commit 995038f
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 78 deletions.
12 changes: 10 additions & 2 deletions packages/slycat/web/server/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,9 +194,16 @@ def require_integer_parameter(value, name):


def get_projects(_=None):
"""
returns either and array of projects or html for displaying the projects
:param _:
:return:
"""
accept = cherrypy.lib.cptools.accept(["text/html", "application/json"])
cherrypy.response.headers["content-type"] = accept

cherrypy.log.error("mtype: %s ptype:" % (cherrypy.request.headers))
if 'Content-Type' in cherrypy.request.headers:
accept = cherrypy.request.headers.get('Content-Type')
if accept == "text/html":
context = {}
context["slycat-server-root"] = cherrypy.request.app.config["slycat-web-server"]["server-root"]
Expand Down Expand Up @@ -1319,7 +1326,6 @@ def content():
if byteorder is None:
yield json.dumps([mask_nans(hyperslice).tolist() for hyperslice in
slycat.web.server.get_model_arrayset_data(database, model, aid, hyperchunks)])

else:
for hyperslice in slycat.web.server.get_model_arrayset_data(database, model, aid, hyperchunks):
if sys.byteorder != byteorder:
Expand Down Expand Up @@ -1401,6 +1407,8 @@ def mask_nans(array):
return array

def content():
if "include_nans" in cherrypy.request.json:
include_nans = cherrypy.request.json["include_nans"]
if byteorder is None:
yield json.dumps([mask_nans(hyperslice).tolist() for hyperslice in
slycat.web.server.get_model_arrayset_data(database, model, aid, hyperchunks)])
Expand Down
111 changes: 35 additions & 76 deletions web-server/js/slycat-changes-feed.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,87 +37,46 @@ define("slycat-changes-feed", ["slycat-server-root", "slycat-web-client", "URI",

function start()
{
if(started)
return;
started = true;

var websocket_uri = URI(window.location).scheme("wss").path(server_root + "changes-feed");
var websocket = new WebSocket(websocket_uri);
websocket.onmessage = function(message)
{
// console.log("\nmessage recieved: " + message.data + "\n");
var change = JSON.parse(message.data);

// Keep track of project changes.
if(change.deleted)
{
if(change.id in project_ids)
var project_params = {
success : function(results){
results = JSON.parse(results);
results.projects.forEach(function(project){
if(project._id in project_ids)
{
delete project_ids[change.id];
for(var i = 0; i != projects().length; ++i)
{
if(projects()[i]._id() == change.id)
{
projects.splice(i, 1);
break;
}
}
mapping.fromJS(project, project_ids[project._id]);
}
}
else
{
if(change.doc.type == "project")
else
{
var project = change.doc;
if(project._id in project_ids)
{
mapping.fromJS(project, project_ids[project._id]);
}
else
{
project_ids[project._id] = mapping.fromJS(project);
projects.push(project_ids[project._id]);
sort_projects();
}
project_ids[project._id] = mapping.fromJS(project);
projects.push(project_ids[project._id]);
sort_projects();
}
}

// Keep track of model changes.
if(change.deleted)
{
if(change.id in model_ids)
{
delete model_ids[change.id];
for(var i = 0; i != models().length; ++i)
{
if(models()[i]._id() == change.id)
{
models.splice(i, 1);
break;
}
// console.log(results);
var model_params = {
pid : project._id,
success : function(results){
// console.log(results);
// results = JSON.parse(results);
results.forEach(function(model){
if(model._id in model_ids)
{
mapping.fromJS(model, model_ids[model._id]);
}
else
{
model_ids[model._id] = mapping.fromJS(model);
models.push(model_ids[model._id]);
sort_models();
}
});
}
}
}
else
{
if(change.doc.type == "model")
{
var model = change.doc;
if(model._id in model_ids)
{
mapping.fromJS(model, model_ids[model._id]);
}
else
{
model_ids[model._id] = mapping.fromJS(model);
models.push(model_ids[model._id]);
sort_models();
}
}
}
};
client.get_project_models(model_params);
});


}
}};
client.get_projects(project_params);
}

var module = {};
Expand All @@ -126,13 +85,13 @@ define("slycat-changes-feed", ["slycat-server-root", "slycat-web-client", "URI",
{
start();
return projects;
}
};

module.models = function()
{
start();
return models;
}
};

return module;
});
32 changes: 32 additions & 0 deletions web-server/js/slycat-web-client.js
Original file line number Diff line number Diff line change
Expand Up @@ -1311,5 +1311,37 @@ define("slycat-web-client", ["slycat-server-root", "jquery", "URI"], function(se
}
});
};

module.get_projects = function(params) {
$.ajax({
contentType: 'application/json',
type: 'GET',
url: server_root + 'projects',
success: function(result) {
if (params.success)
params.success(result);
},
error: function(request, status, reason_phrase) {
if (params.error)
params.error(request, status, reason_phrase);
}
});
};

module.get_project_models = function(params) {
$.ajax({
contentType: 'application/json',
type: 'GET',
url: server_root + 'projects/'+ params.pid + '/models',
success: function(result) {
if (params.success)
params.success(result);
},
error: function(request, status, reason_phrase) {
if (params.error)
params.error(request, status, reason_phrase);
}
});
};
return module;
});

0 comments on commit 995038f

Please sign in to comment.