어나운스 바 설정 확장 v1.5.38
This commit is contained in:
@@ -9,6 +9,12 @@ import { getDefaultNavigationItems } from '../utils/navigation-items'
|
||||
import { buildPublicPrimaryTree, orderNavigationItemsForInsert } from '../utils/navigation-tree'
|
||||
import { getDefaultSiteSettings } from '../utils/site-settings'
|
||||
import { toAdminPostFormTitle } from '../../lib/admin-post-title.js'
|
||||
import {
|
||||
DEFAULT_ANNOUNCEMENT_ALIGNMENT,
|
||||
DEFAULT_ANNOUNCEMENT_BACKGROUND_COLOR,
|
||||
normalizeAnnouncementAlignment,
|
||||
normalizeAnnouncementBackgroundColor
|
||||
} from '../../lib/announcement-bar.js'
|
||||
import { DEFAULT_BRAND_COLOR, normalizeBrandColor } from '../../lib/brand-color.js'
|
||||
import {
|
||||
normalizeSignupBlockedUsernames,
|
||||
@@ -110,7 +116,8 @@ const mapSiteSettingsRow = (row) => ({
|
||||
announcementEnabled: Boolean(row.announcement_enabled),
|
||||
announcementText: row.announcement_text || '',
|
||||
announcementUrl: row.announcement_url || '',
|
||||
announcementBackgroundColor: row.announcement_background_color || '#15171a',
|
||||
announcementBackgroundColor: normalizeAnnouncementBackgroundColor(row.announcement_background_color || DEFAULT_ANNOUNCEMENT_BACKGROUND_COLOR),
|
||||
announcementAlignment: normalizeAnnouncementAlignment(row.announcement_alignment || DEFAULT_ANNOUNCEMENT_ALIGNMENT),
|
||||
signupBlockedUsernames: parseSignupBlockedUsernamesFromDb(row.signup_blocked_usernames),
|
||||
adsTxt: row.ads_txt || '',
|
||||
customHeadCode: row.custom_head_code || '',
|
||||
@@ -879,6 +886,7 @@ export const updateSiteSettings = async (input) => {
|
||||
announcement_text,
|
||||
announcement_url,
|
||||
announcement_background_color,
|
||||
announcement_alignment,
|
||||
signup_blocked_usernames,
|
||||
ads_txt,
|
||||
custom_head_code,
|
||||
@@ -903,7 +911,8 @@ export const updateSiteSettings = async (input) => {
|
||||
${input.announcementEnabled ? true : false},
|
||||
${input.announcementText || ''},
|
||||
${input.announcementUrl || ''},
|
||||
${input.announcementBackgroundColor || '#15171a'},
|
||||
${normalizeAnnouncementBackgroundColor(input.announcementBackgroundColor)},
|
||||
${normalizeAnnouncementAlignment(input.announcementAlignment)},
|
||||
${JSON.stringify(normalizeSignupBlockedUsernames(input.signupBlockedUsernames))},
|
||||
${input.adsTxt || ''},
|
||||
${input.customHeadCode || ''},
|
||||
@@ -929,6 +938,7 @@ export const updateSiteSettings = async (input) => {
|
||||
announcement_text = EXCLUDED.announcement_text,
|
||||
announcement_url = EXCLUDED.announcement_url,
|
||||
announcement_background_color = EXCLUDED.announcement_background_color,
|
||||
announcement_alignment = EXCLUDED.announcement_alignment,
|
||||
signup_blocked_usernames = EXCLUDED.signup_blocked_usernames,
|
||||
ads_txt = EXCLUDED.ads_txt,
|
||||
custom_head_code = EXCLUDED.custom_head_code,
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
import { z } from 'zod'
|
||||
import {
|
||||
DEFAULT_ANNOUNCEMENT_ALIGNMENT,
|
||||
DEFAULT_ANNOUNCEMENT_BACKGROUND_COLOR,
|
||||
isValidAnnouncementBackgroundColor,
|
||||
normalizeAnnouncementAlignment,
|
||||
normalizeAnnouncementBackgroundColor,
|
||||
normalizeAnnouncementUrl
|
||||
} from '../../lib/announcement-bar.js'
|
||||
import {
|
||||
@@ -34,6 +37,7 @@ export const adminSiteSettingsInputSchema = z.object({
|
||||
announcementText: z.string().trim().max(200).optional().default(''),
|
||||
announcementUrl: z.string().trim().max(500).optional().default(''),
|
||||
announcementBackgroundColor: z.string().trim().optional().default(DEFAULT_ANNOUNCEMENT_BACKGROUND_COLOR),
|
||||
announcementAlignment: z.string().trim().optional().default(DEFAULT_ANNOUNCEMENT_ALIGNMENT),
|
||||
signupBlockedUsernames: z.array(
|
||||
z.string().trim().min(1).max(MAX_SIGNUP_BLOCKED_USERNAME_LENGTH)
|
||||
).max(MAX_SIGNUP_BLOCKED_USERNAME_COUNT).optional().default([...DEFAULT_SIGNUP_BLOCKED_USERNAMES]),
|
||||
@@ -68,6 +72,8 @@ export const adminSiteSettingsInputSchema = z.object({
|
||||
...data,
|
||||
brandColor: normalizeBrandColor(data.brandColor),
|
||||
announcementUrl: normalizeAnnouncementUrl(data.announcementUrl),
|
||||
announcementBackgroundColor: normalizeAnnouncementBackgroundColor(data.announcementBackgroundColor),
|
||||
announcementAlignment: normalizeAnnouncementAlignment(data.announcementAlignment),
|
||||
signupBlockedUsernames: normalizeSignupBlockedUsernames(data.signupBlockedUsernames)
|
||||
}))
|
||||
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import { DEFAULT_BRAND_COLOR } from '../../lib/brand-color.js'
|
||||
import {
|
||||
DEFAULT_ANNOUNCEMENT_ALIGNMENT,
|
||||
DEFAULT_ANNOUNCEMENT_BACKGROUND_COLOR
|
||||
} from '../../lib/announcement-bar.js'
|
||||
import { DEFAULT_SIGNUP_BLOCKED_USERNAMES } from '../../lib/signup-blocked-usernames.js'
|
||||
|
||||
/**
|
||||
@@ -26,7 +30,8 @@ export const getDefaultSiteSettings = () => {
|
||||
announcementEnabled: false,
|
||||
announcementText: '',
|
||||
announcementUrl: '',
|
||||
announcementBackgroundColor: '#15171a',
|
||||
announcementBackgroundColor: DEFAULT_ANNOUNCEMENT_BACKGROUND_COLOR,
|
||||
announcementAlignment: DEFAULT_ANNOUNCEMENT_ALIGNMENT,
|
||||
signupBlockedUsernames: [...DEFAULT_SIGNUP_BLOCKED_USERNAMES],
|
||||
adsTxt: '',
|
||||
customHeadCode: '',
|
||||
|
||||
Reference in New Issue
Block a user