Author: eallen
Date: 2008-11-05 16:35:57 -0500 (Wed, 05 Nov 2008)
New Revision: 2748
Modified:
mgmt/trunk/cumin/python/cumin/widgets.py
mgmt/trunk/cumin/python/cumin/widgets.strings
Log:
Changing the way the MoreOptions widget stores its parameter.
Modified: mgmt/trunk/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/widgets.py 2008-11-05 21:34:11 UTC (rev 2747)
+++ mgmt/trunk/cumin/python/cumin/widgets.py 2008-11-05 21:35:57 UTC (rev 2748)
@@ -547,7 +547,7 @@
def get_title(self, state):
return state in self.__titles and self.__titles[state]
- def render_item_link(self, session, state, id=""):
+ def render_item_link(self, session, state, id="", bm=""):
branch = session.branch()
self.set(branch, state)
@@ -555,7 +555,7 @@
hover = self.__hover[state]
class_ = self.get(session) == state and "selected"
- return fmt_link(branch.marshal(), title, class_, id=id, link_title=hover)
+ return fmt_link(branch.marshal(), title, class_, id=id, link_title=hover, bm=bm)
class GroupSwitch(StateSwitch):
def __init__(self, app, name):
@@ -1100,6 +1100,12 @@
return self.name
class MoreFieldSet(FieldForm, FormField):
+ def __init__(self, app, name):
+ super(MoreFieldSet, self).__init__(app, name)
+
+ self.input = HiddenInput(app, "open")
+ self.add_child(self.input)
+
def render_inputs(self, session, *args):
return self.render_fields(session, *args)
@@ -1108,3 +1114,18 @@
def render_less_text(self, session, *args):
return "Hide Advanced Options..."
+
+ def render_state_text(self, session, *args):
+ return self.input.get(session) \
+ and self.render_less_text(session, *args) \
+ or self.render_more_text(session, *args)
+
+ def render_open_state(self, session, *args):
+ return self.input.do_marshal(self.input.get(session))
+
+ def render_open_path(self, session, *args):
+ return self.input.render_name(session, *args)
+
+ def render_open_display(self, session, *args):
+ return self.input.get(session) and "block" or "none"
+
\ No newline at end of file
Modified: mgmt/trunk/cumin/python/cumin/widgets.strings
===================================================================
--- mgmt/trunk/cumin/python/cumin/widgets.strings 2008-11-05 21:34:11 UTC (rev 2747)
+++ mgmt/trunk/cumin/python/cumin/widgets.strings 2008-11-05 21:35:57 UTC (rev 2748)
@@ -846,6 +846,9 @@
{items}
</ul>
+[StateSwitch.item_html]
+<li>{item_link}</li>
+
[CuminEditableProperties.html]
<table class="PropertySet Editable">
<thead>
@@ -890,9 +893,6 @@
[EditablePropertyRenderer.orig_html]
<input type="hidden" name="{porig_name}"
value="{porig_value}"/>
-[StateSwitch.item_html]
-<li>{item_link}</li>
-
[CuminTable.css]
table.mobjects th.setnav {
font-size: 0.9em;
@@ -994,7 +994,6 @@
[MoreFieldSet.css]
div.more_inputs {
- display: none;
margin-left: 0.5em;
margin-right: 0.5em;
padding: 0.5em;
@@ -1010,10 +1009,10 @@
<div class="more_field_set">
<ul class="actions">
<li>
- <a class="nav" href="#" onclick="toggle_more_fieldset();
return false;"><span
id="button_{id}">{more_text}</span></a>
+ <a class="nav" href="#" onclick="toggle_more_fieldset();
return false;"><span
id="button_{id}">{state_text}</span></a>
</li>
- </ul>
- <div id="{id}" class="more_inputs"
style="display:none;">
+ </ul>{open}
+ <div id="{id}" class="more_inputs"
style="display:{open_display};">
{inputs}
</div>
</div><!-- end of "more_field_set" -->
@@ -1021,17 +1020,25 @@
function toggle_more_fieldset() {
var oDiv = document.getElementById("{id}");
var oButton = document.getElementById("button_{id}");
+ var oState = document.forms[0].elements["{open_path}"];
if (oDiv) {
if (oDiv.style.display == "none") {
oDiv.style.display = "block";
if (oButton)
oButton.innerHTML = "{less_text}";
+ if (oState)
+ oState.value = "t";
} else {
oDiv.style.display = "none"
if (oButton)
oButton.innerHTML = "{more_text}";
+ if (oState)
+ oState.value = "f";
}
+ document.forms[0].submit();
+
}
}
</script>
-
\ No newline at end of file
+
+