|  |  | @ -101,6 +101,10 @@ router.get("/api/status-page/config", async (_request, response) => { | 
			
		
	
		
			
				
					|  |  |  |         config.statusPagePublished = true; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     if (! config.statusPageTags) { | 
			
		
	
		
			
				
					|  |  |  |         config.statusPageTags = false; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     if (! config.title) { | 
			
		
	
		
			
				
					|  |  |  |         config.title = "Uptime Kuma"; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
	
		
			
				
					|  |  | @ -140,10 +144,25 @@ router.get("/api/status-page/monitor-list", cache("5 minutes"), async (_request, | 
			
		
	
		
			
				
					|  |  |  |     try { | 
			
		
	
		
			
				
					|  |  |  |         await checkPublished(); | 
			
		
	
		
			
				
					|  |  |  |         const publicGroupList = []; | 
			
		
	
		
			
				
					|  |  |  |         let list = await R.find("group", " public = 1 ORDER BY weight "); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         const tagsVisible = (await getSettings("statusPage")).statusPageTags; | 
			
		
	
		
			
				
					|  |  |  |         const list = await R.find("group", " public = 1 ORDER BY weight "); | 
			
		
	
		
			
				
					|  |  |  |         for (let groupBean of list) { | 
			
		
	
		
			
				
					|  |  |  |             publicGroupList.push(await groupBean.toPublicJSON()); | 
			
		
	
		
			
				
					|  |  |  |             let monitorGroup = await groupBean.toPublicJSON(); | 
			
		
	
		
			
				
					|  |  |  |             if (tagsVisible) { | 
			
		
	
		
			
				
					|  |  |  |                 monitorGroup.monitorList = await Promise.all(monitorGroup.monitorList.map(async (monitor) => { | 
			
		
	
		
			
				
					|  |  |  |                     // Includes tags as an array in response, allows for tags to be displayed on public status page
 | 
			
		
	
		
			
				
					|  |  |  |                     const tags = await R.getAll( | 
			
		
	
		
			
				
					|  |  |  |                             `SELECT monitor_tag.monitor_id, monitor_tag.value, tag.name, tag.color
 | 
			
		
	
		
			
				
					|  |  |  |                             FROM monitor_tag | 
			
		
	
		
			
				
					|  |  |  |                             JOIN tag | 
			
		
	
		
			
				
					|  |  |  |                             ON monitor_tag.tag_id = tag.id | 
			
		
	
		
			
				
					|  |  |  |                             WHERE monitor_tag.monitor_id = ?`, [monitor.id]
 | 
			
		
	
		
			
				
					|  |  |  |                         ); | 
			
		
	
		
			
				
					|  |  |  |                     return {...monitor, tags: tags} | 
			
		
	
		
			
				
					|  |  |  |                 })); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             publicGroupList.push(monitorGroup); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         response.json(publicGroupList); | 
			
		
	
	
		
			
				
					|  |  | 
 |