]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
bitbake: toaster: customrecipe Add frontend feature to delete custom image recipe
authorMichael Wood <michael.g.wood@intel.com>
Mon, 26 Sep 2016 10:59:36 +0000 (13:59 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 30 Sep 2016 15:52:22 +0000 (16:52 +0100)
[YOCTO #8132]

(Bitbake rev: 19aee3dd7fa290e12216f9a5cf25a8b2c8d80d20)

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/toaster/toastergui/static/js/customrecipe.js
bitbake/lib/toaster/toastergui/templates/customrecipe.html

index 505a81ce60b4a481cdb22ea0debb1731d30a64b4..9ea9602881ad80e3351f77564742a3e369e92663 100644 (file)
@@ -281,4 +281,36 @@ function customRecipePageInit(ctx) {
         window.location.replace(libtoaster.ctx.projectBuildsUrl);
     });
   });
+
+  $("#delete-custom-recipe-confirmed").click(function(e){
+    e.preventDefault();
+    libtoaster.disableAjaxLoadingTimer();
+    $(this).find('[data-role="submit-state"]').hide();
+    $(this).find('[data-role="loading-state"]').show();
+    $(this).attr("disabled", "disabled");
+
+    $.ajax({
+        type: 'DELETE',
+        url: ctx.recipe.xhrCustomRecipeUrl,
+        headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+        success: function (data) {
+          if (data.error !== "ok") {
+            console.warn(data.error);
+          } else {
+            var msg = $('<span>You have deleted <strong>1</strong> custom image: <strong id="deleted-custom-image-name"></strong></span>');
+            msg.find("#deleted-custom-image-name").text(ctx.recipe.name);
+
+            libtoaster.setNotification("custom-image-recipe-deleted",
+                                       msg.html());
+
+            window.location.replace(data.gotoUrl);
+          }
+        },
+        error: function (data) {
+          console.warn(data);
+        }
+    });
+  });
+
+
 }
index 8b61fb7f7ce0776f28cbb10d02bb54956f10955a..945fc9797787432c4c528812b172edc6769570f4 100644 (file)
@@ -28,6 +28,7 @@
         includedPackagesCount: {{recipe.includes_set.count}},
         baseRecipeId: {{recipe.base_recipe.pk}},
         xhrPackageListUrl: "{% url 'xhr_customrecipe_packages' recipe.pk %}",
+        xhrCustomRecipeUrl: "{% url 'xhr_customrecipe_id' recipe.pk %}",
       }
     };
 
     }
   });
 </script>
+
+<!-- Delete recipe modal -->
+<div id="delete-recipe-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
+  <div class="modal-dialog">
+    <div class="modal-content">
+      <div class="modal-body">
+        <p>Are you sure you want to delete the <strong>{{recipe.name}}</strong>
+         custom image?</p>
+      </div>
+      <div class="modal-footer">
+        <button type="button" class="btn btn-primary" id="delete-custom-recipe-confirmed">
+          <span data-role="submit-state">Delete custom image</span>
+          <span data-role="loading-state" style="display:none">
+            <span class="fa-pulse">
+            <i class="fa-pulse icon-spinner"></i>
+          </span>
+            &nbsp;Deleting custom image...
+          </span>
+        </button>
+        <button type="button" class="btn btn-link" data-dismiss="modal">Cancel</button>
+      </div>
+    </div><!-- /.modal-content -->
+  </div><!-- /.modal-dialog -->
+</div><!-- /.modal -->
+<!-- end delete recipe modal -->
+
 <!-- package dependencies modal -->
 <div id="package-deps-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
   <div class="modal-dialog">
         <span class="glyphicon glyphicon-question-sign get-help" title="All custom images have their license set to MIT. This is because the license applies only to the recipe (.bb) file, and not to the image itself. To see which licenses apply to the image you must check the license manifest generated with each build"></i>
         </dd>
       </dl>
-      <!--
-        <i class="icon-trash no-tooltip"></i>
-        <a href="#" class="error" id="delete">Delete custom image</a>
-      -->
+      <i class="icon-trash text-danger"></i>
+      <a href="#delete-recipe-modal" data-target="#delete-recipe-modal" data-toggle="modal" class="text-danger" id="delete-recipe">
+        Delete custom image
+      </a>
     </div>
   </div>
 </div>