Skip to content

Commit dc9d858

Browse files
authored
Merge pull request #2589 from opencloud-eu/feat/batch-actions-redesign
feat: redesign batch actions
2 parents b037e89 + e9d4867 commit dc9d858

23 files changed

Lines changed: 398 additions & 691 deletions

File tree

packages/design-system/src/components/OcBreadcrumb/OcBreadcrumb.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@
7070
:aria-current="getAriaCurrent(index)"
7171
:to="item.to as RouteLocationRaw"
7272
class="first:text-base text-xl text-role-on-surface h-5 inline-flex items-center"
73+
:class="{
74+
'font-bold': index === displayItems.length - 1
75+
}"
7376
>
7477
<span class="hover:underline align-sub truncate inline-block leading-[1.2] max-w-3xs">{{
7578
item.text
@@ -93,7 +96,7 @@
9396
'leading-[1.2]',
9497
'max-w-3xs',
9598
{
96-
'oc-breadcrumb-item-text-last': index === displayItems.length - 1
99+
'oc-breadcrumb-item-text-last font-bold': index === displayItems.length - 1
97100
}
98101
]"
99102
v-text="item.text"
@@ -164,7 +167,7 @@
164167
'justify-center': displayItems.length > 1
165168
}"
166169
>
167-
<span class="truncate" aria-current="page" v-text="currentFolder.text" />
170+
<span class="truncate font-bold" aria-current="page" v-text="currentFolder.text" />
168171
</div>
169172
</template>
170173

packages/design-system/src/components/OcBreadcrumb/__snapshots__/OcBreadcrumb.spec.ts.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ exports[`OcBreadcrumb > displays all items 1`] = `
3636
</oc-button-stub>
3737
</nav>
3838
39-
<div data-v-5914b352="" class="oc-breadcrumb-mobile-current flex items-center w-0 flex-1 sm:hidden justify-center"><span data-v-5914b352="" class="truncate" aria-current="page">Deeper ellipsize in responsive mode</span></div>"
39+
<div data-v-5914b352="" class="oc-breadcrumb-mobile-current flex items-center w-0 flex-1 sm:hidden justify-center"><span data-v-5914b352="" class="truncate font-bold" aria-current="page">Deeper ellipsize in responsive mode</span></div>"
4040
`;
4141

4242
exports[`OcBreadcrumb > sets correct variation 1`] = `
@@ -75,5 +75,5 @@ exports[`OcBreadcrumb > sets correct variation 1`] = `
7575
</oc-button-stub>
7676
</nav>
7777
78-
<div data-v-5914b352="" class="oc-breadcrumb-mobile-current flex items-center w-0 flex-1 sm:hidden justify-center"><span data-v-5914b352="" class="truncate" aria-current="page">Deeper ellipsize in responsive mode</span></div>"
78+
<div data-v-5914b352="" class="oc-breadcrumb-mobile-current flex items-center w-0 flex-1 sm:hidden justify-center"><span data-v-5914b352="" class="truncate font-bold" aria-current="page">Deeper ellipsize in responsive mode</span></div>"
7979
`;

packages/web-app-admin-settings/src/components/AppTemplate.vue

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,33 @@
3232
/>
3333
</div>
3434
</div>
35-
<div class="flex items-center min-h-12">
36-
<slot
37-
name="topbarActions"
38-
:limited-screen-space="limitedScreenSpace"
39-
class="flex-1 flex flex-start"
40-
/>
41-
<batch-actions
42-
v-if="showBatchActions"
43-
:actions="batchActions"
44-
:action-options="{ resources: batchActionItems }"
45-
:limited-screen-space="limitedScreenSpace"
46-
/>
35+
<div class="flex items-baseline justify-end w-full min-h-10">
36+
<div
37+
class="flex-1 flex items-center justify-between min-h-9 px-3 rounded-xl has-[_ul:first-child>*]:bg-role-surface-container-high"
38+
>
39+
<batch-actions
40+
v-if="showBatchActions"
41+
:actions="batchActions"
42+
:action-options="{ resources: batchActionItems }"
43+
:limited-screen-space="limitedScreenSpace"
44+
/>
45+
<div v-if="batchActionItems.length" class="flex items-center gap-1">
46+
<oc-button
47+
v-oc-tooltip="$gettext('Clear selection')"
48+
:aria-label="$gettext('Clear selection')"
49+
appearance="raw"
50+
gap-size="small"
51+
class="p-1"
52+
@click="$emit('clearSelection')"
53+
>
54+
<span
55+
class="text-sm"
56+
v-text="$gettext('%{count} selected', { count: batchActionItems.length })"
57+
/>
58+
<oc-icon fill-type="line" name="close" />
59+
</oc-button>
60+
</div>
61+
</div>
4762
</div>
4863
</div>
4964
<slot name="mainContent" />
@@ -140,6 +155,7 @@ export default defineComponent({
140155
default: (): Action[] => []
141156
}
142157
},
158+
emits: ['clearSelection'],
143159
setup() {
144160
const sidebarStore = useSideBar()
145161
const { isSideBarOpen } = storeToRefs(sidebarStore)

packages/web-app-admin-settings/src/views/Groups.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
:batch-actions="batchActions"
1010
:batch-action-items="selectedGroups"
1111
:show-view-options="true"
12+
@clear-selection="groupSettingsStore.setSelectedGroups([])"
1213
>
1314
<template #sideBarHeader>
1415
<div v-if="selectedGroups.length === 1" class="flex items-center min-w-0">

packages/web-app-admin-settings/src/views/Spaces.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
:batch-actions="batchActions"
1010
:batch-action-items="selectedSpaces"
1111
:show-view-options="true"
12+
@clear-selection="spaceSettingsStore.setSelectedSpaces([])"
1213
>
1314
<template #sideBarHeader>
1415
<div v-if="selectedSpaces.length === 1" class="flex items-center min-w-0 pl-2">

packages/web-app-admin-settings/src/views/Users.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
:batch-actions="batchActions"
1010
:batch-action-items="selectedUsers"
1111
:show-view-options="true"
12+
@clear-selection="userSettingsStore.setSelectedUsers([])"
1213
>
1314
<template #sideBarHeader>
1415
<div v-if="selectedUsers.length === 1" class="flex items-center min-w-0">

packages/web-app-admin-settings/tests/unit/views/__snapshots__/Spaces.spec.ts.snap

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ exports[`Spaces view > loading states > should render spaces list after loading
1212
<view-options-stub perpagestorageprefix="admin-settings" hashiddenfiles="false" hasfileextensions="false" haspagination="true" paginationoptions="20,50,100,250" perpagequeryname="items-per-page" perpagedefault="50" viewmodedefault="resource-tiles" viewmodes=""></view-options-stub>
1313
</div>
1414
</div>
15-
<div class="flex items-center min-h-12">
16-
<!--v-if-->
15+
<div class="flex items-baseline justify-end w-full min-h-10">
16+
<div class="flex-1 flex items-center justify-between min-h-9 px-3 rounded-xl has-[_ul:first-child>*]:bg-role-surface-container-high">
17+
<!--v-if-->
18+
<!--v-if-->
19+
</div>
1720
</div>
1821
</div>
1922
<spaces-list-stub class=""></spaces-list-stub>

packages/web-app-admin-settings/tests/unit/views/__snapshots__/Users.spec.ts.snap

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ exports[`Users view > list view > renders initially warning if filters are manda
1212
<view-options-stub perpagestorageprefix="admin-settings" hashiddenfiles="false" hasfileextensions="false" haspagination="true" paginationoptions="20,50,100,250" perpagequeryname="items-per-page" perpagedefault="50" viewmodedefault="resource-tiles" viewmodes=""></view-options-stub>
1313
</div>
1414
</div>
15-
<div class="flex items-center min-h-12">
16-
<!--v-if-->
15+
<div class="flex items-baseline justify-end w-full min-h-10">
16+
<div class="flex-1 flex items-center justify-between min-h-9 px-3 rounded-xl has-[_ul:first-child>*]:bg-role-surface-container-high">
17+
<!--v-if-->
18+
<!--v-if-->
19+
</div>
1720
</div>
1821
</div>
1922
<div class="user-filters flex justify-between flex-wrap items-end mx-4 mb-4">
@@ -55,8 +58,11 @@ exports[`Users view > list view > renders list initially 1`] = `
5558
<view-options-stub perpagestorageprefix="admin-settings" hashiddenfiles="false" hasfileextensions="false" haspagination="true" paginationoptions="20,50,100,250" perpagequeryname="items-per-page" perpagedefault="50" viewmodedefault="resource-tiles" viewmodes=""></view-options-stub>
5659
</div>
5760
</div>
58-
<div class="flex items-center min-h-12">
59-
<!--v-if-->
61+
<div class="flex items-baseline justify-end w-full min-h-10">
62+
<div class="flex-1 flex items-center justify-between min-h-9 px-3 rounded-xl has-[_ul:first-child>*]:bg-role-surface-container-high">
63+
<!--v-if-->
64+
<!--v-if-->
65+
</div>
6066
</div>
6167
</div>
6268
<div class="user-filters flex justify-between flex-wrap items-end mx-4 mb-4">

packages/web-app-files/src/components/AppBar/CreateAndUpload.vue

Lines changed: 0 additions & 226 deletions
This file was deleted.

packages/web-app-files/src/composables/actions/files/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export * from './useFileActionsCopyPermanentLink'
2+
export * from './useFileActionsClearClipboard'
23
export * from './useFileActionsCopy'
34
export * from './useFileActionsCreateLink'
45
export * from './useFileActionsCreateNewFile'

0 commit comments

Comments
 (0)