From 3903d2e8f8af98b44ee254d628abeb4b36e4106f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarda=20Kot=C4=9B=C5=A1ovec?= Date: Mon, 24 Feb 2025 12:07:52 +0100 Subject: [PATCH] pkp/pkp-lib#10067 Dashboard add extensibility for columns, left controls, right controls --- src/pages/dashboard/DashboardPage.vue | 42 ++--- .../components/DashboardActionButton.vue | 28 ++++ ...ns.vue => DashboardControlBulkActions.vue} | 0 ...e => DashboardControlBulkDeleteButton.vue} | 0 .../components/DashboardControlSearch.vue | 16 ++ .../DashboardTable/DashboardTable.vue | 2 +- .../composables/useDashboardConfiguration.js | 148 ++++++++++++++++++ src/pages/dashboard/dashboardPageStore.js | 24 ++- 8 files changed, 240 insertions(+), 20 deletions(-) create mode 100644 src/pages/dashboard/components/DashboardActionButton.vue rename src/pages/dashboard/components/{DashboardBulkActions.vue => DashboardControlBulkActions.vue} (100%) rename src/pages/dashboard/components/{DashboardBulkDeleteButton.vue => DashboardControlBulkDeleteButton.vue} (100%) create mode 100644 src/pages/dashboard/components/DashboardControlSearch.vue create mode 100644 src/pages/dashboard/composables/useDashboardConfiguration.js diff --git a/src/pages/dashboard/DashboardPage.vue b/src/pages/dashboard/DashboardPage.vue index 0a0d25648..77600353c 100644 --- a/src/pages/dashboard/DashboardPage.vue +++ b/src/pages/dashboard/DashboardPage.vue @@ -18,20 +18,20 @@
- - {{ t('common.filter') }} - - - +
-
- +
+
@@ -56,17 +56,23 @@
diff --git a/src/pages/dashboard/components/DashboardBulkActions.vue b/src/pages/dashboard/components/DashboardControlBulkActions.vue similarity index 100% rename from src/pages/dashboard/components/DashboardBulkActions.vue rename to src/pages/dashboard/components/DashboardControlBulkActions.vue diff --git a/src/pages/dashboard/components/DashboardBulkDeleteButton.vue b/src/pages/dashboard/components/DashboardControlBulkDeleteButton.vue similarity index 100% rename from src/pages/dashboard/components/DashboardBulkDeleteButton.vue rename to src/pages/dashboard/components/DashboardControlBulkDeleteButton.vue diff --git a/src/pages/dashboard/components/DashboardControlSearch.vue b/src/pages/dashboard/components/DashboardControlSearch.vue new file mode 100644 index 000000000..05758ce91 --- /dev/null +++ b/src/pages/dashboard/components/DashboardControlSearch.vue @@ -0,0 +1,16 @@ + + diff --git a/src/pages/dashboard/components/DashboardTable/DashboardTable.vue b/src/pages/dashboard/components/DashboardTable/DashboardTable.vue index 59fc684cf..7bfb8214d 100644 --- a/src/pages/dashboard/components/DashboardTable/DashboardTable.vue +++ b/src/pages/dashboard/components/DashboardTable/DashboardTable.vue @@ -33,7 +33,7 @@ :item="item" /> { + const extender = useExtender(); + /** * ModalStore */ @@ -69,6 +73,15 @@ export const useDashboardPageStore = defineComponentStore( // Reactive query params parsed from the url const queryParamsUrl = useQueryParams(); + /** + * Config + */ + const dashboardConfig = extender.addFns(useDashboardConfiguration()); + const leftControlItems = computed(() => dashboardConfig.getLeftControls()); + const rightControlItems = computed(() => + dashboardConfig.getRightControls(), + ); + /** * Views */ @@ -106,7 +119,11 @@ export const useDashboardPageStore = defineComponentStore( /** * Columns */ - const columns = ref(pageInitConfig.columns); + const columns = computed(() => + dashboardConfig.getColumns({ + dashboardPage: pageInitConfig.dashboardPage, + }), + ); /** * Search Phrase @@ -414,6 +431,11 @@ export const useDashboardPageStore = defineComponentStore( dashboardPage: pageInitConfig.dashboardPage, dashboardPageTitle, dashboardPageIcon, + + // Config + leftControlItems, + rightControlItems, + // Views views, currentViewId,