123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 |
- var api_endpoint = ENV.apiEndpoint;
- var api_socket_endpoint = ENV.websocketsEndpoint;
- var api_token = null;
- var websocket = null;
- var channel_id = null;
- var space_auth = null;
- function load_resource(method, path, data, on_success, on_error, on_progress) {
- var req = new XMLHttpRequest();
- req.onload = function(evt,b,c) {
- if (req.status>=200 && req.status<=299) {
- var parsed = null;
-
- try {
- var parsed = JSON.parse(req.response);
- } catch(e) {};
- if (data && parsed && parsed._id) {
- // mutate the local object and update its _id
- data._id = parsed._id;
- }
- if (on_success) {
- on_success(parsed,req);
- }
- } else {
- if (on_error) {
- on_error(req);
- }
- }
- };
- req.onerror = function(err) {
- console.log(err,err.target);
- // window._spacedeck_location_change is a flag set by redirect / reload functions
- if (!window._spacedeck_location_change) {
- if (window.spacedeck && window.spacedeck.active_space) {
- window.spacedeck.offline = true;
- } else {
- alert("Could not connect to Spacedeck. Please reconnect and try again.");
- }
- }
- if (on_error) on_error(req);
- }
- req.withCredentials = true;
- req.open(method, api_endpoint+"/api"+path, true);
- if (api_token) {
- req.setRequestHeader("X-Spacedeck-Auth", api_token);
- }
- if (space_auth) {
- console.log("set space auth", space_auth);
- req.setRequestHeader("X-Spacedeck-Space-Auth", space_auth);
- }
- if (channel_id) {
- req.setRequestHeader("X-Spacedeck-Channel", channel_id);
- }
- if (csrf_token) {
- req.setRequestHeader("X-csrf-token", csrf_token);
- }
- try {
- if (data) {
- if (data.toString() == "[object File]") {
- req.setRequestHeader("Content-type", data.type);
- req.setRequestHeader("Accepts", "application/json");
- req.upload.onprogress = function(e) {
- console.log("upload progress: ",e.loaded,e.total);
- if (on_progress) on_progress(e);
- }
- req.send(data);
- } else {
- req.setRequestHeader("Content-type", "application/json");
- req.send(JSON.stringify(data));
- }
- } else {
- req.send();
- }
- } catch (e) {
- if (on_error) {
- on_error(req, e);
- } else {
- throw(e);
- }
- }
- }
- function get_resource(path, on_success, on_error, on_progress) {
- load_resource("get", path, null, on_success, on_error, on_progress);
- }
- function load_profile(name, on_success, on_error) {
- load_resource("get", "/users/slug?slug="+name, null, on_success, on_error);
- }
- function load_current_user(on_success, on_error) {
- load_resource("get", "/users/current", null, on_success, on_error);
- }
- function load_space(id, on_success, on_error) {
- if (!id || id=="undefined") {
- console.error("load_space id:", id);
- return;
- }
- var url = "/spaces/"+id;
- load_resource("get", url, null, function(space, req) {
- var role = req.getResponseHeader("x-spacedeck-space-role");
- on_success(space, role);
- }, on_error);
- }
- function load_space_path(id, on_success, on_error) {
- var url = "/spaces/"+id+"/path";
- load_resource("get", url, null, function(space, req) {
- on_success(space);
- }, on_error);
- }
- function load_spaces(id, is_home, on_success, on_error) {
- if (!id || id=="undefined") {
- console.error("load_spaces id:", id);
- return;
- }
- var q = "?parent_space_id="+id;
- load_resource("get", "/spaces"+q, null, function(spaces) {
- on_success(spaces);
- }, on_error);
- }
- function load_importables(user, on_success, on_error) {
- load_resource("get", "/users/"+user._id+"/importables", null, on_success, on_error);
- }
- function import_zip(user, filename, on_success, on_error) {
- load_resource("get", "/users/"+user._id+"/import?zip="+filename, null, on_success, on_error);
- }
- function load_writable_folders(on_success, on_error) {
- load_resource("get", "/spaces?writablefolders=true", null, on_success, on_error);
- }
- function load_history(s, on_success, on_error) {
- load_resource("get", "/spaces/"+ s._id +"/digest", null, on_success, on_error);
- }
- function load_filtered_spaces(filter, on_success, on_error) {
- load_resource("get", "/spaces?filter="+filter, null, on_success, on_error);
- }
- function load_spaces_search(query, on_success, on_error) {
- load_resource("get", "/spaces?search="+query, null, on_success, on_error);
- }
- function load_artifacts(id, on_success, on_error) {
- load_resource("get", "/spaces/"+id+"/artifacts", null, on_success, on_error);
- }
- function save_artifact(a, on_success, on_error) {
- if (a._id) {
- load_resource("put", "/spaces/"+a.space_id+"/artifacts/"+a._id,a,on_success,on_error);
- } else {
- load_resource("post", "/spaces/"+a.space_id+"/artifacts",a,on_success,on_error);
- }
- }
- function save_pdf_file(space, point, file, zones, on_success, on_error, on_progress) {
- load_resource("post", "/spaces/"+space._id+"/artifacts-pdf?filename="+file.name + "&x="+point.x+"&y="+point.y + "&zones="+zones,file,on_success,on_error,on_progress);
- }
- function save_artifact_file(a, file,filename, on_success, on_error, on_progress) {
- load_resource("post", "/spaces/"+a.space_id+"/artifacts/"+a._id+"/payload?filename="+filename,file,on_success,on_error,on_progress);
- }
- function save_space(s, on_success, on_error) {
- if (s._id) {
- delete s['artifacts'];
- load_resource("put", "/spaces/"+s._id,s,on_success,on_error);
- } else {
- load_resource("post", "/spaces",s,on_success,on_error);
- }
- }
- function delete_space(s, on_success, on_error) {
- load_resource("delete", "/spaces/"+s._id, null, on_success, on_error);
- }
- function delete_artifact(a, on_success, on_error) {
- load_resource("delete", "/spaces/"+a.space_id+"/artifacts/"+a._id);
- }
- function duplicate_space(s, to_space_id, on_success, on_error) {
- var path = "/spaces/"+s._id+"/duplicate";
- if(to_space_id) {
- path += "?parent_space_id=" + to_space_id
- }
- load_resource("post", path, null,on_success,on_error);
- }
- function load_members(space, on_success, on_error) {
- load_resource("get", "/spaces/"+ space._id +"/memberships", null, on_success, on_error);
- }
- function create_membership(space, m, on_success, on_error) {
- load_resource("post", "/spaces/"+ space._id +"/memberships", m, on_success, on_error);
- }
- function save_membership(space, m, on_success, on_error) {
- load_resource("put", "/spaces/"+ space._id +"/memberships/" + m._id, m, on_success, on_error);
- }
- function delete_membership(space, m, on_success, on_error) {
- load_resource("delete", "/spaces/"+ space._id +"/memberships/"+m._id, m, on_success, on_error);
- }
- function accept_invitation(id, code, on_success, on_error) {
- load_resource("get", "/memberships/"+ id +"/accept?code="+code, null, on_success, on_error);
- }
- function get_join_link(space_id, on_success, on_error) {
- load_resource("get", "/invitation_codes?space_id="+space_id, null, on_success, on_error);
- }
- function create_join_link(space_id, role, on_success, on_error) {
- load_resource("post", "/invitation_codes", {join_role:role, sticky:true, space_id:space_id}, on_success, on_error);
- }
- function delete_join_link(link_id, on_success, on_error) {
- load_resource("delete", "/invitation_codes/"+link_id, null, on_success, on_error);
- }
- function load_team_members(id, on_success, on_error) {
- load_resource("get", "/teams/"+ id +"/memberships", null, function(team) {
- on_success(team);
- }, on_error);
- }
- function save_avatar_file(type, o, file, on_success, on_error) {
- load_resource("post", "/"+type+"s/"+o._id+"/avatar", file, on_success,on_error);
- }
- function remove_avatar_file(type, o, on_success, on_error) {
- load_resource("delete", "/"+type+"s/"+o._id+"/avatar", null, on_success,on_error);
- }
- function save_space_background_file(space, file, on_success, on_error) {
- load_resource("post", "/spaces/"+space._id+"/background?filename="+file.name, file, on_success,on_error);
- }
- function save_user_background_file(user, file, on_success, on_error) {
- load_resource("post", "/users/"+user._id+"/background", file, on_success,on_error);
- }
- function save_user_password(u, pass, newPass, on_success, on_error) {
- load_resource("post", "/users/" + u._id + "/password", {old_password:pass, new_password:newPass}, on_success, on_error);
- }
- function get_featured_users(on_success, on_error) {
- load_resource("get", "/users/featured", null, on_success, on_error);
- }
- function save_user(u, on_success, on_error) {
- load_resource("put", "/users/"+u._id,u,on_success,on_error);
- }
- function delete_user(u, password, on_success, on_error) {
- load_resource("delete", "/users/"+u._id +"?password="+password,null,on_success,on_error);
- }
- function create_user(name, email, password, password_confirmation, on_success, on_error) {
- load_resource("post", "/users", {email:email, nickname:name, password:password, password_confirmation: password_confirmation}, on_success, on_error);
- }
- function create_session(email, password, on_success, on_error) {
- load_resource("post", "/sessions", {email:email, password:password}, on_success, on_error);
- }
- function delete_session(on_success, on_error) {
- load_resource("delete", "/sessions/current", null, on_success, on_error);
- }
- function create_oauthtoken(on_success, on_error) {
- load_resource("get", "/users/oauth2callback/url", null, on_success, on_error);
- }
- function create_session_for_oauthtoken(token, on_success, on_error) {
- load_resource("get", "/users/loginorsignupviagoogle?code="+token, null, on_success, on_error);
- }
- function create_password_reset(email, on_success, on_error) {
- load_resource("post", "/users/password_reset_requests?email=" + encodeURIComponent(email), null, on_success, on_error);
- }
- function confirm_password_reset(password, confirm, on_success, on_error) {
- load_resource("post", "/users/password_reset_requests/"+confirm+"/confirm", {password:password}, on_success, on_error);
- }
- function confirm_user(user, token, on_success, on_error) {
- load_resource("put", "/users/"+user._id+"/confirm", {token:token}, on_success, on_error);
- }
- function resent_confirm_mail(user, on_success, on_error) {
- load_resource("post", "/users/"+user._id+"/confirm", {}, on_success, on_error);
- }
- function create_feedback(user, m, on_success, on_error) {
- load_resource("post", "/users/feedback", {text: m}, on_success, on_error);
- }
- function save_team(u, on_success, on_error) {
- load_resource("put", "/teams/"+u._id,u,on_success,on_error);
- }
- function load_comments(space_id, on_success, on_error) {
- load_resource("get", "/spaces/"+space_id+"/messages", null, on_success, on_error);
- }
- function save_comment(space_id, data, on_success, on_error) {
- load_resource("post", "/spaces/"+space_id +"/messages", data, on_success, on_error);
- }
- function delete_comment(space_id, message_id,on_success, on_error) {
- load_resource("delete", "/spaces/"+space_id +"/messages/"+ message_id, null , on_success, on_error);
- }
- function update_comment(space_id, data, on_success, on_error) {
- load_resource("post", "/spaces/"+space_id+"/messages/" + data._id , data, on_success, on_error);
- }
- function load_notifications(u, on_success, on_error) {
- load_resource("get", "/notifications", null, on_success, on_error);
- }
|