/* *+------------------------------------------------------------------------+ *| Licensed Materials - Property of IBM *| IBM Cognos Products: Content-Apps *| (C) Copyright IBM Corp. 2018 *| *| US Government Users Restricted Rights - Use, duplication or disclosure *| restricted by GSA ADP Schedule Contract with IBM Corp. *+------------------------------------------------------------------------+ */ define([ 'bi/commons/utils/BrowserUtils', 'bi/commons/utils/Downloader', './OutputHandler' ], function (BrowserUtils, Downloader, OutputHandler) { 'use strict'; var _HANDLED_FORMATS = ['xlsxdata','spreadsheetml','xlwa','csv','xml']; var DownloadOutputHandler = OutputHandler.extend({ /** * @inheritdoc */ getPriority: function() { // a relative number to other output handlers return 50; }, /** * @inheritDoc */ canExecute: function(options) { // don't download on an iPad var format = !BrowserUtils.isIPad() && options && options.output && options.output.format; return !!(format && _HANDLED_FORMATS.indexOf(format.toLowerCase()) !== -1); }, /** * @inheritDoc */ execute: function(options) { return this._getDownloader({ 'url': options.output.content + '?download=true', 'logger': options.glassContext.appController.logger }).doDownload() .then(function() { // don't need to wait to return here options.glassContext.getSvc('.Content').then(function(contentSvc) { contentSvc.addToMRU(options.report); }); }); }, // private for unit-test mocking _getDownloader: function(options) { return new Downloader(options); } }); return DownloadOutputHandler; });