[bitbake-devel] [PATCH 2/9] toaster: layerdetails js changes for switching layers
Elliot Smith
elliot.smith at intel.com
Mon Aug 22 15:42:29 UTC 2016
From: Sujith H <sujith.h at gmail.com>
This patch helps to implement the switching of layers
between directories and git repositories. Specifically
selection of git and local directory. Also enabling
form to view the selection.
[YOCTO #9913]
Signed-off-by: Sujith H <sujith.h at gmail.com>
Signed-off-by: Elliot Smith <elliot.smith at intel.com>
---
.../toaster/toastergui/static/js/layerdetails.js | 98 ++++++++++++++++++++++
1 file changed, 98 insertions(+)
diff --git a/bitbake/lib/toaster/toastergui/static/js/layerdetails.js b/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
index 0d4240b..2ff8e59 100644
--- a/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
+++ b/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
@@ -10,6 +10,7 @@ function layerDetailsPageInit (ctx) {
var targetTab = $("#targets-tab");
var machineTab = $("#machines-tab");
var detailsTab = $("#details-tab");
+ var editLayerSource = $("#edit-layer-source");
/* setup the dependencies typeahead */
libtoaster.makeTypeahead(layerDepInput, libtoaster.ctx.layersTypeAheadUrl, { include_added: "true" }, function(item){
@@ -423,4 +424,101 @@ function layerDetailsPageInit (ctx) {
$(".glyphicon-trash").tooltip();
$(".commit").tooltip();
+ editLayerSource.click(function() {
+ // Kindly bring the git layers imported from layerindex to normal page and not this new page :(
+ $(this).hide();
+ $("#save-changes-for-switch").attr("disabled", "disabled");
+
+ $("#git-repo-info", "#directory-info").hide();
+ $("#edit-layer-source-form").fadeIn();
+ if ($("#layer-dir-path-in-details").val() == "") {
+ //Local dir path is empty...
+ $("#repo").prop("checked", true);
+ $("#layer-git").fadeIn();
+ $("#layer-dir").hide();
+ } else {
+ $("#layer-git").hide();
+ $("#layer-dir").fadeIn();
+ }
+ });
+
+ $('input:radio[name="source-location"]').change(function() {
+ if ($('input[name=source-location]:checked').val() == "repo") {
+ $("#layer-git").fadeIn();
+ $("#layer-dir").hide();
+ if ($("#layer-git-repo-url").val().length === 0 && $("#layer-git-ref").val().length === 0) {
+ $("#save-changes-for-switch").attr("disabled", "disabled");
+ }
+ } else {
+ $("#layer-dir").fadeIn();
+ $("#layer-git").hide();
+ }
+ });
+
+ $("#layer-dir-path-in-details").keyup(function() {
+ $("#save-changes-for-switch").removeAttr("disabled");
+ });
+
+ $("#layer-git-repo-url").keyup(function() {
+ if ($("#layer-git-repo-url").val().length > 0 && $("#layer-git-ref").val().length > 0) {
+ $("#save-changes-for-switch").removeAttr("disabled");
+ }
+ });
+
+ $("#layer-git-ref").keyup(function() {
+ if ($("#layer-git-repo-url").val().length > 0 && $("#layer-git-ref").val().length > 0) {
+ $("#save-changes-for-switch").removeAttr("disabled");
+ }
+ });
+
+ $('#cancel-changes-for-switch').click(function() {
+ editLayerSource.show();
+ $("#git-repo-info", "#directory-info").fadeIn();
+ $("#edit-layer-source-form").fadeOut();
+
+ if ($("#layer-dir-path-in-details").val().length) {
+ $("#dir").prop("checked", true);
+ $("#layer-git").fadeOut();
+ $("#layer-dir").fadeIn();
+ } else {
+ $("#layer-git").fadeIn();
+ $("#layer-dir").fadeOut();
+ }
+ });
+
+ $('#save-changes-for-switch').click(function() {
+
+ var layerData = {
+ vcs_url: $('#layer-git-repo-url').val(),
+ commit: $('#layer-git-ref').val(),
+ dirpath: $('#layer-subdir').val(),
+ local_source_dir: $('#layer-dir-path-in-details').val(),
+ };
+
+ if ($('input[name=source-location]:checked').val() == "repo") {
+ layerData.local_source_dir = "";
+ } else {
+ layerData.vcs_url = "";
+ layerData.git_ref = "";
+ }
+
+ $.ajax({
+ type: "POST",
+ url: ctx.xhrUpdateLayerUrl,
+ data: layerData,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (data) {
+ if (data.error != "ok") {
+ console.warn(data.error);
+ } else {
+ /* success layer property changed */
+ window.location.reload();
+ }
+ },
+ error: function (data) {
+ console.warn("Call failed");
+ console.warn(data);
+ }
+ });
+ });
}
--
2.7.4
More information about the bitbake-devel
mailing list