[rhmessaging-commits] rhmessaging commits: r1110 - mgmt/cumin/python/cumin.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Thu Oct 18 10:22:04 EDT 2007


Author: justi9
Date: 2007-10-18 10:22:03 -0400 (Thu, 18 Oct 2007)
New Revision: 1110

Modified:
   mgmt/cumin/python/cumin/page.py
   mgmt/cumin/python/cumin/page.strings
   mgmt/cumin/python/cumin/server.py
   mgmt/cumin/python/cumin/server.strings
   mgmt/cumin/python/cumin/widgets.py
Log:
Adds the new alternative server browser to the proposed view.



Modified: mgmt/cumin/python/cumin/page.py
===================================================================
--- mgmt/cumin/python/cumin/page.py	2007-10-17 19:33:06 UTC (rev 1109)
+++ mgmt/cumin/python/cumin/page.py	2007-10-18 14:22:03 UTC (rev 1110)
@@ -179,7 +179,7 @@
         self.proposed = self.ProposedTabs(app, "proposed")
         self.add_tab(self.proposed)
 
-        #self.proposed.add_tab(self.PServerTab(app, "servers"))
+        self.proposed.add_tab(self.PServerTab(app, "servers"))
         self.proposed.add_tab(self.ServerGroupTab(app, "groups"))
         self.proposed.add_tab(self.ProfileTab(app, "profiles"))
         self.proposed.add_tab(self.PClusterTab(app, "clusters"))
@@ -222,6 +222,10 @@
         def render_title(self, session, model):
             return "Server Groups (%i)" % len(model.get_server_groups())
 
+    class PServerTab(PServerBrowser):
+        def render_title(self, session, model):
+            return "Servers (%i)" % len(model.get_servers())
+
     class PClusterTab(ClusterSet):
         def render_title(self, session, model):
             return "Clusters (%i)" % len(model.get_clusters())

Modified: mgmt/cumin/python/cumin/page.strings
===================================================================
--- mgmt/cumin/python/cumin/page.strings	2007-10-17 19:33:06 UTC (rev 1109)
+++ mgmt/cumin/python/cumin/page.strings	2007-10-18 14:22:03 UTC (rev 1110)
@@ -366,6 +366,30 @@
   content: url(resource?name=radio-button-checked.png);
 }
 
+.browser {
+  width: 100%;
+}
+
+.browser .nav {
+  width: 20%;
+}
+
+.browser .nav ul {
+  margin: 0 0 1em 0;
+}
+
+.ClusterBrowser.groups h2 {
+  color: #564979;
+  font-size: 0.9em;
+  border-bottom: 1px dotted #ddd;
+  width: 80%;
+  margin: 0 0 0.5em 0;
+}
+
+.browser .view {
+  width: 80%;
+}
+
 [CuminPage.html]
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Modified: mgmt/cumin/python/cumin/server.py
===================================================================
--- mgmt/cumin/python/cumin/server.py	2007-10-17 19:33:06 UTC (rev 1109)
+++ mgmt/cumin/python/cumin/server.py	2007-10-18 14:22:03 UTC (rev 1110)
@@ -15,7 +15,7 @@
         return "Servers (%i)" % len(model.get_servers())
 
     def get_items(self, session, model):
-        return sortedby(model.get_servers())
+        return sorted_by(model.get_servers())
 
     def render_item_link(self, session, server):
         branch = session.branch()
@@ -23,6 +23,28 @@
 
         return mlink(branch.marshal(), "Server", server.name)
 
+    def render_item_group_link(self, session, server):
+        group = server.get_server_group()
+
+        if group:
+            branch = session.branch()
+            self.page().show_server_group(branch, group).show_view(branch)
+
+            return mlink(branch.marshal(), "ServerGroup", group.name)
+        else:
+            return none()
+
+    def render_item_profile_link(self, session, server):
+        profile = server.get_server_profile()
+
+        if profile:
+            branch = session.branch()
+            self.page().show_server_profile(branch, profile).show_view(branch)
+
+            return mlink(branch.marshal(), "ServerProfile", profile.name)
+        else:
+            return none()
+
     def render_item_cluster_link(self, session, server):
         cluster = server.get_cluster()
 
@@ -328,3 +350,72 @@
                 return sorted_by(group.server_items())
             else:
                 return sorted_by(self.app.model.get_servers())
+
+class PServerBrowser(ServerSet):
+    def __init__(self, app, name):
+        super(PServerBrowser, self).__init__(app, name)
+
+        self.group_tmpl = Template(self, "group_html")
+        self.profile_tmpl = Template(self, "profile_html")
+        self.cluster_tmpl = Template(self, "cluster_html")
+        
+        self.group = ServerGroupParameter(app, "group")
+        self.add_parameter(self.group)
+
+        self.profile = ServerProfileParameter(app, "profile")
+        self.add_parameter(self.profile)
+
+        self.cluster = ClusterParameter(app, "cluster")
+        self.add_parameter(self.cluster)
+
+    def get_items(self, session, model):
+        servers = sorted_by(model.get_servers())
+        group = self.group.get(session)
+        cluster = self.cluster.get(session)
+
+        for server in model.get_servers():
+            if group and group not in server.server_group_items():
+                servers.remove(server)
+
+            if cluster and cluster is not server.get_cluster():
+                # XXX
+                if server in servers:
+                    servers.remove(server)
+
+        return servers
+
+    def render_group_filters(self, session, model):
+        groups = sorted_by(model.get_server_groups())
+        return self._render_filters(session, groups, self.group_tmpl)
+
+    def render_group_link(self, session, group):
+        return self._render_filter_link(session, group, self.group)
+
+    def render_cluster_filters(self, session, model):
+        clusters = sorted_by(model.get_clusters())
+        return self._render_filters(session, clusters, self.cluster_tmpl)
+
+    def render_cluster_link(self, session, cluster):
+        return self._render_filter_link(session, cluster, self.cluster)
+
+    def _render_filters(self, session, collection, template):
+        writer = Writer()
+
+        for object in collection:
+            template.render(session, object, writer)
+
+        template.render(session, None, writer)
+
+        return writer.to_string()
+
+    def _render_filter_link(self, session, object, param):
+        branch = session.branch()
+        param.set(branch, object)
+        href = branch.marshal()
+
+        name = object and object.name or "Any"
+        
+        class_ = param.get(session) is object and "selected"
+
+        return link(href, name, class_)
+        

Modified: mgmt/cumin/python/cumin/server.strings
===================================================================
--- mgmt/cumin/python/cumin/server.strings	2007-10-17 19:33:06 UTC (rev 1109)
+++ mgmt/cumin/python/cumin/server.strings	2007-10-18 14:22:03 UTC (rev 1110)
@@ -2,6 +2,7 @@
 <table class="mobjects">
   <tr>
     <th>Server</th>
+    <th>Profile</th>
     <th>Cluster</th>
     <th>Status</th>
   </tr>
@@ -12,6 +13,7 @@
 [ServerSet.item_html]
 <tr>
   <td>{item_link}</td>
+  <td>{item_profile_link}</td>
   <td>{item_cluster_link}</td>
   <td>0 errors, 0 warnings</td>
 </tr>
@@ -176,3 +178,37 @@
 
 [BrowserGroups.group_html]
 <li>{group_link}</li>
+
+[PServerBrowser.html]
+<table class="browser">
+  <tr>
+    <td class="nav">
+      <h2>Filter by Group</h2>
+      <ul class="slist">{group_filters}</ul>
+      <h2>Filter by Cluster</h2>
+      <ul class="slist">{cluster_filters}</ul>
+    </td>
+    <td class="view">
+      <table class="mobjects">
+        <tr>
+          <th>Server</th>
+          <th>Profile</th>
+          <th>Cluster</th>
+          <th>Status</th>
+        </tr>
+
+        {items}
+      </table>
+    </td>
+  </tr>
+</div>
+
+[PServerBrowser.group_html]
+<li>{group_link}</li>
+
+[PServerBrowser.profile_html]
+<li>{profile_link}</li>
+
+[PServerBrowser.cluster_html]
+<li>{cluster_link}</li>
+

Modified: mgmt/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/cumin/python/cumin/widgets.py	2007-10-17 19:33:06 UTC (rev 1109)
+++ mgmt/cumin/python/cumin/widgets.py	2007-10-18 14:22:03 UTC (rev 1110)
@@ -5,8 +5,8 @@
 strings = StringCatalog(__file__)
 
 def link(href, content, class_=""):
-    return "<a %s href=\"%s\">%s</a>" % \
-           (class_ and "class=\"%s\"" % class_ or "", href, content)
+    return "<a%shref=\"%s\">%s</a>" % \
+           (class_ and " class=\"%s\" " % class_ or " ", href, content)
 
 def mlink(href, variety, name, selected=False):
     return link(href, name, selected and "selected")




More information about the rhmessaging-commits mailing list