From 914aa63cb65f869be9b1707c160847be16f79a68 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 31 Jan 2020 06:55:37 +0100 Subject: viewer: unified CSS classes to kebab case --- viewer/src/components/LdTagInput.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'viewer/src/components') diff --git a/viewer/src/components/LdTagInput.vue b/viewer/src/components/LdTagInput.vue index ff354c6..7bbecec 100644 --- a/viewer/src/components/LdTagInput.vue +++ b/viewer/src/components/LdTagInput.vue @@ -28,7 +28,7 @@ field="display" type="is-black" size="is-medium" - class="panelTagInput" + class="paneltag-input" @typing="searchTags" @add="onAdd" @remove="onRemove" @@ -119,7 +119,7 @@ export default class LdTagInput extends Vue { -- cgit v1.2.3 From a7d459a2620fa9523dd7ce8c9de519133ad5b1b7 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 31 Jan 2020 08:01:23 +0100 Subject: viewer: tag propositions depend on current's directory. resolves #22 --- viewer/src/components/LdProposition.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'viewer/src/components') diff --git a/viewer/src/components/LdProposition.vue b/viewer/src/components/LdProposition.vue index 02f7fe4..a380021 100644 --- a/viewer/src/components/LdProposition.vue +++ b/viewer/src/components/LdProposition.vue @@ -56,8 +56,10 @@ export default class LdTagInput extends Vue { .filter(rawTag => !currentTags.find(currentTag => currentTag.tag === rawTag)) .forEach(rawTag => (propositions[rawTag] = (propositions[rawTag] ?? 0) + 1)); } else { - // Tags count from the whole gallery - Object.entries(this.$galleryStore.tags).forEach(entry => (propositions[entry[0]] = entry[1].items.length)); + // Tags count from the current directory + this.$galleryStore.currentItem?.tags + .map(tag => this.$galleryStore.tags[tag]) // FIXME: Folders with the same name are merged in the index + .forEach(tagindex => (propositions[tagindex.tag] = tagindex.items.length)); } return Object.entries(propositions) -- cgit v1.2.3 From 170da2d55fec0359cbac780786383710b734eda7 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 31 Jan 2020 09:17:57 +0100 Subject: viewer: code cleaning, moved some views to components --- viewer/src/components/LdBreadcrumb.vue | 58 +++++++++++++++++++++++ viewer/src/components/LdCommand.vue | 68 +++++++++++++++++++++++++++ viewer/src/components/LdPicture.vue | 74 ++++++++++++++++++++++++++++++ viewer/src/components/LdProposition.vue | 4 +- viewer/src/components/LdTagInput.vue | 2 +- viewer/src/components/LdThumbnail.vue | 81 +++++++++++++++++++++++++++++++++ 6 files changed, 284 insertions(+), 3 deletions(-) create mode 100644 viewer/src/components/LdBreadcrumb.vue create mode 100644 viewer/src/components/LdCommand.vue create mode 100644 viewer/src/components/LdPicture.vue create mode 100644 viewer/src/components/LdThumbnail.vue (limited to 'viewer/src/components') diff --git a/viewer/src/components/LdBreadcrumb.vue b/viewer/src/components/LdBreadcrumb.vue new file mode 100644 index 0000000..8c5b7eb --- /dev/null +++ b/viewer/src/components/LdBreadcrumb.vue @@ -0,0 +1,58 @@ + + + + + + + diff --git a/viewer/src/components/LdCommand.vue b/viewer/src/components/LdCommand.vue new file mode 100644 index 0000000..484e56a --- /dev/null +++ b/viewer/src/components/LdCommand.vue @@ -0,0 +1,68 @@ + + + + + + + diff --git a/viewer/src/components/LdPicture.vue b/viewer/src/components/LdPicture.vue new file mode 100644 index 0000000..b6a719f --- /dev/null +++ b/viewer/src/components/LdPicture.vue @@ -0,0 +1,74 @@ + + + + + + + diff --git a/viewer/src/components/LdProposition.vue b/viewer/src/components/LdProposition.vue index a380021..6be0aee 100644 --- a/viewer/src/components/LdProposition.vue +++ b/viewer/src/components/LdProposition.vue @@ -37,10 +37,10 @@ + + -- cgit v1.2.3 From 2d48a8f15970d7af8092e9450057a05b4d3f9333 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 31 Jan 2020 13:22:52 +0100 Subject: viewer: when loading a picture, displays a preview based on the thumbnail on slow connections This works on Chrome, but FireFox presents some issues: - the picture background is sometimes white instead of transparent, hidding the background - image-orientation doesn't work for background pictures or for negative values --- viewer/src/components/LdPicture.vue | 49 +++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) (limited to 'viewer/src/components') diff --git a/viewer/src/components/LdPicture.vue b/viewer/src/components/LdPicture.vue index b6a719f..5425a00 100644 --- a/viewer/src/components/LdPicture.vue +++ b/viewer/src/components/LdPicture.vue @@ -25,7 +25,13 @@ @click="onClick" @dragscrollstart="dragging=true" > - + + @@ -36,12 +42,35 @@ import { Component, Vue, Prop } from "vue-property-decorator"; export default class LdPicture extends Vue { @Prop({ required: true }) readonly picture!: Gallery.Picture; + readonly SLOW_LOADING_TIMEOUT_MS: number = 1500; + dragging: boolean = false; + slowLoadingStyle: string | null = null; + timer: NodeJS.Timeout | null = null; + + mounted() { + if (this.picture.thumbnail) this.timer = setTimeout(this.generateSlowLoadingStyle, this.SLOW_LOADING_TIMEOUT_MS); + } + + destroyed() { + this.clearTimer(); + } + + clearTimer() { + if (this.timer) clearTimeout(this.timer); + this.timer = null; + this.slowLoadingStyle = null; + } - get pictureSrc() { + pictureSrc() { return `${process.env.VUE_APP_DATA_URL}${this.picture.properties.resource}`; } + generateSlowLoadingStyle() { + this.clearTimer(); + this.slowLoadingStyle = `background-image: url('${process.env.VUE_APP_DATA_URL}${this.picture.thumbnail}');`; + } + onClick() { if (!this.dragging) this.$uiStore.toggleFullscreen(); this.dragging = false; @@ -50,6 +79,22 @@ export default class LdPicture extends Vue { -- cgit v1.2.3