aboutsummaryrefslogtreecommitdiffhomepage
path: root/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'app.js')
-rw-r--r--app.js34
1 files changed, 27 insertions, 7 deletions
diff --git a/app.js b/app.js
index def0be7..93902d8 100644
--- a/app.js
+++ b/app.js
@@ -7,9 +7,9 @@ const app = new Vue({
7 vlayout: true, 7 vlayout: true,
8 isDark: null 8 isDark: null
9 }, 9 },
10 created: function () { 10 created: async function () {
11 let that = this; 11 let that = this;
12 12
13 this.isDark = 'overrideDark' in localStorage ? 13 this.isDark = 'overrideDark' in localStorage ?
14 JSON.parse(localStorage.overrideDark) : matchMedia("(prefers-color-scheme: dark)").matches; 14 JSON.parse(localStorage.overrideDark) : matchMedia("(prefers-color-scheme: dark)").matches;
15 15
@@ -18,11 +18,23 @@ const app = new Vue({
18 } 18 }
19 19
20 this.checkOffline(); 20 this.checkOffline();
21 that.getConfig().then(function (config) { 21 try {
22 that.config = config; 22 this.config = await this.getConfig();
23 }).catch(function () { 23 } catch (error) {
24 that.offline = true; 24 this.offline = true;
25 }); 25 }
26
27 // Look for a new message if an endpoint is provided.
28 if (this.config.message.url) {
29 this.getMessage(this.config.message.url).then(function(message){
30 // keep the original config value if no value is provided by the endpoint
31 for (const prop of ['title','style','content']) {
32 if (prop in message && message[prop] !== null) {
33 that.config.message[prop] = message[prop];
34 }
35 }
36 });
37 }
26 38
27 document.addEventListener('visibilitychange', function () { 39 document.addEventListener('visibilitychange', function () {
28 if (document.visibilityState == "visible") { 40 if (document.visibilityState == "visible") {
@@ -52,6 +64,14 @@ const app = new Vue({
52 }); 64 });
53 }); 65 });
54 }, 66 },
67 getMessage: function (url) {
68 return fetch(url).then(function (response) {
69 if (response.status != 200) {
70 return;
71 }
72 return response.json();
73 });
74 },
55 toggleTheme: function() { 75 toggleTheme: function() {
56 this.isDark = !this.isDark; 76 this.isDark = !this.isDark;
57 localStorage.overrideDark = this.isDark; 77 localStorage.overrideDark = this.isDark;