diff options
author | Zero~Informatique | 2020-02-14 09:19:53 +0100 |
---|---|---|
committer | Zero~Informatique | 2020-02-24 00:04:39 +0100 |
commit | 370e3db3455f548699ff5e046e0f8dcc304991ac (patch) | |
tree | e29fe9e2afb940eea74c8ed510c46a1eb0fa4d84 /viewer/src | |
parent | e42f4e864bac21ed3b19d1869df2cdd4f8c3433c (diff) | |
download | ldgallery-370e3db3455f548699ff5e046e0f8dcc304991ac.tar.gz |
viewer: major code and search mode overhaul
Updated libraries to the lastest version
SCSS Formatter as suggested VSC extensions
Renamed toolbar-color by scrollbar-color
LD components use Props in favor of touching the stores directly (when possible)
Moved most common algorithms to a "services" folder
Complete search overhaul (lots of code change)
Diffstat (limited to 'viewer/src')
26 files changed, 419 insertions, 284 deletions
diff --git a/viewer/src/assets/scss/global.scss b/viewer/src/assets/scss/global.scss index ed69841..ea25513 100644 --- a/viewer/src/assets/scss/global.scss +++ b/viewer/src/assets/scss/global.scss | |||
@@ -27,6 +27,10 @@ | |||
27 | color: red; | 27 | color: red; |
28 | } | 28 | } |
29 | 29 | ||
30 | button svg + span { | ||
31 | margin-left: 7px; | ||
32 | } | ||
33 | |||
30 | // === Tools | 34 | // === Tools |
31 | 35 | ||
32 | .nowrap { | 36 | .nowrap { |
@@ -66,11 +70,10 @@ | |||
66 | // Disable sticky hover styling on touch devices, | 70 | // Disable sticky hover styling on touch devices, |
67 | // on which the virtual cursor doesn't leave the element after being tapped. | 71 | // on which the virtual cursor doesn't leave the element after being tapped. |
68 | // The fix can be applied to `a` elements by using the .link class. | 72 | // The fix can be applied to `a` elements by using the .link class. |
69 | @media (hover:none), (hover:on-demand) { | 73 | @media (hover: none), (hover: on-demand) { |
70 | .link:hover { | 74 | .link:hover { |
71 | color: $link !important; | 75 | color: $link !important; |
72 | } | 76 | } |
73 |  | ||
74 | .disabled:hover { | 77 | .disabled:hover { |
75 | color: $disabled-color !important; | 78 | color: $disabled-color !important; |
76 | } | 79 | } |
@@ -90,7 +93,7 @@ | |||
90 | } | 93 | } |
91 | .scrollbar::-webkit-scrollbar-thumb { | 94 | .scrollbar::-webkit-scrollbar-thumb { |
92 | box-shadow: inset 0 0 1px black; | 95 | box-shadow: inset 0 0 1px black; |
93 | background-color: $toolbar-color; | 96 | background-color: $scrollbar-color; |
94 | } | 97 | } |
95 | 98 | ||
96 | // === Thumbnail tiles alignment | 99 | // === Thumbnail tiles alignment |
diff --git a/viewer/src/assets/scss/theme.scss b/viewer/src/assets/scss/theme.scss index 0a921a9..60504e3 100644 --- a/viewer/src/assets/scss/theme.scss +++ b/viewer/src/assets/scss/theme.scss | |||
@@ -18,9 +18,8 @@ | |||
18 | -- along with this program. If not, see <https://www.gnu.org/licenses/>. | 18 | -- along with this program. If not, see <https://www.gnu.org/licenses/>. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | @import '_buefy_variables.scss'; | 21 | @import "_buefy_variables.scss"; |
22 | @import 'palette.scss'; | 22 | @import "palette.scss"; |
23 | |||
24 | 23 | ||
25 | // Buefy components | 24 | // Buefy components |
26 | 25 | ||
@@ -44,7 +43,12 @@ $loading-background: $palette-800; | |||
44 | $title-color: $palette-200; | 43 | $title-color: $palette-200; |
45 | $title-size: $size-5; | 44 | $title-size: $size-5; |
46 | $tag-background-color: $palette-800; | 45 | $tag-background-color: $palette-800; |
47 | 46 | $button-color: $palette-100; | |
47 | $button-background-color: $palette-700; | ||
48 | $button-border-color: $palette-500; | ||
49 | $button-focus-color: $button-color; | ||
50 | $button-focus-border-color: $link; | ||
51 | $button-focus-box-shadow-size: 0; | ||
48 | 52 | ||
49 | // Custom components | 53 | // Custom components |
50 | 54 | ||
@@ -54,14 +58,13 @@ $panel-left-bgcolor: $palette-800; | |||
54 | $panel-left-txtcolor: $primary; | 58 | $panel-left-txtcolor: $primary; |
55 | $command-buttons-bgcolor: $palette-700; | 59 | $command-buttons-bgcolor: $palette-700; |
56 | $content-bgcolor: $palette-900; | 60 | $content-bgcolor: $palette-900; |
57 | $toolbar-color: $palette-300; // FIXME: should be named "scrollbar" | 61 | $scrollbar-color: $palette-300; |
58 | $loader-color: $palette-800; | 62 | $loader-color: $palette-800; |
59 | $input-tag-delete-background-color: $palette-700; | 63 | $input-tag-delete-background-color: $palette-700; |
60 | $breadcrumb-margins: 12px; | 64 | $breadcrumb-margins: 12px; |
61 | $breadcrumb-overflow-mask-size: $breadcrumb-margins + 60px; | 65 | $breadcrumb-overflow-mask-size: $breadcrumb-margins + 60px; |
62 | $thumbnail-other-size: 120px; | 66 | $thumbnail-other-size: 120px; |
63 | 67 | ||
64 | |||
65 | // Layout | 68 | // Layout |
66 | 69 | ||
67 | $layout-top: 45px; | 70 | $layout-top: 45px; |
diff --git a/viewer/src/components/LdBreadcrumb.vue b/viewer/src/components/LdBreadcrumb.vue index 7f7ef7d..643bfb6 100644 --- a/viewer/src/components/LdBreadcrumb.vue +++ b/viewer/src/components/LdBreadcrumb.vue | |||
@@ -29,24 +29,29 @@ | |||
29 | > | 29 | > |
30 | <div v-show="overflowMask" class="ld-breadcrumb-overflow-mask"></div> | 30 | <div v-show="overflowMask" class="ld-breadcrumb-overflow-mask"></div> |
31 | <ul class="ld-breadcrumb"> | 31 | <ul class="ld-breadcrumb"> |
32 | <li v-for="(item,idx) in $galleryStore.currentItemPath" :key="item.path"> | 32 | <li v-for="(item,idx) in currentItemPath" :key="item.path"> |
33 | <fa-icon v-if="idx > 0" icon="angle-right" class="disabled" /> | 33 | <fa-icon v-if="idx > 0" icon="angle-right" class="disabled" /> |
34 | <router-link :to="item.path" class="link"> | 34 | <router-link :to="item.path" class="link"> |
35 | <fa-icon :icon="getIcon(item)" size="lg" /> | 35 | <fa-icon :icon="getIcon(item)" size="lg" /> |
36 | {{item.title}} | 36 | {{item.title}} |
37 | </router-link> | 37 | </router-link> |
38 | </li> | 38 | </li> |
39 | <li v-if="searchMode"> | ||
40 | <fa-icon icon="search" size="lg" class="disabled" /> | ||
41 | </li> | ||
39 | </ul> | 42 | </ul> |
40 | </div> | 43 | </div> |
41 | </template> | 44 | </template> |
42 | 45 | ||
43 | <script lang="ts"> | 46 | <script lang="ts"> |
44 | import { Component, Vue, Ref, Watch } from "vue-property-decorator"; | 47 | import { Component, Vue, Ref, Watch, Prop } from "vue-property-decorator"; |
45 | import DragScrollClickFix from "@/dragscrollclickfix"; | 48 | import DragScrollClickFix from "@/services/dragscrollclickfix"; |
46 | import Tools from "@/tools"; | 49 | import Navigation from "@/services/navigation"; |
47 | 50 | ||
48 | @Component | 51 | @Component |
49 | export default class LdBreadcrumb extends Vue { | 52 | export default class LdBreadcrumb extends Vue { |
53 | @Prop({ required: true }) readonly currentItemPath!: Gallery.Item[]; | ||
54 | @Prop(Boolean) readonly searchMode!: boolean; | ||
50 | @Ref() readonly breadcrumb!: HTMLUListElement; | 55 | @Ref() readonly breadcrumb!: HTMLUListElement; |
51 | 56 | ||
52 | readonly dragScrollClickFix = new DragScrollClickFix(); | 57 | readonly dragScrollClickFix = new DragScrollClickFix(); |
@@ -66,7 +71,7 @@ export default class LdBreadcrumb extends Vue { | |||
66 | this.overflowMask = this.breadcrumb.scrollLeft > 1; | 71 | this.overflowMask = this.breadcrumb.scrollLeft > 1; |
67 | } | 72 | } |
68 | 73 | ||
69 | @Watch("$galleryStore.currentItemPath") | 74 | @Watch("currentItemPath") |
70 | changedCurrentItemPath() { | 75 | changedCurrentItemPath() { |
71 | this.$nextTick(() => { | 76 | this.$nextTick(() => { |
72 | this.breadcrumb.scrollLeft = this.breadcrumb.scrollWidth; | 77 | this.breadcrumb.scrollLeft = this.breadcrumb.scrollWidth; |
@@ -75,7 +80,7 @@ export default class LdBreadcrumb extends Vue { | |||
75 | } | 80 | } |
76 | 81 | ||
77 | getIcon(item: Gallery.Item) { | 82 | getIcon(item: Gallery.Item) { |
78 | return Tools.getIcon(item); | 83 | return Navigation.getIcon(item); |
79 | } | 84 | } |
80 | } | 85 | } |
81 | </script> | 86 | </script> |
diff --git a/viewer/src/components/LdCommand.vue b/viewer/src/components/LdCommand.vue index 7590ea7..468c241 100644 --- a/viewer/src/components/LdCommand.vue +++ b/viewer/src/components/LdCommand.vue | |||
@@ -23,14 +23,6 @@ | |||
23 | <a class="link" :title="$t('command.search')" @click="$uiStore.toggleFullWidth()"> | 23 | <a class="link" :title="$t('command.search')" @click="$uiStore.toggleFullWidth()"> |
24 | <fa-icon :icon="commandToggleSearchPanelIcon()" size="lg" /> | 24 | <fa-icon :icon="commandToggleSearchPanelIcon()" size="lg" /> |
25 | </a> | 25 | </a> |
26 | <router-link | ||
27 | to="/" | ||
28 | class="command-secondary" | ||
29 | :class="{'disabled': isRoot()}" | ||
30 | :title="$t('command.home')" | ||
31 | > | ||
32 | <fa-icon icon="home" size="lg" /> | ||
33 | </router-link> | ||
34 | <a class="link command-secondary" :title="$t('command.back')" @click="$router.go(-1)"> | 26 | <a class="link command-secondary" :title="$t('command.back')" @click="$router.go(-1)"> |
35 | <fa-icon icon="arrow-left" size="lg" /> | 27 | <fa-icon icon="arrow-left" size="lg" /> |
36 | </a> | 28 | </a> |
@@ -42,21 +34,23 @@ | |||
42 | </template> |