[Toaster] [PATCH 1/3] toaster: show full list of dependents to remove

Smith, Elliot elliot.smith at intel.com
Thu Mar 17 05:44:37 PDT 2016


Thanks for this Dave. Comments inline below.

On 11 March 2016 at 16:29, Dave Lerner <dave.lerner at windriver.com> wrote:

> 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 at windriver.com>
> ---
>  .../toaster/toastergui/static/js/customrecipe.js   | 57
> +++++++++++++++++++---
>  1 file changed, 51 insertions(+), 6 deletions(-)
>
> diff --git a/bitbake/lib/toaster/toastergui/static/js/customrecipe.js
> b/bitbake/lib/toaster/toastergui/static/js/customrecipe.js
> index 3c57899..fbb0298 100644
> --- a/bitbake/lib/toaster/toastergui/static/js/customrecipe.js
> +++ b/bitbake/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,34 @@ 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 depCountString = "";
> +      if (targetPkg.hasOwnProperty('depsRemoved') &&
> +              targetPkg.depsRemoved.length > 0) {
> +        numPackageString = (targetPkg.depsRemoved.length + 1) + "
> packages";
>

I would set a variable numDepsRemoved and use that for all occurrences of
targetPkg.depsRemoved.length in this function, but that's a personal
preference.


> +        depCountString = " and it's " + targetPkg.depsRemoved.length + "
> dependent";
>

"it's" should be "its".


> +        if (targetPkg.depsRemoved.length > 1) {
> +            depCountString += "s";
> +        }
> +
> +        for (i in targetPkg.depsRemoved){
> +          dep = targetPkg.depsRemoved[i];
> +
> +          /* 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 += depCountString;
> +
> +      inlineNotify.text(numPackageString + " removed");
>      } else {
>        throw("Unknown package directive: should be add or remove");
>      }
> --
> 1.9.1
>
> --
> _______________________________________________
> toaster mailing list
> toaster at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster
>



-- 
Elliot Smith
Software Engineer
Intel Open Source Technology Centre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/toaster/attachments/20160317/b0380ae9/attachment-0001.html>


More information about the toaster mailing list