@gooddata/gooddata-js
Version:
GoodData JavaScript SDK
72 lines (71 loc) • 3.17 kB
TypeScript
import { XhrModule } from "./xhr";
import { IAnalyticalDashboardContent } from "@gooddata/typings";
/**
* Modify how and what should be copied to the cloned dashboard
*/
export interface ICopyDashboardOptions {
/** copy new kpi and reference it in the cloned dashboard */
copyKpi?: boolean;
/** copy new visualization object and reference it in the cloned widget */
copyVisObj?: boolean;
/** optional, default value of name is "Copy of (current dashboard title)" */
name?: string;
/** optional, default value of summary is (current dashboard summary) */
summary?: string;
/** optional, if true, the isLocked flag will be cleared for the newly created dashboard, defaults to false */
clearLockedFlag?: boolean;
}
declare type UriTranslator = (oldUri: string) => string;
export declare function createTranslator(kpiMap: Map<string, string>, visWidgetMap: Map<string, string>): UriTranslator;
/**
* Updates content of the dashboard
*
* @param {string} dashboardUri uri of dashboard
* @param {UriTranslator} uriTranslator gets updated widgets and kpis uri
* @param {string} filterContext updated filter context uri
* @experimental
*/
export declare function updateContent(analyticalDashboard: any, uriTranslator: UriTranslator, filterContext: string): IAnalyticalDashboardContent;
export declare class MetadataModuleExt {
private metadataModule;
private userModule;
private xhr;
constructor(xhr: XhrModule);
/**
* @param {string} projectId id of the project
* @param {string} dashboardUri uri of the dashboard
* @param {ICopyDashboardOptions} options object with options:
* - default {} dashboard is cloned with new kpi reference and visualization widget is cloned with new
* visualization object reference
* - copyKpi {boolean} choose whether dashboard is cloned with new Kpi reference
* - copyVisObj {boolean} choose whether visualization widget is cloned with new visualization object reference
* - name {string} optional - choose name, default value is "Copy of (old title of the dashboard)"
* @returns {string} uri of cloned dashboard
* @experimental
*/
saveDashboardAs(projectId: string, dashboardUri: string, options: ICopyDashboardOptions): Promise<string>;
/**
* Deletes dashboard and its objects
* (only the author of the dashboard can delete the dashboard and its objects)
*
* @method deleteAllObjects
* @param {string} projectId Project identifier
* @param {string} dashboardUri Uri of a dashboard to be deleted
* @experimental
*/
cascadingDelete(projectID: string, dashboardUri: string): Promise<any>;
private getDashboardDetailObject;
private getDashboardName;
private getDashboardSummary;
private duplicateOrKeepKpis;
private duplicateWidgets;
private createAndUpdateWidgets;
private duplicateFilterContext;
private getSanitizedMeta;
private getObjectsFromDashboard;
private getObjectsUrisInDashboard;
private unwrapObj;
private shouldCopyVisObj;
private shouldCopyKpi;
}
export {};