forked from openembedded/bitbake
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
toaster: Remove the new-build-input button widget
The button required a lot of state maintenance to make sure it showed up when the project was configured properly, showed correctly according to the projects known to Toaster, displayed correctly according to the mode Toaster was in, and was able to be used to change the current project. Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Loading branch information
Showing
1 changed file
with
81 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
'use strict'; | ||
|
||
function projectTopBarInit(ctx) { | ||
|
||
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"); | ||
var newBuildTargetInput = $("#build-input"); | ||
var newBuildTargetBuildBtn = $("#build-button"); | ||
var selectedTarget; | ||
|
||
/* 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(){ | ||
var newProjectName = $("#project-name-change-input").val(); | ||
|
||
libtoaster.editCurrentProject({ projectName: newProjectName }, function (){ | ||
projectName.html(newProjectName); | ||
libtoaster.ctx.projectName = newProjectName; | ||
projectNameChangeCancel.click(); | ||
}); | ||
}); | ||
|
||
/* Nav bar activate state switcher */ | ||
$("#project-topbar .nav li a").each(function(){ | ||
if (window.location.pathname === $(this).attr('href')) | ||
$(this).parent().addClass('active'); | ||
else | ||
$(this).parent().removeClass('active'); | ||
}); | ||
|
||
/* Recipe build input functionality */ | ||
if (ctx.numProjectLayers > 0 && ctx.machine){ | ||
newBuildTargetInput.removeAttr("disabled"); | ||
} | ||
|
||
libtoaster.makeTypeahead(newBuildTargetInput, | ||
libtoaster.ctx.recipesTypeAheadUrl, {}, 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 and because we can build targets | ||
* that toaster doesn't yet know about | ||
*/ | ||
selectedTarget = { name: newBuildTargetInput.val() }; | ||
|
||
/* Fire off the build */ | ||
libtoaster.startABuild(libtoaster.ctx.projectBuildsUrl, | ||
null, selectedTarget.name, function(){ | ||
window.location.replace(libtoaster.ctx.projectBuildsUrl); | ||
}, null); | ||
}); | ||
} |