mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Dashboards: Star dashboards by UID (#63134)
* Dashboards: Star dashboards by UID * undo async
This commit is contained in:
parent
00b692c0f9
commit
58f3f00bd5
@ -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();
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user