feat(project-dashboard): create project-dashboard page with dashboard-shared#5759
Merged
piggggggggy merged 12 commits intofeature-integration-project-detailfrom Apr 10, 2025
Merged
Conversation
Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: samuel.park <samuel.park@megazone.com>
…oard service UI Signed-off-by: samuel.park <samuel.park@megazone.com>
…eration Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: Wanjin Noh <wanjin@megazone.com>
…project-dashboards Signed-off-by: Wanjin Noh <wanjin@megazone.com>
Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: samuel.park <samuel.park@megazone.com>
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 4 Skipped Deployments
|
apps/web/src/services/dashboard-shared/core/actions/use-dashboard-folder-share-action.ts
Outdated
Show resolved
Hide resolved
Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: samuel.park <samuel.park@megazone.com>
There was a problem hiding this comment.
Copilot reviewed 70 out of 70 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (2)
apps/web/src/services/dashboard-shared/dashboard-create/components/DashboardCreateStep2SingleCase.vue:262
- The conditional rendering for dashboard-create-scope-form was removed, which may affect the intended behavior for different entry points. Please confirm if the component should now always render regardless of entryPoint.
<dashboard-create-scope-form />
apps/web/src/services/dashboard-shared/core/actions/use-dashboard-folder-share-action.ts:41
- Silently returning an empty dashboard list on error may mask API issues. Consider propagating the error or adding more robust error handling to avoid silently ignoring failures.
console.error(error); return { results: [] };
| return 'indigo100'; | ||
| }), | ||
| badgeText: computed(() => { | ||
| if (props.dashboardId?.startsWith('private')) return i18n.t('DASHBOARDS.ALL_DASHBOARDS.PRIVATE'); |
There was a problem hiding this comment.
Consider using the computed property state.isPrivate instead of checking props.dashboardId directly to ensure consistency when determining if the dashboard is private.
Suggested change
| if (props.dashboardId?.startsWith('private')) return i18n.t('DASHBOARDS.ALL_DASHBOARDS.PRIVATE'); | |
| if (state.isPrivate) return i18n.t('DASHBOARDS.ALL_DASHBOARDS.PRIVATE'); |
e1569f5
into
feature-integration-project-detail
10 of 11 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Skip Review (optional)
style,chore,ci,test,docs)Description (optional)
Background
As part of recent structural changes, our product now allows each service (e.g., DASHBOARDS, PROJECT, ALERT_MANAGER…) to be independently enabled via a global config. While most services are isolated, some require cross-service reuse of UI and logic.
In this case, we needed to integrate dashboard features into the PROJECT service, not just as a viewer but as a fully functional dashboard UI.
However, the backend APIs were not split, and the dashboard resources remained shared.
To support this scenario cleanly in the frontend, we introduced a dashboard-shared layer — a reusable dashboard core that separates domain logic and UI from the original DASHBOARDS service.
Summary of Changes
Purpose
배경
최근 글로벌 설정 기반으로 각 서비스(DASHBOARDS, PROJECT 등)의 활성화 여부를 제어할 수 있게 되면서,
UI/로직을 서비스 간에 재사용해야 하는 케이스가 일부 발생하고 있습니다.
이번 작업은 PROJECT 서비스에서 기존 대시보드 기능을 그대로 가져오되,
단순 조회가 아닌 독립적인 대시보드 서비스처럼 동작해야 하는 요구를 반영한 것입니다.
백엔드 리소스는 여전히 공유되기 때문에, 프론트엔드에서만 UI/로직 분리가 필요했습니다.
이를 위해 dashboard-shared라는 공통 대시보드 레이어를 도입했습니다.
주요 변경사항
목적
Things to Talk About (optional)