mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-23 18:17:20 +00:00
76 lines
2.0 KiB
JavaScript
Executable File
76 lines
2.0 KiB
JavaScript
Executable File
/*\
|
|
title: $:/core/modules/startup.js
|
|
type: application/javascript
|
|
module-type: startup
|
|
|
|
This is the main application logic for both the client and server
|
|
|
|
\*/
|
|
(function(){
|
|
|
|
/*jslint node: true, browser: true */
|
|
/*global $tw: false */
|
|
"use strict";
|
|
|
|
// Export name and synchronous status
|
|
exports.name = "startup";
|
|
exports.after = ["load-modules"];
|
|
exports.synchronous = true;
|
|
|
|
// Set to `true` to enable performance instrumentation
|
|
var PERFORMANCE_INSTRUMENTATION = false;
|
|
|
|
exports.startup = function() {
|
|
var modules,n,m,f;
|
|
if($tw.browser) {
|
|
$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));
|
|
}
|
|
$tw.version = $tw.utils.extractVersionInfo();
|
|
// Set up the performance framework
|
|
$tw.perf = new $tw.Performance(PERFORMANCE_INSTRUMENTATION);
|
|
// Kick off the language manager and switcher
|
|
$tw.language = new $tw.Language();
|
|
$tw.languageSwitcher = new $tw.PluginSwitcher({
|
|
wiki: $tw.wiki,
|
|
pluginType: "language",
|
|
controllerTitle: "$:/language",
|
|
defaultPlugins: [
|
|
"$:/languages/en-US"
|
|
]
|
|
});
|
|
// Kick off the theme manager
|
|
$tw.themeManager = new $tw.PluginSwitcher({
|
|
wiki: $tw.wiki,
|
|
pluginType: "theme",
|
|
controllerTitle: "$:/theme",
|
|
defaultPlugins: [
|
|
"$:/themes/tiddlywiki/snowwhite",
|
|
"$:/themes/tiddlywiki/vanilla"
|
|
]
|
|
});
|
|
// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup
|
|
$tw.wiki.clearTiddlerEventQueue();
|
|
// Set up the syncer object
|
|
$tw.syncer = new $tw.Syncer({wiki: $tw.wiki});
|
|
// Host-specific startup
|
|
if($tw.browser) {
|
|
// Set up our beforeunload handler
|
|
window.addEventListener("beforeunload",function(event) {
|
|
var confirmationMessage = undefined;
|
|
if($tw.syncer.isDirty()) {
|
|
confirmationMessage = "You have unsaved changes in TiddlyWiki";
|
|
event.returnValue = confirmationMessage; // Gecko
|
|
}
|
|
return confirmationMessage;
|
|
});
|
|
// Install the popup manager
|
|
$tw.popup = new $tw.utils.Popup({
|
|
rootElement: document.body
|
|
});
|
|
// Install the animator
|
|
$tw.anim = new $tw.utils.Animator();
|
|
}
|
|
};
|
|
|
|
})();
|