[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