summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/customrecipe.js72
1 files changed, 66 insertions, 6 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/js/customrecipe.js b/bitbake/lib/toaster/toastergui/static/js/customrecipe.js
index 3c57899420..f1b8afbf2f 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) {
89 var depsList = modal.find("#package-reverse-dep-list"); 89 var depsList = modal.find("#package-reverse-dep-list");
90 var deps = pkgData.reverse_dependencies; 90 var deps = pkgData.reverse_dependencies;
91 91
92 var depsCount = deps.length;
93 var vDepends = "depends";
94 var vPackage = "package";
95 var vThis = "this";
96 if (depsCount > 1) {
97 vDepends = "depend";
98 vPackage = "packages";
99 vThis = "these";
100 }
92 modal.find(".package-to-rm-name").text(targetPkg.name); 101 modal.find(".package-to-rm-name").text(targetPkg.name);
102 modal.find(".reverse-deps-count").text(depsCount);
103 modal.find(".reverse-deps-count-plus1").text((depsCount+1) + " packages");
104 modal.find(".reverse-deps-depends").text(vDepends);
105 modal.find(".reverse-deps-package").text(vPackage);
106 modal.find(".reverse-deps-this").text(vThis);
93 107
94 depsList.text(""); 108 depsList.text("");
95 109
@@ -103,6 +117,8 @@ function customRecipePageInit(ctx) {
103 modal.find("#package-reverse-deps-total-size").text( 117 modal.find("#package-reverse-deps-total-size").text(
104 pkgData.reverse_dependencies_size_formatted); 118 pkgData.reverse_dependencies_size_formatted);
105 119
120 targetPkg.depsRemoved = deps;
121
106 rmdPkgReverseDepsModalBtn.data(targetPkg); 122 rmdPkgReverseDepsModalBtn.data(targetPkg);
107 modal.modal('show'); 123 modal.modal('show');
108 } 124 }
@@ -121,6 +137,10 @@ function customRecipePageInit(ctx) {
121 var btnCell = $("#package-btn-cell-" + targetPkg.id); 137 var btnCell = $("#package-btn-cell-" + targetPkg.id);
122 var inlineNotify = btnCell.children(".inline-notification"); 138 var inlineNotify = btnCell.children(".inline-notification");
123 139
140 var i;
141 var dep;
142 var depBtnCell;
143
124 if (targetPkg.directive === 'add') { 144 if (targetPkg.directive === 'add') {
125 method = 'PUT'; 145 method = 'PUT';
126 /* If the package had dependencies also notify that they were added */ 146 /* If the package had dependencies also notify that they were added */
@@ -132,15 +152,15 @@ function customRecipePageInit(ctx) {
132 msg += " packages to " + ctx.recipe.name + ": "; 152 msg += " packages to " + ctx.recipe.name + ": ";
133 msg += "<strong>" + targetPkg.name + "</strong> and its dependencies"; 153 msg += "<strong>" + targetPkg.name + "</strong> and its dependencies";
134 154
135 for (var i in targetPkg.depsAdded){ 155 for (i in targetPkg.depsAdded){
136 var dep = targetPkg.depsAdded[i]; 156 dep = targetPkg.depsAdded[i];
137 157
138 msg += " <strong>" + dep.name + "</strong>"; 158 msg += " <strong>" + dep.name + "</strong>";
139 159
140 /* Add any cells currently in view to the list of cells which get 160 /* Add any cells currently in view to the list of cells which get
141 * an inline notification inside them and which change add/rm state 161 * an inline notification inside them and which change add/rm state
142 */ 162 */
143 var depBtnCell = $("#package-btn-cell-" + dep.pk); 163 depBtnCell = $("#package-btn-cell-" + dep.pk);
144 btnCell = btnCell.add(depBtnCell); 164 btnCell = btnCell.add(depBtnCell);
145 165
146 inlineNotify = inlineNotify.add( 166 inlineNotify = inlineNotify.add(
@@ -159,9 +179,49 @@ function customRecipePageInit(ctx) {
159 179
160 } else if (targetPkg.directive === 'remove') { 180 } else if (targetPkg.directive === 'remove') {
161 method = 'DELETE'; 181 method = 'DELETE';
162 msg += "removed 1 package from "+ctx.recipe.name+":"; 182 var numPackageString = "1 package ";
163 msg += ' <strong>' + targetPkg.name + '<strong>'; 183 var revDepList = "";
164 inlineNotify.text("1 package removed"); 184 if (targetPkg.hasOwnProperty('depsRemoved') &&
185 targetPkg.depsRemoved.length > 0) {
186 var depsRemovedLength = targetPkg.depsRemoved.length;
187 var ending = "y: ";
188 var maxRevDepsDisplayed = 5;
189 var d = 0;
190 if (depsRemovedLength > 1) {
191 ending = "ies: ";
192 }
193 numPackageString = (depsRemovedLength + 1) + " packages";
194 revDepList = " and its " + depsRemovedLength + " reverse dependenc" + ending;
195 for (i in targetPkg.depsRemoved){
196 /* include up to maxRevDepsDisplayed rev deps on the page notification */
197 var notShownCount = depsRemovedLength - maxRevDepsDisplayed;
198 dep = targetPkg.depsRemoved[i];
199 if (d < maxRevDepsDisplayed) {
200 if (d > 0) {
201 revDepList += ", ";
202 }
203 revDepList += dep.name;
204 d++;
205 if ((d === maxRevDepsDisplayed) && (notShownCount > 0)) {
206 revDepList += " and " + notShownCount + " more";
207 }
208 }
209
210 /* Add any cells currently in view to the list of cells which get
211 * an inline notification inside them and which change add/rm state
212 */
213 depBtnCell = $("#package-btn-cell-" + dep.pk);
214 btnCell = btnCell.add(depBtnCell);
215
216 inlineNotify = inlineNotify.add(
217 depBtnCell.children(".inline-notification"));
218 }
219 }
220 msg+= "removed " + numPackageString + " from " + ctx.recipe.name + ":";
221 msg += " <strong>" + targetPkg.name + "</strong>";
222 msg += revDepList;
223
224 inlineNotify.text(numPackageString + " removed");
165 } else { 225 } else {
166 throw("Unknown package directive: should be add or remove"); 226 throw("Unknown package directive: should be add or remove");
167 } 227 }