Changeset 577

Show
Ignore:
Timestamp:
03/30/06 21:01:10 (3 years ago)
Author:
coderanger
Message:

TicketDeletePlugin:

Mass change deletions.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ticketdeleteplugin/0.9/ticketdelete/templates/ticketdelete_admin.cs

    r576 r577  
    2525                <?cs each:change = ticketdelete.changes ?> 
    2626                    <tr> 
    27                         <td>&nbsp;</td> 
     27                        <td><input type="checkbox" name="dontcare" value="dontcare" id="checkbox_<?cs name:change ?>" /></td> 
    2828                        <td colspan="3"><b>Change at <?cs var:change.prettytime ?> by <?cs var:change.author ?></b></td> 
    2929                        <td><input type="submit" name="delete_<?cs name:change ?>" value="Delete change" /></td> 
     
    3131                    <?cs each:field = change.fields ?> 
    3232                    <tr> 
    33                         <td>&nbsp;</td> 
     33                        <td><input type="checkbox" id="checkbox<?cs name:field ?>_<?cs name:change ?>" name="delete" value="<?cs name:field ?>_<?cs name:change ?>" /></td> 
    3434                        <td><?cs name:field ?></td> 
    35                         <td><?cs var:field.old ?></td> 
    36                         <td><?cs var:field.new ?></td> 
     35                        <?cs if:name(field) == 'comment' ?> 
     36                            <td colspan="2"><?cs var:field.new ?></td> 
     37                        <?cs else ?> 
     38                            <td><?cs var:field.old ?></td> 
     39                            <td><?cs var:field.new ?></td> 
     40                        <?cs /if ?> 
    3741                        <td><input type="submit" name="delete<?cs name:field ?>_<?cs name:change ?>" value="Delete field" /></td> 
    3842                    </tr> 
     
    4044                <?cs /each ?> 
    4145            </tbody> 
    42         </table></form></p> 
     46        </table><br /><input type="submit" name="multidelete" value="Delete Checked" /></form></p> 
    4347         
     48        <script type="text/javascript"> 
    4449        <!-- 
    45         <?cs each:change = ticketdelete.changes ?> 
    46             <div> 
    47                 <b><?cs var:change.prettytime ?></b><br /> 
    48                 Change by <?cs var:change.author ?><br /> 
    49                 <?cs each:field = change.fields ?> 
    50                     <?cs if:name(field)=='comment' ?> 
    51                         Comment: <?cs var:field.new ?><br /> 
    52                     <?cs else ?> 
    53                         <?cs name:field ?>: From '<?cs var:field.old ?>' to '<?cs var:field.new ?>'<br /> 
    54                     <?cs /if ?> 
    55                 <?cs /each ?> 
    56                 <form method="post"> 
    57                     <input type="hidden" name="ts" value="<?cs name:change ?>" /> 
    58                     <input type="submit" name="delete_all" value="Delete Entire Change" /> 
    59                     <input type="submit" name="delete_only" value="Delete Comment Only" /> 
    60                 </form> 
    61             </div><br /> 
    62         <?cs /each ?> --> 
     50            function toggleboxen(me, boxen)  
     51            { 
     52                status = document.getElementById("checkbox_" + me).checked; 
     53                boxen.pop() // Remove the last (blank) entry. 
     54                for (box in boxen) { 
     55                    //alert("Changing checkbox"+boxen[box]+"_"+me); 
     56                    document.getElementById("checkbox"+boxen[box]+"_"+me).checked = status; 
     57                } 
     58            } 
     59             
     60            <?cs each:change = ticketdelete.changes ?> 
     61            addEvent(document.getElementById("checkbox_<?cs name:change ?>"), "change", function() { 
     62                var boxen = Array(<?cs each:field = change.fields ?>"<?cs name:field ?>",<?cs /each ?>""); 
     63                toggleboxen("<?cs name:change ?>", boxen); //Array(<?cs each:field = change.fields ?>"<?cs name:field ?>",<?cs /each ?>)); 
     64            }); 
     65            <?cs each:field = change.fields ?> 
     66            addEvent(document.getElementById("checkbox<?cs name:field ?>_<?cs name:change ?>"),"change", function() { 
     67                if(!document.getElementById("checkbox<?cs name:field ?>_<?cs name:change ?>").checked) { 
     68                    document.getElementById("checkbox_<?cs name:change ?>").checked = 0; 
     69                } 
     70            }); 
     71            <?cs /each ?> 
     72            <?cs /each ?> 
     73 
     74 
     75        //--> 
     76        </script> 
     77 
     78 
    6379        <br /> 
    6480        <a href="<?cs var:ticketdelete.href ?>">Back</a> 
  • ticketdeleteplugin/0.9/ticketdelete/web_ui.py

    r576 r577  
    4848                        req.hdf['ticketdelete.href'] = self.env.href('admin', cat, page, path_info) 
    4949                        try: 
    50                             buttons = [x[6:] for x in req.args.keys() if x.startswith('delete')] 
    51                             self.log.debug('TicketDelete: Buttons %s' % repr(buttons)) 
     50                            buttons = None 
     51                            if "multidelete" in req.args: 
     52                                buttons = req.args.getlist('delete') 
     53                            else: 
     54                                buttons = [x[6:] for x in req.args.keys() if x.startswith('delete')] 
    5255                            if buttons: 
    53                                 field, ts = buttons[0].split('_') 
    54                                 ts = int(ts) 
    55                                 self.log.debug('TicketDelete: Deleting change to ticket %s at %s (%s)'%(t.id,ts,field)) 
    56                                 self._delete_change(t.id, ts, field) 
    57                                 req.hdf['ticketdelete.message'] = "Change to ticket #%s at %s has been modified" % (t.id, strftime('%a, %d %b %Y %H:%M:%S',localtime(ts))) 
    58                                 req.hdf['ticketdelete.redir'] = 0 
     56                                for button in buttons: 
     57                                    field, ts = button.split('_') 
     58                                    ts = int(ts) 
     59                                    self.log.debug('TicketDelete: Deleting change to ticket %s at %s (%s)'%(t.id,ts,field)) 
     60                                    self._delete_change(t.id, ts, field) 
     61                                    req.hdf['ticketdelete.message'] = "Change to ticket #%s at %s has been modified" % (t.id, strftime('%a, %d %b %Y %H:%M:%S',localtime(ts))) 
     62                                    req.hdf['ticketdelete.redir'] = 0 
    5963                        except ValueError: 
    6064                            req.hdf['ticketdelete.message'] = "Timestamp '%s' not valid" % req.args.get('ts')