From 8bf25d3e3cf72d1f77b5e780d495eb2e38ed4bf5 Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Mon, 20 Apr 2020 18:15:55 -0400 Subject: [PATCH] Files nav (#441) * Add support for item-group top level links * Add active prop support to v-list-group * Add all-files string * Add files nav * Fix nav order, render divider only when items exist * Add add-new-folder flow * Add add-folder button to header * Dont unmount nav on refresh of folders * Fix codesmell --- src/components/v-button/v-button.vue | 6 +- src/components/v-list/readme.md | 8 +- src/components/v-list/v-list-group.vue | 31 +++++-- src/components/v-list/v-list-item.vue | 19 +++++ src/lang/en-US/index.json | 3 + .../components/add-folder/add-folder.vue | 84 +++++++++++++++++++ .../files/components/add-folder/index.ts | 4 + .../navigation/navigation-folder.vue | 44 ++++++++++ .../components/navigation/navigation.vue | 54 +++++++++++- src/modules/files/compositions/use-folders.ts | 75 +++++++++++++++++ src/modules/files/routes/browse/browse.vue | 27 +++++- .../header-bar-actions/header-bar-actions.vue | 2 +- 12 files changed, 340 insertions(+), 17 deletions(-) create mode 100644 src/modules/files/components/add-folder/add-folder.vue create mode 100644 src/modules/files/components/add-folder/index.ts create mode 100644 src/modules/files/components/navigation/navigation-folder.vue create mode 100644 src/modules/files/compositions/use-folders.ts diff --git a/src/components/v-button/v-button.vue b/src/components/v-button/v-button.vue index dca5d23dfd..f5898dcff7 100644 --- a/src/components/v-button/v-button.vue +++ b/src/components/v-button/v-button.vue @@ -139,8 +139,9 @@ export default defineComponent({ .v-button { --v-button-width: auto; --v-button-height: 44px; - --v-button-color: var(--white); - --v-button-color-activated: var(--white); + --v-button-color: var(--foreground-inverted); + --v-button-color-hover: var(--foreground-inverted); + --v-button-color-activated: var(--foreground-inverted); --v-button-color-disabled: var(--foreground-subdued); --v-button-background-color: var(--primary); --v-button-background-color-hover: var(--primary-125); @@ -189,6 +190,7 @@ export default defineComponent({ transition-property: background-color border; &:hover { + color: var(--v-button-color-hover); background-color: var(--v-button-background-color-hover); border-color: var(--v-button-background-color-hover); } diff --git a/src/components/v-list/readme.md b/src/components/v-list/readme.md index e169602f6c..b6c7423011 100644 --- a/src/components/v-list/readme.md +++ b/src/components/v-list/readme.md @@ -271,9 +271,11 @@ Provides the ability to make a collapsable (sub)group of list items, within a li ## Props -| Prop | Description | Default | -| ---------- | ---------------------------------------------------- | ------- | -| `multiple` | Allow multiple subgroups to be open at the same time | `true` | +| Prop | Description | Default | +|------------|---------------------------------------------------------------------------------|---------| +| `multiple` | Allow multiple subgroups to be open at the same time | `true` | +| `to` | Where to link to. This will only make the chevron toggle the group active state | | +| `active` | Render the activitor item in the active state | `false` | ## Events diff --git a/src/components/v-list/v-list-group.vue b/src/components/v-list/v-list-group.vue index bbf6301b52..809a40ba63 100644 --- a/src/components/v-list/v-list-group.vue +++ b/src/components/v-list/v-list-group.vue @@ -1,15 +1,15 @@ @@ -77,6 +80,7 @@ import { LayoutComponent } from '@/layouts/types'; import useCollectionPreset from '@/compositions/use-collection-preset'; import FilterDrawerDetail from '@/views/private/components/filter-drawer-detail'; import LayoutDrawerDetail from '@/views/private/components/layout-drawer-detail'; +import AddFolder from '../../components/add-folder'; type Item = { // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -85,7 +89,7 @@ type Item = { export default defineComponent({ name: 'files-browse', - components: { FilesNavigation, FilterDrawerDetail, LayoutDrawerDetail }, + components: { FilesNavigation, FilterDrawerDetail, LayoutDrawerDetail, AddFolder }, props: {}, setup() { const layout = ref(null); @@ -100,6 +104,21 @@ export default defineComponent({ const { confirmDelete, deleting, batchDelete } = useBatchDelete(); const { breadcrumb } = useBreadcrumb(); + const currentFolder = ref(null); + + const filtersWithFolder = computed(() => { + if (currentFolder.value !== null) { + return [ + ...filters.value, + { + field: 'folder', + operator: 'eq', + value: currentFolder.value, + }, + ]; + } + }); + return { addNewLink, batchDelete, @@ -113,6 +132,8 @@ export default defineComponent({ viewOptions, viewQuery, viewType, + currentFolder, + filtersWithFolder, }; function useBatchDelete() { diff --git a/src/views/private/components/header-bar-actions/header-bar-actions.vue b/src/views/private/components/header-bar-actions/header-bar-actions.vue index ad7a15d20c..fb72f59676 100644 --- a/src/views/private/components/header-bar-actions/header-bar-actions.vue +++ b/src/views/private/components/header-bar-actions/header-bar-actions.vue @@ -96,7 +96,7 @@ export default defineComponent({ } @include breakpoint(medium) { - .action-buttons { + .action-buttons ::v-deep { > * { display: inherit !important; }