don't use the store until it's ready to be used

pull/1/head
ansuz 9 years ago
parent fffa9acf15
commit 600f3151e9

@ -112,7 +112,10 @@ define([
}); });
}; };
Cryptpad.ready(function () {
console.log("ready");
Cryptpad.getRecentPads(function (err, recentPads) { Cryptpad.getRecentPads(function (err, recentPads) {
console.log(recentPads);
if (err) { if (err) {
console.log("unable to get recent pads"); console.log("unable to get recent pads");
console.error(err); console.error(err);
@ -129,5 +132,6 @@ define([
$tryit.text(Messages.recentPads); $tryit.text(Messages.recentPads);
} }
}); });
});
}); });

@ -65,5 +65,11 @@ define(function () {
cb(void 0, Object.keys(localStorage)); cb(void 0, Object.keys(localStorage));
}; };
Store.ready = function (f) {
if (typeof(f) === 'function') {
f(void 0, Store);
}
};
return Store; return Store;
}); });

@ -610,10 +610,18 @@ define([
var interval = 100; var interval = 100;
var second = function (CM) {
Cryptpad.ready(function (err, env) {
// TODO handle error
andThen(CM);
});
};
var first = function () { var first = function () {
if (ifrw.CodeMirror) { if (ifrw.CodeMirror) {
// it exists, call your continuation // it exists, call your continuation
andThen(ifrw.CodeMirror); //andThen(ifrw.CodeMirror);
second(ifrw.CodeMirror);
} else { } else {
console.log("CodeMirror was not defined. Trying again in %sms", interval); console.log("CodeMirror was not defined. Trying again in %sms", interval);
// try again in 'interval' ms // try again in 'interval' ms

@ -13,6 +13,23 @@ define([
*/ */
var $ = window.jQuery; var $ = window.jQuery;
var store;
var getStore = function () {
if (!store) {
throw new Error("Store is not ready!");
}
return store;
};
Store.ready(function (err, Store) {
if (err) {
console.error(err);
return;
}
store = Store;
});
var common = {}; var common = {};
var isArray = function (o) { return Object.prototype.toString.call(o) === '[object Array]'; }; var isArray = function (o) { return Object.prototype.toString.call(o) === '[object Array]'; };
@ -76,20 +93,20 @@ define([
}; };
var setPadAttribute = common.setPadAttribute = function (attr, value, cb) { var setPadAttribute = common.setPadAttribute = function (attr, value, cb) {
Store.set([getHash(), attr].join('.'), value, function (err, data) { getStore().set([getHash(), attr].join('.'), value, function (err, data) {
cb(err, data); cb(err, data);
}); });
}; };
var getPadAttribute = common.getPadAttribute = function (attr, cb) { var getPadAttribute = common.getPadAttribute = function (attr, cb) {
Store.get([getHash(), attr].join('.'), function (err, data) { getStore().get([getHash(), attr].join('.'), function (err, data) {
cb(err, data); cb(err, data);
}); });
}; };
/* fetch and migrate your pad history from localStorage */ /* fetch and migrate your pad history from localStorage */
var getRecentPads = common.getRecentPads = function (cb) { var getRecentPads = common.getRecentPads = function (cb) {
Store.get(storageKey, function (err, recentPads) { getStore().get(storageKey, function (err, recentPads) {
if (isArray(recentPads)) { if (isArray(recentPads)) {
cb(void 0, migrateRecentPads(recentPads)); cb(void 0, migrateRecentPads(recentPads));
return; return;
@ -100,7 +117,7 @@ define([
/* commit a list of pads to localStorage */ /* commit a list of pads to localStorage */
var setRecentPads = common.setRecentPads = function (pads, cb) { var setRecentPads = common.setRecentPads = function (pads, cb) {
Store.set(storageKey, pads, function (err, data) { getStore().set(storageKey, pads, function (err, data) {
cb(err, data); cb(err, data);
}); });
}; };
@ -129,7 +146,7 @@ define([
return; return;
} }
Store.keys(function (err, keys) { getStore().keys(function (err, keys) {
if (err) { if (err) {
cb(err); cb(err);
return; return;
@ -264,6 +281,25 @@ define([
}); });
}; };
// local name?
common.ready = function (f) {
var state = 0;
var env = {};
var cb = function () {
state--;
if (!state) {
f(void 0, env);
}
};
state++;
Store.ready(function (err, store) {
env.store = store;
cb();
});
};
var fixFileName = common.fixFileName = function (filename) { var fixFileName = common.fixFileName = function (filename) {
return filename.replace(/ /g, '-').replace(/\//g, '_'); return filename.replace(/ /g, '-').replace(/\//g, '_');

@ -623,11 +623,19 @@ define([
}; };
var interval = 100; var interval = 100;
var second = function (Ckeditor) {
Cryptpad.ready(function (err, env) {
// TODO handle error
andThen(Ckeditor);
});
};
var first = function () { var first = function () {
Ckeditor = ifrw.CKEDITOR; Ckeditor = ifrw.CKEDITOR;
if (Ckeditor) { if (Ckeditor) {
andThen(Ckeditor); //andThen(Ckeditor);
second(Ckeditor);
} else { } else {
console.log("Ckeditor was not defined. Trying again in %sms",interval); console.log("Ckeditor was not defined. Trying again in %sms",interval);
setTimeout(first, interval); setTimeout(first, interval);

@ -602,6 +602,9 @@ define([
crypto: Crypto.createEncryptor(secret.key), crypto: Crypto.createEncryptor(secret.key),
}; };
// don't initialize until the store is ready.
Cryptpad.ready(function () {
var rt = module.rt = Listmap.create(config); var rt = module.rt = Listmap.create(config);
rt.proxy.on('create', function (info) { rt.proxy.on('create', function (info) {
var realtime = module.realtime = info.realtime; var realtime = module.realtime = info.realtime;
@ -615,4 +618,6 @@ define([
setEditable(false); setEditable(false);
Cryptpad.alert("Network connection lost!"); Cryptpad.alert("Network connection lost!");
}); });
});
}); });

Loading…
Cancel
Save