[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