kopia lustrzana https://github.com/c9/core
allow configuring setting file names from url
rodzic
560d18d31d
commit
fd2334b14b
|
@ -33,7 +33,7 @@ define(function(require, exports, module) {
|
||||||
|
|
||||||
var resetSettings = options.reset || c9.location.match(/reset=([\w\|]*)/) && RegExp.$1;
|
var resetSettings = options.reset || c9.location.match(/reset=([\w\|]*)/) && RegExp.$1;
|
||||||
var develMode = c9.location.indexOf("devel=1") > -1;
|
var develMode = c9.location.indexOf("devel=1") > -1;
|
||||||
var debugMode = c9.location.indexOf("debug=2") > -1;
|
var debugMode = c9.location.indexOf("debug=2") > -1;
|
||||||
var testing = options.testing;
|
var testing = options.testing;
|
||||||
var debug = options.debug;
|
var debug = options.debug;
|
||||||
|
|
||||||
|
@ -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,40 +78,36 @@ 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) == "<") {
|
try {
|
||||||
|
json[type] = JSON.parse(json[type]);
|
||||||
|
} catch (e) {
|
||||||
json[type] = TEMPLATE[type];
|
json[type] = TEMPLATE[type];
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
try {
|
|
||||||
json[type] = JSON.parse(json[type]);
|
|
||||||
} catch (e) {
|
|
||||||
json[type] = TEMPLATE[type];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!json) {
|
var count = KEYS.length;
|
||||||
var info = {};
|
|
||||||
var count = KEYS.length;
|
KEYS.forEach(function(type) {
|
||||||
|
if (!skipCloud[type] && json)
|
||||||
KEYS.forEach(function(type) {
|
return --count;
|
||||||
fs.readFile(PATH[type], function(err, data) {
|
fs.readFile(PATH[type], function(err, data) {
|
||||||
try {
|
if (!json) json = {};
|
||||||
info[type] = err ? {} : JSON.parse(data);
|
try {
|
||||||
} catch (e) {
|
json[type] = err ? {} : JSON.parse(data);
|
||||||
console.error("Invalid Settings Read for ",
|
} catch (e) {
|
||||||
type, ": ", data);
|
console.error("Invalid Settings Read for ",
|
||||||
info[type] = {};
|
type, ": ", data);
|
||||||
}
|
json[type] = {};
|
||||||
|
}
|
||||||
if (--count === 0)
|
|
||||||
loadSettings(info);
|
if (--count === 0)
|
||||||
});
|
loadSettings(json);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
if (count > 0)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
read(json);
|
read(json);
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -148,7 +148,7 @@
|
||||||
app.lut[(options.packagePath || "").replace(/^.*\/home\/.c9\//, "")] = options;
|
app.lut[(options.packagePath || "").replace(/^.*\/home\/.c9\//, "")] = options;
|
||||||
});
|
});
|
||||||
|
|
||||||
app.on("ready", function(){
|
app.on("ready", function() {
|
||||||
if (app.services.configure)
|
if (app.services.configure)
|
||||||
app.services.configure.services = app.services;
|
app.services.configure.services = app.services;
|
||||||
|
|
||||||
|
@ -165,9 +165,10 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
// For Development only
|
// For Development only
|
||||||
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) {
|
||||||
|
|
Ładowanie…
Reference in New Issue