bitbake: 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]

(Bitbake rev: 90fb89e5e3ada9e36ab0b2a5a0dbfd74f9be279f)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
David Reyna 2017-09-14 16:58:15 -07:00 committed by Richard Purdie
parent 99656fecf4
commit ecb828a68f
3 changed files with 18 additions and 7 deletions

View File

@ -292,14 +292,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()

View File

@ -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);
}
}
}

View File

@ -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>