Author: eallen
Date: 2008-09-12 10:28:30 -0400 (Fri, 12 Sep 2008)
New Revision: 2457
Modified:
mgmt/trunk/cumin/python/cumin/broker.py
mgmt/trunk/cumin/python/cumin/model.py
mgmt/trunk/cumin/python/cumin/widgets.py
mgmt/trunk/cumin/python/wooly/widgets.py
mgmt/trunk/cumin/python/wooly/widgets.strings
Log:
Add ability to disable an action link.
Modified: mgmt/trunk/cumin/python/cumin/broker.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/broker.py 2008-09-11 21:48:45 UTC (rev 2456)
+++ mgmt/trunk/cumin/python/cumin/broker.py 2008-09-12 14:28:30 UTC (rev 2457)
@@ -368,13 +368,13 @@
class Actions(CuminActions):
def do_get_items(self, session, reg):
cls = self.app.model.get_class_by_object(reg)
- acts = [(x.get_href(session, reg), x.get_title(session))
+ acts = [(x.get_href(session, reg), x.get_title(session),
x.get_enabled(session, reg))
for x in cls.actions if x.navigable]
if reg.broker:
cls = self.app.model.get_class_by_object(reg.broker)
acts.extend([(x.get_href(session, reg.broker),
- x.get_title(session))
+ x.get_title(session), x.get_enabled(session,
reg.broker))
for x in cls.actions if x.navigable])
return acts
Modified: mgmt/trunk/cumin/python/cumin/model.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/model.py 2008-09-11 21:48:45 UTC (rev 2456)
+++ mgmt/trunk/cumin/python/cumin/model.py 2008-09-12 14:28:30 UTC (rev 2457)
@@ -186,6 +186,9 @@
else:
return self.name
+ def get_enabled(self, session, object):
+ return True
+
def get_verb(self, session):
return None
@@ -1739,7 +1742,12 @@
def do_invoke(self, job, reason, completion):
job.Hold(self.cumin_model.data, completion, reason)
-
+
+ def get_enabled(self, session, job):
+ is_held = JobStatusInfo.get_status_int("Held") == job.JobStatus
+ is_deleted = job.deletionTime is not None
+ return not (is_held or is_deleted)
+
class Release(CuminAction):
def show(self, session, job):
frame = self.cumin_class.get_pool_frame(session)
@@ -1754,6 +1762,11 @@
def do_invoke(self, job, reason, completion):
job.Release(self.cumin_model.data, completion, reason)
+ def get_enabled(self, session, job):
+ is_held = JobStatusInfo.get_status_int("Held") == job.JobStatus
+ is_deleted = job.deletionTime is not None
+ return is_held and not is_deleted
+
class Remove(CuminAction):
def show(self, session, job):
frame = self.cumin_class.get_pool_frame(session)
@@ -1768,6 +1781,10 @@
def do_invoke(self, job, reason, completion):
job.Remove(self.cumin_model.data, completion, reason)
+ def get_enabled(self, session, job):
+ is_deleted = job.deletionTime is not None
+ return not is_deleted
+
class SaveAd(CuminAction):
def show(self, session, job):
pass
Modified: mgmt/trunk/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/widgets.py 2008-09-11 21:48:45 UTC (rev 2456)
+++ mgmt/trunk/cumin/python/cumin/widgets.py 2008-09-12 14:28:30 UTC (rev 2457)
@@ -421,7 +421,7 @@
def do_get_items(self, session, object):
cls = self.app.model.get_class_by_object(object)
- return [(x.get_href(session, object), x.get_title(session))
+ return [(x.get_href(session, object), x.get_title(session),
x.get_enabled(session, object))
for x in cls.actions if x.navigable]
class CuminDetails(Widget):
@@ -467,7 +467,7 @@
class SummaryActions(CuminActions):
def do_get_items(self, session, object):
cls = self.app.model.get_class_by_object(object)
- return [(x.get_href(session, object), x.get_title(session))
+ return [(x.get_href(session, object), x.get_title(session),
x.get_enabled(session, object))
for x in cls.actions if x.summary and x.navigable]
class StateSwitch(ItemSet):
Modified: mgmt/trunk/cumin/python/wooly/widgets.py
===================================================================
--- mgmt/trunk/cumin/python/wooly/widgets.py 2008-09-11 21:48:45 UTC (rev 2456)
+++ mgmt/trunk/cumin/python/wooly/widgets.py 2008-09-12 14:28:30 UTC (rev 2457)
@@ -438,11 +438,14 @@
class ActionRenderer(TemplateRenderer):
def render_href(self, session, action):
- return action[0]
-
+ return action[2] and " href=\"%s\"" % action[0] or
""
+
def render_content(self, session, action):
return action[1]
+ def render_tag(self, session, action):
+ return action[2] and "a" or "span"
+
def escape_amp(string):
return str(string).replace("&", "&")
Modified: mgmt/trunk/cumin/python/wooly/widgets.strings
===================================================================
--- mgmt/trunk/cumin/python/wooly/widgets.strings 2008-09-11 21:48:45 UTC (rev 2456)
+++ mgmt/trunk/cumin/python/wooly/widgets.strings 2008-09-12 14:28:30 UTC (rev 2457)
@@ -176,14 +176,17 @@
ul.ActionSet li {
}
-ul.ActionSet a:before {
+ul.ActionSet a:before, ul.ActionSet span:before {
content: "\00BB \0020";
font-weight: bold;
color: #dc9f2e;
}
+ul.ActionSet span {
+ color: #666;
+}
[ActionSet.html]
<ul class="ActionSet">{items}</ul>
[ActionSet.action_html]
-<li><a href="{href}">{content}</a></li>
+<li><{tag}{href}>{content}</{tag}></li>