[jToolkit-cvs] jToolkit/widgets widgets.py,1.21,1.22
Brought to you by:
davidfraser,
friedelwolff
From: <dav...@us...> - 2004-03-08 17:15:45
|
Update of /cvsroot/jtoolkit/jToolkit/widgets In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27369 Modified Files: widgets.py Log Message: refactored so escaping can be taylored for an attribute key this lets us escape hrefs in links, but not tooltips Index: widgets.py =================================================================== RCS file: /cvsroot/jtoolkit/jToolkit/widgets/widgets.py,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** widgets.py 10 Feb 2004 09:21:30 -0000 1.21 --- widgets.py 8 Mar 2004 16:51:15 -0000 1.22 *************** *** 61,74 **** return s def gethtmlattrib(self, key, value): """turns the key and value into something usable as an html attribute and value...""" valuetype = type(value) if valuetype == str or valuetype == unicode: ! quotedvalue = self.escape(value, quote=1) elif valuetype == dict: attribstring = "; ".join(["%s: %s" % (str(subkey), str(subvalue)) for subkey,subvalue in value.iteritems()]) ! quotedvalue = self.escape(attribstring, quote=1) else: ! quotedvalue = self.escape(str(value), quote=1) return self.escape(str(key)) + '=' + quotedvalue --- 61,78 ---- return s + def escapeattribvalue(self, key, value): + """returns the value escaped appropriately for the key...""" + return self.escape(value, quote=1) + def gethtmlattrib(self, key, value): """turns the key and value into something usable as an html attribute and value...""" valuetype = type(value) if valuetype == str or valuetype == unicode: ! quotedvalue = self.escapeattribvalue(key, value) elif valuetype == dict: attribstring = "; ".join(["%s: %s" % (str(subkey), str(subvalue)) for subkey,subvalue in value.iteritems()]) ! quotedvalue = self.escapeattribvalue(key, attribstring) else: ! quotedvalue = self.escape(key, str(value)) return self.escape(str(key)) + '=' + quotedvalue *************** *** 203,209 **** self.overrideattribs(newattribs) ! def escape(self, s, quote=None): ! """Replace special characters &, <, >, add and handle quotes if asked""" ! return ContentWidget.escape(self, s, quote).replace(" ", "%20") class Tooltip(ContentWidget): --- 207,216 ---- self.overrideattribs(newattribs) ! def escapeattribvalue(self, key, value): ! """returns the value escaped appropriately for the key...""" ! if key.lower() == 'href': ! return self.escape(value, quote=1).replace(" ", "%20") ! else: ! return self.escape(value, quote=1) class Tooltip(ContentWidget): |