diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2016-08-17 14:31:25 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2016-08-22 16:43:26 +0000 |
commit | 60f9d69e016b11c468c98ea75ba0a60c44afbbc4 (patch) | |
tree | ecb49581a9e41a37943c22cd9ef3f63451b20ee7 /import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js | |
parent | e18c61205e0234b03697129c20cc69c9b3940efc (diff) | |
download | blackbird-openbmc-60f9d69e016b11c468c98ea75ba0a60c44afbbc4.tar.gz blackbird-openbmc-60f9d69e016b11c468c98ea75ba0a60c44afbbc4.zip |
yocto-poky: Move to import-layers subdir
We are going to import additional layers, so create a subdir to
hold all of the layers that we import with git-subtree.
Change-Id: I6f732153a22be8ca663035c518837e3cc5ec0799
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js')
-rw-r--r-- | import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js new file mode 100644 index 000000000..825f9dccd --- /dev/null +++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js @@ -0,0 +1,90 @@ +/* + * layer: Object representing the parent layer { id: .. name: ... url } + * dependencies: array of dependency layer objects { id: .. name: ..} + * title: optional override for title + * body: optional override for body + * addToProject: Whether to add layers to project on accept + * successAdd: function to run on success + */ +function showLayerDepsModal(layer, dependencies, title, body, addToProject, successAdd) { + + if ($("#dependencies-modal").length === 0) { + $.get(libtoaster.ctx.htmlUrl + "/layer_deps_modal.html", function(html){ + $("body").append(html); + setupModal(); + }); + } else { + setupModal(); + } + + function setupModal(){ + + if (title) { + $('#dependencies-modal #title').text(title); + } else { + $('#dependencies-modal #title').text(layer.name); + } + + if (body) { + $("#dependencies-modal #body-text").html(body); + } else { + $("#dependencies-modal #layer-name").text(layer.name); + } + + var deplistHtml = ""; + for (var i = 0; i < dependencies.length; i++) { + deplistHtml += "<li><label class=\"checkbox\"><input name=\"dependencies\" value=\""; + deplistHtml += dependencies[i].id; + deplistHtml +="\" type=\"checkbox\" checked=\"checked\"/>"; + deplistHtml += dependencies[i].name; + deplistHtml += "</label></li>"; + } + $('#dependencies-list').html(deplistHtml); + + $("#dependencies-modal").data("deps", dependencies); + + $('#dependencies-modal').modal('show'); + + /* Discard the old submission function */ + $("#dependencies-modal-form").unbind('submit'); + + $("#dependencies-modal-form").submit(function (e) { + e.preventDefault(); + var selectedLayerIds = []; + var selectedLayers = []; + + $("input[name='dependencies']:checked").each(function () { + selectedLayerIds.push(parseInt($(this).val())); + }); + + /* -1 is a special dummy Id which we use when the layer isn't yet in the + * system, normally we would add the current layer to the selection. + */ + if (layer.id != -1) + selectedLayerIds.push(layer.id); + + /* Find the selected layer objects from our original list */ + for (var i = 0; i < selectedLayerIds.length; i++) { + for (var j = 0; j < dependencies.length; j++) { + if (dependencies[j].id == selectedLayerIds[i]) { + selectedLayers.push(dependencies[j]); + } + } + } + + if (addToProject) { + libtoaster.editCurrentProject({ 'layerAdd': selectedLayerIds.join(",") }, function () { + if (successAdd) { + successAdd(selectedLayers); + } + }, function () { + console.warn("Adding layers to project failed"); + }); + } else { + successAdd(selectedLayers); + } + + $('#dependencies-modal').modal('hide'); + }); + } +} |