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