[rhmessaging-commits] rhmessaging commits: r1753 - in mgmt: notes and 1 other directory.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Mon Mar 3 12:30:06 EST 2008


Author: justi9
Date: 2008-03-03 12:30:06 -0500 (Mon, 03 Mar 2008)
New Revision: 1753

Modified:
   mgmt/cumin/python/cumin/broker.py
   mgmt/cumin/python/cumin/client.py
   mgmt/cumin/python/cumin/queue.py
   mgmt/cumin/python/cumin/system.py
   mgmt/cumin/python/cumin/widgets.py
   mgmt/cumin/python/cumin/widgets.strings
   mgmt/notes/justin-todo.txt
Log:
Add a checkbox to table headers for selecting or deselecting all table
items.



Modified: mgmt/cumin/python/cumin/broker.py
===================================================================
--- mgmt/cumin/python/cumin/broker.py	2008-03-03 17:28:57 UTC (rev 1752)
+++ mgmt/cumin/python/cumin/broker.py	2008-03-03 17:30:06 UTC (rev 1753)
@@ -20,7 +20,7 @@
     def __init__(self, app, name):
         super(BrokerSet, self).__init__(app, name)
 
-        self.ids = CheckboxIdColumn(app, "id")
+        self.ids = CheckboxIdColumn(app, "id", self)
         self.add_column(self.ids)
         self.add_form_parameter(self.ids)
 

Modified: mgmt/cumin/python/cumin/client.py
===================================================================
--- mgmt/cumin/python/cumin/client.py	2008-03-03 17:28:57 UTC (rev 1752)
+++ mgmt/cumin/python/cumin/client.py	2008-03-03 17:30:06 UTC (rev 1753)
@@ -15,7 +15,7 @@
     def __init__(self, app, name):
         super(ClientSet, self).__init__(app, name)
 
-        self.ids = CheckboxIdColumn(app, "id")
+        self.ids = CheckboxIdColumn(app, "id", self)
         self.add_column(self.ids)
 
         col = self.AddressColumn(app, "addr")
@@ -329,7 +329,7 @@
     def __init__(self, app, name):
         super(ClientSessionSet, self).__init__(app, name)
 
-        self.ids = CheckboxIdColumn(app, "id")
+        self.ids = CheckboxIdColumn(app, "id", self)
         self.add_column(self.ids)
 
         col = self.NameColumn(app, "name")

Modified: mgmt/cumin/python/cumin/queue.py
===================================================================
--- mgmt/cumin/python/cumin/queue.py	2008-03-03 17:28:57 UTC (rev 1752)
+++ mgmt/cumin/python/cumin/queue.py	2008-03-03 17:30:06 UTC (rev 1753)
@@ -20,7 +20,7 @@
     def __init__(self, app, name):
         super(QueueSet, self).__init__(app, name)
 
-        self.ids = CheckboxIdColumn(app, "id")
+        self.ids = CheckboxIdColumn(app, "id", self)
         self.add_column(self.ids)
 
         col = self.NameColumn(app, "name")

Modified: mgmt/cumin/python/cumin/system.py
===================================================================
--- mgmt/cumin/python/cumin/system.py	2008-03-03 17:28:57 UTC (rev 1752)
+++ mgmt/cumin/python/cumin/system.py	2008-03-03 17:30:06 UTC (rev 1753)
@@ -13,7 +13,7 @@
     def __init__(self, app, name):
         super(SystemSet, self).__init__(app, name)
 
-        self.ids = CheckboxIdColumn(app, "id")
+        self.ids = CheckboxIdColumn(app, "id", self)
         self.add_column(self.ids)
         self.add_form_parameter(self.ids)
 

Modified: mgmt/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/cumin/python/cumin/widgets.py	2008-03-03 17:28:57 UTC (rev 1752)
+++ mgmt/cumin/python/cumin/widgets.py	2008-03-03 17:30:06 UTC (rev 1753)
@@ -494,25 +494,35 @@
         return fmt_rate(stat.rate(binding), "msg", "sec")
 
 class CheckboxIdColumn(SqlTableColumn):
-    def __init__(self, app, name):
+    def __init__(self, app, name, form):
         super(CheckboxIdColumn, self).__init__(app, name)
 
+        self.form = form
+        self.header_class = CheckboxIdColumnHeader
+
         param = IntegerParameter(app, "param")
         self.add_parameter(param)
 
-        self.__list = ListParameter(app, "id", param)
-        self.add_parameter(self.__list)
+        self.ids = ListParameter(app, "id", param)
+        self.add_parameter(self.ids)
 
     def get(self, session):
-        return self.__list.get(session)
+        return self.ids.get(session)
 
     def clear(self, session):
-        self.__list.set(session, list())
+        self.ids.set(session, list())
 
     def do_render(self, session, data):
-        name = self.__list.path()
+        name = self.ids.path()
         id = data[self.name]
-        attr = id in self.__list.get(session) and "checked=\"checked\"" or ""
+        attr = id in self.ids.get(session) and "checked=\"checked\"" or ""
         t = "<td><input type=\"checkbox\" name=\"%s\" value=\"%i\" %s/></td>"
 
         return t % (name, id, attr)
+
+class CheckboxIdColumnHeader(ItemTableColumnHeader):
+    def render_form_id(self, session, object):
+        return self.column.form.path()
+
+    def render_elem_name(self, session, object):
+        return self.column.ids.path()

Modified: mgmt/cumin/python/cumin/widgets.strings
===================================================================
--- mgmt/cumin/python/cumin/widgets.strings	2008-03-03 17:28:57 UTC (rev 1752)
+++ mgmt/cumin/python/cumin/widgets.strings	2008-03-03 17:30:06 UTC (rev 1753)
@@ -186,3 +186,21 @@
 
 [TableHeader.item_html]
 <th class="{item_class}"><a href="{item_href}">{item_content}</a></th>
+
+[CheckboxIdColumnHeader.javascript]
+function checkAll(control_id, form_id, elem_name) {
+    control = document.getElementById(control_id)
+    form = document.getElementById(form_id);
+
+    for (i = 0; i < form.elements.length; i++) {
+        elem = form.elements[i];
+
+        if (elem.name == elem_name) {
+            elem.checked = control.checked;
+        }
+    }
+}
+
+[CheckboxIdColumnHeader.html]
+<th><input id="{id}" type="checkbox"
+    onclick="checkAll('{id}', '{form_id}', '{elem_name}')"/></th>

Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt	2008-03-03 17:28:57 UTC (rev 1752)
+++ mgmt/notes/justin-todo.txt	2008-03-03 17:30:06 UTC (rev 1753)
@@ -1,7 +1,5 @@
 Current
 
- * Bulk actions: Add javascript for the check-all behavior
-
  * Tables: Add sort direction icon
 
  * Tables: Make null values in tables dashes, not zeroes




More information about the rhmessaging-commits mailing list