* [WIP] Transfer organizations to own branch * push progress * Setup organizations page * Add organizations grid to user profile * Remove debug * Add error handling for failed organization fetch * Refactor organization page and settings * Restructure to composition setup api * checklist completion * Apply suggestions from code review Co-authored-by: Emma Alexia <emma@modrinth.com> * Update pages/[type]/[id]/settings/index.vue Co-authored-by: Emma Alexia <emma@modrinth.com> * Update pages/[type]/[id]/settings/index.vue Co-authored-by: Emma Alexia <emma@modrinth.com> * Update pages/[type]/[id]/settings/index.vue Co-authored-by: Emma Alexia <emma@modrinth.com> * Update pages/[type]/[id]/settings/index.vue Co-authored-by: Emma Alexia <emma@modrinth.com> * Clean up org state management * Refactor useClientTry to simplify code * Remove unused code and update dependencies * Refactor bulkEditLinks event handler * Refactor organization management functions * Update heading from "Creators" to "Members" * Refactor team member invitation * Refactor member management functions * Implement validation on clientside for org names * Name sanitization for fun characters * Update onInviteTeamMember function parameters * Remove name * sidebar * random rendering issue * Conform to org removal * Org no projects conditional * Update organization links in dashboard * Update Cards to universal-cards * Refactor gallery upload permissions * Refactor to sidebar pattern * Update button classes in gallery and versions components * Finish (most) * almost finish * Finish orgs :D * Fix lint * orgs fixes * fix most things * project settings * convert grid to cards * clean up unused test class * Settings -> Manage * add org view to org management * Fix prop mounting issue * fix analytics grid layout overflow * fix multiselect breaking layout * Refactor chart selection logic in ChartDisplay.vue * Add transfer modal --------- Co-authored-by: Jai A <jaiagr+gpg@pm.me> Co-authored-by: Emma Alexia <emma@modrinth.com>
59 lines
2.0 KiB
Vue
59 lines
2.0 KiB
Vue
<template>
|
|
<div class="normal-page">
|
|
<div class="normal-page__sidebar">
|
|
<aside class="universal-card">
|
|
<h1>Dashboard</h1>
|
|
<NavStack>
|
|
<NavStackItem link="/dashboard" label="Overview">
|
|
<DashboardIcon />
|
|
</NavStackItem>
|
|
<NavStackItem link="/dashboard/notifications" label="Notifications">
|
|
<NotificationsIcon />
|
|
</NavStackItem>
|
|
<NavStackItem link="/dashboard/reports" label="Active reports">
|
|
<ReportIcon />
|
|
</NavStackItem>
|
|
<NavStackItem link="/dashboard/analytics" label="Analytics">
|
|
<ChartIcon />
|
|
</NavStackItem>
|
|
|
|
<h3>Manage</h3>
|
|
<NavStackItem v-if="true" link="/dashboard/projects" label="Projects">
|
|
<ListIcon />
|
|
</NavStackItem>
|
|
<NavStackItem v-if="true" link="/dashboard/organizations" label="Organizations">
|
|
<OrganizationIcon />
|
|
</NavStackItem>
|
|
<NavStackItem link="/dashboard/collections" label="Collections">
|
|
<LibraryIcon />
|
|
</NavStackItem>
|
|
<NavStackItem link="/dashboard/revenue" label="Revenue">
|
|
<CurrencyIcon />
|
|
</NavStackItem>
|
|
</NavStack>
|
|
</aside>
|
|
</div>
|
|
<div class="normal-page__content">
|
|
<NuxtPage :route="route" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script setup>
|
|
import { LibraryIcon, ChartIcon } from 'omorphia'
|
|
import NavStack from '~/components/ui/NavStack.vue'
|
|
import NavStackItem from '~/components/ui/NavStackItem.vue'
|
|
|
|
import DashboardIcon from '~/assets/images/utils/dashboard.svg'
|
|
import CurrencyIcon from '~/assets/images/utils/currency.svg'
|
|
import ListIcon from '~/assets/images/utils/list.svg'
|
|
import ReportIcon from '~/assets/images/utils/report.svg'
|
|
import NotificationsIcon from '~/assets/images/utils/bell.svg'
|
|
import OrganizationIcon from '~/assets/images/utils/organization.svg'
|
|
|
|
definePageMeta({
|
|
middleware: 'auth',
|
|
})
|
|
|
|
const route = useRoute()
|
|
</script>
|