diff options
author | Michael Wood <michael.g.wood@intel.com> | 2016-07-06 18:22:38 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-08 09:57:29 +0100 |
commit | 8813726f1d5ea1d78fced7fe52abdf826e529e62 (patch) | |
tree | 073689032966641d0f12415002572de1f1d08e72 /bitbake | |
parent | e1ba2fd331b7f937b8ddf3e83389df5caf33d9e8 (diff) | |
download | openembedded-core-contrib-8813726f1d5ea1d78fced7fe52abdf826e529e62.tar.gz |
bitbake: toaster: add Layer delete front end feature to layerdetails
Add the front end feature to delete a layer from the layer details page.
[YOCO #9184]
(Bitbake rev: 91815229f60eb9deba7d299f05c69b52ff1df59c)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
4 files changed, 58 insertions, 2 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/js/layerdetails.js b/bitbake/lib/toaster/toastergui/static/js/layerdetails.js index a56087b738..683486e53b 100644 --- a/bitbake/lib/toaster/toastergui/static/js/layerdetails.js +++ b/bitbake/lib/toaster/toastergui/static/js/layerdetails.js @@ -397,6 +397,26 @@ function layerDetailsPageInit (ctx) { $(this).parents("form").submit(); }); + $("#layer-delete-confirmed").click(function(){ + $.cookie("layer-deleted", ctx.layerVersion.name, { path: '/'}); + + $.ajax({ + type: "DELETE", + url: ctx.xhrUpdateLayerUrl, + headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, + success: function(data) { + if (data.error != "ok") { + console.warn(data.error); + } else { + window.location = data.redirect + "?notify=layer-deleted"; + } + }, + error: function(data) { + console.warn("Call failed"); + console.warn(data); + } + }); + }); layerDepsList.find(".glyphicon-trash").click(layerDepRemoveClick); layerDepsList.find("a").tooltip(); diff --git a/bitbake/lib/toaster/toastergui/static/js/projectpage.js b/bitbake/lib/toaster/toastergui/static/js/projectpage.js index 6d92490ba2..df79849e37 100644 --- a/bitbake/lib/toaster/toastergui/static/js/projectpage.js +++ b/bitbake/lib/toaster/toastergui/static/js/projectpage.js @@ -58,12 +58,30 @@ function projectPageInit(ctx) { case 'layer-imported': layerImportedNotification(); break; + case 'layer-deleted': + layerDeletedNotification(); default: break; } } })(); + /* Layer deleted notification */ + function layerDeletedNotification(){ + var layer = $.cookie("layer-deleted"); + + if (!layer) + return; + + var message = "You have deleted <strong>1</strong> layer from your "; + message += "project: <strong>" + layer + "</strong>"; + + libtoaster.showChangeNotification(message); + + $.removeCookie("layer-deleted", { path: "/"}); + } + + /* Layer imported notification */ function layerImportedNotification(){ var imported = $.cookie("layer-imported-alert"); diff --git a/bitbake/lib/toaster/toastergui/templates/layerdetails.html b/bitbake/lib/toaster/toastergui/templates/layerdetails.html index 143ec25dd7..4b51d1a39c 100644 --- a/bitbake/lib/toaster/toastergui/templates/layerdetails.html +++ b/bitbake/lib/toaster/toastergui/templates/layerdetails.html @@ -6,6 +6,20 @@ {% block title %} {{layerversion.layer.name}} - {{project.name}} - Toaster {% endblock %} {% block pagecontent %} +<div id="delete-layer-modal" class="modal fade" tabindex="-1" role="dialog"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="modal-body"> + Are you sure you want to delete the <strong>{{layerversion.layer.name}}</strong> layer? + </div> + <div class="modal-footer"> + <button type="button" id="layer-delete-confirmed" class="btn btn-primary">Delete</button> + <button type="button" class="btn btn-default btn-link" data-dismiss="modal">Cancel</button> + </div> + </div> + </div> +</div> + <div class="row"> <div class="col-md-12"> <ul class="breadcrumb"> @@ -44,7 +58,7 @@ $(document).ready(function(){ var ctx = { - xhrUpdateLayerUrl : "{% url 'xhr_layer' layerversion.pk %}", + xhrUpdateLayerUrl : "{% url 'xhr_layer' project.id layerversion.pk %}", layerVersion : { name : "{{layerversion.layer.name}}", id : {{layerversion.id}}, @@ -271,6 +285,10 @@ </dd> {% endif %} </dl> + {% if layerversion.layer_source_id and layerversion.layer_source.sourcetype == layerversion.layer_source.TYPE_IMPORTED %} + <i class="icon-trash text-danger"></i> + <a href="#delete-layer-modal" role="button" class="text-danger" data-toggle="modal" data-target="#delete-layer-modal">Delete {{layerversion.layer.name}}</a> + {% endif %} </div> </div> </div> diff --git a/bitbake/lib/toaster/toastergui/urls.py b/bitbake/lib/toaster/toastergui/urls.py index 15b1063c59..1c0ccbb2e1 100644 --- a/bitbake/lib/toaster/toastergui/urls.py +++ b/bitbake/lib/toaster/toastergui/urls.py @@ -191,7 +191,7 @@ urlpatterns = patterns('toastergui.views', url(r'^xhr_importlayer/$', 'xhr_importlayer', name='xhr_importlayer'), - url(r'^xhr_layer/(?P<layerversion_id>\d+)$', + url(r'^xhr_layer/(?P<pid>\d+)/(?P<layerversion_id>\d+)$', api.XhrLayer.as_view(), name='xhr_layer'), |