aboutsummaryrefslogtreecommitdiff
path: root/viewer
diff options
context:
space:
mode:
authorZéro~Informatique2022-07-26 08:44:34 +0200
committerpacien2022-09-03 01:30:42 +0200
commit00510820a2794efcadbc83f7f8b54318fe198ecb (patch)
treea894d99c22a601197869c7a6928d40bb4ae2c392 /viewer
parent88aa098c07e067f9f737fbeba1f52a9bd5042e53 (diff)
downloadldgallery-00510820a2794efcadbc83f7f8b54318fe198ecb.tar.gz
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
Diffstat (limited to 'viewer')
-rw-r--r--viewer/.env4
-rw-r--r--viewer/.eslintrc.js45
-rw-r--r--viewer/.gitignore4
-rw-r--r--viewer/.prettierrc.js10
-rw-r--r--viewer/.vscode/launch.json19
-rw-r--r--viewer/.vscode/tasks.json49
-rw-r--r--viewer/babel.config.js5
-rw-r--r--viewer/examples/config.json.example3
-rw-r--r--viewer/examples/defaulticon.pngbin3363 -> 0 bytes
-rw-r--r--viewer/examples/manifest.json.example13
-rw-r--r--viewer/ldgallery-viewer.7.md2
-rw-r--r--viewer/package.json84
-rw-r--r--viewer/public/index.html40
-rw-r--r--viewer/src/@types/gallery.ts (renamed from viewer/src/@types/gallery.d.ts)134
-rw-r--r--viewer/src/@types/itemType.ts (renamed from viewer/src/@types/ItemType.ts)16
-rw-r--r--viewer/src/@types/operation.ts (renamed from viewer/src/@types/Operation.ts)8
-rw-r--r--viewer/src/@types/scrollposition.d.ts20
-rw-r--r--viewer/src/@types/splashscreen.ts (renamed from viewer/src/@types/splashscreen.d.ts)2
-rw-r--r--viewer/src/@types/tag.ts (renamed from viewer/src/@types/tag.d.ts)5
-rw-r--r--viewer/src/@types/v-lazy-image.d.ts20
-rw-r--r--viewer/src/@types/vue-dragscroll.d.ts20
-rw-r--r--viewer/src/assets/scss/_buefy_variables.scss171
-rw-r--r--viewer/src/assets/scss/buefy.scss47
-rw-r--r--viewer/src/assets/scss/constants.scss (renamed from viewer/src/assets/scss/palette.scss)24
-rw-r--r--viewer/src/assets/scss/global.scss53
-rw-r--r--viewer/src/assets/scss/scrollbar.scss2
-rw-r--r--viewer/src/assets/scss/theme.scss42
-rw-r--r--viewer/src/assets/scss/transition.scss40
-rw-r--r--viewer/src/components/LdBreadcrumb.vue129
-rw-r--r--viewer/src/components/LdCommand.vue98
-rw-r--r--viewer/src/components/LdCommandSort.vue60
-rw-r--r--viewer/src/components/LdInput.vue60
-rw-r--r--viewer/src/components/LdKeyPress.vue49
-rw-r--r--viewer/src/components/LdLink.vue75
-rw-r--r--viewer/src/components/LdLoading.vue51
-rw-r--r--viewer/src/components/LdNotice.vue (renamed from viewer/src/components/LdError.vue)39
-rw-r--r--viewer/src/components/LdProposition.vue186
-rw-r--r--viewer/src/components/LdTagInput.vue96
-rw-r--r--viewer/src/components/LdTitle.vue47
-rw-r--r--viewer/src/components/async/AsyncLdMarkdown.vue (renamed from viewer/src/components/async/Markdown.vue)24
-rw-r--r--viewer/src/components/async/index.ts24
-rw-r--r--viewer/src/components/index.ts44
-rw-r--r--viewer/src/components/item_handlers/LdMarkdownViewer.vue76
-rw-r--r--viewer/src/components/item_handlers/LdPictureViewer.vue128
-rw-r--r--viewer/src/components/item_handlers/LdPlainTextViewer.vue56
-rw-r--r--viewer/src/locales/en.json26
-rw-r--r--viewer/src/locales/en.yml44
-rw-r--r--viewer/src/main.ts65
-rw-r--r--viewer/src/plugins/asyncLib.ts3
-rw-r--r--viewer/src/plugins/devServer.js53
-rw-r--r--viewer/src/plugins/i18n.ts19
-rw-r--r--viewer/src/plugins/index.ts8
-rw-r--r--viewer/src/plugins/router.ts22
-rw-r--r--viewer/src/services/api/ldFetch.ts (renamed from viewer/src/plugins/fontawesome-icons.ts)42
-rw-r--r--viewer/src/services/dragscrollclickfix.ts51
-rw-r--r--viewer/src/services/fetchWithCheck.ts7
-rw-r--r--viewer/src/services/indexFactory.ts163
-rw-r--r--viewer/src/services/indexSearch.ts74
-rw-r--r--viewer/src/services/indexfactory.ts157
-rw-r--r--viewer/src/services/indexsearch.ts70
-rw-r--r--viewer/src/services/itemComparator.ts93
-rw-r--r--viewer/src/services/itemComparators.ts74
-rw-r--r--viewer/src/services/itemGuards.ts11
-rw-r--r--viewer/src/services/ldzoom.ts135
-rw-r--r--viewer/src/services/navigation.ts90
-rw-r--r--viewer/src/services/ui/ldFullscreen.ts (renamed from viewer/src/plugins/buefy.ts)43
-rw-r--r--viewer/src/services/ui/ldItemResourceUrl.ts15
-rw-r--r--viewer/src/services/ui/ldKeepFocus.ts (renamed from viewer/src/plugins/fontawesome.ts)23
-rw-r--r--viewer/src/services/ui/ldKeyboard.ts (renamed from viewer/src/plugins/dragscroll.ts)13
-rw-r--r--viewer/src/services/ui/ldSaveScroll.ts37
-rw-r--r--viewer/src/services/ui/ldTitle.ts (renamed from viewer/src/plugins/lazyimage.ts)19
-rw-r--r--viewer/src/services/ui/ldZoom.ts128
-rw-r--r--viewer/src/shims-tsx.d.ts13
-rw-r--r--viewer/src/shims-vue.d.ts10
-rw-r--r--viewer/src/store/galleryStore.ts201
-rw-r--r--viewer/src/store/index.ts46
-rw-r--r--viewer/src/store/uiStore.ts116
-rw-r--r--viewer/src/views/GalleryNavigation.vue106
-rw-r--r--viewer/src/views/GallerySearch.vue60
-rw-r--r--viewer/src/views/GalleryTiles.vue (renamed from viewer/src/components/LdGallery.vue)53
-rw-r--r--viewer/src/views/ItemThumbnail.vue (renamed from viewer/src/components/LdThumbnail.vue)62
-rw-r--r--viewer/src/views/MainLayout.vue173
-rw-r--r--viewer/src/views/PanelLeft.vue120
-rw-r--r--viewer/src/views/SplashScreen.vue106
-rw-r--r--viewer/src/views/item_handlers/AudioViewer.vue (renamed from viewer/src/components/item_handlers/LdAudioViewer.vue)43
-rw-r--r--viewer/src/views/item_handlers/DirectoryViewer.vue (renamed from viewer/src/components/item_handlers/LdDirectoryViewer.vue)33
-rw-r--r--viewer/src/views/item_handlers/DownloadViewer.vue (renamed from viewer/src/components/item_handlers/LdDownloadViewer.vue)42
-rw-r--r--viewer/src/views/item_handlers/MarkdownViewer.vue50
-rw-r--r--viewer/src/views/item_handlers/PdfViewer.vue (renamed from viewer/src/components/item_handlers/LdPdfViewer.vue)28
-rw-r--r--viewer/src/views/item_handlers/PictureViewer.vue129
-rw-r--r--viewer/src/views/item_handlers/PlainTextViewer.vue69
-rw-r--r--viewer/src/views/item_handlers/VideoViewer.vue (renamed from viewer/src/components/item_handlers/LdVideoViewer.vue)33
-rw-r--r--viewer/src/views/layout/left/LayoutCommandSearch.vue (renamed from viewer/src/components/LdCommandSearch.vue)54
-rw-r--r--viewer/src/views/layout/left/LayoutInformation.vue (renamed from viewer/src/components/LdInformation.vue)61
-rw-r--r--viewer/src/views/layout/left/LayoutLeft.vue158
-rw-r--r--viewer/src/views/layout/left/LayoutProposition.vue208
-rw-r--r--viewer/src/views/layout/left/LayoutTagInput.vue164
-rw-r--r--viewer/src/views/layout/left/LayoutTagList.vue74
-rw-r--r--viewer/src/views/layout/top/LayoutBreadcrumb.vue130
-rw-r--r--viewer/src/views/layout/top/LayoutCommand.vue127
-rw-r--r--viewer/src/views/layout/top/LayoutCommandSort.vue117
-rw-r--r--viewer/src/views/layout/top/LayoutTop.vue (renamed from viewer/src/views/PanelTop.vue)20
-rw-r--r--viewer/tsconfig.json13
-rw-r--r--viewer/viewer.code-workspace22
-rw-r--r--viewer/visualstudio.code-workspace42
-rw-r--r--viewer/vue.config.js70
-rw-r--r--viewer/yarn.lock9264
107 files changed, 6341 insertions, 9285 deletions
diff --git a/viewer/.env b/viewer/.env
index 99efa3d..b552629 100644
--- a/viewer/.env
+++ b/viewer/.env
@@ -1,6 +1,6 @@
1# Override with .env.development.local and .env.production.local 1# Override with .env.development.local and .env.production.local
2 2
3VUE_APP_I18N_LOCALE=en
4VUE_APP_I18N_FALLBACK_LOCALE=en
5VUE_APP_DATA_URL=./ 3VUE_APP_DATA_URL=./
6VUE_APP_FULLWIDTH_LIMIT=1216 4VUE_APP_FULLWIDTH_LIMIT=1216
5VUE_APP_I18N_LOCALE=en
6VUE_APP_I18N_FALLBACK_LOCALE=en
diff --git a/viewer/.eslintrc.js b/viewer/.eslintrc.js
index 9d3fbbc..0308e3f 100644
--- a/viewer/.eslintrc.js
+++ b/viewer/.eslintrc.js
@@ -1,39 +1,22 @@
1module.exports = { 1module.exports = {
2 root: true, 2 root: true,
3
4 env: { 3 env: {
5 node: true, 4 node: true,
6 }, 5 },
7 6 extends: [
8 plugins: ["prettier"], 7 'plugin:vue/vue3-recommended',
9 8 '@vue/standard',
10 extends: ["plugin:vue/essential", "plugin:prettier/recommended", "@vue/typescript"], 9 '@vue/typescript/recommended',
11 10 ],
12 rules: {
13 "no-console": "off",
14 "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
15 "prettier/prettier": "warn",
16 "eol-last": ["warn", "always"],
17 "object-curly-spacing": ["warn", "always"],
18 "quote-props": ["warn", "as-needed"],
19 indent: ["warn", 2, { SwitchCase: 1 }],
20 quotes: ["warn", "double"],
21 "vue/attribute-hyphenation": "warn",
22 "vue/html-closing-bracket-spacing": "warn",
23 "vue/html-end-tags": "error",
24 "vue/html-quotes": "warn",
25 "vue/html-self-closing": "off",
26 "vue/no-multi-spaces": "warn",
27 "vue/no-spaces-around-equal-signs-in-attribute": "warn",
28 "vue/no-template-shadow": "error",
29 "vue/v-bind-style": "warn",
30 "vue/v-on-style": "warn",