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 4dcf3528cf0262cc02209cf4b77d06df2136366a
Author: Alex Heneveld <[email protected]>
AuthorDate: Sat Jun 17 14:44:07 2023 +0100

    support lookup of ancestors for breaadcrumbs
    
    but data not available so not used
---
 .../breadcrumb-navigation/breadcrumb-navigation.js | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git 
a/ui-modules/app-inspector/app/components/breadcrumb-navigation/breadcrumb-navigation.js
 
b/ui-modules/app-inspector/app/components/breadcrumb-navigation/breadcrumb-navigation.js
index aa1d14a7..128f0831 100644
--- 
a/ui-modules/app-inspector/app/components/breadcrumb-navigation/breadcrumb-navigation.js
+++ 
b/ui-modules/app-inspector/app/components/breadcrumb-navigation/breadcrumb-navigation.js
@@ -32,7 +32,8 @@ export function breadcrumbNavigation($compile, activityApi) {
         template: template,
         scope: {
             entityId: "@",
-            parentId: "@"
+            parentId: "@",
+            activitiesKnown: "@?"
         },
         link: link
     };
@@ -45,14 +46,23 @@ export function breadcrumbNavigation($compile, activityApi) 
{
                 parentId: $scope.parentId
             };
 
-            activityApi.activity($scope.parentId).then((response)=> {
-                $scope.breadcrumb.parentName = response.data.displayName;
-                if (response.data.submittedByTask) {
-                    $scope.breadcrumb.id = 
response.data.submittedByTask.metadata.id;
-                    let el = $compile('<li breadcrumb-navigation 
parent-id="{{breadcrumb.id}}" 
entity-id="{{breadcrumb.entityId}}"></li>')($scope);
+            function showParent(task) {
+                $scope.breadcrumb.parentName = task.displayName;
+                if (task.submittedByTask) {
+                    $scope.breadcrumb.id = task.submittedByTask.metadata.id;
+                    let el = $compile('<li breadcrumb-navigation 
parent-id="{{breadcrumb.id}}" entity-id="{{breadcrumb.entityId}}" 
activities-known="{{activitiesKnown}}"></li>')($scope);
                     $element.parent().prepend(el);
                 }
                 $scope.breadcrumb.loading = false;
+            }
+
+            // would be nice to have activities cached so we don't need to 
load; but we don't on the detail view,
+            // and the load of ancestors is pretty fast so this isn't a big 
issue
+            const parentActivity = $scope.activitiesKnown && 
$scope.activitiesKnown[$scope.parentId];
+            if (parentActivity) showParent(parentActivity);
+            // else activityApi.activity($scope.parentId).then((response)=> 
showParent(response.data));
+            else activityApi.activity($scope.parentId).then((response)=> {
+                showParent(response.data);
             });
         }
     }

Reply via email to