Filter status: All, Available, Unavailable, Unconfigured, Pending, Reserved
[myslice.git] / plugins / filter_status / static / js / filter_status.js
index 3bcd15c..7a30100 100644 (file)
@@ -28,6 +28,7 @@
 
             /* Setup query and record handlers */
             this.listen_query(options.query_uuid);
+            this.listen_query(options.query_lease_uuid, 'leases');
 
             /* Setup click handlers */
             this.elts('list-group-item').click({'instance': this}, this._on_click);
         // XXX
     },
 
+    on_leases_field_state_changed: function(data) 
+    {
+        console.log('leases_field_state_changed');
+        this.on_field_state_changed(data);
+    },
     on_field_state_changed: function(data) 
     {
         var query_ext;
 
             // ... and communicate the appropriate filters to the manager
             // NOTE: we use the manifold namespace for internal filters 
-            if (self.prev_filter_status)
-                manifold.raise_event(self.options.query_uuid, FILTER_REMOVED, self.prev_filter_status);
-
-            // XXX The datatables will be refreshed twice !
-            if (filter_status != 'all') {
-                // No filter for 'all'
-                var filter = ['manifold:status', '==', filter_status];
-                manifold.raise_event(self.options.query_uuid, FILTER_ADDED, filter);
+            if (self.prev_filter_status) {
+                var filter = ['manifold:status', '==', self.prev_filter_status];
+                manifold.raise_event(self.options.query_uuid, FILTER_REMOVED, filter);
             }
+            // XXX The datatables will be refreshed twice !
+            //if (filter_status != 'all') {
+            // No filter for 'all'
+            // Changed since we have available/unavailable status
+            var filter = ['manifold:status', '==', filter_status];
+            manifold.raise_event(self.options.query_uuid, FILTER_ADDED, filter);
+            //}
 
             self.prev_filter_status = filter_status;
         },