This is an automated email from the ASF dual-hosted git repository. heneveld pushed a commit to branch simple-kilt in repository https://gitbox.apache.org/repos/asf/brooklyn-ui.git
commit fec514fba1861d53bb5c5998eb2039f4d503fb5d Author: Alex Heneveld <g...@alex.heneveld.org> AuthorDate: Fri Jun 28 12:07:55 2024 +0100 refactor task list and kilt to its own widget as used for details and general --- .../components/task-list/task-list.directive.js | 25 ++++---- .../task-sunburst/task-sunburst.directive.js | 2 +- ui-modules/app-inspector/app/index.js | 3 +- .../inspect/activities/activities.controller.js | 32 ---------- .../inspect/activities/activities.template.html | 23 +------ .../inspect/activities/detail/detail.controller.js | 18 +----- .../inspect/activities/detail/detail.template.html | 18 ++---- .../activities/detail/kilt.modal.template.html | 26 -------- .../inspect/activities/kilt-panel.directive.js | 74 ++++++++++++++++++++++ ...ties.template.html => kilt-panel.template.html} | 20 ++---- .../inspect/activities/kilt.modal.template.html | 4 +- 11 files changed, 108 insertions(+), 137 deletions(-) diff --git a/ui-modules/app-inspector/app/components/task-list/task-list.directive.js b/ui-modules/app-inspector/app/components/task-list/task-list.directive.js index 5bd99d00..c4c07bfc 100644 --- a/ui-modules/app-inspector/app/components/task-list/task-list.directive.js +++ b/ui-modules/app-inspector/app/components/task-list/task-list.directive.js @@ -201,7 +201,7 @@ export function taskListDirective() { try { const filters = sessionStorage.getItem('brooklyn-task-list-filters-' + $scope.contextKey); if (filters) { - //console.debug("Read filters for", $scope.contextKey, filters); + // console.debug("Read filters for", $scope.contextKey, filters); preselectedFilters = JSON.parse(filters); } } catch (e) { @@ -250,17 +250,18 @@ export function taskListDirective() { selectFilter($scope.taskType); } } else { - if (!isActivityChildren) { - // defaults (when not in subtask view; in subtask view it is as above) - selectFilter('_cross_entity'); - selectFilter('_all_effectors'); - selectFilter('TOP-LEVEL'); - selectFilter('EFFECTOR'); - selectFilter('WORKFLOW'); - selectFilter('_periodic'); - selectFilter('_other_entity'); - } else { - // in children mode we don't want any such filters + selectFilter('_cross_entity'); + selectFilter('_all_effectors'); + selectFilter('TOP-LEVEL'); + selectFilter('EFFECTOR'); + selectFilter('WORKFLOW'); + selectFilter('_periodic'); + selectFilter('_other_entity'); + + if (isActivityChildren) { + // in children mode we also want sub-tasks + // (previously selected no filters in subtask view) + selectFilter('SUB-TASK'); } } if (!isActivityChildren) selectFilter("_workflowStepsHidden"); diff --git a/ui-modules/app-inspector/app/components/task-sunburst/task-sunburst.directive.js b/ui-modules/app-inspector/app/components/task-sunburst/task-sunburst.directive.js index 578348eb..6278f98e 100644 --- a/ui-modules/app-inspector/app/components/task-sunburst/task-sunburst.directive.js +++ b/ui-modules/app-inspector/app/components/task-sunburst/task-sunburst.directive.js @@ -47,6 +47,7 @@ export function taskSunburstDirective() { function controller($scope, $element, $state, $window, $timeout) { const simpleColors = $window.localStorage.getItem(STORAGE_KEY_COLOR_MODE) || false; $scope.colorScheme = simpleColors ? "simple" : "normal"; + var viz = initVisualization($scope, $element, $state); angular.element($window).on('resize', viz.resize); @@ -54,7 +55,6 @@ export function taskSunburstDirective() { $scope.$on('toggleColorScheme', (event, args) => { $scope.colorScheme = args.simpleColors ? "simple" : "normal"; - $window.localStorage.setItem(STORAGE_KEY_COLOR_MODE, args.simpleColors); }); $scope.$on('$destroy', function() { diff --git a/ui-modules/app-inspector/app/index.js b/ui-modules/app-inspector/app/index.js index 00848b22..7bc1e463 100755 --- a/ui-modules/app-inspector/app/index.js +++ b/ui-modules/app-inspector/app/index.js @@ -47,6 +47,7 @@ import entityEffector from "components/entity-effector/entity-effector.directive import entityPolicy from "components/entity-policy/entity-policy.directive"; import taskList from "components/task-list/task-list.directive"; import taskSunburst from "components/task-sunburst/task-sunburst.directive"; +import activitiesListAndKiltPanel from "views/main/inspect/activities/kilt-panel.directive"; import stream from "components/stream/stream.directive"; import adjunctsList from "components/adjuncts-list/adjuncts-list"; import workflowSteps from "components/workflow/workflow-steps.directive"; @@ -72,7 +73,7 @@ angular.module('brooklynAppInspector', [ngResource, ngCookies, ngSanitize, uiRou dropdownNested, brServerStatus, brIconGenerator, brInterstitialSpinner, brooklynModuleLinks, brSensitiveField, brooklynUserManagement, brYamlEditor, brWebNotifications, brExpandablePanel, 'xeditable', brLogbook, apiProvider, entityTree, loadingState, serverApi, - configSensorTable, entityEffector, entityPolicy, taskList, taskSunburst, stream, adjunctsList, + configSensorTable, entityEffector, entityPolicy, taskList, taskSunburst, activitiesListAndKiltPanel, stream, adjunctsList, workflowSteps, workflowStep, managementDetail, brandAngularJs]) .provider('catalogApi', catalogApiProvider) diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/activities.controller.js b/ui-modules/app-inspector/app/views/main/inspect/activities/activities.controller.js index 1a375aad..2e3847b8 100644 --- a/ui-modules/app-inspector/app/views/main/inspect/activities/activities.controller.js +++ b/ui-modules/app-inspector/app/views/main/inspect/activities/activities.controller.js @@ -44,25 +44,6 @@ function ActivitiesController($scope, $state, $stateParams, $log, $timeout, enti let observers = []; - vm.modalTemplate = modalTemplate; - - vm.isNonEmpty = Utils.isNonEmpty; - - vm.wideKilt = false; - vm.setWideKilt = function (newValue) { - vm.wideKilt = newValue; - // empirically delay of 100ms means it runs after the resize; - // seems there is no way to hook in to resize events so it is - // either this or a $scope.$watch with very low interval - $timeout(function() { $scope.$broadcast('resize') }, 100); - }; - - vm.simpleColors = window.localStorage.getItem(STORAGE_KEY_COLOR_MODE) || false; - vm.toggleColorScheme = function () { - vm.simpleColors = !vm.simpleColors; - $timeout(function() { $scope.$broadcast('toggleColorScheme', {simpleColors: vm.simpleColors}) }, 100); - }; - onStateChange(); $scope.$on('$stateChangeSuccess', (event, toState, toParams, fromState, fromParams, options)=> { // as the below only runs if we are the active state, we need to check @@ -173,19 +154,6 @@ function ActivitiesController($scope, $state, $stateParams, $log, $timeout, enti checkTasksLoadAttemptsFinished(); }); - // previously we loaded these separately, and the (now Deep) call above was previously entityActivities - // but the only difference is for cross-entitiy activities, and calling just Deep and using for both is more efficient -// entityApi.entityActivitiesDeep(applicationId, entityId).then((response) => { -// vm.activitiesDeep = response.data; -// observers.push(response.subscribe((response) => { -// vm.activitiesDeep = response.data; -// vm.error = undefined; -// })); -// }).catch((error) => { -// $log.warn('Error loading activity children deep for entity ' + entityId, error); -// vm.error = 'Cannot load activities (deep) for entity with ID: ' + entityId; -// }); - $scope.$on('$destroy', () => { observers.forEach((observer) => { observer.unsubscribe(); diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/activities.template.html b/ui-modules/app-inspector/app/views/main/inspect/activities/activities.template.html index e268f468..e8e66c1c 100644 --- a/ui-modules/app-inspector/app/views/main/inspect/activities/activities.template.html +++ b/ui-modules/app-inspector/app/views/main/inspect/activities/activities.template.html @@ -18,29 +18,10 @@ --> <ui-view class="activity-any"> - <div class="row"> - <div ng-class="{ 'col-md-12': true, 'col-lg-8': !vm.wideKilt && vm.isNonEmpty(vm.activitiesDeep), 'col-lg-12': vm.wideKilt || !vm.isNonEmpty(vm.activitiesDeep)}"> + <activities-list-and-kilt-panel activities="vm.activitiesDeep" focused-activities="vm.focusedActivities" global-filters="globalFilters"> <loading-state error="vm.error" ng-if="!vm.activities"></loading-state> <task-list context-key="{{ entityId }}" entity-id="entityId" task-type="{{filter}}" search="search" tasks="vm.activities" tasks-loaded="activitiesLoaded" filtered-callback="vm.onFilteredActivitiesChange" ng-if="vm.activities"></task-list> - </div> + </activities-list-and-kilt-panel> - <div ng-class="{ 'col-md-12': true, 'col-lg-4': !vm.wideKilt, 'col-lg-12': vm.wideKilt }" ng-if="vm.isNonEmpty(vm.activitiesDeep)"> - <expandable-panel expandable-template="vm.modalTemplate" class="panel-table"> - <heading uib-popover-template="'Colors.html'">Progress Map</heading> - <extra-buttons> - <button class="btn btn-link title-toolbar-item" ng-click="vm.toggleColorScheme()" - uib-tooltip="{{vm.simpleColors ? 'Color activities by task id' : 'All finished activities have the same color' }}"> - <i class="fa" ng-class="{ 'fa-toggle-off': vm.simpleColors, 'fa-toggle-on': !vm.simpleColors }"></i></button> - <button class="visible-lg-inline-block btn btn-link title-toolbar-item" ng-click="vm.setWideKilt(!vm.wideKilt)" - uib-tooltip="{{ vm.wideKilt ? 'Side-by-side' : 'Full-width' }}" tooltip-placement="top" tooltip-popup-delay="500" tooltip-append-to-body="true"> - <i class="fa" ng-class="{ 'fa-indent': vm.wideKilt, 'fa-outdent': !vm.wideKilt }"></i></button> - </extra-buttons> - <h4 class="text-center" ng-if="!vm.isNonEmpty(vm.activitiesDeep)">No tasks</h4> - <task-sunburst task-type="activity" tasks="vm.activitiesDeep" filtered-to="vm.focusedActivities" ng-if="vm.isNonEmpty(vm.activitiesDeep)" exclude-transient="globalFilters && globalFilters.transient && !globalFilters.transient.include"></task-sunburst> - </expandable-panel> - </div> - - </div> - </ui-view> diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.controller.js b/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.controller.js index a4f3f221..c27aef3a 100644 --- a/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.controller.js +++ b/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.controller.js @@ -18,7 +18,6 @@ */ import {HIDE_INTERSTITIAL_SPINNER_EVENT} from 'brooklyn-ui-utils/interstitial-spinner/interstitial-spinner'; import template from "./detail.template.html"; -import modalTemplate from './kilt.modal.template.html'; import {makeTaskStubFromWorkflowRecord} from "../activities.controller"; import jsyaml from 'js-yaml'; import runWorkflowModalTemplate from "../../run-workflow-modal.template.html"; @@ -31,6 +30,7 @@ export const detailState = { controller: ['$scope', '$state', '$stateParams', '$location', '$log', '$uibModal', '$timeout', '$sanitize', '$sce', 'activityApi', 'entityApi', 'brUtilsGeneral', DetailController], controllerAs: 'vm', } + function DetailController($scope, $state, $stateParams, $location, $log, $uibModal, $timeout, $sanitize, $sce, activityApi, entityApi, Utils) { $scope.$emit(HIDE_INTERSTITIAL_SPINNER_EVENT); @@ -56,8 +56,6 @@ function DetailController($scope, $state, $stateParams, $location, $log, $uibMod workflow: {}, }; - vm.modalTemplate = modalTemplate; - vm.wideKilt = false; vm.toggleOldWorkflowRunStepDetails = () => { $scope.showOldWorkflowRunStepDetails = !$scope.showOldWorkflowRunStepDetails; } $scope.actions = {}; @@ -391,7 +389,7 @@ function DetailController($scope, $state, $stateParams, $location, $log, $uibMod } }); - activityApi.activityDescendants(activityId, 8, true).then((response)=> { + activityApi.activityDescendants(activityId, 8).then((response)=> { vm.model.activitiesDeep = response.data; vm.error = undefined; onActivityLoadUpdate(); @@ -413,7 +411,6 @@ function DetailController($scope, $state, $stateParams, $location, $log, $uibMod } - vm.isNonEmpty = Utils.isNonEmpty; vm.yaml = (o) => typeof o === 'string' ? o : jsyaml.dump(o); vm.openInRunModel = function (workflowYaml) { @@ -460,14 +457,6 @@ function DetailController($scope, $state, $stateParams, $location, $log, $uibMod return Object.keys($scope.streamsById); }; - vm.setWideKilt = function (newValue) { - vm.wideKilt = newValue; - // empirically delay of 100ms means it runs after the resize; - // seems there is no way to hook in to resize events so it is - // either this or a $scope.$watch with very low interval - $timeout(function() { $scope.$broadcast('resize') }, 100); - }; - vm.stringify = (data) => JSON.stringify(data, null, 2); vm.stringifiedSize = (data) => JSON.stringify(data).length; @@ -506,8 +495,7 @@ function DetailController($scope, $state, $stateParams, $location, $log, $uibMod } vm.isNullish = _.isNil; - vm.isEmpty = x => vm.isNullish(x) || (x.length==0) || (typeof x === 'object' && !Object.keys(x).length); - vm.isNonEmpty = x => !vm.isEmpty(x); + vm.isNonEmpty = Utils.isNonEmpty; } export function getTaskWorkflowTag(task) { diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.template.html b/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.template.html index 947fc6f3..eb7e29a5 100644 --- a/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.template.html +++ b/ui-modules/app-inspector/app/views/main/inspect/activities/detail/detail.template.html @@ -366,22 +366,12 @@ <heading> Sub-tasks</heading> <div class="row"> - <div ng-class="{ 'col-md-12': true, 'col-lg-8': !vm.wideKilt && vm.isNonEmpty(vm.model.activitiesDeep), 'col-lg-12': vm.wideKilt || !vm.isNonEmpty(vm.model.activitiesDeep)}"> + <!-- children will include background non-subtasks, but deep will not; deep tasks are usually the more interesting --> + <activities-list-and-kilt-panel activities="vm.model.activitiesDeep" global-filters="globalFilters"> <task-list context-key="{{ vm.model.activityId }}" entity-id="vm.model.entityId" tasks="vm.model.activityChildrenAndDeep" parent-task-id="{{ vm.model.activityId }}" filtered-callback="vm.onFilteredActivitiesChange" tasks-loaded="vm.model.activityChildren && vm.model.activitiesDeep"></task-list> - </div> - <div ng-class="{ 'col-md-12': true, 'col-lg-4': !vm.wideKilt, 'col-lg-12': vm.wideKilt }" ng-if="vm.isNonEmpty(vm.model.activitiesDeep)"> - <expandable-panel expandable-template="vm.modalTemplate" class="panel-table"> - <heading>Progress Map</heading> - <extra-buttons> - <button class="visible-lg-inline-block btn btn-link title-toolbar-item" ng-click="vm.setWideKilt(!vm.wideKilt)" - uib-tooltip="{{ vm.wideKilt ? 'Side-by-side' : 'Full-width' }}" tooltip-placement="top" tooltip-popup-delay="500" tooltip-append-to-body="true"> - <i class="fa" ng-class="{ 'fa-indent': vm.wideKilt, 'fa-outdent': !vm.wideKilt }"></i></button> - </extra-buttons> - <h4 class="text-center" ng-if="!vm.isNonEmpty(vm.model.activitiesDeep)">No tasks</h4> - <task-sunburst task-type="activity" tasks="vm.model.activitiesDeep" exclude-transient="globalFilters && globalFilters.transient && !globalFilters.transient.include" ng-if="vm.isNonEmpty(vm.model.activitiesDeep)"></task-sunburst> - </expandable-panel> - </div> + </activities-list-and-kilt-panel> + </div> </br-collapsible> diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/detail/kilt.modal.template.html b/ui-modules/app-inspector/app/views/main/inspect/activities/detail/kilt.modal.template.html deleted file mode 100644 index ec5ad31c..00000000 --- a/ui-modules/app-inspector/app/views/main/inspect/activities/detail/kilt.modal.template.html +++ /dev/null @@ -1,26 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<div class="modal-header"> - <br-svg type="close" class="pull-right" ng-click="$dismiss('Close modal')"></br-svg> - <h3 class="modal-title">Progress Map</h3> -</div> -<div class="modal-body"> - <h4 class="text-center" ng-if="!vm.isNonEmpty(vm.model.activitiesDeep)">No tasks</h4> - <task-sunburst task-type="activity" tasks="vm.model.activitiesDeep" ng-if="vm.isNonEmpty(vm.model.activitiesDeep)"></task-sunburst> -</div> diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/kilt-panel.directive.js b/ui-modules/app-inspector/app/views/main/inspect/activities/kilt-panel.directive.js new file mode 100644 index 00000000..185df751 --- /dev/null +++ b/ui-modules/app-inspector/app/views/main/inspect/activities/kilt-panel.directive.js @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import angular from "angular"; +import {HIDE_INTERSTITIAL_SPINNER_EVENT} from 'brooklyn-ui-utils/interstitial-spinner/interstitial-spinner'; +import template from './kilt-panel.template.html'; +import modalTemplate from './kilt.modal.template.html'; +import {STORAGE_KEY_COLOR_MODE} from "../../../../components/task-sunburst/task-sunburst.directive"; + +const MODULE_NAME = 'activities.kilt-panel'; + +angular.module(MODULE_NAME, []) + .directive('activitiesListAndKiltPanel', activitiesListAndKiltPanelDirective) + +export default MODULE_NAME; + + +export function activitiesListAndKiltPanelDirective() { + return { + template: template, + restrict: 'E', + transclude: true, + scope: { + activities: '=', + focusedActivities: '=', + globalFilters: '=', + }, + controller: ['$scope', '$window', '$state', '$stateParams', '$log', '$timeout', 'brUtilsGeneral', controller], + controllerAs: 'vm' + }; + + function controller($scope, $window, $state, $stateParams, $log, $timeout, Utils) { + $scope.$emit(HIDE_INTERSTITIAL_SPINNER_EVENT); + let vm = this; + vm.isNonEmpty = Utils.isNonEmpty; + vm.modalTemplate = modalTemplate; + + vm.wideKilt = false; + vm.setWideKilt = function (newValue) { + vm.wideKilt = newValue; + // empirically delay of 100ms means it runs after the resize; + // seems there is no way to hook in to resize events so it is + // either this or a $scope.$watch with very low interval + $timeout(function () { + $scope.$broadcast('resize') + }, 100); + }; + + vm.simpleColors = window.localStorage.getItem(STORAGE_KEY_COLOR_MODE) || false; + vm.toggleColorScheme = function () { + vm.simpleColors = !vm.simpleColors; + $window.localStorage.setItem(STORAGE_KEY_COLOR_MODE, vm.simpleColors); + $timeout(function () { + $scope.$broadcast('toggleColorScheme', {simpleColors: vm.simpleColors}) + }, 100); + }; + } + +} \ No newline at end of file diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/activities.template.html b/ui-modules/app-inspector/app/views/main/inspect/activities/kilt-panel.template.html similarity index 67% copy from ui-modules/app-inspector/app/views/main/inspect/activities/activities.template.html copy to ui-modules/app-inspector/app/views/main/inspect/activities/kilt-panel.template.html index e268f468..07ccd273 100644 --- a/ui-modules/app-inspector/app/views/main/inspect/activities/activities.template.html +++ b/ui-modules/app-inspector/app/views/main/inspect/activities/kilt-panel.template.html @@ -16,15 +16,11 @@ specific language governing permissions and limitations under the License. --> -<ui-view class="activity-any"> - - <div class="row"> - <div ng-class="{ 'col-md-12': true, 'col-lg-8': !vm.wideKilt && vm.isNonEmpty(vm.activitiesDeep), 'col-lg-12': vm.wideKilt || !vm.isNonEmpty(vm.activitiesDeep)}"> - <loading-state error="vm.error" ng-if="!vm.activities"></loading-state> - <task-list context-key="{{ entityId }}" entity-id="entityId" task-type="{{filter}}" search="search" tasks="vm.activities" tasks-loaded="activitiesLoaded" filtered-callback="vm.onFilteredActivitiesChange" ng-if="vm.activities"></task-list> +<div class="row"> + <div ng-class="{ 'col-md-12': true, 'col-lg-8': !vm.wideKilt && vm.isNonEmpty(activities), 'col-lg-12': vm.wideKilt || !vm.isNonEmpty(activities)}" ng-transclude> </div> - <div ng-class="{ 'col-md-12': true, 'col-lg-4': !vm.wideKilt, 'col-lg-12': vm.wideKilt }" ng-if="vm.isNonEmpty(vm.activitiesDeep)"> + <div ng-class="{ 'col-md-12': true, 'col-lg-4': !vm.wideKilt, 'col-lg-12': vm.wideKilt }" ng-if="vm.isNonEmpty(activities)"> <expandable-panel expandable-template="vm.modalTemplate" class="panel-table"> <heading uib-popover-template="'Colors.html'">Progress Map</heading> <extra-buttons> @@ -35,12 +31,10 @@ uib-tooltip="{{ vm.wideKilt ? 'Side-by-side' : 'Full-width' }}" tooltip-placement="top" tooltip-popup-delay="500" tooltip-append-to-body="true"> <i class="fa" ng-class="{ 'fa-indent': vm.wideKilt, 'fa-outdent': !vm.wideKilt }"></i></button> </extra-buttons> - <h4 class="text-center" ng-if="!vm.isNonEmpty(vm.activitiesDeep)">No tasks</h4> - <task-sunburst task-type="activity" tasks="vm.activitiesDeep" filtered-to="vm.focusedActivities" ng-if="vm.isNonEmpty(vm.activitiesDeep)" exclude-transient="globalFilters && globalFilters.transient && !globalFilters.transient.include"></task-sunburst> + <h4 class="text-center" ng-if="!vm.isNonEmpty(activities)">No tasks</h4> + <task-sunburst task-type="activity" tasks="activities" filtered-to="focusedActivities" ng-if="vm.isNonEmpty(activities)" exclude-transient="globalFilters && globalFilters.transient && !globalFilters.transient.include"></task-sunburst> </expandable-panel> </div> - - </div> - -</ui-view> + +</div> diff --git a/ui-modules/app-inspector/app/views/main/inspect/activities/kilt.modal.template.html b/ui-modules/app-inspector/app/views/main/inspect/activities/kilt.modal.template.html index 649fa7fa..a39f2aeb 100644 --- a/ui-modules/app-inspector/app/views/main/inspect/activities/kilt.modal.template.html +++ b/ui-modules/app-inspector/app/views/main/inspect/activities/kilt.modal.template.html @@ -21,6 +21,6 @@ <h3 class="modal-title">Progress Map</h3> </div> <div class="modal-body"> - <h4 class="text-center" ng-if="!vm.activitiesDeep || vm.activitiesDeep.length === 0">No tasks</h4> - <task-sunburst task-type="activity" tasks="vm.activitiesDeep" ng-if="vm.activitiesDeep && vm.activitiesDeep.length > 0"></task-sunburst> + <h4 class="text-center" ng-if="!activities || activities.length === 0">No tasks</h4> + <task-sunburst task-type="activity" tasks="activities" filtered-to="focusedActivities" ng-if="vm.isNonEmpty(activities)" exclude-transient="globalFilters && globalFilters.transient && !globalFilters.transient.include"></task-sunburst> </div>