bitbake: toaster: show full list of dependents to remove

When a package is to be removed, show the full list of packages that are
dependent on that package, telling user that these packages will also be
removed.

[YOCTO #9121]

(Bitbake rev: f5cb59b6b10a714b18b1c00b9a8598dd855c84b5)

Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Dave Lerner 2016-03-24 12:12:09 +00:00 committed by Richard Purdie
parent fda94f4e2d
commit d5a419d628
1 changed files with 66 additions and 6 deletions

View File

@ -89,7 +89,21 @@ function customRecipePageInit(ctx) {
var depsList = modal.find("#package-reverse-dep-list");
var deps = pkgData.reverse_dependencies;
var depsCount = deps.length;
var vDepends = "depends";
var vPackage = "package";
var vThis = "this";
if (depsCount > 1) {
vDepends = "depend";
vPackage = "packages";
vThis = "these";
}
modal.find(".package-to-rm-name").text(targetPkg.name);
modal.find(".reverse-deps-count").text(depsCount);
modal.find(".reverse-deps-count-plus1").text((depsCount+1) + " packages");
modal.find(".reverse-deps-depends").text(vDepends);
modal.find(".reverse-deps-package").text(vPackage);
modal.find(".reverse-deps-this").text(vThis);
depsList.text("");
@ -103,6 +117,8 @@ function customRecipePageInit(ctx) {
modal.find("#package-reverse-deps-total-size").text(
pkgData.reverse_dependencies_size_formatted);
targetPkg.depsRemoved = deps;
rmdPkgReverseDepsModalBtn.data(targetPkg);
modal.modal('show');
}
@ -121,6 +137,10 @@ function customRecipePageInit(ctx) {
var btnCell = $("#package-btn-cell-" + targetPkg.id);
var inlineNotify = btnCell.children(".inline-notification");
var i;
var dep;
var depBtnCell;
if (targetPkg.directive === 'add') {
method = 'PUT';
/* If the package had dependencies also notify that they were added */
@ -132,15 +152,15 @@ function customRecipePageInit(ctx) {
msg += " packages to " + ctx.recipe.name + ": ";
msg += "<strong>" + targetPkg.name + "</strong> and its dependencies";
for (var i in targetPkg.depsAdded){
var dep = targetPkg.depsAdded[i];
for (i in targetPkg.depsAdded){
dep = targetPkg.depsAdded[i];
msg += " <strong>" + dep.name + "</strong>";
/* Add any cells currently in view to the list of cells which get
* an inline notification inside them and which change add/rm state
*/
var depBtnCell = $("#package-btn-cell-" + dep.pk);
depBtnCell = $("#package-btn-cell-" + dep.pk);
btnCell = btnCell.add(depBtnCell);
inlineNotify = inlineNotify.add(
@ -159,9 +179,49 @@ function customRecipePageInit(ctx) {
} else if (targetPkg.directive === 'remove') {
method = 'DELETE';
msg += "removed 1 package from "+ctx.recipe.name+":";
msg += ' <strong>' + targetPkg.name + '<strong>';
inlineNotify.text("1 package removed");
var numPackageString = "1 package ";
var revDepList = "";
if (targetPkg.hasOwnProperty('depsRemoved') &&
targetPkg.depsRemoved.length > 0) {
var depsRemovedLength = targetPkg.depsRemoved.length;
var ending = "y: ";
var maxRevDepsDisplayed = 5;
var d = 0;
if (depsRemovedLength > 1) {
ending = "ies: ";
}
numPackageString = (depsRemovedLength + 1) + " packages";
revDepList = " and its " + depsRemovedLength + " reverse dependenc" + ending;
for (i in targetPkg.depsRemoved){
/* include up to maxRevDepsDisplayed rev deps on the page notification */
var notShownCount = depsRemovedLength - maxRevDepsDisplayed;
dep = targetPkg.depsRemoved[i];
if (d < maxRevDepsDisplayed) {
if (d > 0) {
revDepList += ", ";
}
revDepList += dep.name;
d++;
if ((d === maxRevDepsDisplayed) && (notShownCount > 0)) {
revDepList += " and " + notShownCount + " more";
}
}
/* Add any cells currently in view to the list of cells which get
* an inline notification inside them and which change add/rm state
*/
depBtnCell = $("#package-btn-cell-" + dep.pk);
btnCell = btnCell.add(depBtnCell);
inlineNotify = inlineNotify.add(
depBtnCell.children(".inline-notification"));
}
}
msg+= "removed " + numPackageString + " from " + ctx.recipe.name + ":";
msg += " <strong>" + targetPkg.name + "</strong>";
msg += revDepList;
inlineNotify.text(numPackageString + " removed");
} else {
throw("Unknown package directive: should be add or remove");
}