[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