allow configuring setting file names from url

pull/402/head
nightwing 2017-02-20 00:52:45 +04:00
rodzic 560d18d31d
commit fd2334b14b
3 zmienionych plików z 50 dodań i 45 usunięć

Wyświetl plik

@ -56,6 +56,13 @@ define(function(require, exports, module) {
var diff = 0; // TODO should we allow this to be undefined and get NaN in timestamps? var diff = 0; // TODO should we allow this to be undefined and get NaN in timestamps?
var userData; var userData;
var skipCloud = {};
c9.location.replace(/[&?](state|project|user)=([\w]+)/g, function(_, type, val) {
if (!val) return;
PATH[type] = PATH[type].replace(/.settings$/, function() { return "." + val + ".settings"; });
skipCloud[type] = true;
});
var inited = false; var inited = false;
function loadSettings(json) { function loadSettings(json) {
if (!json) { if (!json) {
@ -71,10 +78,6 @@ define(function(require, exports, module) {
for (var type in json) { for (var type in json) {
if (typeof json[type] == "string") { if (typeof json[type] == "string") {
if (json[type].charAt(0) == "<") {
json[type] = TEMPLATE[type];
}
else {
try { try {
json[type] = JSON.parse(json[type]); json[type] = JSON.parse(json[type]);
} catch (e) { } catch (e) {
@ -83,29 +86,29 @@ define(function(require, exports, module) {
} }
} }
} }
}
if (!json) {
var info = {};
var count = KEYS.length; var count = KEYS.length;
KEYS.forEach(function(type) { KEYS.forEach(function(type) {
if (!skipCloud[type] && json)
return --count;
fs.readFile(PATH[type], function(err, data) { fs.readFile(PATH[type], function(err, data) {
if (!json) json = {};
try { try {
info[type] = err ? {} : JSON.parse(data); json[type] = err ? {} : JSON.parse(data);
} catch (e) { } catch (e) {
console.error("Invalid Settings Read for ", console.error("Invalid Settings Read for ",
type, ": ", data); type, ": ", data);
info[type] = {}; json[type] = {};
} }
if (--count === 0) if (--count === 0)
loadSettings(info); loadSettings(json);
}); });
}); });
if (count > 0)
return; return;
} }
}
read(json); read(json);
events(); events();
@ -192,7 +195,7 @@ define(function(require, exports, module) {
if (standalone || type == "project") { if (standalone || type == "project") {
fs.writeFile(PATH[type], json, forceSync, function(err) {}); fs.writeFile(PATH[type], json, forceSync, function(err) {});
if (standalone && !saveToCloud[type]) if (standalone && !saveToCloud[type] || skipCloud[type])
return; // We're done return; // We're done
} }

Wyświetl plik

@ -103,6 +103,7 @@
function done(){ function done(){
var vfs = app.services.vfs; var vfs = app.services.vfs;
var c9 = app.services.c9; var c9 = app.services.c9;
var settings = app.services.settings;
c9.ready(); c9.ready();
c9.totalLoadTime = Date.now() - start; c9.totalLoadTime = Date.now() - start;
@ -110,13 +111,13 @@
console.warn("Total Load Time: ", Date.now() - start); console.warn("Total Load Time: ", Date.now() - start);
if (window.hideLoader) { if (window.hideLoader) {
if (vfs.connected) var waitVfs = function(fn) {
window.hideLoader(); vfs.connected ? fn() : vfs.once("connect", fn);
else { };
vfs.once("connect", function(){ var waitSettings = function(fn) {
window.hideLoader(); settings.inited ? fn() : settings.once("read", fn);
}); };
} waitVfs(waitSettings.bind(null, window.hideLoader));
} }
} }
}, function loadError(mod) { }, function loadError(mod) {

Wyświetl plik

@ -168,6 +168,7 @@
function done() { function done() {
var vfs = app.services.vfs; var vfs = app.services.vfs;
var c9 = app.services.c9; var c9 = app.services.c9;
var settings = app.services.settings;
c9.ready(); c9.ready();
c9.totalLoadTime = Date.now() - start; c9.totalLoadTime = Date.now() - start;
@ -175,13 +176,13 @@
console.warn("Total Load Time: ", Date.now() - start); console.warn("Total Load Time: ", Date.now() - start);
if (window.hideLoader) { if (window.hideLoader) {
if (vfs.connected) var waitVfs = function(fn) {
window.hideLoader(); vfs.connected ? fn() : vfs.once("connect", fn);
else { };
vfs.once("connect", function(){ var waitSettings = function(fn) {
window.hideLoader(); settings.inited ? fn() : settings.once("read", fn);
}); };
} waitVfs(waitSettings.bind(null, window.hideLoader));
} }
} }
}, function loadError(mod) { }, function loadError(mod) {