feat: add feedback review notification UI

This commit is contained in:
2026-04-30 13:53:00 -04:00
parent 5aaddbca40
commit 6731fb5d3a
12 changed files with 2590 additions and 12 deletions

View File

@@ -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"