From: <ke...@us...> - 2006-05-08 16:32:39
|
Revision: 2980 Author: kevca Date: 2006-05-08 09:32:22 -0700 (Mon, 08 May 2006) ViewCVS: http://svn.sourceforge.net/mailmanager/?rev=2980&view=rev Log Message: ----------- Fixes for - setHTML raises Unicode error (#1477563) development documentation updated to reflect problem found in fix Modified Paths: -------------- MailManager/branches/RELENG_2_1/CHANGES.txt MailManager/branches/RELENG_2_1/docs/development/source/sections/unicode.xml MailManager/branches/RELENG_2_1/www/ticket_index_html.zpt Modified: MailManager/branches/RELENG_2_1/CHANGES.txt =================================================================== --- MailManager/branches/RELENG_2_1/CHANGES.txt 2006-05-08 15:55:22 UTC (rev 2979) +++ MailManager/branches/RELENG_2_1/CHANGES.txt 2006-05-08 16:32:22 UTC (rev 2980) @@ -1,5 +1,6 @@ Version 2.1-RC3 * BUG FIXES +- setHTML raises Unicode error (#1477563) - Queues page list has white on white (#1477727) - Mass update selection doesn't work (#1478274) - Selected colour leads to white on white (#1477724) Modified: MailManager/branches/RELENG_2_1/docs/development/source/sections/unicode.xml =================================================================== --- MailManager/branches/RELENG_2_1/docs/development/source/sections/unicode.xml 2006-05-08 15:55:22 UTC (rev 2979) +++ MailManager/branches/RELENG_2_1/docs/development/source/sections/unicode.xml 2006-05-08 16:32:22 UTC (rev 2980) @@ -76,7 +76,11 @@ <para> Note that it is important to do request.get('group_name', '') because request.get('group_name') could result in group_name being set to the four - character string u'None'. + character string u'None'. User input in the request object should always be + sanitised in this way, as otherwise it causes problems when used in the + rendering of page templates. The prime example is in the use of + tal:attributes, which does not cope with utf-8 strings, but will deal + correctly with unicode input. </para> <graphic fileref="source/images/unicode.png"></graphic> Modified: MailManager/branches/RELENG_2_1/www/ticket_index_html.zpt =================================================================== --- MailManager/branches/RELENG_2_1/www/ticket_index_html.zpt 2006-05-08 15:55:22 UTC (rev 2979) +++ MailManager/branches/RELENG_2_1/www/ticket_index_html.zpt 2006-05-08 16:32:22 UTC (rev 2980) @@ -15,6 +15,10 @@ prevnext python:here.getPrevNext(request); prev_id python:prevnext[0]; next_id python:prevnext[1]; + cc python:unicode(request.get('cc',''), 'utf-8'); + bcc python:unicode(request.get('bcc',''), 'utf-8'); + mail_to python:unicode(request.get('mail_to',''), 'utf-8'); + subject python:unicode(request.get('subject', ''), 'utf-8') or here.account(email=here.account_id)[0].getTicketReplySubject(here.id, here.subject); autojump python:int(request.get('autojump', False)); template_name python:here.getDefaultTemplate(request); body_is_html python:int(request.get('body_is_html', 0)); @@ -292,11 +296,11 @@ <!-- Message headers --> <p> <label for="mail_to" tal:attributes="class python:test(request.has_key('flag_mail_to'), 'error', None)" i18n:translate="to_label">To</label> - <input id="mail_to" name="mail_to" size="40" tal:attributes="tabindex tabindex/next; value request/mail_to | python:here.getReplyTo() or '%s <%s>' % (here.from_name, here.from_email)" /> + <input id="mail_to" name="mail_to" size="40" tal:attributes="tabindex tabindex/next; value mail_to | python:here.getReplyTo() or '%s <%s>' % (here.from_name, here.from_email)" /> </p> <p tal:define="all here/getReplyAll"> <label for="cc" tal:attributes="class python:test(request.has_key('flag_cc'), 'error', None)" i18n:translate="cc_label">Cc</label> - <input size="40" name="cc" id="cc" tal:attributes="tabindex tabindex/next; value request/cc | nothing" /> + <input size="40" name="cc" id="cc" tal:attributes="tabindex tabindex/next; value cc | nothing" /> <input type="checkbox" id="cc_all" tal:condition="all" tal:attributes="tabindex tabindex/next; value all; onclick string:document.response.cc.value='${all}'" /> <label for="cc_all" tal:attributes="class python:test(request.has_key('flag_cc_all'), 'error', None)" class="checkbox" tal:condition="all" i18n:translate="all">All</label> </p> @@ -304,13 +308,13 @@ <!-- Bcc --> <p> <label for="bcc" tal:attributes="class python:test(request.has_key('flag_bcc'), 'error', None)" i18n:translate="bcc_label">Bcc</label> - <input size="40" name="bcc" id="bcc" tal:attributes="tabindex tabindex/next; value request/bcc | nothing" /> + <input size="40" name="bcc" id="bcc" tal:attributes="tabindex tabindex/next; value bcc" /> </p> <!-- Subject --> <p> <label for="subject" tal:attributes="class python:test(request.has_key('flag_subject'), 'error', None)" i18n:translate="subject_label">Subject</label> - <input size="40" id="subject" name="subject" tal:attributes="tabindex tabindex/next; value request/subject | python:here.account(email=here.account_id)[0].getTicketReplySubject(here.id, here.subject)" /> + <input size="40" id="subject" name="subject" tal:attributes="tabindex tabindex/next; value subject" /> </p> <!-- Choose template --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |