"use strict"; /** * Licensed Materials - Property of IBM * IBM Cognos Products: Manage * Copyright IBM Corp. 2015, 2021 * US Government Users Restricted Rights * Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['q', 'rave2', 'bi/admin/common/slideout/BasePane', 'bi/admin/common/ui/MagicWand', 'bi/admin/status/services/ApiSvc', 'bi/admin/common/visualizations/VizBar', 'bi/admin/common/visualizations/VizStackedBar', 'bi/commons/ui/widgets/DatePicker', 'bi/admin/common/ui/listview/ListView', 'bi/admin/status/services/ActivitiesAdaptor', 'bi/admin/common/utils/CapabilityHelper', 'bi/admin/nls/StringResource', 'text!bi/admin/status/templates/ActivitiesPaneTemplate.html', 'moment-timezone', 'bi/commons/utils/Utils', 'bacontentnav/utils/ContentStoreObject', 'react', 'react-dom', 'ba-react-admin/ba-react-admin.min', 'underscore', 'doT', 'text!bi/admin/status/templates/updateSchedules.xml', 'bi/content_apps/utils/C10Utils'], function (Q, rave, BasePane, MagicWand, Api, VizBar, VizStackedBar, DateNavigator, ListView, ActivitiesAdaptor, CapabilityHelper, StringResource, paneTemplate, moment, Utils, ContentStoreObject, React, ReactDOM, AdminReact, _, doT, UpdateSchedulesRequestTemplate, C10Utils) { //NOSONAR: needed for amd function buildContextMenuItemListFnMap() { var map = {}; function getStatus(data) { var status = data[0].statusValue && data[0].statusValue.toLocaleLowerCase(); return status || ''; } map[Api.ActivityType.SCHEDULE] = function (data) { var isSingleSelect = data.length === 1; var itemList = ['useMyCredentials']; var status = getStatus(data); var isSubscription = data[0].isSubscription; if (isSingleSelect) { itemList.push('runOnce', 'versions'); if (CapabilityHelper.checkCapabilities('canUseSchedulingPriority', this.glassContext)) { itemList.push('setPriority'); } } if (!isSubscription) { itemList.push('removeSchedule', status === 'enabled' ? 'disableSchedule' : 'enableSchedule'); if (isSingleSelect) { itemList.push('update_schedule', 'setProperties'); } } else { itemList.push('removeSubscription', status === 'enabled' ? 'disableSubscription' : 'enableSubscription'); if (isSingleSelect) { itemList.push('update_subscription'); } } return itemList; }; map[Api.ActivityType.UPCOMING] = function (data) { var isSingleSelect = data.length === 1; var status = getStatus(data); var itemList = [status === 'suspended' ? 'release' : 'suspend']; if (isSingleSelect && CapabilityHelper.checkCapabilities('canUseSchedulingPriority', this.glassContext)) { itemList.push('setPriority'); } if (status !== 'cancelled') { itemList.push('activity-cancel'); } return itemList; }; map[Api.ActivityType.CURRENT] = function (data) { var isSingleSelect = data.length === 1; var status = getStatus(data); var itemList = [status === 'suspended' ? 'release' : 'suspend']; if (isSingleSelect) { itemList.push('versions'); if (CapabilityHelper.checkCapabilities('canUseSchedulingPriority', this.glassContext)) { itemList.push('setPriority'); } } if (status !== 'cancelled') { itemList.push('activity-cancel'); } return itemList; }; map[Api.ActivityType.PAST] = function (data) { return ['versions', 'runDetail', 'runOnce']; }; return map; } var ActivitiesPane = BasePane.extend({ chartMode: 'stacked', template: null, activityType: Api.ActivityType.SCHEDULE, groupBy: Api.GroupBy.HOUR, filter: {}, _contextMenuItemListFnMap: buildContextMenuItemListFnMap(), init: function init(options) { ActivitiesPane.inherited('init', this, arguments); $.extend(this, options); Api.glassContext = this.glassContext; //glassContext may not be set yet and is required by some of the bacontentnav panels (ie. VersionView) ContentStoreObject.setGlassContext(this.glassContext); var listDataAdaptor = this.listDataAdaptor = this._getNewActivitiesAdaptor({ glassContext: this.glassContext, isMyActivities: this.isMyActivities, checkboxSelection: true }); //check for ajax service as not to break unit tests if (this.glassContext && this.glassContext.services && this.glassContext.services.ajax && !this.isMyActivities) { Api.getDispatcherNameMap().then(function (data) { listDataAdaptor.dispatcherNameMap = data; }); } }, _getNewActivitiesAdaptor: function _getNewActivitiesAdaptor(options) { return new ActivitiesAdaptor(options); }, onToggleMenuChanged: function onToggleMenuChanged(name, value) { if (name === 'activityType') { if (value === Api.ActivityType.CURRENT) { var $background = this.$body.find('#background input'); var checked = $background.is(':checked'); value = checked ? Api.ActivityType.CURRENT : Api.ActivityType.INTERACTIVE; } this._changeActivityType(value); this.$el.find('.menu-label').parent().focus(); } }, _openFilterPane: function _openFilterPane() { var valueBag = { status: Api.Status[this.activityType], priority: Api.SchedulePriorities, objectClass: Api.ScheduleObjectClasses }; this._openSlideout({ width: '330px', content: { filter: this.filter, valueBag: valueBag, isMyActivities: this.isMyActivities, activityType: this.activityType, parentView: this, module: 'bi/admin/status/slideout/FilterPane' } }); }, onHeaderButtonClicked: function onHeaderButtonClicked(id) { ActivitiesPane.inherited('onHeaderButtonClicked', this, arguments); if (id === 'filterButton') { if (this.slideout && this.slideout.child) { this.slideout.child.hide(); } else { this._openFilterPane(); } } }, onHeaderChecked: function onHeaderChecked(id, checked) { if (id === 'chartMode') { var chartMode = checked ? 'stacked' : 'grouped'; if (this.vizChart) { this.vizChart.changeMode(chartMode); } this.chartMode = chartMode; } else { if (id === 'background') { this._changeActivityType(checked ? Api.ActivityType.CURRENT : Api.ActivityType.INTERACTIVE); } } }, _getNewDateNavigator: function _getNewDateNavigator(options) { return new DateNavigator(options); }, renderBody: function renderBody($body) { $body.html(paneTemplate); var deferred = Q.defer(); this._initCheckboxSelection($body); var $header = $body.find('.bi-admin-statuspane-header'); var $leading = $header.find('.bi-admin-leading'); this.$viewType = $('