Caret/js/main.js

62 lines
No EOL
1.7 KiB
JavaScript

require([
"command",
"settings!user",
"ui/dialog",
"ui/projectManager",
"ui/keys",
"fileManager",
"ui/menus",
"ui/palette",
"api",
"storage/syncfile"
], function(command, Settings, dialog) {
var frame = chrome.app.window.current();
command.on("app:exit", function() {
frame.close();
});
var setTheme = function() {
var user = Settings.get("user");
var themes = {
"dark": "css/caret-dark.css",
"light": "css/caret.css"
};
var theme = user.uiTheme || "light";
var url = themes[theme];
document.find("#theme").setAttribute("href", url);
}
//the settings manager may also fire init:restart to re-init components after startup
command.fire("init:startup");
command.on("init:restart", setTheme);
setTheme();
var updateID = "caret:update";
var checkUpdates = function(isManual) {
chrome.runtime.requestUpdateCheck(function(status, details) {
if (status == "update_available") {
chrome.notifications.create(updateID, {
type: "basic",
iconUrl: "icon-128.png",
title: "Caret: Update Available",
message: "An update to Caret version " + details.version + " is available. Would you like to update and restart now?",
buttons: [ { title: "Yes, update and restart" }, { title: "No thanks" }]
}, function(id) { updateID = id });
}
});
};
if (Settings.get("user").promptForUpdates !== false) checkUpdates();
command.on("app:check-for-updates", checkUpdates);
chrome.notifications.onButtonClicked.addListener(function(id, index) {
if (id != updateID) return;
if (index == 0) {
chrome.runtime.reload();
}
});
});