mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-11-04 21:56:12 +08:00 
			
		
		
		
	Relocate and fix jsesc issue
This commit is contained in:
		
							
								
								
									
										19
									
								
								server/google-analytics.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								server/google-analytics.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
const jsesc = require("jsesc");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a string that represents the javascript that is required to insert the Google Analytics scripts
 | 
			
		||||
 * into a webpage.
 | 
			
		||||
 * @param tagId Google UA/G/AW/DC Property ID to use with the Google Analytics script.
 | 
			
		||||
 * @returns {string}
 | 
			
		||||
 */
 | 
			
		||||
function getGoogleAnalyticsScript(tagId) {
 | 
			
		||||
    let escapedTagId = jsesc(tagId, { isScriptContext: true });
 | 
			
		||||
    return `
 | 
			
		||||
        <script async src="https://www.googletagmanager.com/gtag/js?id=${escapedTagId}"></script>
 | 
			
		||||
        <script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date());gtag('config', '${escapedTagId}'); </script>
 | 
			
		||||
    `;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    getGoogleAnalyticsScript,
 | 
			
		||||
};
 | 
			
		||||
@@ -4,7 +4,7 @@ const cheerio = require("cheerio");
 | 
			
		||||
const { UptimeKumaServer } = require("../uptime-kuma-server");
 | 
			
		||||
const jsesc = require("jsesc");
 | 
			
		||||
const Maintenance = require("./maintenance");
 | 
			
		||||
const googleAnalytics = require("../modules/google-analytics");
 | 
			
		||||
const googleAnalytics = require("../google-analytics");
 | 
			
		||||
 | 
			
		||||
class StatusPage extends BeanModel {
 | 
			
		||||
 | 
			
		||||
@@ -55,9 +55,7 @@ class StatusPage extends BeanModel {
 | 
			
		||||
        const head = $("head");
 | 
			
		||||
 | 
			
		||||
        if (statusPage.googleAnalyticsTagId) {
 | 
			
		||||
            let escapedGoogleAnalyticsScript = jsesc(googleAnalytics.getGoogleAnalyticsScript(statusPage.googleAnalyticsTagId), {
 | 
			
		||||
                "isScriptContext": true
 | 
			
		||||
            });
 | 
			
		||||
            let escapedGoogleAnalyticsScript = googleAnalytics.getGoogleAnalyticsScript(statusPage.googleAnalyticsTagId);
 | 
			
		||||
            head.append($(escapedGoogleAnalyticsScript));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +0,0 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a string that represents the javascript that is required to insert the Google Analytics scripts
 | 
			
		||||
 * into a webpage.
 | 
			
		||||
 * @param tagId Google UA/G/AW/DC Property ID to use with the Google Analytics script.
 | 
			
		||||
 * @returns {string}
 | 
			
		||||
 */
 | 
			
		||||
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>";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    getGoogleAnalyticsScript,
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user