From c91d258c0f54c02a3f91be74e99ae0b630638bd4 Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Wed, 8 Feb 2023 09:03:08 +0100 Subject: [PATCH 1/9] Add selection model to tiles view --- .../src/components/OcCheckbox/OcCheckbox.vue | 9 +- .../src/components/OcTile/OcTile.spec.ts | 4 +- .../src/components/OcTile/OcTile.vue | 105 ++++++++++++---- .../OcTile/__snapshots__/OcTile.spec.ts.snap | 19 ++- .../components/FilesList/ResourceTable.vue | 8 +- .../components/FilesList/ResourceTiles.vue | 114 ++++++++++-------- .../src/views/spaces/GenericSpace.vue | 5 +- .../src/views/spaces/Projects.vue | 36 +++--- .../__snapshots__/ResourceTiles.spec.ts.snap | 4 +- .../__snapshots__/Projects.spec.ts.snap | 4 +- .../ContextActions/ContextMenuQuickAction.vue | 1 + 11 files changed, 192 insertions(+), 117 deletions(-) diff --git a/packages/design-system/src/components/OcCheckbox/OcCheckbox.vue b/packages/design-system/src/components/OcCheckbox/OcCheckbox.vue index eeaac85ecbc..fb3739f6f2a 100644 --- a/packages/design-system/src/components/OcCheckbox/OcCheckbox.vue +++ b/packages/design-system/src/components/OcCheckbox/OcCheckbox.vue @@ -115,7 +115,8 @@ export default defineComponent({ 'oc-checkbox', 'oc-rounded', 'oc-checkbox-' + getSizeClass(this.size), - { 'oc-checkbox-outline': this.outline } + { 'oc-checkbox-outline': this.outline }, + { 'oc-checkbox-checked': this.modelValue } ] }, labelClasses() { @@ -180,12 +181,14 @@ export default defineComponent({ cursor: pointer; } - &:checked, + &-checked, + :checked, &:indeterminate { background-color: var(--oc-color-swatch-inverse-default); } - &:checked { + &-checked, + :checked { @include svg-fill($internal-form-checkbox-image, '#000', $form-radio-checked-icon-color); } diff --git a/packages/design-system/src/components/OcTile/OcTile.spec.ts b/packages/design-system/src/components/OcTile/OcTile.spec.ts index 2f7fe55075a..abf76233109 100644 --- a/packages/design-system/src/components/OcTile/OcTile.spec.ts +++ b/packages/design-system/src/components/OcTile/OcTile.spec.ts @@ -1,4 +1,4 @@ -import { shallowMount } from 'web-test-helpers' +import { defaultPlugins, shallowMount } from 'web-test-helpers' import OcTile from './OcTile.vue' const defaultSpace = { @@ -32,7 +32,7 @@ describe('OcTile component', () => { props: { ...props }, - global: { renderStubDefaultSlot: true } + global: { plugins: [...defaultPlugins()], renderStubDefaultSlot: true } }) } }) diff --git a/packages/design-system/src/components/OcTile/OcTile.vue b/packages/design-system/src/components/OcTile/OcTile.vue index 169eb5cff1d..338fea1428d 100644 --- a/packages/design-system/src/components/OcTile/OcTile.vue +++ b/packages/design-system/src/components/OcTile/OcTile.vue @@ -6,32 +6,36 @@ @contextmenu="$emit('contextmenu', $event)" > +
+ +
- Disabled + - - - - - +
+
+ + + + +
@@ -50,10 +54,7 @@
-

+

@@ -92,17 +93,23 @@ export default defineComponent({ resourceRoute: { type: Object, default: () => {} + }, + selectedIds: { + type: Array, + default: () => [] } }, emits: ['click', 'contextmenu'] }) - diff --git a/packages/web-app-files/src/views/spaces/GenericSpace.vue b/packages/web-app-files/src/views/spaces/GenericSpace.vue index 9c629ece438..e9ede64cd9a 100644 --- a/packages/web-app-files/src/views/spaces/GenericSpace.vue +++ b/packages/web-app-files/src/views/spaces/GenericSpace.vue @@ -46,13 +46,14 @@ diff --git a/packages/web-app-files/tests/unit/views/spaces/__snapshots__/Projects.spec.ts.snap b/packages/web-app-files/tests/unit/views/spaces/__snapshots__/Projects.spec.ts.snap index 7a29a8d9648..3b827c17521 100644 --- a/packages/web-app-files/tests/unit/views/spaces/__snapshots__/Projects.spec.ts.snap +++ b/packages/web-app-files/tests/unit/views/spaces/__snapshots__/Projects.spec.ts.snap @@ -9,10 +9,10 @@ exports[`Projects view different files view states lists all available project s
  • - +
  • - +
diff --git a/packages/web-pkg/src/components/ContextActions/ContextMenuQuickAction.vue b/packages/web-pkg/src/components/ContextActions/ContextMenuQuickAction.vue index 476996f6b9d..14e7446f1eb 100644 --- a/packages/web-pkg/src/components/ContextActions/ContextMenuQuickAction.vue +++ b/packages/web-pkg/src/components/ContextActions/ContextMenuQuickAction.vue @@ -17,6 +17,7 @@ :drop-id="`context-menu-drop-${resourceDomSelector(item)}`" :toggle="`#context-menu-trigger-${resourceDomSelector(item)}`" :popper-options="popperOptions" + class="oc-overflow-hidden" mode="click" close-on-click padding-size="small" From 5123a754f37f150e30be7d558deaa0e7e9998fe2 Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Wed, 8 Feb 2023 10:13:15 +0100 Subject: [PATCH 2/9] Add outline to selected tiles --- .../enhancement-resources-tiles-view | 2 + .../src/components/OcTile/OcTile.vue | 50 ++++++++++--------- .../components/FilesList/ResourceTiles.vue | 2 +- .../__snapshots__/ResourceTiles.spec.ts.snap | 10 ++-- .../__snapshots__/Projects.spec.ts.snap | 7 +-- 5 files changed, 40 insertions(+), 31 deletions(-) diff --git a/changelog/unreleased/enhancement-resources-tiles-view b/changelog/unreleased/enhancement-resources-tiles-view index 3ca966aa8aa..a040dba0696 100644 --- a/changelog/unreleased/enhancement-resources-tiles-view +++ b/changelog/unreleased/enhancement-resources-tiles-view @@ -6,8 +6,10 @@ Tiles can be dynamically resized on screens bigger than mobile, using the "displ https://github.com/owncloud/web/pull/7991 https://github.com/owncloud/web/pull/8372 +https://github.com/owncloud/web/pull/8392 https://github.com/owncloud/web/issues/6378 https://github.com/owncloud/web/issues/6379 https://github.com/owncloud/web/issues/6380 https://github.com/owncloud/web/issues/8367 https://github.com/owncloud/web/issues/8368 +https://github.com/owncloud/web/issues/8365 diff --git a/packages/design-system/src/components/OcTile/OcTile.vue b/packages/design-system/src/components/OcTile/OcTile.vue index 338fea1428d..01d40e77188 100644 --- a/packages/design-system/src/components/OcTile/OcTile.vue +++ b/packages/design-system/src/components/OcTile/OcTile.vue @@ -2,7 +2,10 @@
-
+
@@ -94,9 +94,10 @@ export default defineComponent({ type: Object, default: () => {} }, - selectedIds: { - type: Array, - default: () => [] + isResourceSelected: { + type: Boolean, + required: false, + default: false } }, emits: ['click', 'contextmenu'] @@ -106,7 +107,7 @@ export default defineComponent({