vlayout: true,
isDark: null
},
- created: function () {
+ created: async function () {
let that = this;
this.isDark = 'overrideDark' in localStorage ?
}
this.checkOffline();
- that.getConfig().then(function (config) {
- that.config = config;
- }).catch(function () {
- that.offline = true;
- });
+ try {
+ this.config = await this.getConfig();
+ } catch (error) {
+ this.offline = true;
+ }
+
+ // Look for a new message if an endpoint is provided.
+ if (this.config.message.url) {
+ this.getMessage(this.config.message.url).then(function(message){
+ // keep the original config value if no value is provided by the endpoint
+ for (const prop of ['title','style','content']) {
+ if (prop in message && message[prop] !== null) {
+ that.config.message[prop] = message[prop];
+ }
+ }
+ });
+ }
document.addEventListener('visibilitychange', function () {
if (document.visibilityState == "visible") {
});
});
},
+ getMessage: function (url) {
+ return fetch(url).then(function (response) {
+ if (response.status != 200) {
+ return;
+ }
+ return response.json();
+ });
+ },
toggleTheme: function() {
this.isDark = !this.isDark;
localStorage.overrideDark = this.isDark;