From a2dd6c05e6798fa9e2f16662b4b07dd9ef14321b Mon Sep 17 00:00:00 2001 From: Jonas Plum Date: Wed, 7 Aug 2024 22:18:59 +0200 Subject: [PATCH] feat: mobile ui (#1096) --- migrations/8_dashboardview.go | 43 ++++ migrations/migrations.go | 1 + ui/index.html | 2 +- ui/src/components/TanView.vue | 7 +- ui/src/components/dashboard/OpenTasks.vue | 46 +++-- ui/src/components/dashboard/OpenTickets.vue | 13 +- .../components/dashboard/TicketOverTime.vue | 2 +- ui/src/components/dashboard/TicketTypes.vue | 2 +- ui/src/components/input/DynamicInput.vue | 3 - ui/src/components/layout/ColumnBody.vue | 5 + .../components/layout/ColumnBodyContainer.vue | 13 ++ ui/src/components/layout/ColumnHeader.vue | 25 +++ .../{common => layout}/PanelListElement.vue | 2 +- .../ResourceListElement.vue | 0 ui/src/components/layout/SideBar.vue | 113 ++++++----- ui/src/components/layout/ThreeColumn.vue | 28 ++- ui/src/components/layout/TwoColumn.vue | 18 +- .../components/reaction/ReactionDisplay.vue | 51 ++--- ui/src/components/reaction/ReactionForm.vue | 2 +- ui/src/components/reaction/ReactionList.vue | 50 +++-- ui/src/components/reaction/ReactionNew.vue | 28 +-- ui/src/components/ticket/TicketActionBar.vue | 150 +++++++------- ui/src/components/ticket/TicketCloseBar.vue | 5 +- ui/src/components/ticket/TicketDisplay.vue | 185 ++++++++++-------- ui/src/components/ticket/TicketHeader.vue | 8 +- ui/src/components/ticket/TicketList.vue | 161 +++++++-------- ui/src/components/ticket/TicketListList.vue | 4 +- ui/src/components/ticket/TicketTab.vue | 7 +- ui/src/components/ticket/link/TicketLinks.vue | 9 +- ui/src/components/ticket/task/TicketTasks.vue | 16 +- .../ticket/timeline/TicketTimelineItem.vue | 2 +- ui/src/components/ui/accordion/Accordion.vue | 19 -- .../ui/accordion/AccordionContent.vue | 25 --- .../components/ui/accordion/AccordionItem.vue | 22 --- .../ui/accordion/AccordionTrigger.vue | 33 ---- ui/src/components/ui/accordion/index.ts | 4 - ui/src/components/ui/avatar/Avatar.vue | 25 --- .../components/ui/avatar/AvatarFallback.vue | 11 -- ui/src/components/ui/avatar/AvatarImage.vue | 9 - ui/src/components/ui/avatar/index.ts | 24 --- ui/src/components/ui/calendar/Calendar.vue | 69 ------- .../components/ui/calendar/CalendarCell.vue | 30 --- .../ui/calendar/CalendarCellTrigger.vue | 42 ---- .../components/ui/calendar/CalendarGrid.vue | 25 --- .../ui/calendar/CalendarGridBody.vue | 11 -- .../ui/calendar/CalendarGridHead.vue | 11 -- .../ui/calendar/CalendarGridRow.vue | 22 --- .../ui/calendar/CalendarHeadCell.vue | 25 --- .../components/ui/calendar/CalendarHeader.vue | 25 --- .../ui/calendar/CalendarHeading.vue | 28 --- .../ui/calendar/CalendarNextButton.vue | 37 ---- .../ui/calendar/CalendarPrevButton.vue | 37 ---- ui/src/components/ui/calendar/index.ts | 12 -- .../components/ui/collapsible/Collapsible.vue | 15 -- .../ui/collapsible/CollapsibleContent.vue | 14 -- .../ui/collapsible/CollapsibleTrigger.vue | 11 -- ui/src/components/ui/collapsible/index.ts | 3 - .../ui/resizable/ResizableHandle.vue | 43 ---- .../ui/resizable/ResizablePanelGroup.vue | 30 --- ui/src/components/ui/resizable/index.ts | 3 - .../components/ui/scroll-area/ScrollArea.vue | 30 --- .../components/ui/scroll-area/ScrollBar.vue | 35 ---- ui/src/components/ui/scroll-area/index.ts | 2 - ui/src/components/ui/switch/Switch.vue | 44 ----- ui/src/components/ui/switch/index.ts | 1 - ui/src/views/DashboardView.vue | 182 +++++++++-------- ui/src/views/ReactionView.vue | 9 +- ui/src/views/TicketView.vue | 14 +- 68 files changed, 668 insertions(+), 1315 deletions(-) create mode 100644 migrations/8_dashboardview.go create mode 100644 ui/src/components/layout/ColumnBody.vue create mode 100644 ui/src/components/layout/ColumnBodyContainer.vue create mode 100644 ui/src/components/layout/ColumnHeader.vue rename ui/src/components/{common => layout}/PanelListElement.vue (67%) rename ui/src/components/{common => layout}/ResourceListElement.vue (100%) delete mode 100644 ui/src/components/ui/accordion/Accordion.vue delete mode 100644 ui/src/components/ui/accordion/AccordionContent.vue delete mode 100644 ui/src/components/ui/accordion/AccordionItem.vue delete mode 100644 ui/src/components/ui/accordion/AccordionTrigger.vue delete mode 100644 ui/src/components/ui/accordion/index.ts delete mode 100644 ui/src/components/ui/avatar/Avatar.vue delete mode 100644 ui/src/components/ui/avatar/AvatarFallback.vue delete mode 100644 ui/src/components/ui/avatar/AvatarImage.vue delete mode 100644 ui/src/components/ui/avatar/index.ts delete mode 100644 ui/src/components/ui/calendar/Calendar.vue delete mode 100644 ui/src/components/ui/calendar/CalendarCell.vue delete mode 100644 ui/src/components/ui/calendar/CalendarCellTrigger.vue delete mode 100644 ui/src/components/ui/calendar/CalendarGrid.vue delete mode 100644 ui/src/components/ui/calendar/CalendarGridBody.vue delete mode 100644 ui/src/components/ui/calendar/CalendarGridHead.vue delete mode 100644 ui/src/components/ui/calendar/CalendarGridRow.vue delete mode 100644 ui/src/components/ui/calendar/CalendarHeadCell.vue delete mode 100644 ui/src/components/ui/calendar/CalendarHeader.vue delete mode 100644 ui/src/components/ui/calendar/CalendarHeading.vue delete mode 100644 ui/src/components/ui/calendar/CalendarNextButton.vue delete mode 100644 ui/src/components/ui/calendar/CalendarPrevButton.vue delete mode 100644 ui/src/components/ui/calendar/index.ts delete mode 100644 ui/src/components/ui/collapsible/Collapsible.vue delete mode 100644 ui/src/components/ui/collapsible/CollapsibleContent.vue delete mode 100644 ui/src/components/ui/collapsible/CollapsibleTrigger.vue delete mode 100644 ui/src/components/ui/collapsible/index.ts delete mode 100644 ui/src/components/ui/resizable/ResizableHandle.vue delete mode 100644 ui/src/components/ui/resizable/ResizablePanelGroup.vue delete mode 100644 ui/src/components/ui/resizable/index.ts delete mode 100644 ui/src/components/ui/scroll-area/ScrollArea.vue delete mode 100644 ui/src/components/ui/scroll-area/ScrollBar.vue delete mode 100644 ui/src/components/ui/scroll-area/index.ts delete mode 100644 ui/src/components/ui/switch/Switch.vue delete mode 100644 ui/src/components/ui/switch/index.ts diff --git a/migrations/8_dashboardview.go b/migrations/8_dashboardview.go new file mode 100644 index 0000000..b2fdb47 --- /dev/null +++ b/migrations/8_dashboardview.go @@ -0,0 +1,43 @@ +package migrations + +import ( + "github.com/pocketbase/dbx" + "github.com/pocketbase/pocketbase/daos" + "github.com/pocketbase/pocketbase/tools/types" +) + +const dashboardCountsViewUpdateQuery = `SELECT id, count FROM ( + SELECT 'users' as id, COUNT(users.id) as count FROM users + UNION + SELECT 'tickets' as id, COUNT(tickets.id) as count FROM tickets + UNION + SELECT 'tasks' as id, COUNT(tasks.id) as count FROM tasks + UNION + SELECT 'reactions' as id, COUNT(reactions.id) as count FROM reactions +) as counts;` + +func dashboardCountsViewUpdateUp(db dbx.Builder) error { + dao := daos.New(db) + + collection, err := dao.FindCollectionByNameOrId(dashboardCountsViewName) + if err != nil { + return err + } + + collection.Options = types.JsonMap{"query": dashboardCountsViewUpdateQuery} + + return dao.SaveCollection(collection) +} + +func dashboardCountsViewUpdateDown(db dbx.Builder) error { + dao := daos.New(db) + + collection, err := dao.FindCollectionByNameOrId(dashboardCountsViewName) + if err != nil { + return err + } + + collection.Options = types.JsonMap{"query": dashboardCountsViewQuery} + + return dao.SaveCollection(collection) +} diff --git a/migrations/migrations.go b/migrations/migrations.go index 7fbedc1..f541468 100644 --- a/migrations/migrations.go +++ b/migrations/migrations.go @@ -12,4 +12,5 @@ func Register() { migrations.Register(reactionsUp, reactionsDown, "1700000005_reactions.go") migrations.Register(systemuserUp, systemuserDown, "1700000006_systemuser.go") migrations.Register(searchViewUp, searchViewDown, "1700000007_search_view.go") + migrations.Register(dashboardCountsViewUpdateUp, dashboardCountsViewUpdateDown, "1700000008_dashboardview.go") } diff --git a/ui/index.html b/ui/index.html index eb40416..de3d68a 100644 --- a/ui/index.html +++ b/ui/index.html @@ -7,7 +7,7 @@ Catalyst -
+
diff --git a/ui/src/components/TanView.vue b/ui/src/components/TanView.vue index 7dca086..335048e 100644 --- a/ui/src/components/TanView.vue +++ b/ui/src/components/TanView.vue @@ -7,17 +7,16 @@ defineProps<{ isPending: boolean isError: boolean error: Error | null - value: any }>() diff --git a/ui/src/components/dashboard/OpenTasks.vue b/ui/src/components/dashboard/OpenTasks.vue index 8f49e3e..da7ae83 100644 --- a/ui/src/components/dashboard/OpenTasks.vue +++ b/ui/src/components/dashboard/OpenTasks.vue @@ -1,5 +1,6 @@ diff --git a/ui/src/components/dashboard/TicketTypes.vue b/ui/src/components/dashboard/TicketTypes.vue index c97aa07..a9c2bae 100644 --- a/ui/src/components/dashboard/TicketTypes.vue +++ b/ui/src/components/dashboard/TicketTypes.vue @@ -30,7 +30,7 @@ const namedTypes = computed(() => {