mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-10-01 01:25:45 -04:00
Feature - Google Analytics - Addressing PR Comments.
This commit is contained in:
parent
29e24e0de9
commit
99c0b8cb71
@ -69,7 +69,7 @@ class Database {
|
|||||||
"patch-ping-packet-size.sql": true,
|
"patch-ping-packet-size.sql": true,
|
||||||
"patch-maintenance-table2.sql": true,
|
"patch-maintenance-table2.sql": true,
|
||||||
"patch-add-gamedig-monitor.sql": true,
|
"patch-add-gamedig-monitor.sql": true,
|
||||||
"patch-add-google-analytics-status-page-tag.sql": true
|
"patch-add-google-analytics-status-page-tag.sql": true,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -4,6 +4,7 @@ const cheerio = require("cheerio");
|
|||||||
const { UptimeKumaServer } = require("../uptime-kuma-server");
|
const { UptimeKumaServer } = require("../uptime-kuma-server");
|
||||||
const jsesc = require("jsesc");
|
const jsesc = require("jsesc");
|
||||||
const Maintenance = require("./maintenance");
|
const Maintenance = require("./maintenance");
|
||||||
|
const googleAnalytics = require("../modules/google-analytics");
|
||||||
|
|
||||||
class StatusPage extends BeanModel {
|
class StatusPage extends BeanModel {
|
||||||
|
|
||||||
@ -53,6 +54,12 @@ class StatusPage extends BeanModel {
|
|||||||
|
|
||||||
const head = $("head");
|
const head = $("head");
|
||||||
|
|
||||||
|
await StatusPage.getStatusPageData(statusPage).then( (page) => {
|
||||||
|
if (page.config?.googleAnalyticsId) {
|
||||||
|
head.append($(googleAnalytics.getGoogleAnalyticsScript(page.config.googleAnalyticsId)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// OG Meta Tags
|
// OG Meta Tags
|
||||||
head.append(`<meta property="og:title" content="${statusPage.title}" />`);
|
head.append(`<meta property="og:title" content="${statusPage.title}" />`);
|
||||||
head.append(`<meta property="og:description" content="${description155}" />`);
|
head.append(`<meta property="og:description" content="${description155}" />`);
|
||||||
@ -225,7 +232,7 @@ class StatusPage extends BeanModel {
|
|||||||
customCSS: this.custom_css,
|
customCSS: this.custom_css,
|
||||||
footerText: this.footer_text,
|
footerText: this.footer_text,
|
||||||
showPoweredBy: !!this.show_powered_by,
|
showPoweredBy: !!this.show_powered_by,
|
||||||
googleAnalyticsId: this.google_analytics_tag_id
|
googleAnalyticsId: this.google_analytics_tag_id,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,7 +253,7 @@ class StatusPage extends BeanModel {
|
|||||||
customCSS: this.custom_css,
|
customCSS: this.custom_css,
|
||||||
footerText: this.footer_text,
|
footerText: this.footer_text,
|
||||||
showPoweredBy: !!this.show_powered_by,
|
showPoweredBy: !!this.show_powered_by,
|
||||||
googleAnalyticsId: this.google_analytics_tag_id
|
googleAnalyticsId: this.google_analytics_tag_id,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
11
server/modules/google-analytics.js
Normal file
11
server/modules/google-analytics.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
let GoogleAnalytics = (() => {
|
||||||
|
function getGoogleAnalyticsScript(tagId) {
|
||||||
|
return "<script async src=\"https://www.googletagmanager.com/gtag/js?id=" + tagId + "\"></script>" +
|
||||||
|
"<script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date());gtag('config', '" + tagId + "'); </script>";
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
getGoogleAnalyticsScript: getGoogleAnalyticsScript
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
module.exports = GoogleAnalytics;
|
0
src/languages/en.js
Normal file
0
src/languages/en.js
Normal file
@ -300,15 +300,6 @@
|
|||||||
<component is="style" v-if="config.customCSS" type="text/css">
|
<component is="style" v-if="config.customCSS" type="text/css">
|
||||||
{{ config.customCSS }}
|
{{ config.customCSS }}
|
||||||
</component>
|
</component>
|
||||||
|
|
||||||
<component :is="'script'" v-if="config.googleAnalyticsId" async :src="'https://www.googletagmanager.com/gtag/js?id=' + config.googleAnalyticsId" />
|
|
||||||
|
|
||||||
<component :is="'script'" v-if="config.googleAnalyticsId">
|
|
||||||
window.dataLayer = window.dataLayer || [];
|
|
||||||
function gtag(){dataLayer.push(arguments);}
|
|
||||||
gtag('js', new Date());
|
|
||||||
gtag('config', '{{ config.googleAnalyticsId }}');
|
|
||||||
</component>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user