1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-23 10:07:19 +00:00

Add a callback to $tw.boot.boot() (#2885)

* Add a callback to $tw.boot.boot()

* Move callback into the options object

* Update boot.js
This commit is contained in:
Arlen22 2017-06-09 11:20:12 -04:00 committed by Jeremy Ruston
parent 18cd37c2de
commit 0bc325025a

View File

@ -2017,7 +2017,7 @@ $tw.boot.startup = function(options) {
$tw.boot.executedStartupModules = Object.create(null); $tw.boot.executedStartupModules = Object.create(null);
$tw.boot.disabledStartupModules = $tw.boot.disabledStartupModules || []; $tw.boot.disabledStartupModules = $tw.boot.disabledStartupModules || [];
// Repeatedly execute the next eligible task // Repeatedly execute the next eligible task
$tw.boot.executeNextStartupTask(); $tw.boot.executeNextStartupTask(options.callback);
}; };
/* /*
@ -2032,14 +2032,14 @@ $tw.addUnloadTask = function(task) {
/* /*
Execute the remaining eligible startup tasks Execute the remaining eligible startup tasks
*/ */
$tw.boot.executeNextStartupTask = function() { $tw.boot.executeNextStartupTask = function(callback) {
// Find the next eligible task // Find the next eligible task
var taskIndex = 0, task, var taskIndex = 0, task,
asyncTaskCallback = function() { asyncTaskCallback = function() {
if(task.name) { if(task.name) {
$tw.boot.executedStartupModules[task.name] = true; $tw.boot.executedStartupModules[task.name] = true;
} }
return $tw.boot.executeNextStartupTask(); return $tw.boot.executeNextStartupTask(callback);
}; };
while(taskIndex < $tw.boot.remainingStartupModules.length) { while(taskIndex < $tw.boot.remainingStartupModules.length) {
task = $tw.boot.remainingStartupModules[taskIndex]; task = $tw.boot.remainingStartupModules[taskIndex];
@ -2064,7 +2064,7 @@ $tw.boot.executeNextStartupTask = function() {
if(task.name) { if(task.name) {
$tw.boot.executedStartupModules[task.name] = true; $tw.boot.executedStartupModules[task.name] = true;
} }
return $tw.boot.executeNextStartupTask(); return $tw.boot.executeNextStartupTask(callback);
} else { } else {
task.startup(asyncTaskCallback); task.startup(asyncTaskCallback);
return true; return true;
@ -2072,6 +2072,7 @@ $tw.boot.executeNextStartupTask = function() {
} }
taskIndex++; taskIndex++;
} }
if(typeof callback === 'function') callback();
return false; return false;
}; };
@ -2157,7 +2158,7 @@ $tw.hooks.invokeHook = function(hookName /*, value,... */) {
/////////////////////////// Main boot function to decrypt tiddlers and then startup /////////////////////////// Main boot function to decrypt tiddlers and then startup
$tw.boot.boot = function() { $tw.boot.boot = function(callback) {
// Initialise crypto object // Initialise crypto object
$tw.crypto = new $tw.utils.Crypto(); $tw.crypto = new $tw.utils.Crypto();
// Initialise password prompter // Initialise password prompter
@ -2167,7 +2168,7 @@ $tw.boot.boot = function() {
// Preload any encrypted tiddlers // Preload any encrypted tiddlers
$tw.boot.decryptEncryptedTiddlers(function() { $tw.boot.decryptEncryptedTiddlers(function() {
// Startup // Startup
$tw.boot.startup(); $tw.boot.startup({callback:callback});
}); });
}; };