From ecb17ec10eba514102dc1b880c5551bb54aaadf6 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Tue, 2 Aug 2022 15:13:08 +0530 Subject: [PATCH] feat(gui-v2): option to select all rows Signed-off-by: Pranav C --- .../nc-gui-v2/components/smartsheet/Grid.vue | 16 ++++++++++++++-- packages/nc-gui-v2/composables/useViewData.ts | 12 ++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/packages/nc-gui-v2/components/smartsheet/Grid.vue b/packages/nc-gui-v2/components/smartsheet/Grid.vue index c47d2cde37..acf5677352 100644 --- a/packages/nc-gui-v2/components/smartsheet/Grid.vue +++ b/packages/nc-gui-v2/components/smartsheet/Grid.vue @@ -57,6 +57,7 @@ const { selectedRows, deleteRow, deleteSelectedRows, + selectedAllRecords, } = useViewData(meta, view as any, xWhere) const { loadGridViewColumns, updateWidth, resizingColWidth, resizingCol } = useGridViewColumnWidth(view as any) onMounted(loadGridViewColumns) @@ -189,8 +190,19 @@ onKeyStroke(['Tab', 'Shift', 'Enter', 'Delete', 'ArrowDown', 'ArrowUp', 'ArrowLe
- - + +
#
+
+
#
+
+ + +
+
+
([]) const paginationData = ref({ page: 1, pageSize: 25 }) - const selectedRows = reactive([]) const { project } = useProject() const { $api } = useNuxtApp() + const selectedAllRecords = computed({ + get() { + return formattedData.value.every((row) => row.rowMeta.selected) + }, + set(selected) { + formattedData.value.forEach((row) => (row.rowMeta.selected = selected)) + }, + }) + const loadData = async (params: Parameters['dbViewRow']['list']>[4] = {}) => { if (!project?.value?.id || !meta?.value?.id || !viewMeta?.value?.id) return const response = await $api.dbViewRow.list('noco', project.value.id, meta.value.id, viewMeta.value.id, { @@ -223,9 +231,9 @@ export function useViewData( updateRowProperty, changePage, addEmptyRow, - selectedRows, deleteRow, deleteSelectedRows, updateOrSaveRow, + selectedAllRecords, } }