123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- 'use strict';
- /**
- * Licensed Materials - Property of IBM
- * IBM Watson Analytics (C) Copyright IBM Corp. 2018, 2020
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- *
- */
- define(['../../lib/@waca/core-client/js/core-client/ui/core/View', '../../lib/@waca/core-client/js/core-client/utils/ContentFormatter', 'jquery', 'underscore', '../../widgets/livewidget/nls/StringResources', '../../util/JumpToActionHelper', 'text!../templates/JumpTo.html'], function (View, ContentFormatter, $, _, stringResources, JumpToActionHelper, JumpToTemplate) {
- /**
- *
- * View to manage/launch Jump to
- **/
- var JumpToView = View.extend({
- templateString: JumpToTemplate,
- events: {
- 'primaryaction .drillToTarget': '_drillToTarget',
- 'primaryaction .manageDrillThrough': '_manageDrillThrough',
- 'primaryaction .addNewTarget': '_addNewTarget'
- },
- init: function init(options) {
- JumpToView.inherited('init', this, arguments);
- options = options || {};
- this.content = options.content;
- this.dashboard = options.dashboardApi;
- this.sourceId = options.sourceId;
- if (options.jumpToTargets) {
- this.jumpToTargets = options.jumpToTargets(this.content, this.sourceId, options.selections);
- }
- this.isDataPointSelection = options.isDataPointSelection || false;
- this.scopedPageContext = options.scopedPageContext;
- },
- remove: function remove() {
- JumpToView.inherited('remove', this, arguments);
- },
- render: function render() {
- return this.dashboard.getDashboardSvc('DrillThroughService').then(function (drillThroughService) {
- return drillThroughService.getDrillThroughModelApi().then(this._getJumpToTargets.bind(this)).then(this._renderHtml.bind(this));
- }.bind(this));
- },
- notifyRenderComplete: function notifyRenderComplete() {
- this.$el.find('.visJumpToView-item.drillToTarget .visJumpToView-item-content').each(function (index, elem) {
- ContentFormatter.middleShortenString(elem);
- });
- //Set focus to the first item
- this.$el.find('.visJumpToView-item:first').focus();
- },
- _renderHtml: function _renderHtml(items) {
- if (items.length === 0) {
- this._addNewTargetItem(items);
- } else {
- _.each(items, function (item) {
- item.isTarget = true;
- });
- //Add manage to this list of items
- //check if the 'Manage...' item has already been added to the items array.
- var manageIndex = items.findIndex(function (item) {
- return item.isManage === true;
- });
- if (manageIndex === -1) {
- this._addManageItem(items);
- }
- }
- if (items.length > 0) {
- items[items.length - 1].hideDivider = true;
- }
- var sHtml = this.dotTemplate({ jumpToItems: items });
- var $sHtml = $(sHtml);
- this.$el.empty().append($sHtml);
- },
- _addNewTargetItem: function _addNewTargetItem(items) {
- if (!this._isDataPointSelection() && this._getAuthoringMode()) {
- items.push({
- addNewTarget: true,
- getId: function getId() {
- return 'addNewTarget';
- },
- getName: function getName() {
- return stringResources.get('drillthrough_addNewTarget');
- }
- });
- }
- },
- _getAuthoringMode: function _getAuthoringMode() {
- return this.dashboard.getMode() === 'authoring';
- },
- _addManageItem: function _addManageItem(items) {
- if (!this._isDataPointSelection() && this._getAuthoringMode()) {
- items.push({
- isManage: true,
- getId: function getId() {
- return 'manage';
- },
- getName: function getName() {
- return stringResources.get('drillthrough_manage');
- }
- });
- }
- },
- _getJumpToTargets: function _getJumpToTargets(dtModelApi) {
- if (this.jumpToTargets) {
- return Promise.resolve(this.jumpToTargets.targets);
- } else {
- var entries = dtModelApi.getDrillDefinitionEntries(this.content);
- this.jumpToTargets = JumpToActionHelper.getJumpToTargets({
- dashboardApi: this.dashboard,
- content: this.content,
- drillDefinitions: entries,
- selections: undefined,
- sourceId: this.sourceId
- });
- return Promise.resolve(this.jumpToTargets.targets);
- }
- },
- _isDataPointSelection: function _isDataPointSelection() {
- return this.isDataPointSelection;
- },
- _drillToTarget: function _drillToTarget(event) {
- var id = event.currentTarget.getAttribute('data-id');
- var target = this.jumpToTargets.targetsMap[id];
- if (target) {
- target.jumpTo();
- }
- },
- _manageDrillThrough: function _manageDrillThrough() {
- if (this.toolbar) {
- this.remove();
- this.toolbar.hide();
- }
- return this.dashboard.getDashboardSvc('DrillThroughService').then(function (drillThroughService) {
- return drillThroughService.getDrillThroughModelApi().then(function (dtModelApi) {
- var controller = drillThroughService.getDrillThroughController();
- var dlg = controller.manageDrillDefinition({
- content: this.content,
- dashboard: this.dashboard,
- drillThroughModelApi: dtModelApi
- });
- dlg.open();
- dlg.disableOk();
- }.bind(this));
- }.bind(this));
- },
- _addNewTarget: function _addNewTarget() {
- if (this.toolbar) {
- this.remove();
- this.toolbar.hide();
- }
- return this.dashboard.getDashboardSvc('DrillThroughService').then(function (drillThroughService) {
- var controller = drillThroughService.getDrillThroughController();
- controller.createDrillDefinition(this.content);
- }.bind(this));
- },
- preload: function preload() {
- return Promise.resolve();
- },
- renderCallBack: function renderCallBack(toolbar) {
- this.toolbar = toolbar;
- }
- });
- return JumpToView;
- });
- //# sourceMappingURL=JumpToView.js.map
|