Merge pull request +6126 from c9/fix/log-workspace-loading

Fix/log workspace loading
pull/9/merge
Nikolai Onken 2015-02-12 11:04:38 +01:00
commit 24ac3fa3b3
5 zmienionych plików z 37 dodań i 16 usunięć

Wyświetl plik

@ -88,7 +88,7 @@
"c9.ide.preview": "#3c4dded23f",
"c9.ide.preview.browser": "#be197b0464",
"c9.ide.preview.markdown": "#bf952685f6",
"c9.ide.pubsub": "#e6526a20f7",
"c9.ide.pubsub": "#7dd0a37571",
"c9.ide.readonly": "#f6f07bbe42",
"c9.ide.recentfiles": "#7c099abf40",
"c9.ide.remote": "#37773d905b",

Wyświetl plik

@ -37,7 +37,7 @@ define(function(require, module, exports) {
if (!skipProps[prop])
plugin[prop] = options[prop];
}
var totalLoadTime;
var totalLoadTime, startLoadTime;
function load() {
if (loaded) return false;
@ -279,6 +279,11 @@ define(function(require, module, exports) {
*/
get totalLoadTime(){ return totalLoadTime; },
set totalLoadTime(v){ totalLoadTime = v; },
/**
*
*/
get startLoadTime(){ return startLoadTime; },
set startLoadTime(v){ startLoadTime = v; },
_events: [
/**

Wyświetl plik

@ -26,7 +26,7 @@ define(function(require, module, exports) {
var meta = {};
var hasValue = options && (typeof options.value === "string");
var tab, lastState, title, tooltip, editor, recentValue;
var tab, lastState, title, tooltip, editor, recentValue, ready;
plugin.on("newListener", function(type, listener) {
if (type == "state.set" && lastState) {
@ -332,6 +332,16 @@ define(function(require, module, exports) {
editor = v;
emit("setEditor", {editor: v});
},
/**
* Whether the document is fully loaded
* @property {Boolean} ready
*/
get ready(){ return ready; },
set ready(v) {
if (ready) throw new Error("Permission Denied");
ready = true;
emit.sticky("ready");
},
/**
* The tooltip displayed when hovering over the tab button
* @property {String} tooltip

Wyświetl plik

@ -1113,6 +1113,7 @@ define(function(require, module, exports) {
if (!doc.meta.timestamp)
doc.meta.timestamp = Date.now() - settings.timeOffset;
doc.ready = true;
emit("open", { tab: tab, options: options });
callback && callback(null, tab);
}
@ -1123,7 +1124,7 @@ define(function(require, module, exports) {
// Hooks for plugins that want to override value and state loading
var event = {
options: options,
options: options,
tab: tab,
loadFromDisk: loadFromDisk,
setLoading: setLoading,
@ -1161,7 +1162,10 @@ define(function(require, module, exports) {
});
}
else {
done(null, null);
// done has to be called asynchronously
setTimeout(function() {
done(null, null);
});
}
return tab;

Wyświetl plik

@ -247,20 +247,22 @@ require(["lib/architect/architect", "lib/chai/chai"],
it('should rename a directory - change tab path', function(done) {
var vpath = "/dir/stuff.json";
tabs.openFile(vpath, function(err, tab) {
expect(tab.path).to.equal(vpath);
expect(tab.title).to.equal("stuff.json");
fs.rename("/dir", "/dir2", function(err) {
if (err)
throw err;
expect(tab.path).to.equal("/dir2/stuff.json");
fs.rmdir("/dir2", { recursive: true }, function(){
tabs.openFile(vpath, function(err, tab) {
expect(tab.path).to.equal(vpath);
expect(tab.title).to.equal("stuff.json");
tab.unload();
fs.rename("/dir2", "/dir", function (err) {
fs.rename("/dir", "/dir2", function(err) {
if (err)
throw err;
done();
expect(tab.path).to.equal("/dir2/stuff.json");
expect(tab.title).to.equal("stuff.json");
tab.unload();
fs.rename("/dir2", "/dir", function (err) {
if (err)
throw err;
done();
});
});
});
});