UNPKG

devexpress-reporting

Version:

DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.

81 lines (80 loc) 3.38 kB
/** * DevExpress HTML/JS Reporting (designer\services\reportStorageWeb.js) * Version: 24.2.6 * Build date: Mar 18, 2025 * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * License: https://www.devexpress.com/Support/EULAs/universal.xml */ import { sendRequest, getErrorMessage, NotifyAboutWarning, DxDeferred } from '@devexpress/analytics-core/analytics-internal'; import { PrepareRequestArgs, getLocalization } from '@devexpress/analytics-core/analytics-utils'; import { convertMapToKeyValuePair } from '../../common/types'; import { ReportViewModel } from '../controls/xrReport'; import { reportStorageWebIsRegister } from '../internal/_settings'; import { updateDataSourceRefs } from '../internal/_utils'; import { HandlerUri } from '../utils/settings'; export class ReportStorageWeb { static getErrorMessageHandler(defaultErrorMessage) { return function (message, jqXHR, textStatus) { const error = getErrorMessage(jqXHR); NotifyAboutWarning(error || defaultErrorMessage || message || 'Internal Server Error', true); }; } static getReportByUrl(url) { const $deferred = new DxDeferred(); ReportStorageWeb.getData(url).done((result) => { if (result) { const model = new ReportViewModel(JSON.parse(result.reportLayout), undefined, result.knownEnums); updateDataSourceRefs(model, result.dataSourceRefInfo); $deferred.resolve(model); } else { $deferred.reject(); } }).fail(() => $deferred.reject()); return $deferred.promise(); } static getData(url) { if (reportStorageWebIsRegister()) { return sendRequest(HandlerUri(), 'getData', PrepareRequestArgs({ reportUrl: url }), ReportStorageWeb.getErrorMessageHandler()); } else { return new DxDeferred().promise(); } } static setData(layout, url) { if (reportStorageWebIsRegister()) { return sendRequest(HandlerUri(), 'setData', PrepareRequestArgs({ reportLayout: JSON.stringify({ 'XtraReportsLayoutSerializer': layout }), reportUrl: url }), ReportStorageWeb.getErrorMessageHandler(getLocalization('Cannot save the report.', 'ASPxReportsStringId.ReportDesigner_SaveReport_Error'))); } else { return new DxDeferred().promise(); } } static setNewData(layout, url) { if (reportStorageWebIsRegister()) { return sendRequest(HandlerUri(), 'setNewData', PrepareRequestArgs({ reportLayout: JSON.stringify({ 'XtraReportsLayoutSerializer': layout }), reportUrl: url }), ReportStorageWeb.getErrorMessageHandler(getLocalization('Cannot save the report.', 'ASPxReportsStringId.ReportDesigner_SaveReport_Error'))); } else { return new DxDeferred().promise(); } } static getUrls(subreports) { if (reportStorageWebIsRegister()) { return sendRequest(HandlerUri(), 'getUrls', 'true'); } else { return new DxDeferred().resolve(convertMapToKeyValuePair(subreports)).promise(); } } }