diff options
Diffstat (limited to 'yocto-poky/bitbake/lib/toaster/toastergui/static/js/base.js')
-rw-r--r-- | yocto-poky/bitbake/lib/toaster/toastergui/static/js/base.js | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/yocto-poky/bitbake/lib/toaster/toastergui/static/js/base.js b/yocto-poky/bitbake/lib/toaster/toastergui/static/js/base.js deleted file mode 100644 index ed22a4ebc..000000000 --- a/yocto-poky/bitbake/lib/toaster/toastergui/static/js/base.js +++ /dev/null @@ -1,229 +0,0 @@ -'use strict'; - -function basePageInit(ctx) { - - var newBuildButton = $("#new-build-button"); - var newBuildTargetInput; - var newBuildTargetBuildBtn; - var projectNameForm = $("#project-name-change-form"); - var projectNameContainer = $("#project-name-container"); - var projectName = $("#project-name"); - var projectNameFormToggle = $("#project-change-form-toggle"); - var projectNameChangeCancel = $("#project-name-change-cancel"); - - /* initially the current project is used unless overridden by the new build - * button in top right nav - */ - var selectedProject = libtoaster.ctx; - - var selectedTarget; - - var newBuildProjectInput = $("#new-build-button #project-name-input"); - var newBuildProjectSaveBtn = $("#new-build-button #save-project-button"); - - /* Project name change functionality */ - projectNameFormToggle.click(function(e){ - e.preventDefault(); - projectNameContainer.hide(); - projectNameForm.fadeIn(); - }); - - projectNameChangeCancel.click(function(e){ - e.preventDefault(); - projectNameForm.hide(); - projectNameContainer.fadeIn(); - }); - - $("#project-name-change-btn").click(function(e){ - var newProjectName = $("#project-name-change-input").val(); - - libtoaster.editCurrentProject({ projectName: newProjectName }, function (){ - projectName.html(newProjectName); - libtoaster.ctx.projectName = newProjectName; - projectNameChangeCancel.click(); - }); - }); - - _checkProjectBuildable(); - - $("#project-topbar .nav li a").each(function(){ - if (window.location.pathname === $(this).attr('href')) - $(this).parent().addClass('active'); - else - $(this).parent().removeClass('active'); - }); - - if ($(".total-builds").length !== 0){ - libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl, function(prjInfo){ - if (prjInfo.completedbuilds) - $(".total-builds").text(prjInfo.completedbuilds.length); - }); - } - - /* Hide the button if we're on the project,newproject or importlyaer page - * or if there are no projects yet defined - * only show if there isn't already a build-target-input already - */ - if (ctx.numProjects > 0 && - ctx.currentUrl.search('newproject') < 0 && - $(".build-target-input").length === 1) { - - newBuildTargetInput = $("#new-build-button .build-target-input"); - newBuildTargetBuildBtn = $("#new-build-button").find(".build-button"); - - _setupNewBuildButton(); - newBuildButton.show(); - } else if ($(".build-target-input").length > 0) { - newBuildTargetInput = $("#project-topbar .build-target-input"); - newBuildTargetBuildBtn = $("#project-topbar .build-button"); - } else { - return; - } - - /* Hide the change project icon when there is only one project */ - if (ctx.numProjects === 1) { - $('#project .icon-pencil').hide(); - } - - /* If we have a project setup the typeahead */ - if (selectedProject.recipesTypeAheadUrl){ - libtoaster.makeTypeahead(newBuildTargetInput, selectedProject.recipesTypeAheadUrl, { format: "json" }, function (item) { - selectedTarget = item; - newBuildTargetBuildBtn.removeAttr("disabled"); - }); - } - - newBuildTargetInput.on('input', function () { - if ($(this).val().length === 0) { - newBuildTargetBuildBtn.attr("disabled", "disabled"); - } else { - newBuildTargetBuildBtn.removeAttr("disabled"); - } - }); - - newBuildTargetBuildBtn.click(function (e) { - e.preventDefault(); - - if (!newBuildTargetInput.val()) { - return; - } - - /* We use the value of the input field so as to maintain any command also - * added e.g. core-image-minimal:clean - */ - selectedTarget = { name: newBuildTargetInput.val() }; - - /* Fire off the build */ - libtoaster.startABuild(selectedProject.projectBuildsUrl, - selectedProject.projectId, selectedTarget.name, function(){ - window.location.replace(selectedProject.projectBuildsUrl); - }, null); - }); - - function _checkProjectBuildable() { - if (selectedProject.projectId === undefined || selectedProject.projectIsDefault) { - return; - } - - libtoaster.getProjectInfo(selectedProject.projectPageUrl, - function (data) { - if (data.machine === null || data.machine.name === undefined || data.layers.length === 0) { - /* we can't build anything without a machine and some layers */ - $("#new-build-button #targets-form").hide(); - $("#new-build-button .alert").show(); - } else { - $("#new-build-button #targets-form").show(); - $("#new-build-button .alert").hide(); - - /* we can build this project; enable input fields */ - newBuildTargetInput.removeAttr("disabled"); - } - }, null); - } - - /* Setup New build button in the top nav bar */ - function _setupNewBuildButton() { - - /* If we don't have a current project then present the set project - * form. - */ - if (selectedProject.projectId === undefined || selectedProject.projectIsDefault) { - $('#change-project-form').show(); - $('#project .icon-pencil').hide(); - } - - libtoaster.makeTypeahead(newBuildProjectInput, selectedProject.projectsTypeAheadUrl, { format : "json" }, function (item) { - /* successfully selected a project */ - newBuildProjectSaveBtn.removeAttr("disabled"); - selectedProject = item; - }); - - /* Any typing in the input apart from enter key is going to invalidate - * the value that has been set by selecting a suggestion from the typeahead - */ - newBuildProjectInput.on('input', function (event) { - if (event.keyCode === 13) { - return; - } - newBuildProjectSaveBtn.attr("disabled", "disabled"); - }); - - - newBuildProjectSaveBtn.click(function () { - selectedProject.projectId = selectedProject.id; - /* Update the typeahead project_id paramater */ - _checkProjectBuildable(); - - newBuildTargetInput.removeAttr("disabled"); - - /* We've got a new project so now we need to update the - * target urls. We can get this from the new project's info - */ - $.getJSON(selectedProject.projectPageUrl, { format: "json" }, - function(projectInfo){ - /* Update the typeahead to use the new selectedProject */ - selectedProject = projectInfo; - - libtoaster.makeTypeahead(newBuildTargetInput, selectedProject.recipesTypeAheadUrl, { format: "json" }, function (item) { - /* successfully selected a target */ - selectedTarget = item; - newBuildTargetBuildBtn.removeAttr("disabled"); - }); - - }); - newBuildTargetInput.val(""); - - /* set up new form aspect */ - $("#new-build-button #project a").text(selectedProject.name).attr('href', selectedProject.projectPageUrl); - $("#new-build-button .alert a").attr('href', selectedProject.projectPageUrl); - $("#project .icon-pencil").show(); - - $("#change-project-form").slideUp({ 'complete' : function () { - $("#new-build-button #project").show(); - }}); - }); - - $('#new-build-button #project .icon-pencil').click(function () { - newBuildProjectSaveBtn.attr("disabled", "disabled"); - newBuildProjectInput.val($("#new-build-button #project a").text()); - $("#cancel-change-project").show(); - $(this).parent().hide(); - $("#change-project-form").slideDown(); - }); - - $("#new-build-button #cancel-change-project").click(function () { - $("#change-project-form").hide(function () { - $('#new-build-button #project').show(); - }); - - newBuildProjectInput.val(""); - newBuildProjectSaveBtn.attr("disabled", "disabled"); - }); - - /* Keep the dropdown open even unless we click outside the dropdown area */ - $(".new-build").click (function (event) { - event.stopPropagation(); - }); - }; - -} |