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