When the user has added/removed a layer but no page reload/requery has
happened we need to update the filter count labels client side.

[YOCTO #6861]

Signed-off-by: Michael Wood <[email protected]>
---
 bitbake/lib/toaster/toastergui/templates/filtersnippet.html |  4 ++--
 bitbake/lib/toaster/toastergui/templates/layers.html        | 13 +++++++++++++
 bitbake/lib/toaster/toastergui/templates/targets.html       | 10 ++++++++++
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/bitbake/lib/toaster/toastergui/templates/filtersnippet.html 
b/bitbake/lib/toaster/toastergui/templates/filtersnippet.html
index 90ffd3d..fe70e71 100644
--- a/bitbake/lib/toaster/toastergui/templates/filtersnippet.html
+++ b/bitbake/lib/toaster/toastergui/templates/filtersnippet.html
@@ -18,10 +18,10 @@
             {% for option in f.options %}
                 {% if option.2 %}
                     <label class="radio">
-                        <input type="radio" name="filter" {%if 
request.GET.filter == option.1 %}checked{%endif%}  value="{{option.1}}"> 
{{option.0}} ({{option.2}})
+                        <input type="radio" name="filter" {%if 
request.GET.filter == option.1 %}checked{%endif%}  value="{{option.1}}"> 
{{option.0}} (<span id="{{option.1}}_count">{{option.2}}</span>)
                 {% else %}
                     <label class="radio muted">
-                        <input type="radio" name="filter" disabled {%if 
request.GET.filter == option.1 %}checked{%endif%}  value="{{option.1}}"> 
{{option.0}} ({{option.2}})
+                        <input type="radio" name="filter" disabled {%if 
request.GET.filter == option.1 %}checked{%endif%}  value="{{option.1}}"> 
{{option.0}} (<span id="{{option.1}}_count">{{option.2}}</span>)
                 {% endif %}
                 {% if option.3 %}<i class="icon-question-sign get-help" 
data-placement="right" title="{{option.3}}"></i>{% endif %}
                 </label>
diff --git a/bitbake/lib/toaster/toastergui/templates/layers.html 
b/bitbake/lib/toaster/toastergui/templates/layers.html
index 3dd2b1f..5227580 100644
--- a/bitbake/lib/toaster/toastergui/templates/layers.html
+++ b/bitbake/lib/toaster/toastergui/templates/layers.html
@@ -121,10 +121,21 @@ function _makeXHREditCall(data, onsuccess, onfail) {
     });
 }
 
+function updateLayerCountLabels (amount) {
+    /* Update the filter labels */
+    var countLabel = $("#projectlayer__project\\:{{project.id}}_count");
+    countLabel.text(Number(countLabel.text())+amount);
+
+    var countLabelRemaining = 
$("#projectlayer__project\\:NOT{{project.id}}_count");
+    countLabelRemaining.text(Number(countLabelRemaining.text())-amount);
+}
+
 
 function layerDel(layerId, layerName, layerURL) {
     updatetext = "1 layer deleted";
     _makeXHREditCall({ 'layerDel': layerId }, function () {
+        updateLayerCountLabels(-1);
+
         show_alert("<strong>1</strong> layer deleted from <a href=\"{% url 
'project' project.id%}\">{{project.name}}</a>: <a href=\""+layerURL+"\">" + 
layerName +"</a>");
     });
 }
@@ -188,6 +199,8 @@ function layerAdd(layerId, layerName, layerURL) {
                 if (_data.error != "ok") {
                     alert(_data.error);
                 } else {
+                    updateLayerCountLabels(_data.list.length+1);
+
                     if (_data.list.length > 0) {
                         show_dependencies_modal(layerId, layerName, layerURL, 
_data.list);
                     }
diff --git a/bitbake/lib/toaster/toastergui/templates/targets.html 
b/bitbake/lib/toaster/toastergui/templates/targets.html
index 042d0fc..6b682bc 100644
--- a/bitbake/lib/toaster/toastergui/templates/targets.html
+++ b/bitbake/lib/toaster/toastergui/templates/targets.html
@@ -182,6 +182,14 @@ function show_dependencies_modal(layerId, layerName, 
layerURL, dependencies) {
     $('#dependencies_modal').modal('show');
 }
 
+function updateLayerCountLabels (amount) {
+    /* Update the filter labels */
+    var countLabel = 
$("#layer_version__projectlayer__project\\:{{project.id}}_count");
+    countLabel.text(Number(countLabel.text())+amount);
+
+    var countLabelRemaining = 
$("#layer_version__projectlayer__project\\:NOT{{project.id}}_count");
+    countLabelRemaining.text(Number(countLabelRemaining.text())-amount);
+}
 
 function layerAdd(layerId, layerName, layerURL) {
     $.ajax({
@@ -191,6 +199,8 @@ function layerAdd(layerId, layerName, layerURL) {
                 if (_data.error != "ok") {
                     alert(_data.error);
                 } else {
+                    updateLayerCountLabels(_data.list.length+1);
+
                     if (_data.list.length > 0) {
                         show_dependencies_modal(layerId, layerName, layerURL, 
_data.list);
                     }
-- 
1.9.1

-- 
_______________________________________________
toaster mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/toaster

Reply via email to