feat: add feedback review notification UI
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
import { useChannelsStore } from '@/features/channels/stores/channelsStore.js';
|
||||
import { useLanguageStore } from '@/stores/languageStore.js';
|
||||
import { useNotificationsStore } from '@/features/notifications/stores/notificationsStore.js';
|
||||
import { getNotificationRoute } from '@/features/notifications/notificationRoutes.js';
|
||||
import { useContentItemsStore } from '@/features/content/stores/contentItemsStore.js';
|
||||
import { useProjectsStore } from '@/features/projects/stores/projectsStore.js';
|
||||
import { useUserProfileStore } from '@/features/user-profile/stores/userProfileStore.js';
|
||||
@@ -21,6 +22,7 @@
|
||||
mdiLan,
|
||||
mdiMagnify,
|
||||
mdiPlus,
|
||||
mdiBugOutline,
|
||||
} from '@mdi/js';
|
||||
|
||||
const props = defineProps({
|
||||
@@ -53,8 +55,13 @@
|
||||
{ to: '/app/dashboard', labelKey: 'nav.overview', icon: mdiHomeOutline },
|
||||
{ to: '/app/workspace', labelKey: 'nav.workspacePlan', icon: mdiCalendarMonthOutline },
|
||||
{ to: '/app/media-library', labelKey: 'nav.mediaLibrary', icon: mdiImageMultipleOutline },
|
||||
{ to: '/app/my-feedback', labelKey: 'nav.myFeedback', icon: mdiBugOutline },
|
||||
{ to: '/app/feedback', labelKey: 'nav.feedbackReview', icon: mdiBugOutline, roles: ['Developer'] },
|
||||
{ to: '/app/workspace-settings', labelKey: 'nav.settings', icon: mdiCogOutline },
|
||||
];
|
||||
const visiblePrimaryLinks = computed(() =>
|
||||
primaryLinks.filter(link => !link.roles || authStore.hasAnyRole(link.roles))
|
||||
);
|
||||
|
||||
const openSections = ref({
|
||||
channels: false,
|
||||
@@ -111,6 +118,10 @@
|
||||
'content-item.status.updated': t('notifications.events.statusUpdated'),
|
||||
'asset.google-drive-linked': t('notifications.events.assetLinked'),
|
||||
'asset.revision.created': t('notifications.events.assetRevisionCreated'),
|
||||
'Feedback.ReportCreated': t('notifications.events.feedbackReportCreated'),
|
||||
'Feedback.DeveloperCommented': t('notifications.events.feedbackDeveloperCommented'),
|
||||
'Feedback.StatusChanged': t('notifications.events.feedbackStatusChanged'),
|
||||
'Feedback.ReporterCommented': t('notifications.events.feedbackReporterCommented'),
|
||||
}));
|
||||
|
||||
function toggleSection(sectionName) {
|
||||
@@ -159,8 +170,9 @@
|
||||
|
||||
isNotificationsOpen.value = false;
|
||||
|
||||
if (notification.contentItemId) {
|
||||
await router.push({ name: 'content-item-detail', params: { id: notification.contentItemId } });
|
||||
const notificationRoute = getNotificationRoute(notification, authStore);
|
||||
if (notificationRoute) {
|
||||
await router.push(notificationRoute);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,7 +384,7 @@
|
||||
|
||||
<div class="sidebar-section">
|
||||
<router-link
|
||||
v-for="link in primaryLinks"
|
||||
v-for="link in visiblePrimaryLinks"
|
||||
:key="link.to"
|
||||
:to="link.to"
|
||||
class="sidebar-link"
|
||||
|
||||
Reference in New Issue
Block a user