[Status Page] wip

This commit is contained in:
Louis Lam 2022-03-16 14:14:47 +08:00
parent 7c7dbf68c1
commit 18ec42b060
6 changed files with 17 additions and 7 deletions

View File

@ -5,14 +5,15 @@ CREATE TABLE [status_page](
[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[slug] VARCHAR(255) NOT NULL UNIQUE,
[title] VARCHAR(255) NOT NULL,
[description] TEXT,
[icon] VARCHAR(255) NOT NULL,
[theme] VARCHAR(30) NOT NULL,
[published] BOOLEAN NOT NULL DEFAULT 1,
[search_engine_index] BOOLEAN NOT NULL DEFAULT 1,
[show_tags] BOOLEAN NOT NULL DEFAULT 0,
[password] VARCHAR,
[date_created] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
[date_modified] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
[created_date] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
[modified_date] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX [slug] ON [status_page]([slug]);

View File

@ -233,6 +233,7 @@ class Database {
let statusPage = R.dispense("status_page");
statusPage.slug = "";
statusPage.title = title;
statusPage.description = await setting("description");
statusPage.icon = await setting("icon");
statusPage.theme = await setting("statusPageTheme");
statusPage.published = await setting("statusPagePublished");

View File

@ -21,6 +21,7 @@ class StatusPage extends BeanModel {
id: this.id,
slug: this.slug,
title: this.title,
description: this.description,
icon: this.icon,
theme: this.theme,
published: !!this.published,
@ -32,6 +33,7 @@ class StatusPage extends BeanModel {
return {
slug: this.slug,
title: this.title,
description: this.description,
icon: this.icon,
theme: this.theme,
published: !!this.published,

View File

@ -220,11 +220,7 @@ async function checkPublished() {
* @returns {Promise<boolean>}
*/
async function isPublished() {
const value = await setting("statusPagePublished");
if (value === null) {
return true;
}
return value;
return true;
}
function send403(res, msg = "") {

View File

@ -107,12 +107,14 @@ module.exports.statusPageSocketHandler = (socket) => {
statusPage.slug = config.slug;
statusPage.title = config.title;
statusPage.description = config.description;
statusPage.icon = config.logo;
statusPage.theme = config.theme;
//statusPage.published = ;
//statusPage.search_engine_index = ;
statusPage.show_tags = config.showTags;
//statusPage.password = null;
statusPage.modified_date = R.isoDateTime();
await R.store(statusPage);

View File

@ -436,6 +436,14 @@ export default {
this.slug = "default";
}
axios.get("/api/status-page/" + this.slug).then((res) => {
this.config = res.data;
if (this.config.logo) {
this.imgDataUrl = this.config.logo;
}
});
axios.get("/api/status-page/config/" + this.slug).then((res) => {
this.config = res.data;