bitbake: toaster: only show "New custom image" button for builds with image targets
Add a has_image_targets() method to Build, and use that to hide the "New custom image" button on the build dashboard if a build has no targets which build images. [YOCTO #9514] (Bitbake rev: 3c4b053e44ea512ef2ced67289a7b0161db6ce9b) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
587275eefd
commit
07a58a8944
|
@ -449,6 +449,19 @@ class Build(models.Model):
|
|||
break
|
||||
return has_images
|
||||
|
||||
def has_image_targets(self):
|
||||
"""
|
||||
Returns True if a build has any targets which were built from
|
||||
image recipes.
|
||||
"""
|
||||
targets = Target.objects.filter(build_id=self.id)
|
||||
has_image_targets = False
|
||||
for target in targets:
|
||||
if target.is_image:
|
||||
has_image_targets = True
|
||||
break
|
||||
return has_image_targets
|
||||
|
||||
def get_image_file_extensions(self):
|
||||
"""
|
||||
Get string of file name extensions for images produced by this build;
|
||||
|
|
|
@ -117,30 +117,32 @@
|
|||
{% endwith %}
|
||||
|
||||
<!-- new custom image from image recipe in this build -->
|
||||
<button class="btn btn-default btn-block navbar-btn" data-role="new-custom-image-trigger">New custom image</button>
|
||||
{% include 'newcustomimage_modal.html' %}
|
||||
<script>
|
||||
// imageRecipes includes both custom image recipes and built-in
|
||||
// image recipes, any of which can be used as the basis for a
|
||||
// new custom image
|
||||
var imageRecipes = {{ build.get_image_recipes | objects_to_dictionaries:"id,name" | json }};
|
||||
{% if build.has_image_targets %}
|
||||
<button class="btn btn-default btn-block navbar-btn" data-role="new-custom-image-trigger">New custom image</button>
|
||||
{% include 'newcustomimage_modal.html' %}
|
||||
<script>
|
||||
// imageRecipes includes both custom image recipes and built-in
|
||||
// image recipes, any of which can be used as the basis for a
|
||||
// new custom image
|
||||
var imageRecipes = {{ build.get_image_recipes | objects_to_dictionaries:"id,name" | json }};
|
||||
|
||||
$(document).ready(function () {
|
||||
var newCustomImageModal = $('#new-custom-image-modal');
|
||||
var newCustomImageTrigger = $('[data-role="new-custom-image-trigger"]');
|
||||
$(document).ready(function () {
|
||||
var newCustomImageModal = $('#new-custom-image-modal');
|
||||
var newCustomImageTrigger = $('[data-role="new-custom-image-trigger"]');
|
||||
|
||||
// show create new custom image modal to select an image built
|
||||
// during this build as the basis for the custom recipe
|
||||
newCustomImageTrigger.click(function () {
|
||||
if (!imageRecipes.length) {
|
||||
return;
|
||||
}
|
||||
// show create new custom image modal to select an image built
|
||||
// during this build as the basis for the custom recipe
|
||||
newCustomImageTrigger.click(function () {
|
||||
if (!imageRecipes.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
newCustomImageModalSetRecipes(imageRecipes);
|
||||
newCustomImageModal.modal('show');
|
||||
newCustomImageModalSetRecipes(imageRecipes);
|
||||
newCustomImageModal.modal('show');
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue