123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /*
- IBM Confidential
- OCO Source Materials
- IBM Cognos Products: rs
- (C) Copyright IBM Corp. 2017, 2019
- The source code for this program is not published or otherwise divested of its trade secrets, irrespective of what has been deposited with the U.S. Copyright Office.
- */
- define(['q', 'bi/authoring/nls/StringResource'], function(Q, StringResource){
- 'use strict';
- return {
-
- saveReportView: function(v_oCmProperties, v_oContext) {
- var v_oSaveDeferred = Q.defer();
- require(["bi/commons/ui/content/dialog/SaveAsDialog"], function(SaveAsDialog) {
- var v_oDialog = new SaveAsDialog({
- glassContext: v_oContext.glassContext,
- defaultFileName: StringResource.get( v_oCmProperties.type === "powerPlay8Report" ? 'powerplay_view_of' : 'report_view_of' , {reportName: v_oCmProperties.defaultName}),
- ancestors: v_oCmProperties.ancestors,
- service: {
- context: v_oContext,
- inheritBaseProperties: function(oData) {
- var deferred = Q.defer();
- if (oData.type === "reportView") {
- var sUrl;
- if (v_oCmProperties._meta) {
- sUrl = v_oCmProperties._meta.links.self.url;
- } else {
- sUrl = v_oCmProperties.selfUrl;
- }
- v_oContext.glassContext.services.ajax.ajax({
- 'url': sUrl + '?fields=executionFormat,executionLocale,options,parameters',
- 'dataType': 'json',
- 'type': 'GET'
- }).then(function(response) {
- var data = response.data[0];
- oData.executionFormat = data.executionFormat;
- oData.executionLocale = data.executionLocale;
- oData.options = data.options;
- oData.parameters = data.parameters;
- deferred.resolve();
- }, function(error) {
- deferred.reject(error);
- });
- } else {
- deferred.resolve();
- }
- return deferred.promise;
- },
- save: function(v_oService, v_oSelection, v_sName, v_bOverwrite) {
- v_oDialog.hide();
- var v_oData = {
- "type": v_oCmProperties.type === "powerPlay8Report" ? "powerPlay8ReportView" : "reportView",
- "defaultName": v_sName,
- "base": [{
- "searchPath": "storeID(\"" + v_oCmProperties.id + "\")",
- "type": "baseClass"
- }]
- };
- var v_oDeferred = Q.defer();
- this.inheritBaseProperties(v_oData).then(function() {
- var v_sUrl = v_oSelection.url + "?updateAction=" + (v_bOverwrite ? "replace" : "fail");
- v_oService.context.glassContext.services.ajax.post(v_sUrl, {
- contentType: "application/json",
- processData: false,
- dataType: "text",
- data: JSON.stringify(v_oData)
- })
- .fail(function (d, request) {
- var v_oResponse = request.responseJSON;
- if (!v_oResponse && request.responseText) {
- v_oResponse = JSON.parse(request.responseText);
- }
- if (v_oResponse.errorCode === "cmDuplicateName") {
- v_oDeferred.reject({ isDuplicate: true });
- } else {
- v_oDeferred.reject();
- v_oSaveDeferred.reject();
- }
- })
- .done(function (v_oResult) {
- // Refresh the content app list control
- try {
- v_oContext.target.plugin.activeObject.oListControl.contentView.refresh();
- } catch (e) { }
- v_oDeferred.resolve(v_oResult);
- v_oSaveDeferred.resolve(v_oResult);
- });
- }, function() {
- v_oDeferred.reject();
- v_oSaveDeferred.reject();
- });
- return v_oDeferred.promise;
- }
- }
- });
- v_oDialog.open();
- });
- return v_oSaveDeferred.promise;
- }
- };
- });
|