From 3a89dc41f99a84b9b506424dc2e532df0ca70cd4 Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Sat, 18 Apr 2020 16:20:00 -0400 Subject: [PATCH] Add the cards layout (#430) * Fix reactivity of currentLayout in drawer detail * Start on cards layout * Use dense list items in v-select * Add cards + size option * Render cards + files based on options * Allow modules to set view defaults * Start on render-template component * Add get fields from template util * Use render template component in cards layout * Render as small icon * Accept options in display handler function * Fix type warnings in format title display * Remove empty styling in render template component * Account for null values in render template * Add loading state to cards layout * Remove type validation in skeleton loader * Only fetch rendered fields * Fix resolving of default values for cards module * Add selection state to cards * Add selection state to cards * Make render template reactive * Implement setup options * Add disabled support to v-select * Add fallback icon option + disable fit input when no source * Add sort header to cards layout * Remove console log * Add selection state to cards header * Fix z-indexing of header menu * Add pagination to cards layout * Fix types in field * Fix type checks in field-setup * Add role presentation to img * Remove code smell * Handle file library gracefully * Add native lazy loading to images in cards layout * Render SVGs inline in card --- src/components/register.ts | 4 + src/components/v-select/readme.md | 1 + src/components/v-select/v-select.vue | 40 +- .../v-skeleton-loader/v-skeleton-loader.vue | 9 +- .../use-collection-preset.ts | 10 +- src/compositions/use-items/use-items.ts | 54 ++- .../format-title/format-title.story.ts | 2 +- .../format-title/format-title.test.ts | 4 +- src/displays/icon/icon.vue | 2 +- src/displays/types.ts | 2 +- src/lang/en-US/index.json | 7 +- src/lang/en-US/layouts.json | 34 +- src/layouts/cards/cards.vue | 369 ++++++++++++++++++ src/layouts/cards/components/card.vue | 261 +++++++++++++ src/layouts/cards/components/header.vue | 127 ++++++ src/layouts/cards/index.ts | 9 + src/layouts/index.ts | 4 +- src/layouts/tabular/tabular.vue | 4 +- .../components/field-setup/field-setup.vue | 4 +- src/modules/users/routes/browse/browse.vue | 14 + .../default-collection-preset.ts | 2 +- src/stores/collection-presets/types.ts | 2 +- src/stores/fields/fields.ts | 42 +- src/stores/fields/types.ts | 10 +- .../get-fields-from-template.ts | 13 + src/utils/get-fields-from-template/index.ts | 4 + .../layout-drawer-detail.vue | 14 +- .../components/render-template/index.ts | 4 + .../render-template/render-template.vue | 90 +++++ 29 files changed, 1068 insertions(+), 74 deletions(-) create mode 100644 src/layouts/cards/cards.vue create mode 100644 src/layouts/cards/components/card.vue create mode 100644 src/layouts/cards/components/header.vue create mode 100644 src/layouts/cards/index.ts create mode 100644 src/utils/get-fields-from-template/get-fields-from-template.ts create mode 100644 src/utils/get-fields-from-template/index.ts create mode 100644 src/views/private/components/render-template/index.ts create mode 100644 src/views/private/components/render-template/render-template.vue diff --git a/src/components/register.ts b/src/components/register.ts index c08ef49f78..e12ea2110b 100644 --- a/src/components/register.ts +++ b/src/components/register.ts @@ -98,3 +98,7 @@ Vue.component('drawer-detail', DrawerDetail); import TransitionExpand from './transition/expand'; Vue.component('transition-expand', TransitionExpand); + +import RenderTemplate from '@/views/private/components/render-template'; + +Vue.component('render-template', RenderTemplate); diff --git a/src/components/v-select/readme.md b/src/components/v-select/readme.md index 3eb43f1776..f2d6ba20cb 100644 --- a/src/components/v-select/readme.md +++ b/src/components/v-select/readme.md @@ -32,6 +32,7 @@ Renders a dropdown input. | `placeholder` | What placeholder to show when no items are selected | | | `full-width` | Render the select at full width | | | `monospace` | Render the value and options monospaced | | +| `disabled` | Disable the select | | ## Events diff --git a/src/components/v-select/v-select.vue b/src/components/v-select/v-select.vue index d58bb58798..969a4b6fc2 100644 --- a/src/components/v-select/v-select.vue +++ b/src/components/v-select/v-select.vue @@ -1,5 +1,10 @@