aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDavid Reyna <David.Reyna@windriver.com>2017-09-14 16:58:15 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-09-17 23:23:41 +0100
commit04bd9c9341e8390a7923fa0122cd4cb0befa569f (patch)
tree6de3cdcf9421543d9153176f54b8aac9c395d234 /lib
parent013047484a03185c0ce281c53c1db4949cdc4e69 (diff)
downloadbitbake-04bd9c9341e8390a7923fa0122cd4cb0befa569f.tar.gz
bitbake-04bd9c9341e8390a7923fa0122cd4cb0befa569f.tar.bz2
bitbake-04bd9c9341e8390a7923fa0122cd4cb0befa569f.zip
toaster: reserve HEAD from imported layers
The HEAD reference in Toaster layers are reserved for the "Local Yocto Project" layers, stored at the top directory. Imported layers are not allowed to use this since they are managed differently - for example the 'remotes' will collide. Fix the add layer handler to not drop the data fields when it is a git repo. Explicitly inform the user when an internal Toaster error is returned via AJAX, so that they know why clicking the layer add button did not do anything. [YOCTO #9924] Signed-off-by: David Reyna <David.Reyna@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/toaster/toastergui/api.py6
-rw-r--r--lib/toaster/toastergui/static/js/importlayer.js17
-rw-r--r--lib/toaster/toastergui/templates/importlayer.html2
3 files changed, 18 insertions, 7 deletions
diff --git a/lib/toaster/toastergui/api.py b/lib/toaster/toastergui/api.py
index cb8f0f31..ab6ba69e 100644
--- a/lib/toaster/toastergui/api.py
+++ b/lib/toaster/toastergui/api.py
@@ -293,14 +293,14 @@ class XhrLayer(View):
layer_source=LayerSource.TYPE_IMPORTED)
# Local layer
- if 'local_source_dir' in layer_data:
+ if ('local_source_dir' in layer_data) and layer.local_source_dir:
layer.local_source_dir = layer_data['local_source_dir']
# git layer
elif 'vcs_url' in layer_data:
layer.vcs_url = layer_data['vcs_url']
layer_version.dirpath = layer_data['dir_path']
- layer_version.commit = layer_data['get_ref']
- layer_version.branch = layer_data['get_ref']
+ layer_version.commit = layer_data['git_ref']
+ layer_version.branch = layer_data['git_ref']
layer.save()
layer_version.save()
diff --git a/lib/toaster/toastergui/static/js/importlayer.js b/lib/toaster/toastergui/static/js/importlayer.js
index b3f094e6..59652b9a 100644
--- a/lib/toaster/toastergui/static/js/importlayer.js
+++ b/lib/toaster/toastergui/static/js/importlayer.js
@@ -176,6 +176,8 @@ function importLayerPageInit (ctx) {
success: function (data) {
if (data.error != "ok") {
console.log(data.error);
+ /* let the user know why nothing happened */
+ alert(data.error)
} else {
createImportedNotification(data);
window.location.replace(libtoaster.ctx.projectPageUrl);
@@ -244,9 +246,18 @@ function importLayerPageInit (ctx) {
enable_import_btn(true);
}
- if ($("#git-repo-radio").prop("checked") &&
- vcsURLInput.val().length > 0 && gitRefInput.val().length > 0) {
- enable_import_btn(true);
+ if ($("#git-repo-radio").prop("checked")) {
+ if (gitRefInput.val().length > 0 &&
+ gitRefInput.val() == 'HEAD') {
+ $('#invalid-layer-revision-hint').show();
+ $('#layer-revision-ctrl').addClass('has-error');
+ enable_import_btn(false);
+ } else if (vcsURLInput.val().length > 0 &&
+ gitRefInput.val().length > 0) {
+ $('#invalid-layer-revision-hint').hide();
+ $('#layer-revision-ctrl').removeClass('has-error');
+ enable_import_btn(true);
+ }
}
}
diff --git a/lib/toaster/toastergui/templates/importlayer.html b/lib/toaster/toastergui/templates/importlayer.html
index afbeb94d..7e5253e9 100644
--- a/lib/toaster/toastergui/templates/importlayer.html
+++ b/lib/toaster/toastergui/templates/importlayer.html
@@ -115,8 +115,8 @@
</label>
<span style="display: block">
<input type="text" class="form-control" id="layer-git-ref" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" required>
- <span class="help-inline" style="display:none;" id="invalid-layer-revision-hint"></span>
</span>
+ <span class="help-block has-error" style="display:none;" id="invalid-layer-revision-hint">The "HEAD" branch is reserved (only allowed for the "Local Yocto Project" layers)</span>
</div>
</fieldset>