diff options
| -rw-r--r-- | bitbake/lib/toaster/toastergui/static/js/importlayer.js | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/js/importlayer.js b/bitbake/lib/toaster/toastergui/static/js/importlayer.js index 296483985a..8e2032de26 100644 --- a/bitbake/lib/toaster/toastergui/static/js/importlayer.js +++ b/bitbake/lib/toaster/toastergui/static/js/importlayer.js | |||
| @@ -17,11 +17,15 @@ function importLayerPageInit (ctx) { | |||
| 17 | var currentLayerDepSelection; | 17 | var currentLayerDepSelection; |
| 18 | var validLayerName = /^(\w|-)+$/; | 18 | var validLayerName = /^(\w|-)+$/; |
| 19 | 19 | ||
| 20 | /* Catch 'disable' race condition between type-ahead started and "input change" */ | ||
| 21 | var typeAheadStarted = 0; | ||
| 22 | |||
| 20 | libtoaster.makeTypeahead(layerDepInput, | 23 | libtoaster.makeTypeahead(layerDepInput, |
| 21 | libtoaster.ctx.layersTypeAheadUrl, | 24 | libtoaster.ctx.layersTypeAheadUrl, |
| 22 | { include_added: "true" }, function(item){ | 25 | { include_added: "true" }, function(item){ |
| 23 | currentLayerDepSelection = item; | 26 | currentLayerDepSelection = item; |
| 24 | layerDepBtn.removeAttr("disabled"); | 27 | layerDepBtn.removeAttr("disabled"); |
| 28 | typeAheadStarted = 1; | ||
| 25 | }); | 29 | }); |
| 26 | 30 | ||
| 27 | layerDepInput.on("typeahead:select", function(event, data){ | 31 | layerDepInput.on("typeahead:select", function(event, data){ |
| @@ -34,7 +38,10 @@ function importLayerPageInit (ctx) { | |||
| 34 | // disable the "Add layer" button when the layer input typeahead is empty | 38 | // disable the "Add layer" button when the layer input typeahead is empty |
| 35 | // or not in the typeahead choices | 39 | // or not in the typeahead choices |
| 36 | layerDepInput.on("input change", function(){ | 40 | layerDepInput.on("input change", function(){ |
| 37 | layerDepBtn.attr("disabled","disabled"); | 41 | if (0 == typeAheadStarted) { |
| 42 | layerDepBtn.attr("disabled","disabled"); | ||
| 43 | } | ||
| 44 | typeAheadStarted = 0; | ||
| 38 | }); | 45 | }); |
| 39 | 46 | ||
| 40 | /* We automatically add "openembedded-core" layer for convenience as a | 47 | /* We automatically add "openembedded-core" layer for convenience as a |
| @@ -50,6 +57,7 @@ function importLayerPageInit (ctx) { | |||
| 50 | }); | 57 | }); |
| 51 | 58 | ||
| 52 | layerDepBtn.click(function(){ | 59 | layerDepBtn.click(function(){ |
| 60 | typeAheadStarted = 0; | ||
| 53 | if (currentLayerDepSelection == undefined) | 61 | if (currentLayerDepSelection == undefined) |
| 54 | return; | 62 | return; |
| 55 | 63 | ||
| @@ -77,7 +85,7 @@ function importLayerPageInit (ctx) { | |||
| 77 | 85 | ||
| 78 | $("#layer-deps-list").append(newLayerDep); | 86 | $("#layer-deps-list").append(newLayerDep); |
| 79 | 87 | ||
| 80 | libtoaster.getLayerDepsForProject(currentLayerDepSelection.layerdetailurl, | 88 | libtoaster.getLayerDepsForProject(currentLayerDepSelection.xhrLayerUrl, |
| 81 | function (data){ | 89 | function (data){ |
| 82 | /* These are the dependencies of the layer added as a dependency */ | 90 | /* These are the dependencies of the layer added as a dependency */ |
| 83 | if (data.list.length > 0) { | 91 | if (data.list.length > 0) { |
