diff options
author | David Reyna <David.Reyna@windriver.com> | 2017-09-14 16:58:15 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-09-17 23:24:14 +0100 |
commit | d5a109daeaa7a83bfa2c34c45dc01a1579d24893 (patch) | |
tree | 2cffd8915bef943bd9501dea1bfcfac8118baa67 /bitbake/lib | |
parent | 6235469e40d55fba445d493edfa3a60403321061 (diff) | |
download | poky-d5a109daeaa7a83bfa2c34c45dc01a1579d24893.tar.gz |
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: 04bd9c9341e8390a7923fa0122cd4cb0befa569f)
Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/toaster/toastergui/api.py | 6 | ||||
-rw-r--r-- | bitbake/lib/toaster/toastergui/static/js/importlayer.js | 17 | ||||
-rw-r--r-- | bitbake/lib/toaster/toastergui/templates/importlayer.html | 2 |
3 files changed, 18 insertions, 7 deletions
diff --git a/bitbake/lib/toaster/toastergui/api.py b/bitbake/lib/toaster/toastergui/api.py index cb8f0f3127..ab6ba69e0e 100644 --- a/bitbake/lib/toaster/toastergui/api.py +++ b/bitbake/lib/toaster/toastergui/api.py | |||
@@ -293,14 +293,14 @@ class XhrLayer(View): | |||
293 | layer_source=LayerSource.TYPE_IMPORTED) | 293 | layer_source=LayerSource.TYPE_IMPORTED) |
294 | 294 | ||
295 | # Local layer | 295 | # Local layer |
296 | if 'local_source_dir' in layer_data: | 296 | if ('local_source_dir' in layer_data) and layer.local_source_dir: |
297 | layer.local_source_dir = layer_data['local_source_dir'] | 297 | layer.local_source_dir = layer_data['local_source_dir'] |
298 | # git layer | 298 | # git layer |
299 | elif 'vcs_url' in layer_data: | 299 | elif 'vcs_url' in layer_data: |
300 | layer.vcs_url = layer_data['vcs_url'] | 300 | layer.vcs_url = layer_data['vcs_url'] |
301 | layer_version.dirpath = layer_data['dir_path'] | 301 | layer_version.dirpath = layer_data['dir_path'] |
302 | layer_version.commit = layer_data['get_ref'] | 302 | layer_version.commit = layer_data['git_ref'] |
303 | layer_version.branch = layer_data['get_ref'] | 303 | layer_version.branch = layer_data['git_ref'] |
304 | 304 | ||
305 | layer.save() | 305 | layer.save() |
306 | layer_version.save() | 306 | layer_version.save() |
diff --git a/bitbake/lib/toaster/toastergui/static/js/importlayer.js b/bitbake/lib/toaster/toastergui/static/js/importlayer.js index b3f094e69b..59652b9a36 100644 --- a/bitbake/lib/toaster/toastergui/static/js/importlayer.js +++ b/bitbake/lib/toaster/toastergui/static/js/importlayer.js | |||
@@ -176,6 +176,8 @@ function importLayerPageInit (ctx) { | |||
176 | success: function (data) { | 176 | success: function (data) { |
177 | if (data.error != "ok") { | 177 | if (data.error != "ok") { |
178 | console.log(data.error); | 178 | console.log(data.error); |
179 | /* let the user know why nothing happened */ | ||
180 | alert(data.error) | ||
179 | } else { | 181 | } else { |
180 | createImportedNotification(data); | 182 | createImportedNotification(data); |
181 | window.location.replace(libtoaster.ctx.projectPageUrl); | 183 | window.location.replace(libtoaster.ctx.projectPageUrl); |
@@ -244,9 +246,18 @@ function importLayerPageInit (ctx) { | |||
244 | enable_import_btn(true); | 246 | enable_import_btn(true); |
245 | } | 247 | } |
246 | 248 | ||
247 | if ($("#git-repo-radio").prop("checked") && | 249 | if ($("#git-repo-radio").prop("checked")) { |
248 | vcsURLInput.val().length > 0 && gitRefInput.val().length > 0) { | 250 | if (gitRefInput.val().length > 0 && |
249 | enable_import_btn(true); | 251 | gitRefInput.val() == 'HEAD') { |
252 | $('#invalid-layer-revision-hint').show(); | ||
253 | $('#layer-revision-ctrl').addClass('has-error'); | ||
254 | enable_import_btn(false); | ||
255 | } else if (vcsURLInput.val().length > 0 && | ||
256 | gitRefInput.val().length > 0) { | ||
257 | $('#invalid-layer-revision-hint').hide(); | ||
258 | $('#layer-revision-ctrl').removeClass('has-error'); | ||
259 | enable_import_btn(true); | ||
260 | } | ||
250 | } | 261 | } |
251 | } | 262 | } |
252 | 263 | ||
diff --git a/bitbake/lib/toaster/toastergui/templates/importlayer.html b/bitbake/lib/toaster/toastergui/templates/importlayer.html index afbeb94d42..7e5253e963 100644 --- a/bitbake/lib/toaster/toastergui/templates/importlayer.html +++ b/bitbake/lib/toaster/toastergui/templates/importlayer.html | |||
@@ -115,8 +115,8 @@ | |||
115 | </label> | 115 | </label> |
116 | <span style="display: block"> | 116 | <span style="display: block"> |
117 | <input type="text" class="form-control" id="layer-git-ref" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" required> | 117 | <input type="text" class="form-control" id="layer-git-ref" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" required> |
118 | <span class="help-inline" style="display:none;" id="invalid-layer-revision-hint"></span> | ||
119 | </span> | 118 | </span> |
119 | <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> | ||
120 | </div> | 120 | </div> |
121 | </fieldset> | 121 | </fieldset> |
122 | 122 | ||