[bitbake-devel] [PATCH 15/18] toaster: projectapp Add links to the imported layers notify

Alex DAMIAN alexandru.damian at intel.com
Fri Dec 12 11:45:14 UTC 2014


From: Michael Wood <michael.g.wood at intel.com>

Adds links to layer details for each of the layers that has been added
to the project.

Signed-off-by: Michael Wood <michael.g.wood at intel.com>
---
 lib/toaster/toastergui/static/js/importlayer.js |  3 +--
 lib/toaster/toastergui/static/js/projectapp.js  | 29 ++++++++++++++++++-------
 lib/toaster/toastergui/templates/project.html   |  3 ++-
 lib/toaster/toastergui/views.py                 |  4 ++--
 4 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/lib/toaster/toastergui/static/js/importlayer.js b/lib/toaster/toastergui/static/js/importlayer.js
index 34dbcd9..5748efd 100644
--- a/lib/toaster/toastergui/static/js/importlayer.js
+++ b/lib/toaster/toastergui/static/js/importlayer.js
@@ -152,9 +152,8 @@ function importLayerPageInit (ctx) {
               show_error_message(data, layerData);
               console.log(data.error);
             } else {
-              layerData.layersAdded = data.layers_added;
               /* Success layer import now go to the project page */
-              $.cookie('layer-imported-alert', JSON.stringify(layerData), { path: '/'});
+              $.cookie('layer-imported-alert', JSON.stringify(data), { path: '/'});
               window.location.replace(ctx.projectPageUrl+'#/layerimported');
             }
           },
diff --git a/lib/toaster/toastergui/static/js/projectapp.js b/lib/toaster/toastergui/static/js/projectapp.js
index 94c24f4..741038d 100644
--- a/lib/toaster/toastergui/static/js/projectapp.js
+++ b/lib/toaster/toastergui/static/js/projectapp.js
@@ -578,18 +578,31 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
           if (!imported)
             return;
 
-          if (imported.layersAdded.length == 0) {
-            text = "You have imported <strong>"+imported.name+
-              "</strong> and added it to your project.";
+          if (imported.deps_added.length == 0) {
+            text = "You have imported <strong><a href=\""+$scope.urls.layer+
+              imported.imported_layer.id+"\">"+imported.imported_layer.name+
+              "</a></strong> and added it to your project.";
           } else {
-            text = "You have imported <strong>"+imported.name+
-              "</strong> and added <strong>"+imported.layersAdded.length+
-              "</strong> layers to your project. <strong>"+
-              imported.layersAdded.join(", ")+"</strong>";
+            var links = "<a href=\""+$scope.urls.layer+
+              imported.imported_layer.id+"\">"+imported.imported_layer.name+
+              "</a>, ";
+
+            imported.deps_added.map (function(item, index){
+              links +="<a href=\""+$scope.urls.layer+item.id+"\" >"+item.name+
+                "</a>";
+              /*If we're at the last element we don't want the trailing comma */
+              if (imported.deps_added[index+1] != undefined)
+                links += ", ";
+            });
+
+            /* Length + 1 here to do deps + the imported layer */
+            text = "You have imported <strong><a href=\""+$scope.urls.layer+
+              imported.imported_layer.id+"\">"+imported.imported_layer.name+
+              "</a></strong> and added <strong>"+(imported.deps_added.length+1)+
+              "</strong> layers to your project. <strong>"+links+"</strong>";
           }
 
             $scope.displayAlert($scope.zone2alerts, text, "alert-info");
-
             // This doesn't work
             $cookieStore.remove("layer-imported-alert");
             //use jquery plugin instead
diff --git a/lib/toaster/toastergui/templates/project.html b/lib/toaster/toastergui/templates/project.html
index 113e382..2979db7 100644
--- a/lib/toaster/toastergui/templates/project.html
+++ b/lib/toaster/toastergui/templates/project.html
@@ -382,7 +382,8 @@ angular.element(document).ready(function() {
   scope.urls.xhr_datatypeahead = "{% url 'xhr_datatypeahead' %}";
   scope.urls.layers = "{% url 'layers' %}";
   scope.urls.targets = "{% url 'targets' %}";
-  scope.urls.importlayer = "{% url 'importlayer'%}"
+  scope.urls.importlayer = "{% url 'importlayer'%}";
+  scope.urls.layer = "{% url 'layerdetails' %}";
   scope.project = {{prj|json}};
   scope.builds = {{builds|json}};
   scope.layers = {{layers|json}};
diff --git a/lib/toaster/toastergui/views.py b/lib/toaster/toastergui/views.py
index dd43080..679c1e9 100755
--- a/lib/toaster/toastergui/views.py
+++ b/lib/toaster/toastergui/views.py
@@ -2322,7 +2322,7 @@ if toastermain.settings.MANAGED:
                             continue
 
                         if prj_layer_created:
-                            layers_added.append(Layer.objects.get(id=layer_dep_obj.layer_id).name)
+                            layers_added.append({'id': layer_dep_obj.id, 'name': Layer.objects.get(id=layer_dep_obj.layer_id).name})
 
 
                 # If an old layer version exists in our project then remove it
@@ -2342,7 +2342,7 @@ if toastermain.settings.MANAGED:
                 return HttpResponse(jsonfilter({"error": "Uncaught error: Could not create layer version"}), content_type = "application/json")
 
 
-        return HttpResponse(jsonfilter({"error": "ok", "layers_added": layers_added}), content_type = "application/json")
+        return HttpResponse(jsonfilter({"error": "ok", "imported_layer" : { "name" : layer.name, "id": layer_version.id },  "deps_added": layers_added }), content_type = "application/json")
 
 
 
-- 
1.9.1




More information about the bitbake-devel mailing list