From 00510820a2794efcadbc83f7f8b54318fe198ecb Mon Sep 17 00:00:00 2001 From: Zéro~Informatique Date: Tue, 26 Jul 2022 08:44:34 +0200 Subject: viewer: migrate to vue 3, general refactoring and cleanup Non-exhaustive list of fixes and improvements done at the same time: - html default background to grey (avoids white flash during init) - unified links behavior - added more theme variables - removed the flex-expand transition (it wasn't working) and replaced it with a slide - fixed LdLoading not centered on the content - title on removable tags - fixed an issue with encoded URI from vue-router - unified Item resource URLs - removed the iframe for PlainTextViewer (it wasn't working properly) and replaced it with a pre - fixed clear and search buttons tabindex - fixed the information panel bumping up during the fade animation of tag's dropdown - fixed some focus outlines not appearing correctly - moved CSS variables to the :root context - Code cleaning GitHub: closes #217 GitHub: closes #300 GitHub: closes #297 GitHub: closes #105 GitHub: closes #267 GitHub: closes #275 GitHub: closes #228 GitHub: closes #215 GitHub: closes #112 --- viewer/src/plugins/devServer.js | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 viewer/src/plugins/devServer.js (limited to 'viewer/src/plugins/devServer.js') diff --git a/viewer/src/plugins/devServer.js b/viewer/src/plugins/devServer.js new file mode 100644 index 0000000..2cccbbb --- /dev/null +++ b/viewer/src/plugins/devServer.js @@ -0,0 +1,53 @@ +/* ldgallery - A static generator which turns a collection of tagged +-- pictures into a searchable web gallery. +-- +-- Copyright (C) 2019-2022 Guillaume FOUET +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see . +*/ + +/* +-- Create a file .env.development.local in the project to customize your DevServer +-- VUE_APP_DEVSERVER_CONFIG_PATH= will use the dev_proxyconfig +-- VUE_APP_DEVSERVER_CONFIG_PATH= will use the dev_fsconfig +*/ + +const devReady = Boolean(process.env.VUE_APP_DEVSERVER_CONFIG_PATH); +const devIsProxy = devReady && Boolean(process.env.VUE_APP_DEVSERVER_CONFIG_PATH?.match(/^https?:\/\//i)); +const devLocalpath = `^/${process.env.VUE_APP_DATA_URL}`; +const devProxyconfig = { + [devLocalpath]: { + target: process.env.VUE_APP_DEVSERVER_CONFIG_PATH, + pathRewrite: { [devLocalpath]: '' }, + }, +}; + +function devFsConfig(middlewares, devServer) { + devServer.app.get(`${devLocalpath}*`, (req, res) => { + const fs = require('fs'); + const url = req.url.slice(process.env.VUE_APP_DATA_URL?.length); + const paramIdx = url.indexOf('?'); + const filepath = paramIdx < 0 ? url : url.substring(0, paramIdx); + const fullpath = `${process.env.VUE_APP_DEVSERVER_CONFIG_PATH}${decodeURIComponent(filepath)}`; + const file = fs.readFileSync(fullpath); + res.end(file); + }); + return middlewares; +} + +module.exports = { + port: process.env.VUE_APP_DEVSERVER_PORT, + proxy: devReady && devIsProxy ? devProxyconfig : undefined, + setupMiddlewares: devReady && !devIsProxy ? devFsConfig : undefined, +}; -- cgit v1.2.3