Edgewall Software

Ticket #7445: xhtml-validation.patch

File xhtml-validation.patch, 18.4 KB (added by Remy Blank <remy.blank@…>, 4 months ago)

Patch against 0.11-stable [7352] fixing several XHTML-1.0-Strict validation errors

  • trac/admin/templates/admin_basics.html

    diff --git a/trac/admin/templates/admin_basics.html b/trac/admin/templates/admin_basics.html
    a b  
    1212  <body> 
    1313    <h2>Basic Settings</h2> 
    1414 
    15     <form class="mod" id="modbasic" method="post"> 
     15    <form class="mod" id="modbasic" method="post" action=""> 
    1616      <fieldset> 
    1717        <legend>Project</legend> 
    1818        <div class="field"> 
  • trac/admin/templates/admin_components.html

    diff --git a/trac/admin/templates/admin_components.html b/trac/admin/templates/admin_components.html
    a b  
    2929    </py:def> 
    3030 
    3131    <py:choose test="view"> 
    32       <form py:when="'detail'" class="mod" id="modcomp" method="post"> 
     32      <form py:when="'detail'" class="mod" id="modcomp" method="post" action=""> 
    3333        <fieldset> 
    3434          <legend>Modify Component:</legend> 
    3535          <div class="field"> 
     
    5858      </form> 
    5959 
    6060      <py:otherwise> 
    61         <form class="addnew" id="addcomponent" method="post"> 
     61        <form class="addnew" id="addcomponent" method="post" action=""> 
    6262          <fieldset> 
    6363            <legend>Add Component:</legend> 
    6464            <div class="field"> 
     
    7272        </form> 
    7373 
    7474        <py:choose> 
    75           <form py:when="components" id="component_table" method="POST"> 
     75          <form py:when="components" id="component_table" method="post" action=""> 
    7676            <table class="listing" id="complist"> 
    7777              <thead> 
    7878                <tr><th class="sel">&nbsp;</th> 
  • trac/admin/templates/admin_enums.html

    diff --git a/trac/admin/templates/admin_enums.html b/trac/admin/templates/admin_enums.html
    a b  
    1313    <h2>Manage $label_plural</h2> 
    1414 
    1515    <py:choose test="view"> 
    16       <form py:when="'detail'" class="mod" id="modenum" method="post"> 
     16      <form py:when="'detail'" class="mod" id="modenum" method="post" action=""> 
    1717        <fieldset> 
    1818          <legend>Modify $label_singular</legend> 
    1919          <div class="field"> 
     
    2727      </form> 
    2828 
    2929      <py:otherwise> 
    30         <form class="addnew" id="addenum" method="post"> 
     30        <form class="addnew" id="addenum" method="post" action=""> 
    3131          <fieldset> 
    3232            <legend>Add $label_singular</legend> 
    3333            <div class="field"> 
     
    4040        </form> 
    4141 
    4242        <py:choose> 
    43           <form py:when="enums" id="enumtable" method="POST"> 
     43          <form py:when="enums" id="enumtable" method="post" action=""> 
    4444            <table class="listing" id="enumlist"> 
    4545              <thead> 
    4646                <tr><th class="sel">&nbsp;</th> 
  • trac/admin/templates/admin_logging.html

    diff --git a/trac/admin/templates/admin_logging.html b/trac/admin/templates/admin_logging.html
    a b  
    2020  <body> 
    2121    <h2>Logging</h2> 
    2222 
    23     <form class="mod" id="modlog" method="post"> 
     23    <form class="mod" id="modlog" method="post" action=""> 
    2424      <fieldset> 
    2525        <legend>Configuration</legend> 
    2626        <div class="field"> 
  • trac/admin/templates/admin_milestones.html

    diff --git a/trac/admin/templates/admin_milestones.html b/trac/admin/templates/admin_milestones.html
    a b  
    1313    <h2>Manage Milestones</h2> 
    1414 
    1515    <py:choose test="view"> 
    16       <form py:when="'detail'" class="mod" method="post" id="modifymilestone"> 
     16      <form py:when="'detail'" class="mod" method="post" id="modifymilestone" action=""> 
    1717        <fieldset> 
    1818          <legend>Modify Milestone:</legend> 
    1919          <div class="field"> 
     
    6969 
    7070      <py:otherwise> 
    7171 
    72         <form class="addnew" id="addmilestone" method="post"> 
     72        <form class="addnew" id="addmilestone" method="post" action=""> 
    7373          <fieldset> 
    7474            <legend>Add Milestone:</legend> 
    7575            <div class="field"> 
     
    9292        </form> 
    9393 
    9494        <py:choose> 
    95           <form py:when="milestones" id="milestone_table" method="POST"> 
     95          <form py:when="milestones" id="milestone_table" method="post" action=""> 
    9696            <table class="listing" id="millist"> 
    9797              <thead> 
    9898                <tr><th class="sel">&nbsp;</th> 
  • trac/admin/templates/admin_plugins.html

    diff --git a/trac/admin/templates/admin_plugins.html b/trac/admin/templates/admin_plugins.html
    a b  
    1616  <body> 
    1717    <h2>Manage Plugins</h2> 
    1818 
    19     <form id="addplug" class="addnew" method="post" enctype="multipart/form-data"> 
     19    <form id="addplug" class="addnew" method="post" enctype="multipart/form-data" action=""> 
    2020      <fieldset> 
    2121        <legend>Install Plugin:</legend> 
    2222        <div class="field"> 
     
    4040      </fieldset> 
    4141    </form> 
    4242 
    43     <form py:for="idx, plugin in enumerate(plugins)" method="post"> 
     43    <form py:for="idx, plugin in enumerate(plugins)" method="post" action=""> 
    4444      <div class="plugin"> 
    4545        <h3>${plugin.name} ${plugin.version}</h3> 
    4646        <div class="uninstall buttons"> 
  • trac/admin/templates/admin_versions.html

    diff --git a/trac/admin/templates/admin_versions.html b/trac/admin/templates/admin_versions.html
    a b  
    1313    <h2>Manage Versions</h2> 
    1414 
    1515    <py:choose test="view"> 
    16       <form py:when="'detail'" class="mod" id="modifyversion" method="post"> 
     16      <form py:when="'detail'" class="mod" id="modifyversion" method="post" action=""> 
    1717        <fieldset> 
    1818          <legend>Modify Version:</legend> 
    1919          <div class="field"> 
     
    4848      </form> 
    4949 
    5050      <py:otherwise> 
    51         <form class="addnew" id="addversion" method="post"> 
     51        <form class="addnew" id="addversion" method="post" action=""> 
    5252          <fieldset> 
    5353            <legend>Add Version:</legend> 
    5454            <div class="field"> 
     
    6969        </form> 
    7070 
    7171        <py:choose> 
    72           <form py:when="versions" id="version_table" method="POST"> 
     72          <form py:when="versions" id="version_table" method="post" action=""> 
    7373            <table class="listing" id="verlist"> 
    7474              <thead> 
    7575                <tr><th class="sel">&nbsp;</th> 
  • trac/templates/about.html

    diff --git a/trac/templates/about.html b/trac/templates/about.html
    a b  
    99    <title>About Trac</title> 
    1010    <link rel="stylesheet" type="text/css" href="${chrome.htdocs_location}css/about.css" /> 
    1111    <script type="text/javascript"> 
     12      //<![CDATA[ 
    1213      jQuery(document).ready(function ($) { 
    1314        $("#systeminfo table").append("<tr><th>jQuery:</th><td>"+$().jquery+"</td></tr>"); 
    1415      }); 
     16      //]]> 
    1517    </script> 
    1618  </head> 
    1719 
  • trac/templates/history_view.html

    diff --git a/trac/templates/history_view.html b/trac/templates/history_view.html
    a b  
    1515      <h1>Change History for <a href="${url_of(resource)}">${name_of(resource)}</a></h1> 
    1616 
    1717      <form py:if="history" class="printableform" method="get" action=""> 
    18         <input type="hidden" name="action" value="diff" /> 
    1918        <div class="buttons"> 
     19          <input type="hidden" name="action" value="diff" /> 
    2020          <input type="submit" value="View changes" /> 
    2121        </div> 
    2222        <table id="fieldhist" class="listing" summary="Change history"> 
  • trac/templates/theme.html

    diff --git a/trac/templates/theme.html b/trac/templates/theme.html
    a b  
    3535    <div id="main"> 
    3636      <div id="ctxtnav" class="nav"> 
    3737        <h2>Context Navigation</h2> 
    38           <ul> 
     38          <ul py:if="chrome.ctxtnav"> 
    3939            <li py:for="i, elm in enumerate(chrome.ctxtnav)" class="${i == 0 and 'first ' or None}${i+1 == len(chrome.ctxtnav) and 'last' or None}">$elm</li> 
    4040          </ul> 
    4141        <hr /> 
  • trac/ticket/templates/milestone_delete.html

    diff --git a/trac/ticket/templates/milestone_delete.html b/trac/ticket/templates/milestone_delete.html
    a b  
    2121      <h1>Delete Milestone ${milestone.name}</h1> 
    2222 
    2323    <form id="edit" action="" method="post"> 
    24       <input type="hidden" name="action" value="delete" /> 
    25       <p><strong>Are you sure you want to delete this milestone?</strong></p> 
    26       <input type="checkbox" id="retarget" name="retarget" checked="checked" /> 
    27       <label for="target">Retarget associated tickets to milestone</label> 
    28       <select name="target" id="target"> 
    29         <option value="">None</option> 
    30         <option py:for="m in milestones" 
    31                 py:if="m.name != milestone.name">${m.name}</option> 
    32       </select> 
     24      <div> 
     25        <input type="hidden" name="action" value="delete" /> 
     26        <p><strong>Are you sure you want to delete this milestone?</strong></p> 
     27        <input type="checkbox" id="retarget" name="retarget" checked="checked" /> 
     28        <label for="target">Retarget associated tickets to milestone</label> 
     29        <select name="target" id="target"> 
     30          <option value="">None</option> 
     31          <option py:for="m in milestones" 
     32                  py:if="m.name != milestone.name">${m.name}</option> 
     33        </select> 
     34      </div> 
    3335      <div class="buttons"> 
    3436       <input type="submit" name="cancel" value="Cancel" /> 
    3537       <input type="submit" value="Delete milestone" /> 
  • trac/ticket/templates/milestone_edit.html

    diff --git a/trac/ticket/templates/milestone_edit.html b/trac/ticket/templates/milestone_edit.html
    a b  
    3838      </py:choose> 
    3939 
    4040      <form id="edit" action="" method="post"> 
    41         <input type="hidden" name="id" value="${milestone.name}" /> 
    42         <input type="hidden" name="action" value="edit" /> 
    4341        <div class="field"> 
     42          <input type="hidden" name="id" value="${milestone.name}" /> 
     43          <input type="hidden" name="action" value="edit" /> 
    4444          <label>Name of the milestone:<br /> 
    4545            <input type="text" id="name" name="name" size="32" value="${milestone.name or req.args.get('name')}" /> 
    4646          </label> 
  • trac/ticket/templates/milestone_view.html

    diff --git a/trac/ticket/templates/milestone_view.html b/trac/ticket/templates/milestone_view.html
    a b  
    5050                      value="${group.name}" py:content="group.label" 
    5151                      selected="${grouped_by == group.name or None}" /> 
    5252            </select> 
    53             <noscript><input type="submit" value="Update" /></noscript> 
     53            <input type="submit" value="Update" class="noscript" /> 
     54            <script type="text/javascript"> 
     55              jQuery(document).ready(function ($) { $(".noscript").attr("style", "display: none"); }); 
     56            </script> 
    5457          </legend> 
    55           <table summary="Shows the milestone completion status grouped by ${grouped_by}"> 
     58          <table py:if="groups" summary="Shows the milestone completion status grouped by ${grouped_by}"> 
    5659            <tr py:for="group in groups"> 
    5760              <th scope="row" py:choose=""> 
    5861                <i py:when="not group.name"><a href="${group.stats_href}">(none)</a></i> 
     
    8386                  attachments.can_create" 
    8487           class="buttons"> 
    8588        <form py:if="'MILESTONE_MODIFY' in perm(milestone.resource)" method="get" action="" id="editmilestone"> 
    86           <input type="hidden" name="action" value="edit" /> 
    87           <input type="submit" value="Edit milestone" /> 
     89          <div> 
     90            <input type="hidden" name="action" value="edit" /> 
     91            <input type="submit" value="Edit milestone" /> 
     92          </div> 
    8893        </form> 
    8994        <form py:if="'MILESTONE_DELETE' in perm(milestone.resource)" method="get" action="" id="deletemilestone"> 
    90           <input type="hidden" name="action" value="delete" /> 
    91           <input type="submit" value="Delete milestone" /> 
     95          <div> 
     96            <input type="hidden" name="action" value="delete" /> 
     97            <input type="submit" value="Delete milestone" /> 
     98          </div> 
    9299        </form> 
    93100        ${attach_file_form(attachments)} 
    94101      </div> 
  • trac/ticket/templates/report_delete.html

    diff --git a/trac/ticket/templates/report_delete.html b/trac/ticket/templates/report_delete.html
    a b  
    1313    <div id="content" class="report"> 
    1414      <h1>$report.title</h1> 
    1515      <form action="${href.report()}" method="post"> 
    16         <input type="hidden" name="id" value="$report.id"/> 
    17         <input type="hidden" name="action" value="delete" /> 
    1816        <p><strong>Are you sure you want to delete this report?</strong></p> 
    1917        <div class="buttons"> 
     18          <input type="hidden" name="id" value="$report.id"/> 
     19          <input type="hidden" name="action" value="delete" /> 
    2020          <input type="submit" name="cancel" value="Cancel"/> 
    2121          <input type="submit" value="Delete report"/> 
    2222        </div> 
  • trac/ticket/templates/ticket.html

    diff --git a/trac/ticket/templates/ticket.html b/trac/ticket/templates/ticket.html
    a b  
    175175              <!--! Quote the description (only for existing tickets) --> 
    176176              <form py:if="ticket.exists and ticket.description and 
    177177                           'TICKET_APPEND' in perm(ticket.resource)" 
    178                 name="addreply" 
     178                id="addreply" 
    179179                method="get" action="#comment"> 
    180180                <div class="inlinebuttons"> 
    181181                  <input type="hidden" name="replyto" value="description" /> 
     
    235235                   ('TICKET_APPEND' in perm(ticket.resource) or 
    236236                    'TICKET_CHGPROP' in perm(ticket.resource) or 
    237237                    ('TICKET_CREATE' in perm(ticket.resource) and not ticket.id))" 
    238             action="${ticket.exists and href.ticket(ticket.id) or href.newticket()}" method="post" name="propform" id="propertyform"> 
     238            action="${ticket.exists and href.ticket(ticket.id) or href.newticket()}" method="post" id="propform"> 
    239239        <h3 py:if="ticket.exists"><a id="edit" onfocus="$('#comment').get(0).focus()"> 
    240240            Add/Change #${ticket.id} ($ticket.summary)</a></h3> 
    241241        <div py:if="authname == 'anonymous'" class="field"> 
  • trac/ticket/tests/functional.py

    diff --git a/trac/ticket/tests/functional.py b/trac/ticket/tests/functional.py
    a b  
    2626        tc.follow('New Ticket') 
    2727        summary = random_sentence(5) 
    2828        desc = random_sentence(5) 
    29         tc.formvalue('propertyform', 'field-summary', summary) 
    30         tc.formvalue('propertyform', 'field-description', desc) 
     29        tc.formvalue('propform', 'field-summary', summary) 
     30        tc.formvalue('propform', 'field-description', desc) 
    3131        tc.submit('preview') 
    3232        tc.url(self._tester.url + '/newticket$') 
    3333        tc.find('ticket not yet created') 
     
    4141        self._tester.go_to_front() 
    4242        tc.follow('New Ticket') 
    4343        desc = random_sentence(5) 
    44         tc.formvalue('propertyform', 'field-description', desc) 
     44        tc.formvalue('propform', 'field-description', desc) 
    4545        tc.submit('submit') 
    4646        tc.find(desc) 
    4747        tc.find('Tickets must contain a summary.') 
     
    9696        self._tester.go_to_ticket(ticketid) 
    9797        # Make a number of changes to exercise all of the RSS feed code 
    9898        self._tester.go_to_ticket(ticketid) 
    99         tc.formvalue('propertyform', 'comment', random_sentence(3)) 
    100         tc.formvalue('propertyform', 'field-type', 'task') 
    101         tc.formvalue('propertyform', 'description', summary + '\n\n' + 
    102                                                     random_sentence(8)) 
    103         tc.formvalue('propertyform', 'field-keywords', 'key') 
     99        tc.formvalue('propform', 'comment', random_sentence(3)) 
     100        tc.formvalue('propform', 'field-type', 'task') 
     101        tc.formvalue('propform', 'description', summary + '\n\n' + 
     102                                                random_sentence(8)) 
     103        tc.formvalue('propform', 'field-keywords', 'key') 
    104104        tc.submit('submit') 
    105105        time.sleep(1) # Have to wait a second 
    106         tc.formvalue('propertyform', 'field-keywords', '') 
     106        tc.formvalue('propform', 'field-keywords', '') 
    107107        tc.submit('submit') 
    108108 
    109109        tc.find('RSS Feed') 
     
    169169        ticketid = self._tester.create_ticket(name) 
    170170        self._tester.go_to_ticket(ticketid) 
    171171        tc.formvalue 
    172         tc.formvalue('propertyform', 'description', random_sentence(6)) 
     172        tc.formvalue('propform', 'description', random_sentence(6)) 
    173173        tc.submit('submit') 
    174174        tc.find('description<[^>]*>\\s*modified \\(<[^>]*>diff', 's') 
    175175        tc.follow('diff') 
  • trac/wiki/templates/wiki_delete.html

    diff --git a/trac/wiki/templates/wiki_delete.html b/trac/wiki/templates/wiki_delete.html
    a b  
    2121      "> 
    2222      <h1>Delete $range <a href="$current_href">$page.name</a></h1> 
    2323      <form action="$current_href" method="post"> 
    24         <input type="hidden" name="action" value="delete" /> 
    2524        <p> 
     25          <input type="hidden" name="action" value="delete" /> 
    2626          <strong>Are you sure you want to ${not range and 'completely' or ''} delete $range this page?</strong> 
    2727          <br /> 
    2828          <py:if test="num_versions == 1"> 
  • trac/wiki/templates/wiki_diff.html

    diff --git a/trac/wiki/templates/wiki_diff.html b/trac/wiki/templates/wiki_diff.html
    a b  
    99    <form py:if="'WIKI_DELETE' in perm(page.resource) and 
    1010                 (not changes[0].diffs or new_version == latest_version)" 
    1111      method="get" action="${href.wiki(page.name)}"> 
    12       <input type="hidden" name="action" value="delete" /> 
    13       <input type="hidden" name="version" value="$new_version" /> 
    14       <input type="hidden" name="old_version" value="$old_version" /> 
    15       <input type="submit" name="delete_version" value="Delete ${ 
    16         new_version - old_version &gt; 1 and 'version %d to ' % (old_version+1) or '' 
    17         }version $new_version" /> 
     12      <div> 
     13        <input type="hidden" name="action" value="delete" /> 
     14        <input type="hidden" name="version" value="$new_version" /> 
     15        <input type="hidden" name="old_version" value="$old_version" /> 
     16        <input type="submit" name="delete_version" value="Delete ${ 
     17          new_version - old_version &gt; 1 and 'version %d to ' % (old_version+1) or '' 
     18          }version $new_version" /> 
     19      </div> 
    1820    </form> 
    1921  </div></py:match> 
    2022  <py:with vars="resource = page.resource">