Dashboards: Star dashboards by UID (#63134)

* Dashboards: Star dashboards by UID

* undo async
This commit is contained in:
Josh Hunt 2023-02-09 10:24:46 +00:00 committed by GitHub
parent 00b692c0f9
commit 58f3f00bd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 6 deletions

View File

@ -130,7 +130,7 @@ export const DashNav = React.memo<Props>((props) => {
const dashboardSrv = getDashboardSrv(); const dashboardSrv = getDashboardSrv();
const { dashboard, setStarred } = props; const { dashboard, setStarred } = props;
dashboardSrv.starDashboard(dashboard.id, Boolean(dashboard.meta.isStarred)).then((newState) => { dashboardSrv.starDashboard(dashboard.uid, Boolean(dashboard.meta.isStarred)).then((newState) => {
setStarred({ id: dashboard.uid, title: dashboard.title, url: dashboard.meta.url ?? '', isStarred: newState }); setStarred({ id: dashboard.uid, title: dashboard.title, url: dashboard.meta.url ?? '', isStarred: newState });
dashboard.meta.isStarred = newState; dashboard.meta.isStarred = newState;
forceUpdate(); forceUpdate();

View File

@ -92,19 +92,19 @@ export class DashboardSrv {
); );
} }
starDashboard(dashboardId: string, isStarred: boolean) { starDashboard(dashboardUid: string, isStarred: boolean) {
const backendSrv = getBackendSrv(); const backendSrv = getBackendSrv();
const request = { const request = {
showSuccessAlert: false, showSuccessAlert: false,
url: '/api/user/stars/dashboard/' + dashboardId, url: '/api/user/stars/dashboard/uid/' + dashboardUid,
method: isStarred ? 'DELETE' : 'POST', method: isStarred ? 'DELETE' : 'POST',
}; };
return backendSrv.request(request).then(() => { return backendSrv.request(request).then(() => {
const newIsStarred = !isStarred; const newIsStarred = !isStarred;
if (this.dashboard?.id === dashboardId) { if (this.dashboard?.uid === dashboardUid) {
this.dashboard.meta.isStarred = newIsStarred; this.dashboard.meta.isStarred = newIsStarred;
} }

View File

@ -103,8 +103,7 @@ export function DashList(props: PanelProps<PanelOptions>) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
// FIXME: Do not use dash ID. Use UID to star a dashboard once the backend allows it const isStarred = await getDashboardSrv().starDashboard(dash.uid, dash.isStarred);
const isStarred = await getDashboardSrv().starDashboard(dash.id!.toString(), dash.isStarred);
const updatedDashboards = new Map(dashboards); const updatedDashboards = new Map(dashboards);
updatedDashboards.set(dash?.uid ?? '', { ...dash, isStarred }); updatedDashboards.set(dash?.uid ?? '', { ...dash, isStarred });
setDashboards(updatedDashboards); setDashboards(updatedDashboards);