| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | 'use strict';/* *+------------------------------------------------------------------------+ *| Licensed Materials - Property of IBM *| IBM Cognos Products: Dashboard *| (C) Copyright IBM Corp. 2018 *| *| US Government Users Restricted Rights - Use, duplication or disclosure *| restricted by GSA ADP Schedule Contract with IBM Corp. *+------------------------------------------------------------------------+ */define(['./OpenActionHandler', '../../../app/util/ErrorUtils'], function (BaseClass, Utils) {	var ActionHandler = BaseClass.extend({		/**         * This class is a last effort to open a dashboard/story that has no tags. We go to the server to get the spec and look at it.         * Once all the specs are updated on the server (trough a CM upgrade) we can remove this file.         */		_getTargetPerspective: function _getTargetPerspective(id, context) {			return this._getSpec(id, context).then(function (spec) {				return spec.timeline ? 'story' : 'dashboard';			});		},		_hasValidTags: function _hasValidTags(item) {			// if we get here we should have no tags. If we do then it's not a type we understand			return !item.tags || !item.tags.length;		},		/**   * This function is only used to determine if it is a dashboard or story   * In case of an error fetching the spec, we will always resolve so that we default to a dashboard.   * Error cases will be handled later when the dashboard is about to open.   */		_getSpec: function _getSpec(id, context) {			return context.glassContext.getSvc('.Content').then(function (contentSvc) {				return new Promise(function (resolve, reject) {					var itemURL = contentSvc.getBaseObjectsURL() + '/' + id;					var options = {						dataType: 'json',						data: {							'fields': 'specification'						},						MRUInfo: {}					};					contentSvc.get(itemURL, options).then(function (response) {						var specAsString = response.data && response.data.length && response.data[0].specification;						if (specAsString) {							try {								resolve(JSON.parse(specAsString));							} catch (err) {								reject(err);							}						} else {							resolve(contentSvc.get(itemURL + '/content'));						}					}).fail(function (deferred, request) {						Utils.showError(context.glassContext, request, id);						resolve({});					});				});			});		}	});	return ActionHandler;});//# sourceMappingURL=LegacyOpenActionHandler.js.map
 |