[Cherokee-commits] [4171] CTK/trunk/CTK: Adds a new special Submitter button, so <form> s can be emulated.
SVN at cherokee-project.com
SVN at cherokee-project.com
Mon Jan 25 16:42:50 CET 2010
Revision: 4171
http://svn.cherokee-project.com/changeset/4171
Author: alo
Date: 2010-01-25 16:42:49 +0100 (Mon, 25 Jan 2010)
Log Message:
-----------
Adds a new special Submitter button, so <form>s can be emulated. The
target is to be able to have a Submitter on which most of the fields
are optional.
Modified Paths:
--------------
CTK/trunk/CTK/HTTP.py
CTK/trunk/CTK/Submitter.py
CTK/trunk/CTK/__init__.py
Modified: CTK/trunk/CTK/HTTP.py
===================================================================
--- CTK/trunk/CTK/HTTP.py 2010-01-25 12:01:41 UTC (rev 4170)
+++ CTK/trunk/CTK/HTTP.py 2010-01-25 15:42:49 UTC (rev 4171)
@@ -111,6 +111,7 @@
self['Location'] = location
self.body += 'Redirecting to <a href="%s">%s</a>.' %(location, location)
+
class HTTP_XSendfile (HTTP_Response):
def __init__ (self, location, error=200):
HTTP_Response.__init__ (self, error)
Modified: CTK/trunk/CTK/Submitter.py
===================================================================
--- CTK/trunk/CTK/Submitter.py 2010-01-25 12:01:41 UTC (rev 4170)
+++ CTK/trunk/CTK/Submitter.py 2010-01-25 15:42:49 UTC (rev 4171)
@@ -22,6 +22,7 @@
from consts import *
from Table import Table
+from Widget import Widget
from RawHTML import RawHTML
from Container import Container
from TextField import TextField
@@ -29,7 +30,7 @@
from PageCleaner import Uniq_Block
HTML = """
-<div id="submitter%(id_widget)d">
+<div id="submitter%(id_widget)d" class="submitter">
%(html)s
<div id="notice"></div>
</div>
@@ -78,3 +79,35 @@
my.clean_up_headers()
return my
+
+
+
+FORCE_SUBMIT_JS = """
+$("#%(id)s").click(function() {
+ /* Figure the widget number of the Submitter */
+ var submitter = $('#%(id)s').parent('.submitter');
+ var submitter_num = submitter.attr('id').replace('submitter','');
+
+ /* Invoke its submit method */
+ submit_obj = eval("submit_" + submitter_num);
+ submit_obj.submit_form (submit_obj);
+});
+"""
+
+class SubmitterButton(Widget):
+ def __init__ (self, caption="Submit"):
+ Widget.__init__ (self)
+
+ self.id = "button_%d" %(self.uniq_id)
+ self.caption = caption
+
+ # Public interface
+ #
+ def Render (self):
+ id = self.id
+ caption = self.caption
+
+ html = '<input id="%(id)s" type="button" value="%(caption)s" />' %(locals())
+ js = FORCE_SUBMIT_JS %(locals())
+
+ return RenderResponse (html, js)
Modified: CTK/trunk/CTK/__init__.py
===================================================================
--- CTK/trunk/CTK/__init__.py 2010-01-25 12:01:41 UTC (rev 4170)
+++ CTK/trunk/CTK/__init__.py 2010-01-25 15:42:49 UTC (rev 4171)
@@ -23,7 +23,7 @@
# Generic
from Widget import Widget
from Container import Container
-from Submitter import Submitter
+from Submitter import Submitter, SubmitterButton
from Page import Page
from Config import Config
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.octality.com/pipermail/cherokee-commits/attachments/20100125/5ae38cad/attachment-0001.htm
More information about the Cherokee-commits
mailing list