"use strict"; /** * Licensed Materials - Property of IBM * IBM Cognos Products: Cognos Analytics * Copyright IBM Corp. 2019 * US Government Users Restricted Rights - Use, duplication or disclosure * restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['underscore', 'bacontentnav/lib/@waca/core-client/js/core-client/utils/DateTimeUtils', 'bacontentnav/utils/GlassContextHelper', 'bi/admin/nls/StringResource', 'bi/admin/common/Uploader', 'bi/admin/common/services/CustomVisualizationService', 'bi/glass/app/ContentView', 'bi/commons/utils/Downloader', 'react', 'react-dom', 'ba-react-admin/ba-react-admin.min'], function (_, DateTimeUtils, GlassContextHelper, StringResource, Uploader, CustomVisualizationService, View, Downloader, React, ReactDOM, AdminReact) { 'use strict'; //NOSONAR: meant to be strict var CustomVisualizationsTab = View.extend({ init: function init(options) { CustomVisualizationsTab.inherited('init', this, arguments); _.extend(this, options); this.$el.addClass('CustomVisualizationTabView'); this.$el.attr('id', 'caCustomVisualizationsTab'); if (_.isUndefined(this.customVisualizationService)) { var cvOptions = { 'glassContext': this.glassContext }; this.customVisualizationService = new CustomVisualizationService(cvOptions); } }, remove: function remove() { this.cleanUpReact(); }, cleanUpReact: function cleanUpReact() { if (this.$el) { ReactDOM.unmountComponentAtNode(this.$el.find(".customVisualsListPaneRoot")[0]); } }, formatDate: function formatDate(dateTime) { var date = DateTimeUtils.formatDate(dateTime, 'short', GlassContextHelper.getLocaleTime(this.glassContext)).toString(); var time = DateTimeUtils.formatTime(dateTime, 'short', GlassContextHelper.getLocaleTime(this.glassContext)).toString(); return { date: date, time: time }; }, render: function render() { var aRoot = this.$el.append("
"); var customVisualizationListView = React.createElement(AdminReact.CustomVisualizationListView, { glassContext: this.glassContext, StringResource: StringResource, parent: this }); ReactDOM.render(customVisualizationListView, this.$el.find('.customVisualsListPaneRoot')[0]); return Promise.resolve(this); }, _doUpdateUploadCustomVisualization: function _doUpdateUploadCustomVisualization(_ajaxOptions) { var uploader = new Uploader({ '$el': this.$el, 'glassContext': this.glassContext, 'ajax': this.customVisualizationService.updateOrUpload.bind(this.customVisualizationService), 'ajaxOptions': _ajaxOptions }); return uploader.doUpload(); }, /** * Prepares the uploader and calls for an upload, then refreshes the list of custom visualizations */ uploadCustomVisualization: function uploadCustomVisualization() { return this._doUpdateUploadCustomVisualization({ 'isUpload': true }); }, updateCustomVisualization: function updateCustomVisualization(objData) { return this._doUpdateUploadCustomVisualization({ 'isUpload': false, 'id': objData.symbolicName }); }, downloadCustomVisualization: function downloadCustomVisualization(objData) { var name = objData.defaultName; // var url = this.customVisualizationService.getDownloadUrl(type, name) + '/zip'; var url = 'v1/disp/repository/sid/cm/oid/' + objData.id + '/content'; var downloader = new Downloader({ 'url': url, 'name': name, 'logger': this.glassContext.appController.logger }); return downloader.doDownload(); } }); return CustomVisualizationsTab; });