From ffb321bedca46d6987c7b31dd58e5dea96ea2ea2 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 10 Jul 2019 14:06:19 +0200 Subject: WIP plugins: load theme on client side --- server/lib/client-html.ts | 9 ++++++++- server/lib/plugins/theme-utils.ts | 10 +++++----- 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'server/lib') diff --git a/server/lib/client-html.ts b/server/lib/client-html.ts index 516827a05..ccc963514 100644 --- a/server/lib/client-html.ts +++ b/server/lib/client-html.ts @@ -92,6 +92,7 @@ export class ClientHtml { let html = buffer.toString() html = ClientHtml.addCustomCSS(html) + html = ClientHtml.addPluginCSS(html) ClientHtml.htmlCache[ path ] = html @@ -138,11 +139,17 @@ export class ClientHtml { } private static addCustomCSS (htmlStringPage: string) { - const styleTag = '' + const styleTag = `` return htmlStringPage.replace(CUSTOM_HTML_TAG_COMMENTS.CUSTOM_CSS, styleTag) } + private static addPluginCSS (htmlStringPage: string) { + const linkTag = `` + + return htmlStringPage.replace('', linkTag + '') + } + private static addVideoOpenGraphAndOEmbedTags (htmlStringPage: string, video: VideoModel) { const previewUrl = WEBSERVER.URL + video.getPreviewStaticPath() const videoUrl = WEBSERVER.URL + video.getWatchStaticPath() diff --git a/server/lib/plugins/theme-utils.ts b/server/lib/plugins/theme-utils.ts index 066339e65..76c671f1c 100644 --- a/server/lib/plugins/theme-utils.ts +++ b/server/lib/plugins/theme-utils.ts @@ -1,18 +1,18 @@ -import { DEFAULT_THEME } from '../../initializers/constants' +import { DEFAULT_THEME_NAME, DEFAULT_USER_THEME_NAME } from '../../initializers/constants' import { PluginManager } from './plugin-manager' import { CONFIG } from '../../initializers/config' -function getThemeOrDefault (name: string) { +function getThemeOrDefault (name: string, defaultTheme: string) { if (isThemeRegistered(name)) return name // Fallback to admin default theme - if (name !== CONFIG.THEME.DEFAULT) return getThemeOrDefault(CONFIG.THEME.DEFAULT) + if (name !== CONFIG.THEME.DEFAULT) return getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME) - return DEFAULT_THEME + return defaultTheme } function isThemeRegistered (name: string) { - if (name === DEFAULT_THEME) return true + if (name === DEFAULT_THEME_NAME || name === DEFAULT_USER_THEME_NAME) return true return !!PluginManager.Instance.getRegisteredThemes() .find(r => r.name === name) -- cgit v1.2.3