Author: justi9
Date: 2008-09-21 16:51:38 -0400 (Sun, 21 Sep 2008)
New Revision: 2513
Modified:
mgmt/trunk/cumin/python/cumin/__init__.py
mgmt/trunk/cumin/python/cumin/demo.py
mgmt/trunk/cumin/python/cumin/page.py
mgmt/trunk/cumin/python/cumin/page.strings
mgmt/trunk/cumin/python/cumin/parameters.py
mgmt/trunk/cumin/python/cumin/pool.py
mgmt/trunk/cumin/python/cumin/pool.strings
mgmt/trunk/cumin/python/cumin/widgets.py
mgmt/trunk/cumin/python/cumin/widgets.strings
Log:
Fill in some of the more empty looking spots in the grid UI.
Add a CuminHeading widget for rendering titles where a CuminSummary is
more than you need.
Remove some obsolete logout code.
Modified: mgmt/trunk/cumin/python/cumin/__init__.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/__init__.py 2008-09-21 18:21:58 UTC (rev 2512)
+++ mgmt/trunk/cumin/python/cumin/__init__.py 2008-09-21 20:51:38 UTC (rev 2513)
@@ -234,7 +234,7 @@
formatter = logging.Formatter("%(name)-12s - %(message)s")
log.setLevel(level)
- #mlog.setLevel(level)
+ mlog.setLevel(level)
handler = logging.StreamHandler()
handler.setLevel(level)
Modified: mgmt/trunk/cumin/python/cumin/demo.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/demo.py 2008-09-21 18:21:58 UTC (rev 2512)
+++ mgmt/trunk/cumin/python/cumin/demo.py 2008-09-21 20:51:38 UTC (rev 2513)
@@ -19,7 +19,7 @@
group = BrokerGroup(name=name)
groups[name] = group
- CollectorRegistration(name="main", collectorId="")
+ CollectorRegistration(name="main", collectorId="main")
#profiles = list()
Modified: mgmt/trunk/cumin/python/cumin/page.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/page.py 2008-09-21 18:21:58 UTC (rev 2512)
+++ mgmt/trunk/cumin/python/cumin/page.py 2008-09-21 20:51:38 UTC (rev 2513)
@@ -62,9 +62,6 @@
def __init__(self, app, name):
super(MainFrame, self).__init__(app, name)
- self.__logout = BooleanParameter(app, "logout")
- self.add_parameter(self.__logout)
-
self.__frame_tmpl = Template(self, "frame_html")
self.__tabs = MainFrameTabs(app, "tabs")
@@ -181,31 +178,6 @@
frame.set_object(session, system)
return self.page.set_current_frame(session, frame)
- def do_process(self, session, *args):
- if self.__logout.get(session):
- self.__logout.set(session, False)
-
- name = session.credentials.get("name")
-
- try:
- user = Subject.selectBy(name=name)[0]
- except IndexError:
- user = None
-
- if user:
- user.lastLoggedOut = datetime.now()
- user.syncUpdate()
-
- # XXX boy, this sucks. necessary because the
- # resolution of TimestampCol (lastLoggedOut) is too
- # coarse for the subsequent comparison of
- # lastLoggedOut and lastChallenged
- sleep(2)
-
- self.page.set_redirect_url(session, session.marshal())
-
- super(MainFrame, self).do_process(session, *args)
-
class MainFrameTabs(LinkSet):
def __init__(self, app, name):
super(MainFrameTabs, self).__init__(app, name)
@@ -278,42 +250,50 @@
def __init__(self, app, name):
super(MessagingView, self).__init__(app, name)
+ heading = self.Heading(app, "heading")
+ self.add_child(heading)
+
self.add_tab(BrokerBrowser(app, "brokers"))
self.add_tab(BrokerGroupSet(app, "groups"))
#self.add_tab(BrokerProfileSet(app, "profiles"))
#self.add_tab(BrokerClusterSet(app, "clusters"))
- #self.add_tab(self.TagTab(app, "tags"))
- def render_title(self, session):
- return "Messaging"
-
def render_data_url(self, session):
return "model.xml"
- class TagTab(Widget):
+ class Heading(CuminHeading):
def render_title(self, session):
- return "Tags"
+ return "Messaging"
class GridView(TabbedModeSet):
def __init__(self, app, name):
super(GridView, self).__init__(app, name)
+ heading = self.Heading(app, "heading")
+ self.add_child(heading)
+
self.add_tab(PoolSet(app, "pools"))
- def render_title(self, session):
- return "Grid"
-
def render_data_url(self, session):
return "model.xml"
+ class Heading(CuminHeading):
+ def render_title(self, session):
+ return "Grid"
+
class SystemsView(TabbedModeSet):
def __init__(self, app, name):
super(SystemsView, self).__init__(app, name)
+ heading = self.Heading(app, "heading")
+ self.add_child(heading)
+
self.add_tab(SystemSet(app, "systems"))
- def render_title(self, session):
- return "Systems"
-
def render_data_url(self, session):
return "model.xml"
+
+ class Heading(CuminHeading):
+ def render_title(self, session):
+ return "Systems"
+
Modified: mgmt/trunk/cumin/python/cumin/page.strings
===================================================================
--- mgmt/trunk/cumin/python/cumin/page.strings 2008-09-21 18:21:58 UTC (rev 2512)
+++ mgmt/trunk/cumin/python/cumin/page.strings 2008-09-21 20:51:38 UTC (rev 2513)
@@ -37,7 +37,6 @@
h1 {
font-size: 1.1em;
- margin: 0;
}
h2 {
@@ -705,7 +704,7 @@
]]>
</script>
<div class="oblock">
- <img id="msg_logo" src="resource?name=rh_messaging_logo.png"
alt="messaging logo"/>
+ {heading}
<ul class="TabbedModeSet tabs">{tabs}</ul>
<div class="TabbedModeSet mode">{mode}</div>
@@ -718,6 +717,8 @@
]]>
</script>
<div class="oblock">
+ {heading}
+
<ul class="TabbedModeSet tabs">{tabs}</ul>
<div class="TabbedModeSet mode">{mode}</div>
</div>
@@ -729,6 +730,8 @@
]]>
</script>
<div class="oblock">
+ {heading}
+
<ul class="TabbedModeSet tabs">{tabs}</ul>
<div class="TabbedModeSet mode">{mode}</div>
</div>
Modified: mgmt/trunk/cumin/python/cumin/parameters.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/parameters.py 2008-09-21 18:21:58 UTC (rev 2512)
+++ mgmt/trunk/cumin/python/cumin/parameters.py 2008-09-21 20:51:38 UTC (rev 2513)
@@ -94,6 +94,14 @@
return str(peer.id)
class PoolParameter(Parameter):
+ def get_default(self, session):
+ try:
+ coll = CollectorRegistration.selectBy(name="main")[0]
+ except IndexError:
+ raise Exception("Main pool not found")
+
+ return coll
+
def do_unmarshal(self, string):
return CollectorRegistration.get(int(string))
Modified: mgmt/trunk/cumin/python/cumin/pool.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/pool.py 2008-09-21 18:21:58 UTC (rev 2512)
+++ mgmt/trunk/cumin/python/cumin/pool.py 2008-09-21 20:51:38 UTC (rev 2513)
@@ -15,7 +15,6 @@
from scheduler import SchedulerSet, SchedulerFrame
from submitter import SubmitterSet, SubmitterFrame
-
strings = StringCatalog(__file__)
log = logging.getLogger("cumin.pool")
@@ -28,6 +27,12 @@
self.set_default_column(col)
+ col = self.JobsColumn(app, "jobs")
+ self.add_column(col)
+
+ col = self.StatusColumn(app, "status")
+ self.add_column(col)
+
def render_title(self, session):
return "Pools %s" % fmt_count(CollectorRegistration.select().count())
@@ -39,8 +44,28 @@
pool = Identifiable(data["id"])
branch = session.branch()
self.frame.show_pool(branch, pool).show_view(branch)
- return fmt_olink(branch, pool, name=data["name"])
+
+ name = data["name"]
+ if name == "main":
+ name = "Main Pool"
+
+ return fmt_olink(branch, pool, name=name)
+
+ class JobsColumn(SqlTableColumn):
+ def render_title(self, session, data):
+ return "Jobs"
+
+ def render_content(self, session, data):
+ return data["jobs"]
+
+ class StatusColumn(SqlTableColumn):
+ def render_title(sefl, session, data):
+ return "Status"
+
+ def render_content(self, session, data):
+ return "Active"
+
class PoolFrame(CuminFrame):
def __init__(self, app, name):
super(PoolFrame, self).__init__(app, name)
@@ -152,6 +177,5 @@
pass
class PoolStatus(CuminStatus):
- pass
-
-
+ def render_status(self, session, pool):
+ return "Active"
Modified: mgmt/trunk/cumin/python/cumin/pool.strings
===================================================================
--- mgmt/trunk/cumin/python/cumin/pool.strings 2008-09-21 18:21:58 UTC (rev 2512)
+++ mgmt/trunk/cumin/python/cumin/pool.strings 2008-09-21 20:51:38 UTC (rev 2513)
@@ -1,8 +1,16 @@
[PoolSet.sql]
select
r.id,
- r.name
+ r.name,
+ (select count(*) from job) as jobs
from collector_registration as r
[PoolSet.count_sql]
select count(*) from collector_registration
+
+[PoolStatus.html]
+<div id="{id}" class="CuminStatus {color}">
+ <h2>Status</h2>
+
+ <div>{status}</div>
+</div>
Modified: mgmt/trunk/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/widgets.py 2008-09-21 18:21:58 UTC (rev 2512)
+++ mgmt/trunk/cumin/python/cumin/widgets.py 2008-09-21 20:51:38 UTC (rev 2513)
@@ -448,6 +448,13 @@
def render_title(self, session):
return "Details"
+class CuminHeading(Widget):
+ def render_title(self, session, *args):
+ pass
+
+ def render_icon_href(self, session, *args):
+ return "resource?name=action-36.png"
+
class CuminSummary(Widget):
def __init__(self, app, name):
super(CuminSummary, self).__init__(app, name)
Modified: mgmt/trunk/cumin/python/cumin/widgets.strings
===================================================================
--- mgmt/trunk/cumin/python/cumin/widgets.strings 2008-09-21 18:21:58 UTC (rev 2512)
+++ mgmt/trunk/cumin/python/cumin/widgets.strings 2008-09-21 20:51:38 UTC (rev 2513)
@@ -232,6 +232,22 @@
</tbody>
</table>
+[CuminHeading.css]
+h1.CuminHeading {
+ margin: 0 0 1em 0;
+}
+
+h1.CuminHeading img {
+ vertical-align: -60%;
+ margin: 0 0.25em 0 0;
+}
+
+[CuminHeading.html]
+<h1 class="CuminHeading">
+ <img src="{icon_href}" alt="summary"/>
+ {title}
+</h1>
+
[CuminSummary.css]
div.CuminSummary {
width: 32em;
@@ -241,6 +257,7 @@
div.CuminSummary h1 {
font-size: 1.1em;
+ margin: 0 0 1em 0;
}
div.CuminSummary h1 img {