summaryrefslogtreecommitdiffstats
path: root/lib/toaster/toastergui
diff options
context:
space:
mode:
authorDave Lerner <dave.lerner@windriver.com>2016-03-24 12:12:09 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-03-24 16:20:08 +0000
commitf5cb59b6b10a714b18b1c00b9a8598dd855c84b5 (patch)
treeea563278cdc729185fcb4c8d0180400c1f643c8c /lib/toaster/toastergui
parentdbafbe229360ffe5908b106a9c10e274712b9b17 (diff)
downloadbitbake-f5cb59b6b10a714b18b1c00b9a8598dd855c84b5.tar.gz
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] 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>
Diffstat (limited to 'lib/toaster/toastergui')
-rw-r--r--lib/toaster/toastergui/static/js/customrecipe.js72
1 files changed, 66 insertions, 6 deletions
diff --git a/lib/toaster/toastergui/static/js/customrecipe.js b/lib/toaster/toastergui/static/js/customrecipe.js
index 3c5789942..f1b8afbf2 100644
--- a/lib/toaster/toastergui/static/js/customrecipe.js
+++ b/lib/toaster/toastergui/static/js/customrecipe.js
@@ -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");
}