Ticket #1749: trac-0.11-okamototk.patch

File trac-0.11-okamototk.patch, 8.0 kB (added by anonymous, 4 months ago)

patch for 0.11 by okamototk

  • ticketdelete/web_ui.py

    old new  
     1# -*- coding: utf-8 -*- 
    12# Ticket deleting plugins 
    23 
    34from trac import __version__ as TRAC_VERSION 
     
    2728    def pre_process_request(self, req, handler): 
    2829        return handler 
    2930 
    30     def post_process_request(self, req, template, content_type): 
     31    def post_process_request(self, req, template, data, content_type): 
    3132        if template == 'ticket.html' and 'TICKET_ADMIN' in req.perm: 
    3233            add_script(req, 'ticketdelete/ticketdelete.js') 
    3334            add_stylesheet(req, 'ticketdelete/ticketdelete.css') 
    34         return template, content_type 
     35        return template, data, content_type 
    3536  
    3637    # IAdminPanelProvider methods 
    3738    def get_admin_panels(self, req): 
     
    5455            if page == 'delete': 
    5556                if 'ticketid' in req.args and 'ticketid2' in req.args: 
    5657                    if req.args.get('ticketid') == req.args.get('ticketid2'): 
    57                         t = self._validate(req, req.args.get('ticketid')
     58                        t = self._validate(req, req.args.get('ticketid'), data
    5859                        if t: 
    5960                            self._delete_ticket(t.id) 
    6061                            data['message'] = "Ticket #%s has been deleted." % t.id 
     
    6566                if 'ticketid' in req.args: 
    6667                    req.redirect(req.href.admin(cat, page, req.args.get('ticketid'))) 
    6768                else: 
    68                     t = self._validate(req, path_info
     69                    t = self._validate(req, path_info, data
    6970                    if t: 
    7071                        data['href'] = req.href('admin', cat, page, path_info) 
    7172                         
     
    8687                                    data['redir'] = 0 
    8788                     
    8889                 
    89         if path_info: 
    90             t = self._validate(req, path_info
     90        elif path_info: 
     91            t = self._validate(req, path_info, data
    9192            if t: 
    9293                if page == 'comments': 
    9394                    try: 
     
    102103                        c_data['author'] = author 
    103104                        # FIXME: The datetime handling is not working - enable 
    104105                        # for traceback 
    105                         c_data['prettytime'] = strftime('%a, %d %b %Y %H:%M:%S',time.timetuple()) 
     106                        c_data['prettytime'] = strftime('%Y/%b/%d %H:%M:%S',time.timetuple()) 
    106107                     
    107108                    # Check the boxes next to change number `selected` 
    108109                    time_list = list(sorted(ticket_data.iterkeys())) 
     
    146147        else: 
    147148            return (0,0) 
    148149 
    149     def _validate(self, req, arg): 
     150    def _validate(self, req, arg, data): 
    150151        """Validate that arg is a string containing a valid ticket ID.""" 
    151152        try: 
    152153            id = int(arg) 
  • ticketdelete/htdocs/ticketdelete.js

    old new  
    11$(document).ready(function() { 
    2     var ticket = /\/ticket\/(\d+)/.exec(document.location)[1]; 
    3     var delete_link = '<a href="../admin/ticket/delete/'+ticket+'">Delete</a>'; 
     2    var match_ticket = /\/ticket\/(\d+)/.exec(document.location); 
     3    if (match_ticket == undefined) { 
     4        return; 
     5    } 
     6    var ticket = match_ticket[1]; 
     7    var delete_link = '<a href="../admin/ticket/delete/'+ticket+'"title="Delete">Delete</a>'; 
    48    var ticket_buttons = $('#ticket .inlinebuttons')[0]; 
    59    if (ticket_buttons) { 
    610        $(ticket_buttons).append(delete_link); 
    711    } else { 
    812        $('#ticket table.properties').after('<div class="description"><h3><span class="inlinebuttons">'+delete_link+'</span>&nbsp;</h3></div>'); 
    913    } 
    10     $('#changelog h3').each(function() { 
    11         var comment = $('input[@name=replyto]', this)[0]; 
     14    $('#changelog .printableform').each(function() { 
     15        var comment = $('.inlinebuttons input[@name=replyto]', this)[0]; 
    1216        if (comment) { 
    13             comment = comment.value; 
    14             $('.inlinebuttons', this).append('<a href="../admin/ticket/comments/'+ticket+'?cnum='+comment+'">Delete</a>'); 
     17            $('.inlinebuttons', this).append('<a href="../admin/ticket/comments/'+ticket+'?cnum='+comment.value+'" title="Delete comment '+comment.value+'">Delete</a>'); 
    1518        } 
    1619    }); 
    1720}); 
  • ticketdelete/templates/ticketdelete_admin.html

    old new  
    4646            <tbody> 
    4747              <py:for each="change in ticketdelete.changes"> 
    4848                <tr> 
    49                   <td><input type="checkbox" name="dontcare" value="dontcare" id="checkbox_${change}" checked="${change.checked or None}" /></td> 
     49                  <td><input type="checkbox" name="dontcare" value="dontcare" id="checkbox_${change}" checked="${ticketdelete.changes[change].checked}" /></td> 
    5050                  <td colspan="3"><b>Change at ${ticketdelete.changes[change].prettytime} by ${ticketdelete.changes[change].author}</b></td> 
    5151                  <td><input type="submit" name="delete_${change}" value="Delete change" /></td> 
    5252                  <tr> 
    5353                    <py:for each="field in ticketdelete.changes[change].fields"> 
    5454                      <tr> 
    55                         <td><input type="checkbox" id="checkbox${field}_${change}" name="mdelete" value="${field}_${change}" checked="${ticketdelete.changes[change].checked or None}" /></td> 
     55                        <td><input type="checkbox" id="checkbox${field}_${change}" name="mdelete" value="${field}_${change}" checked="${ticketdelete.changes[change].checked}" /></td> 
    5656                        <td>${field}</td> 
    57                         <td>${ticketdelete.changes[change].fields[field].old}</td> 
    58                         <td>${ticketdelete.changes[change].fields[field].new}</td> 
     57                        <td py:if="field == 'comment'" colspan="2">${ticketdelete.changes[change].fields[field].new}</td> 
     58                        <td py:if="field != 'comment'" >${ticketdelete.changes[change].fields[field].old}</td> 
     59                        <td py:if="field != 'comment'">${ticketdelete.changes[change].fields[field].new}</td> 
    5960                        <td><input type="submit" name="delete${field}_${change}" value="Delete field" /></td> 
    6061                      </tr> 
    6162                    </py:for> 
     
    6667        </table><br /><input type="submit" name="multidelete" value="Delete Checked" /></form></p> 
    6768         
    6869        <script type="text/javascript"> 
    69         <!-- 
     70 
    7071            function toggleboxen(me, boxen)  
    7172            { 
    7273                status = document.getElementById("checkbox_" + me).checked; 
     
    7980             
    8081            <py:for each="change in ticketdelete.changes"> 
    8182            addEvent(document.getElementById("checkbox_${change}"), "change", function() { 
    82                 var boxen = Array(${py:for each="field in change.fields"${field}",</py:for>""); 
     83                var boxen = Array(<py:for each="field in ticketdelete.changes[change].fields">"${field}",</py:for>""); 
    8384                toggleboxen("${change}", boxen); //Array(<py:for each="field in change.fields">"${field}",</py:for>)); 
    8485            }); 
    85             <py:for each="field in change.fields"> 
     86            <py:for each="field in ticketdelete.changes[change].fields"> 
    8687              addEvent(document.getElementById("checkbox${field}_${change}"),"change", function() { 
    8788                  if(!document.getElementById("checkbox${field}_${change}").checked) { 
    88                   document.getElementById("checkbox${change}").checked = 0; 
     89                  document.getElementById("checkbox_${change}").checked = 0; 
    8990                } 
    9091            }); 
    9192            </py:for> 
    9293            </py:for> 
    9394 
    9495 
    95         //--> 
     96 
    9697        </script> 
    9798 
    9899