feat: move tags and crowd types to sidebar from org settings tabs
Made-with: Cursor
This commit is contained in:
@@ -22,6 +22,16 @@ export const orgNavItems = [
|
|||||||
to: { name: 'organisation-companies' },
|
to: { name: 'organisation-companies' },
|
||||||
icon: { icon: 'tabler-building' },
|
icon: { icon: 'tabler-building' },
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: 'Tags & Vaardigheden',
|
||||||
|
to: { name: 'organisation-tags' },
|
||||||
|
icon: { icon: 'tabler-tag' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Crowd types',
|
||||||
|
to: { name: 'organisation-crowd-types' },
|
||||||
|
icon: { icon: 'tabler-users-group' },
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: 'Instellingen',
|
title: 'Instellingen',
|
||||||
to: { name: 'organisation-settings' },
|
to: { name: 'organisation-settings' },
|
||||||
|
|||||||
25
apps/app/src/pages/organisation/crowd-types.vue
Normal file
25
apps/app/src/pages/organisation/crowd-types.vue
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { useOrganisationStore } from '@/stores/useOrganisationStore'
|
||||||
|
import CrowdTypesManager from '@/components/organisations/CrowdTypesManager.vue'
|
||||||
|
|
||||||
|
const orgStore = useOrganisationStore()
|
||||||
|
|
||||||
|
const orgId = computed(() => orgStore.activeOrganisationId ?? '')
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="d-flex align-center mb-6">
|
||||||
|
<div>
|
||||||
|
<h4 class="text-h4">
|
||||||
|
Crowd types
|
||||||
|
</h4>
|
||||||
|
<p class="text-body-1 text-disabled mb-0">
|
||||||
|
Configureer crowd types voor je organisatie
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<CrowdTypesManager :org-id="orgId" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useOrganisationStore } from '@/stores/useOrganisationStore'
|
import { useOrganisationStore } from '@/stores/useOrganisationStore'
|
||||||
import PersonTagsTab from '@/components/organisation/PersonTagsTab.vue'
|
|
||||||
import RegistrationFieldTemplatesTab from '@/components/organisation/RegistrationFieldTemplatesTab.vue'
|
import RegistrationFieldTemplatesTab from '@/components/organisation/RegistrationFieldTemplatesTab.vue'
|
||||||
import CrowdTypesManager from '@/components/organisations/CrowdTypesManager.vue'
|
|
||||||
import EmailBrandingTab from '@/components/organisation/EmailBrandingTab.vue'
|
import EmailBrandingTab from '@/components/organisation/EmailBrandingTab.vue'
|
||||||
import EmailTemplatesTab from '@/components/organisation/EmailTemplatesTab.vue'
|
import EmailTemplatesTab from '@/components/organisation/EmailTemplatesTab.vue'
|
||||||
import EmailLogTab from '@/components/organisation/EmailLogTab.vue'
|
import EmailLogTab from '@/components/organisation/EmailLogTab.vue'
|
||||||
@@ -14,9 +12,7 @@ const orgStore = useOrganisationStore()
|
|||||||
const orgId = computed(() => orgStore.activeOrganisationId ?? '')
|
const orgId = computed(() => orgStore.activeOrganisationId ?? '')
|
||||||
|
|
||||||
const tabs = [
|
const tabs = [
|
||||||
{ value: 'tags', label: 'Tags & Vaardigheden', icon: 'tabler-tag' },
|
|
||||||
{ value: 'templates', label: 'Registratieveld-templates', icon: 'tabler-forms' },
|
{ value: 'templates', label: 'Registratieveld-templates', icon: 'tabler-forms' },
|
||||||
{ value: 'crowd-types', label: 'Crowd types', icon: 'tabler-users-group' },
|
|
||||||
{ value: 'email-branding', label: 'E-mail opmaak', icon: 'tabler-mail-cog' },
|
{ value: 'email-branding', label: 'E-mail opmaak', icon: 'tabler-mail-cog' },
|
||||||
{ value: 'email-templates', label: 'E-mail templates', icon: 'tabler-template' },
|
{ value: 'email-templates', label: 'E-mail templates', icon: 'tabler-template' },
|
||||||
{ value: 'email-log', label: 'E-mail log', icon: 'tabler-mail-search' },
|
{ value: 'email-log', label: 'E-mail log', icon: 'tabler-mail-search' },
|
||||||
@@ -25,7 +21,7 @@ const tabs = [
|
|||||||
const activeTab = computed({
|
const activeTab = computed({
|
||||||
get: () => {
|
get: () => {
|
||||||
const tab = route.query.tab as string
|
const tab = route.query.tab as string
|
||||||
return tabs.some(t => t.value === tab) ? tab : 'tags'
|
return tabs.some(t => t.value === tab) ? tab : 'templates'
|
||||||
},
|
},
|
||||||
set: (value: string) => {
|
set: (value: string) => {
|
||||||
router.replace({ query: { ...route.query, tab: value } })
|
router.replace({ query: { ...route.query, tab: value } })
|
||||||
@@ -64,15 +60,9 @@ const activeTab = computed({
|
|||||||
v-model="activeTab"
|
v-model="activeTab"
|
||||||
class="disable-tab-transition"
|
class="disable-tab-transition"
|
||||||
>
|
>
|
||||||
<VWindowItem value="tags">
|
|
||||||
<PersonTagsTab :org-id="orgId" />
|
|
||||||
</VWindowItem>
|
|
||||||
<VWindowItem value="templates">
|
<VWindowItem value="templates">
|
||||||
<RegistrationFieldTemplatesTab :org-id="orgId" />
|
<RegistrationFieldTemplatesTab :org-id="orgId" />
|
||||||
</VWindowItem>
|
</VWindowItem>
|
||||||
<VWindowItem value="crowd-types">
|
|
||||||
<CrowdTypesManager :org-id="orgId" />
|
|
||||||
</VWindowItem>
|
|
||||||
<VWindowItem value="email-branding">
|
<VWindowItem value="email-branding">
|
||||||
<EmailBrandingTab :org-id="orgId" />
|
<EmailBrandingTab :org-id="orgId" />
|
||||||
</VWindowItem>
|
</VWindowItem>
|
||||||
|
|||||||
25
apps/app/src/pages/organisation/tags.vue
Normal file
25
apps/app/src/pages/organisation/tags.vue
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { useOrganisationStore } from '@/stores/useOrganisationStore'
|
||||||
|
import PersonTagsTab from '@/components/organisation/PersonTagsTab.vue'
|
||||||
|
|
||||||
|
const orgStore = useOrganisationStore()
|
||||||
|
|
||||||
|
const orgId = computed(() => orgStore.activeOrganisationId ?? '')
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="d-flex align-center mb-6">
|
||||||
|
<div>
|
||||||
|
<h4 class="text-h4">
|
||||||
|
Tags & Vaardigheden
|
||||||
|
</h4>
|
||||||
|
<p class="text-body-1 text-disabled mb-0">
|
||||||
|
Beheer tags en vaardigheden voor personen in je organisatie
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<PersonTagsTab :org-id="orgId" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
2
apps/app/typed-router.d.ts
vendored
2
apps/app/typed-router.d.ts
vendored
@@ -38,8 +38,10 @@ declare module 'vue-router/auto-routes' {
|
|||||||
'login': RouteRecordInfo<'login', '/login', Record<never, never>, Record<never, never>>,
|
'login': RouteRecordInfo<'login', '/login', Record<never, never>, Record<never, never>>,
|
||||||
'organisation': RouteRecordInfo<'organisation', '/organisation', Record<never, never>, Record<never, never>>,
|
'organisation': RouteRecordInfo<'organisation', '/organisation', Record<never, never>, Record<never, never>>,
|
||||||
'organisation-companies': RouteRecordInfo<'organisation-companies', '/organisation/companies', Record<never, never>, Record<never, never>>,
|
'organisation-companies': RouteRecordInfo<'organisation-companies', '/organisation/companies', Record<never, never>, Record<never, never>>,
|
||||||
|
'organisation-crowd-types': RouteRecordInfo<'organisation-crowd-types', '/organisation/crowd-types', Record<never, never>, Record<never, never>>,
|
||||||
'organisation-members': RouteRecordInfo<'organisation-members', '/organisation/members', Record<never, never>, Record<never, never>>,
|
'organisation-members': RouteRecordInfo<'organisation-members', '/organisation/members', Record<never, never>, Record<never, never>>,
|
||||||
'organisation-settings': RouteRecordInfo<'organisation-settings', '/organisation/settings', Record<never, never>, Record<never, never>>,
|
'organisation-settings': RouteRecordInfo<'organisation-settings', '/organisation/settings', Record<never, never>, Record<never, never>>,
|
||||||
|
'organisation-tags': RouteRecordInfo<'organisation-tags', '/organisation/tags', Record<never, never>, Record<never, never>>,
|
||||||
'platform': RouteRecordInfo<'platform', '/platform', Record<never, never>, Record<never, never>>,
|
'platform': RouteRecordInfo<'platform', '/platform', Record<never, never>, Record<never, never>>,
|
||||||
'platform-activity-log': RouteRecordInfo<'platform-activity-log', '/platform/activity-log', Record<never, never>, Record<never, never>>,
|
'platform-activity-log': RouteRecordInfo<'platform-activity-log', '/platform/activity-log', Record<never, never>, Record<never, never>>,
|
||||||
'platform-organisations': RouteRecordInfo<'platform-organisations', '/platform/organisations', Record<never, never>, Record<never, never>>,
|
'platform-organisations': RouteRecordInfo<'platform-organisations', '/platform/organisations', Record<never, never>, Record<never, never>>,
|
||||||
|
|||||||
Reference in New Issue
Block a user