diff options
Diffstat (limited to 'import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js')
-rw-r--r-- | import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js | 521 |
1 files changed, 0 insertions, 521 deletions
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js deleted file mode 100644 index 9ead393cb..000000000 --- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js +++ /dev/null @@ -1,521 +0,0 @@ -"use strict"; - -function layerDetailsPageInit (ctx) { - - var layerDepInput = $("#layer-dep-input"); - var layerDepBtn = $("#add-layer-dependency-btn"); - var layerDepsList = $("#layer-deps-list"); - var currentLayerDepSelection; - var addRmLayerBtn = $("#add-remove-layer-btn"); - var targetTab = $("#targets-tab"); - var machineTab = $("#machines-tab"); - var detailsTab = $("#details-tab"); - var editLayerSource = $("#edit-layer-source"); - var saveSourceChangesBtn = $("#save-changes-for-switch"); - var layerGitRefInput = $("#layer-git-ref"); - var layerSubDirInput = $('#layer-subdir'); - - targetTab.on('show.bs.tab', targetsTabShow); - detailsTab.on('show.bs.tab', detailsTabShow); - machineTab.on('show.bs.tab', machinesTabShow); - - /* setup the dependencies typeahead */ - libtoaster.makeTypeahead(layerDepInput, - libtoaster.ctx.layersTypeAheadUrl, - { include_added: "true" }, function(item){ - currentLayerDepSelection = item; - layerDepBtn.removeAttr("disabled"); - }); - - /* disable the add layer button if its input field is empty */ - layerDepInput.on("keyup",function(){ - if ($(this).val().length === 0) { - layerDepBtn.attr("disabled", "disabled"); - } - }); - - function addRemoveDep(depLayerId, add, doneCb) { - var data = { layer_version_id : ctx.layerVersion.id }; - if (add) - data.add_dep = depLayerId; - else - data.rm_dep = depLayerId; - - $.ajax({ - type: "POST", - url: ctx.xhrUpdateLayerUrl, - data: data, - headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, - success: function (data) { - if (data.error != "ok") { - console.warn(data.error); - } else { - doneCb(); - } - }, - error: function (data) { - console.warn("Call failed"); - console.warn(data); - } - }); - } - - function layerDepRemoveClick() { - var toRemove = $(this).parent().data('layer-id'); - var layerDepItem = $(this); - - addRemoveDep(toRemove, false, function(){ - layerDepItem.parent().fadeOut(function (){ - layerDepItem.remove(); - }); - }); - } - - /* Add dependency layer button click handler */ - layerDepBtn.click(function(){ - if (currentLayerDepSelection === undefined) - return; - - addRemoveDep(currentLayerDepSelection.id, true, function(){ - /* Make a list item for the new layer dependency */ - var newLayerDep = $("<li><a></a><span class=\"glyphicon glyphicon-trash\" data-toggle=\"tooltip\" title=\"Delete\"></span></li>"); - - newLayerDep.data('layer-id', currentLayerDepSelection.id); - newLayerDep.children("span").tooltip(); - - var link = newLayerDep.children("a"); - link.attr("href", currentLayerDepSelection.layerdetailurl); - link.text(currentLayerDepSelection.name); - link.tooltip({title: currentLayerDepSelection.tooltip, placement: "right"}); - - /* Connect up the tash icon */ - var trashItem = newLayerDep.children("span"); - trashItem.click(layerDepRemoveClick); - - layerDepsList.append(newLayerDep); - /* Clear the current selection */ - layerDepInput.val(""); - currentLayerDepSelection = undefined; - layerDepBtn.attr("disabled", "disabled"); - }); - }); - - $(".glyphicon-edit").click(function (){ - var mParent = $(this).parent("dd"); - mParent.prev().css("margin-top", "10px"); - mParent.children("form").slideDown(); - var currentVal = mParent.children(".current-value"); - currentVal.hide(); - /* Set the current value to the input field */ - mParent.find("textarea,input").val(currentVal.text()); - /* If the input field is empty, disable the submit button */ - if ( mParent.find("textarea,input").val().length == 0 ) { - mParent.find(".change-btn").attr("disabled", "disabled"); - } - /* Hides the "Not set" text */ - mParent.children(".text-muted").hide(); - /* We're editing so hide the delete icon */ - mParent.children(".delete-current-value").hide(); - mParent.find(".cancel").show(); - $(this).hide(); - }); - - $(".delete-current-value").click(function(){ - var mParent = $(this).parent("dd"); - mParent.find("input").val(""); - mParent.find("textarea").val(""); - mParent.find(".change-btn").click(); - }); - - $(".cancel").click(function(){ - var mParent = $(this).parents("dd"); - $(this).hide(); - mParent.children("form").slideUp(function(){ - mParent.children(".current-value").show(); - /* Show the "Not set" text if we ended up with no value */ - if (!mParent.children(".current-value").html()){ - mParent.children(".text-muted").fadeIn(); - mParent.children(".delete-current-value").hide(); - } else { - mParent.children(".delete-current-value").show(); - } - - mParent.children(".glyphicon-edit").show(); - mParent.prev().css("margin-top", "0"); - }); - }); - - - function defaultAddBtnText(){ - var text = " Add the "+ctx.layerVersion.name+" layer to your project"; - addRmLayerBtn.text(text); - addRmLayerBtn.prepend("<span class=\"glyphicon glyphicon-plus\"></span>"); - addRmLayerBtn.removeClass("btn-danger"); - } - - function detailsTabShow(){ - if (!ctx.layerVersion.inCurrentPrj) - defaultAddBtnText(); - - window.location.hash = "information"; - } - - function targetsTabShow(){ - if (!ctx.layerVersion.inCurrentPrj){ - if (ctx.numTargets > 0) { - var text = " Add the "+ctx.layerVersion.name+" layer to your project "+ - "to enable these recipes"; - addRmLayerBtn.text(text); - addRmLayerBtn.prepend("<span class=\"glyphicon glyphicon-plus\"></span>"); - } else { - defaultAddBtnText(); - } - } - - window.location.hash = "recipes"; - } - - $("#recipestable").on('table-done', function(e, total, tableParams){ - ctx.numTargets = total; - - if (total === 0 && !tableParams.search) { - $("#no-recipes-yet").show(); - } else { - $("#no-recipes-yet").hide(); - } - - targetTab.removeClass("text-muted"); - if (window.location.hash === "#recipes"){ - /* re run the machinesTabShow to update the text */ - targetsTabShow(); - } - }); - - $("#machinestable").on('table-done', function(e, total, tableParams){ - ctx.numMachines = total; - - if (total === 0 && !tableParams.search) - $("#no-machines-yet").show(); - else - $("#no-machines-yet").hide(); - - machineTab.removeClass("text-muted"); - if (window.location.hash === "#machines"){ - /* re run the machinesTabShow to update the text */ - machinesTabShow(); - } - - $(".select-machine-btn").click(function(e){ - if ($(this).hasClass("disabled")) - e.preventDefault(); - }); - - }); - - - function machinesTabShow(){ - if (!ctx.layerVersion.inCurrentPrj) { - if (ctx.numMachines > 0){ - var text = " Add the "+ctx.layerVersion.name+" layer to your project " + - "to enable these machines"; - addRmLayerBtn.text(text); - addRmLayerBtn.prepend("<span class=\"glyphicon glyphicon-plus\"></span>"); - } else { - defaultAddBtnText(); - } - } - - window.location.hash = "machines"; - } - - $(".pagesize").change(function(){ - var search = libtoaster.parseUrlParams(); - search.limit = this.value; - - window.location.search = libtoaster.dumpsUrlParams(search); - }); - - /* Enables the Build target and Select Machine buttons and switches the - * add/remove button - */ - function setLayerInCurrentPrj(added) { - ctx.layerVersion.inCurrentPrj = added; - - if (added){ - /* enable and switch all the button states */ - $(".build-recipe-btn").removeClass("disabled"); - $(".select-machine-btn").removeClass("disabled"); - addRmLayerBtn.addClass("btn-danger"); - addRmLayerBtn.data('directive', "remove"); - addRmLayerBtn.text(" Remove the "+ctx.layerVersion.name+" layer from your project"); - addRmLayerBtn.prepend("<span class=\"glyphicon glyphicon-trash\"></span>"); - - } else { - /* disable and switch all the button states */ - $(".build-recipe-btn").addClass("disabled"); - $(".select-machine-btn").addClass("disabled"); - addRmLayerBtn.removeClass("btn-danger"); - addRmLayerBtn.data('directive', "add"); - - /* "special" handler so that we get the correct button text which depends - * on which tab is currently visible. Unfortunately we can't just call - * tab('show') as if it's already visible it doesn't run the event. - */ - switch ($(".nav-tabs .active a").prop('id')){ - case 'machines-tab': - machinesTabShow(); - break; - case 'targets-tab': - targetsTabShow(); - break; - default: - defaultAddBtnText(); - break; - } - } - } - - $("#dismiss-alert").click(function(){ - $(this).parent().fadeOut(); - }); - - /* Add or remove this layer from the project */ - addRmLayerBtn.click(function() { - - var add = ($(this).data('directive') === "add"); - - libtoaster.addRmLayer(ctx.layerVersion, add, function (layersList){ - var alertMsg = $("#alert-msg"); - alertMsg.html(libtoaster.makeLayerAddRmAlertMsg(ctx.layerVersion, layersList, add)); - - setLayerInCurrentPrj(add); - - libtoaster.showChangeNotification(alertMsg); - }); - }); - - /* Handler for all of the Change buttons */ - $(".change-btn").click(function(){ - var mParent = $(this).parent(); - var prop = $(this).data('layer-prop'); - - /* We have inputs, select and textareas to potentially grab the value - * from. - */ - var entryElement = mParent.find("input"); - if (entryElement.length === 0) - entryElement = mParent.find("textarea"); - if (entryElement.length === 0) { - console.warn("Could not find element to get data from for this change"); - return; - } - - var data = { layer_version_id: ctx.layerVersion.id }; - data[prop] = entryElement.val(); - - $.ajax({ - type: "POST", - url: ctx.xhrUpdateLayerUrl, - data: data, - headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, - success: function (data) { - if (data.error != "ok") { - console.warn(data.error); - } else { - /* success layer property changed */ - var inputArea = mParent.parents("dd"); - var text; - - text = entryElement.val(); - - /* Hide the "Not set" text if it's visible */ - inputArea.find(".text-muted").hide(); - inputArea.find(".current-value").text(text); - /* Same behaviour as cancel in that we hide the form/show current - * value. - */ - inputArea.find(".cancel").click(); - } - }, - error: function (data) { - console.warn("Call failed"); - console.warn(data); - } - }); - }); - - /* Disable the change button when we have no data in the input */ - $("dl input, dl textarea").on("input",function() { - if ($(this).val().length === 0) - $(this).parent().next(".change-btn").attr("disabled", "disabled"); - else - $(this).parent().next(".change-btn").removeAttr("disabled"); - }); - - /* This checks to see if the dt's dd has data in it or if the change data - * form is visible, otherwise hide it - */ - $("dl").children().each(function (){ - if ($(this).is("dt")) { - var dd = $(this).next("dd"); - if (!dd.children("form:visible")|| !dd.find(".current-value").html()){ - if (ctx.layerVersion.layer_source == ctx.layerSourceTypes.TYPE_IMPORTED){ - /* There's no current value and the layer is editable - * so show the "Not set" and hide the delete icon - */ - dd.find(".text-muted").show(); - dd.find(".delete-current-value").hide(); - } else { - /* We're not viewing an editable layer so hide the empty dd/dl pair */ - $(this).hide(); - dd.hide(); - } - } - } - }); - - /* Hide the right column if it contains no information */ - if ($("dl.item-info").children(':visible').length === 0) { - $("dl.item-info").parent().hide(); - } - - /* Clear the current search selection and reload the results */ - $(".target-search-clear").click(function(){ - $("#target-search").val(""); - $(this).parents("form").submit(); - }); - - $(".machine-search-clear").click(function(){ - $("#machine-search").val(""); - $(this).parents("form").submit(); - }); - - $("#layer-delete-confirmed").click(function(){ - - $("#delete-layer-modal button[data-dismiss='modal']").hide(); - - var message = $('<span>You have deleted <strong>1</strong> layer from your project: <strong id="deleted-layer-name"></strong>'); - message.find("#deleted-layer-name").text(ctx.layerVersion.name); - - $.ajax({ - type: "DELETE", - url: ctx.xhrUpdateLayerUrl, - headers: { 'X-CSRFToken' : $.cookie('csrftoken')}, - success: function(data) { - if (data.error != "ok") { - console.warn(data.error); - } else { - libtoaster.setNotification("layer-deleted", message.html()); - window.location.replace(data.gotoUrl); - } - }, - error: function(data) { - console.warn("Call failed"); - console.warn(data); - } - }); - }); - - layerDepsList.find(".glyphicon-trash").click(layerDepRemoveClick); - layerDepsList.find("a").tooltip(); - $(".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(); - saveSourceChangesBtn.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 && layerGitRefInput.val().length === 0) { - saveSourceChangesBtn.attr("disabled", "disabled"); - } - } else { - $("#layer-dir").fadeIn(); - $("#layer-git").hide(); - } - }); - - $("#layer-dir-path-in-details").keyup(function() { - saveSourceChangesBtn.removeAttr("disabled"); - }); - - $("#layer-git-repo-url").keyup(function() { - if ($("#layer-git-repo-url").val().length > 0 && layerGitRefInput.val().length > 0) { - saveSourceChangesBtn.removeAttr("disabled"); - } - }); - - layerGitRefInput.keyup(function() { - if ($("#layer-git-repo-url").val().length > 0 && layerGitRefInput.val().length > 0) { - saveSourceChangesBtn.removeAttr("disabled"); - } - }); - - - layerSubDirInput.keyup(function(){ - if ($(this).val().length > 0){ - saveSourceChangesBtn.removeAttr("disabled"); - } - }); - - $('#cancel-changes-for-switch').click(function() { - $("#edit-layer-source-form").hide(); - $("#directory-info, #git-repo-info").fadeIn(); - editLayerSource.show(); - }); - - saveSourceChangesBtn.click(function() { - - var layerData = { - vcs_url: $('#layer-git-repo-url').val(), - commit: layerGitRefInput.val(), - dirpath: layerSubDirInput.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); - } - }); - }); -} |