From 3fbec39952a3abf2f1b6016ed24dd64c1537964d Mon Sep 17 00:00:00 2001 From: Ivan Ortega Alba Date: Thu, 21 Jul 2022 11:52:36 +0200 Subject: [PATCH] History: list, compare and restore versions using UID (#51989) --- .../DashboardSettings/VersionsSettings.tsx | 4 ++-- .../DashboardSettings/__mocks__/versions.ts | 11 +++++++++++ .../VersionHistory/HistorySrv.test.ts | 2 +- .../components/VersionHistory/HistorySrv.ts | 18 +++++++++--------- .../__mocks__/dashboardHistoryMocks.ts | 5 +++++ 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/public/app/features/dashboard/components/DashboardSettings/VersionsSettings.tsx b/public/app/features/dashboard/components/DashboardSettings/VersionsSettings.tsx index f096c5d3e90..733f91a5a85 100644 --- a/public/app/features/dashboard/components/DashboardSettings/VersionsSettings.tsx +++ b/public/app/features/dashboard/components/DashboardSettings/VersionsSettings.tsx @@ -83,8 +83,8 @@ export class VersionsSettings extends PureComponent { isLoading: true, }); - const lhs = await historySrv.getDashboardVersion(this.props.dashboard.id, baseInfo.version); - const rhs = await historySrv.getDashboardVersion(this.props.dashboard.id, newInfo.version); + const lhs = await historySrv.getDashboardVersion(this.props.dashboard.uid, baseInfo.version); + const rhs = await historySrv.getDashboardVersion(this.props.dashboard.uid, newInfo.version); this.setState({ baseInfo, diff --git a/public/app/features/dashboard/components/DashboardSettings/__mocks__/versions.ts b/public/app/features/dashboard/components/DashboardSettings/__mocks__/versions.ts index fc3e141fe32..62f3cf4d876 100644 --- a/public/app/features/dashboard/components/DashboardSettings/__mocks__/versions.ts +++ b/public/app/features/dashboard/components/DashboardSettings/__mocks__/versions.ts @@ -2,6 +2,7 @@ export const versions = [ { id: 249, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 10, restoredFrom: 0, version: 11, @@ -12,6 +13,7 @@ export const versions = [ { id: 247, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 9, restoredFrom: 0, version: 10, @@ -22,6 +24,7 @@ export const versions = [ { id: 246, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 8, restoredFrom: 0, version: 9, @@ -32,6 +35,7 @@ export const versions = [ { id: 245, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 7, restoredFrom: 0, version: 8, @@ -42,6 +46,7 @@ export const versions = [ { id: 239, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 6, restoredFrom: 0, version: 7, @@ -52,6 +57,7 @@ export const versions = [ { id: 237, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 5, restoredFrom: 0, version: 6, @@ -62,6 +68,7 @@ export const versions = [ { id: 236, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 4, restoredFrom: 0, version: 5, @@ -72,6 +79,7 @@ export const versions = [ { id: 218, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 3, restoredFrom: 0, version: 4, @@ -82,6 +90,7 @@ export const versions = [ { id: 217, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 2, restoredFrom: 0, version: 3, @@ -92,6 +101,7 @@ export const versions = [ { id: 216, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 1, restoredFrom: 0, version: 2, @@ -102,6 +112,7 @@ export const versions = [ { id: 215, dashboardId: 74, + dashboardUID: '_U4zObQMz', parentVersion: 1, restoredFrom: 0, version: 1, diff --git a/public/app/features/dashboard/components/VersionHistory/HistorySrv.test.ts b/public/app/features/dashboard/components/VersionHistory/HistorySrv.test.ts index 8502085fad7..be6d274abbd 100644 --- a/public/app/features/dashboard/components/VersionHistory/HistorySrv.test.ts +++ b/public/app/features/dashboard/components/VersionHistory/HistorySrv.test.ts @@ -25,7 +25,7 @@ describe('historySrv', () => { let historySrv = new HistorySrv(); - const dash = new DashboardModel({ id: 1 }); + const dash = new DashboardModel({ uid: '_U4zObQMz' }); const emptyDash = new DashboardModel({}); const historyListOpts = { limit: 10, start: 0 }; diff --git a/public/app/features/dashboard/components/VersionHistory/HistorySrv.ts b/public/app/features/dashboard/components/VersionHistory/HistorySrv.ts index 0c9db504b01..351882ac6dc 100644 --- a/public/app/features/dashboard/components/VersionHistory/HistorySrv.ts +++ b/public/app/features/dashboard/components/VersionHistory/HistorySrv.ts @@ -12,7 +12,7 @@ export interface HistoryListOpts { export interface RevisionsModel { id: number; checked: boolean; - dashboardId: number; + dashboardUID: string; parentVersion: number; version: number; created: Date; @@ -21,26 +21,26 @@ export interface RevisionsModel { } export interface DiffTarget { - dashboardId: number; + dashboardUID: string; version: number; unsavedDashboard?: DashboardModel; // when doing diffs against unsaved dashboard version } export class HistorySrv { getHistoryList(dashboard: DashboardModel, options: HistoryListOpts) { - const id = dashboard && dashboard.id ? dashboard.id : void 0; - return id ? getBackendSrv().get(`api/dashboards/id/${id}/versions`, options) : Promise.resolve([]); + const uid = dashboard && dashboard.uid ? dashboard.uid : void 0; + return uid ? getBackendSrv().get(`api/dashboards/uid/${uid}/versions`, options) : Promise.resolve([]); } - getDashboardVersion(id: number, version: number) { - return getBackendSrv().get(`api/dashboards/id/${id}/versions/${version}`); + getDashboardVersion(uid: string, version: number) { + return getBackendSrv().get(`api/dashboards/uid/${uid}/versions/${version}`); } restoreDashboard(dashboard: DashboardModel, version: number) { - const id = dashboard && dashboard.id ? dashboard.id : void 0; - const url = `api/dashboards/id/${id}/restore`; + const uid = dashboard && dashboard.uid ? dashboard.uid : void 0; + const url = `api/dashboards/uid/${uid}/restore`; - return id && isNumber(version) ? getBackendSrv().post(url, { version }) : Promise.resolve({}); + return uid && isNumber(version) ? getBackendSrv().post(url, { version }) : Promise.resolve({}); } } diff --git a/public/app/features/dashboard/components/VersionHistory/__mocks__/dashboardHistoryMocks.ts b/public/app/features/dashboard/components/VersionHistory/__mocks__/dashboardHistoryMocks.ts index b136c0266fa..a19e1264dd5 100644 --- a/public/app/features/dashboard/components/VersionHistory/__mocks__/dashboardHistoryMocks.ts +++ b/public/app/features/dashboard/components/VersionHistory/__mocks__/dashboardHistoryMocks.ts @@ -3,6 +3,7 @@ export function versions() { { id: 4, dashboardId: 1, + dashboardUID: '_U4zObQMz', parentVersion: 3, restoredFrom: 0, version: 4, @@ -13,6 +14,7 @@ export function versions() { { id: 3, dashboardId: 1, + dashboardUID: '_U4zObQMz', parentVersion: 1, restoredFrom: 1, version: 3, @@ -23,6 +25,7 @@ export function versions() { { id: 2, dashboardId: 1, + dashboardUID: '_U4zObQMz', parentVersion: 0, restoredFrom: -1, version: 2, @@ -33,6 +36,7 @@ export function versions() { { id: 1, dashboardId: 1, + dashboardUID: '_U4zObQMz', parentVersion: 0, restoredFrom: -1, slug: 'history-dashboard', @@ -73,6 +77,7 @@ export function restore(version: any, restoredFrom?: any): any { gnetId: null, graphTooltip: 0, id: 1, + uid: '_U4zObQMz', links: [], restoredFrom: restoredFrom, rows: [