This is an automated email from the ASF dual-hosted git repository. heneveld pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-ui.git
commit d14c56c011d2d31565d9c67b3ad3b5b3b6cbcafe Author: Alex Heneveld <[email protected]> AuthorDate: Thu Oct 6 14:54:05 2022 +0100 update active tasks and workflows more often --- .../inspect/activities/activities.controller.js | 23 ---------------------- .../inspect/activities/detail/detail.controller.js | 9 +++------ .../providers/api-observer-interceptor.provider.js | 6 +++++- ui-modules/utils/utils/momentp.js | 1 + 4 files changed, 9 insertions(+), 30 deletions(-) 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 39f0622b..3e561ee8 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 @@ -86,7 +86,6 @@ function ActivitiesController($scope, $state, $stateParams, $log, $timeout, enti newActivity.isWorkflowOldReplay = wft.workflowId !== wft.taskId; }); }); - newActivitiesMap['extra'] = makeTaskStubMock("Extra workflow", "extra", applicationId, entityId); vm.activitiesMap = newActivitiesMap; vm.activities = Object.values(vm.activitiesMap); @@ -166,25 +165,3 @@ export function makeTaskStubFromWorkflowRecord(wf, wft) { ], }; }; - -// for testing only -export function makeTaskStubMock(name, id, applicationId, entityId) { - return { - id, - displayName: name, - entityId: entityId, - isError: true, - currentStatus: "Unavailable", - submitTimeUtc: Date.now()-5000, - startTimeUtc: Date.now()-4000, - endTimeUtc: Date.now()-1000, - tags: [ - "WORKFLOW", - { - workflowId: 'extra', - applicationId: applicationId, - entityId: entityId, - }, - ], - }; -} 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 b8dfc022..a106bc04 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 @@ -19,7 +19,7 @@ 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, makeTaskStubMock} from "../activities.controller"; +import {makeTaskStubFromWorkflowRecord} from "../activities.controller"; export const detailState = { name: 'main.inspect.activities.detail', @@ -92,6 +92,7 @@ function DetailController($scope, $state, $stateParams, $log, $uibModal, $timeou } if (!vm.actions.workflowReplays.length) delete vm.actions['workflowReplays']; + if (vm.model.workflow.data.status === 'RUNNING') wResponse.interval(1000); observers.push(wResponse.subscribe((wResponse2)=> { // change the workflow object so widgets get refreshed vm.model.workflow = { ...vm.model.workflow, data: wResponse2.data }; @@ -139,6 +140,7 @@ function DetailController($scope, $state, $stateParams, $log, $uibModal, $timeou } vm.error = undefined; + if (!vm.model.activity.endTimeUtc || vm.model.activity.endTimeUtc<0) response.interval(1000); observers.push(response.subscribe((response)=> { vm.model.activity = response.data; vm.error = undefined; @@ -171,11 +173,6 @@ function DetailController($scope, $state, $stateParams, $log, $uibModal, $timeou }).catch(error2 => { $log.debug("ID "+activityId+" does not correspond to workflow either", error2); - - // vm.error = $sce.trustAsHtml('Mock data for workflow task <b>' + _.escape(activityId) + '</b>.'); - // - // vm.model.activity = makeTaskStubMock("Extra workflow task", "extra", applicationId, entityId); - // vm.model.workflow.tag = findWorkflowTag(vm.model.activity); }); }); diff --git a/ui-modules/utils/providers/api-observer-interceptor.provider.js b/ui-modules/utils/providers/api-observer-interceptor.provider.js index 2720b663..a5ab9f4b 100644 --- a/ui-modules/utils/providers/api-observer-interceptor.provider.js +++ b/ui-modules/utils/providers/api-observer-interceptor.provider.js @@ -48,9 +48,13 @@ export function apiObserverInterceptorProvider() { function doDriveBy(response, error = false) { if (response.config.hasOwnProperty(OBSERVABLE) && response.config[OBSERVABLE]) { + response.clock = clock; + response.interval = (interval) => { + response.clock = Observable.interval(interval); + } response.subscribe = (next, error, complete)=> { if (!OBSERVER_CACHE.has(response.config.url)) { - OBSERVER_CACHE.set(response.config.url, clock.mapTo(coldObservableFactory(response.config)).exhaust().share()); + OBSERVER_CACHE.set(response.config.url, response.clock.mapTo(coldObservableFactory(response.config)).exhaust().share()); } return OBSERVER_CACHE.get(response.config.url).subscribe(next, error, complete); } diff --git a/ui-modules/utils/utils/momentp.js b/ui-modules/utils/utils/momentp.js index d8691736..a0beb714 100644 --- a/ui-modules/utils/utils/momentp.js +++ b/ui-modules/utils/utils/momentp.js @@ -22,6 +22,7 @@ import {capitalize, rounded} from "./general"; export class MomentPrecise { + // means all time-ago round to 5s which is a nicer UX than constantly updating (even if occasionally misleading) precisionForFromNow = 5000; summaryForBelowPrecisionThreshhold = "a few seconds"; capitalized = false;
