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
JavaScript
/**
* 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();
}
}
}