ComunicWeb/assets/js/common/system.js

137 lines
3.0 KiB
JavaScript
Raw Permalink Normal View History

2017-05-21 16:18:29 +00:00
/**
* Application background system functions
*
* @author Pierre HUBERT
*/
2021-02-13 14:23:43 +00:00
const System = {
2017-05-21 16:18:29 +00:00
/**
* Initializate the application
*
2018-01-07 18:17:50 +00:00
* @param {String} openPage Specify a page to open
2017-05-21 16:18:29 +00:00
* @return {Boolean} True for a success
*/
init: async function(openPage){
//Display Comunic logo
ComunicWeb.debug.displayComunicLogo();
2017-05-21 16:18:29 +00:00
//Start init
ComunicWeb.debug.logMessage("Start initialization...");
2018-07-03 06:32:55 +00:00
//Enable error reporting
window.addEventListener("error", function(e){
ComunicWeb.common.error.syntaxtError(e.error);
});
2017-06-05 14:29:28 +00:00
//Disable tooltips
$(function () {
$(document.body).tooltip("disable");
});
//Enable page URLs detection
window.location.changed = function(e){
2021-02-20 09:53:21 +00:00
Page.location_updated(e);
}
2021-02-20 09:58:28 +00:00
2017-05-21 16:18:29 +00:00
//Clean current page content
2021-02-20 09:53:21 +00:00
Page.emptyPage();
2017-05-21 16:18:29 +00:00
//Show a wait splash screen
2021-02-20 09:58:28 +00:00
Page.showWaitSplashScreen(tr("Starting up..."));
2017-05-21 16:18:29 +00:00
/**
* Language initator
*/
ComunicWeb.common.langs.initLanguages();
2019-01-11 13:50:06 +00:00
/**
* Initialize incognito mode detection
*/
ComunicWeb.components.incognito.management.init();
/**
* Refresh dark theme mode
*/
ComunicWeb.components.darkTheme.refresh();
2021-02-20 09:58:28 +00:00
/**
* Initialize server configuration
*/
Page.showWaitSplashScreen(tr("Loading server configuration"));
try {
await ServerConfig.ensureLoaded();
2021-02-20 09:58:28 +00:00
} catch(e) {
console.error(e)
ComunicWeb.common.error.fatalError(tr("Failed to load server configuration!"));
return;
2021-02-20 09:58:28 +00:00
}
2017-05-21 16:18:29 +00:00
/**
2021-02-13 14:14:45 +00:00
* Get login state
2017-05-21 16:18:29 +00:00
*/
2021-02-20 09:58:28 +00:00
Page.showWaitSplashScreen(tr("Refreshing login state"));
2021-02-13 14:14:45 +00:00
await UserLogin.refreshLoginState();
// Initialize Websocket if user is connected
if(signed_in()) {
2021-02-20 09:58:28 +00:00
Page.showWaitSplashScreen(tr("Connecting to server"));
2021-02-13 14:14:45 +00:00
await UserWebSocket.Connect();
await UserWebSocket.WaitForConnected();
2017-05-21 16:18:29 +00:00
}
/**
2021-02-13 14:14:45 +00:00
* Open a page
2017-05-21 16:18:29 +00:00
*/
2021-02-13 14:14:45 +00:00
if(!openPage){
//Refresh current page
ComunicWeb.common.page.refresh_current_page();
}
else
//Open specified page
ComunicWeb.common.page.openPage(openPage);
2017-05-21 16:18:29 +00:00
2021-02-13 14:14:45 +00:00
//End of init
ComunicWeb.debug.logMessage("Application is ready !");
2017-05-21 16:18:29 +00:00
},
2017-05-21 16:26:18 +00:00
/**
* Restart the application
*
* @return {Boolean} True for a success
*/
restart: function(){
//Show a wait splashscreen message
ComunicWeb.common.page.showWaitSplashScreen("Restarting...");
//Reload the page
2021-02-13 14:23:43 +00:00
location.href = document.location.href.split("#")[0];
2017-06-14 09:46:10 +00:00
},
/**
* Reset the application
*
* @param {Boolean} complete Specify wether the cache cleaning has to be complete or not (for logout)
* @param {String} openPage Specify a page to open once the application is restarted
* @return {Boolean} True for a success
*/
reset: function(complete, openPage){
//Show a wait splashscreen message
ComunicWeb.common.page.showWaitSplashScreen("Reset the application in progress...");
//Clear intervals
ComunicWeb.common.cacheManager.cleanIntervals();
//Clean caches
ComunicWeb.common.cacheManager.cleanCaches(complete);
//Init the page again
this.init(openPage);
//Success
return true;
},
2021-02-13 14:23:43 +00:00
};
ComunicWeb.common.system = System;