Changeset 90

Show
Ignore:
Timestamp:
04/12/05 22:33:15
Author:
brad
Message:

Fix for ticket #31; despam deletes trackback pings/comments and rebuilds when asked to.
Moved checkboxes to the left and tweaked usability a little.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plugins/spamlookup/mt-spamlookup.cgi

    r89 r90  
    131131    my @ids = $query->param('id'); 
    132132    my $action = $query->param('action'); 
    133     $app->select_objects(\%param); 
    134  
    135     my $loop = $param{object_loop}; 
    136  
    137     if (!@$loop) { 
    138         if ($param{redirect}) { 
    139             $param{message} = qq{Didn't find any spam in the last }.$param{count}.qq{ records scanned in the date range } . format_ts("%Y-%m-%d %H:%M:%S", $param{start_date}) . " through " . format_ts("%Y-%m-%d %H:%M:%S", $param{end_date}) . ". Continuing search..."; ## next obj id is }.$obj->id; 
    140         } 
     133 
     134    if (@ids && $action =~ m/Delete/) { 
     135        my $limit = $query->param('limit'); 
     136        $query->param('limit', 1); 
     137        $app->select_objects(\%param); 
     138 
     139        $app->process_objects('delete', $type, \@ids); 
     140 
     141        $param{message} = 'Deleted ' . scalar(@ids) . ' ' . ($type eq 'comments' ? 'comment' : 'TrackBack ping') . (scalar(@ids) > 1 ? 's' : '') . '.'; 
     142 
     143        if ($action =~ m/Continue/) { 
     144            $param{next_offset_val} -= scalar(@ids); 
     145            $param{message} .= ' Continuing search...'; 
     146            $param{redirect} = 1; 
     147        } 
     148        $param{limit} = $limit; 
     149        $param{object_loop} = []; 
    141150    } else { 
    142         $param{message} = "The following items were identified as spam, falling in the date range: " . format_ts("%Y-%m-%d %H:%M:%S", $param{start_date}) . " through " . format_ts("%Y-%m-%d %H:%M:%S", $param{end_date}); 
     151        $app->select_objects(\%param); 
     152 
     153        my $loop = $param{object_loop}; 
     154 
     155        if (!@$loop) { 
     156            if ($param{redirect}) { 
     157                $param{message} = qq{Didn't find any spam in the last }.$param{count}.qq{ records scanned in the date range } . format_ts("%Y-%m-%d %H:%M:%S", $param{start_date}) . " through " . format_ts("%Y-%m-%d %H:%M:%S", $param{end_date}) . ". Continuing search..."; ## next obj id is }.$obj->id; 
     158            } 
     159        } else { 
     160            $param{message} = "The following items were identified as spam, falling in the date range: " . format_ts("%Y-%m-%d %H:%M:%S", $param{start_date}) . " through " . format_ts("%Y-%m-%d %H:%M:%S", $param{end_date}); 
     161        } 
    143162    } 
    144163 
  • trunk/plugins/spamlookup/tmpl/comments.tmpl

    r80 r90  
    121121 
    122122 
    123 <form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>"
     123<form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>" name="object_list" id="object_list"
    124124<input type="hidden" name="__mode" value="view" /> 
    125125<input type="hidden" name="_type" value="<TMPL_VAR NAME=TYPE>" /> 
     
    141141 
    142142<tr> 
    143 <th width="5%">Status</th> 
    144 <th width="40%"><MT_TRANS phrase="Commenter"> / <MT_TRANS phrase="Comment"></th> 
    145 <th width="15%"><MT_TRANS phrase="Entry"></th> 
    146 <th width="12%"><MT_TRANS phrase="Date"></th> 
    147 <th width="5%"><a href="#" onclick="toggle('id')"><MT_TRANS phrase="Mark"></a></th> 
     143<th width="1%" onclick="toggleMarks(document.object_list['mark-button'], 'id')"><input type="checkbox" name="mark-button" value="1" id="mark-button" /></th> 
     144<th width="10%">Status</th> 
     145<th width="35%"><MT_TRANS phrase="Commenter"> / <MT_TRANS phrase="Comment"></th> 
     146<th width="30%"><MT_TRANS phrase="Entry"></th> 
     147<th width="19%"><MT_TRANS phrase="Date"></th> 
    148148</tr> 
    149149 
     
    152152<tr class="<TMPL_IF NAME=IS_ODD>odd<TMPL_ELSE>even</TMPL_IF>"> 
    153153 
     154<th><input type="checkbox" name="id" value="<TMPL_VAR NAME=ID>" onclick="resetToggleState(event, this)" /></th> 
    154155<td class="status"> 
    155156<TMPL_IF NAME=COMMENTER_ID> 
     
    191192</TMPL_IF></td> 
    192193<td><a href="<TMPL_VAR NAME=MT_URL>?__mode=view&amp;_type=entry&amp;blog_id=<TMPL_VAR NAME=BLOG_ID>&amp;id=<TMPL_VAR NAME=ENTRY_ID>"><TMPL_VAR NAME=ENTRY_TITLE ESCAPE=HTML></a> (<TMPL_VAR NAME=BLOG_NAME>)</td> 
    193 <td><TMPL_VAR NAME=CREATED_ON_RELATIVE_DATE></td> 
    194 <td><input type="checkbox" name="id" value="<TMPL_VAR NAME=ID>" /></td> 
     194<td><span title="<TMPL_VAR NAME=CREATED_ON_DATE>"><TMPL_VAR NAME=CREATED_ON_RELATIVE_DATE></span></td> 
    195195</tr> 
    196196</TMPL_LOOP> 
  • trunk/plugins/spamlookup/tmpl/despam.tmpl

    r77 r90  
    33<script language="javascript" type="text/javascript"> 
    44<!-- 
    5 function toggle(field) { 
    6     var flds = document.getElementsByName(field); 
    7     if (!flds) return; 
    8     for (i = 0; i < flds.length; i++) 
    9         flds[i].checked = !flds[i].checked; 
    10 } 
    11  
    125<TMPL_IF NAME=REDIRECT> 
    136function doRedirect () { 
     
    3528 
    3629<TMPL_IF NAME=OBJECT_LOOP> 
    37 <form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>"
     30<form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>" name="object_list" id="object_list"
    3831<p> 
    3932The following <TMPL_VAR NAME=TYPE_PLURAL> were matches using the SpamLookup 
     
    4538 
    4639<tr> 
     40<th width="1%" onclick="toggleMarks(document.object_list['mark-button'], 'id')"><input type="checkbox" name="mark-button" value="1" id="mark-button" /></th> 
    4741<th width="5%">Result</th> 
    4842<TMPL_IF NAME=TYPE_COMMENTS> 
     
    5650<th width="20%"><MT_TRANS phrase="Excerpt"></th> 
    5751<th width="15%"><MT_TRANS phrase="Entry/Category"></th> 
    58 <th width="15%"><MT_TRANS phrase="Date"></th> 
     52<th width="19%"><MT_TRANS phrase="Date"></th> 
    5953<th width="20%"><MT_TRANS phrase="Source"></th> 
    6054</TMPL_IF> 
    61 <th width="5%"><a href="#" onclick="toggle('id')"><MT_TRANS phrase="Mark"></a></th> 
    6255</tr> 
    6356 
     
    6659<TMPL_IF NAME=TYPE_COMMENTS> 
    6760<tr class="<TMPL_IF NAME=IS_ODD>odd<TMPL_ELSE>even</TMPL_IF>"> 
     61<th rowspan="2"><input type="checkbox" name="id" value="<TMPL_VAR NAME=ID>" onclick="resetToggleState(event, this)" /></th> 
    6862<td><TMPL_IF NAME=RESULT_BLOCKED><strong><TMPL_VAR NAME=RESULT></strong><TMPL_ELSE><TMPL_VAR NAME=RESULT></TMPL_IF></td> 
    6963 
     
    8175<td><TMPL_VAR NAME=EXCERPT ESCAPE=HTML> (<a href="<TMPL_VAR NAME=MT_URL>?__mode=view&amp;_type=comment&amp;blog_id=<TMPL_VAR NAME=BLOG_ID>&amp;id=<TMPL_VAR NAME=ID>">View</a>)</td> 
    8276<td><a href="<TMPL_VAR NAME=MT_URL>?__mode=view&amp;_type=entry&amp;blog_id=<TMPL_VAR NAME=BLOG_ID>&amp;id=<TMPL_VAR NAME=ENTRY_ID>"><TMPL_VAR NAME=ENTRY_TITLE ESCAPE=HTML></a> (Weblog: <TMPL_VAR NAME=BLOG_NAME>)</td> 
    83 <td><TMPL_VAR NAME=CREATED_ON_RELATIVE_DATE></td> 
     77<td><span title="<TMPL_VAR NAME=CREATED_ON_DATE>"><TMPL_VAR NAME=CREATED_ON_RELATIVE_DATE></span></td> 
    8478<td><TMPL_VAR NAME=IP></td> 
    85 <td><input type="checkbox" name="id" value="<TMPL_VAR NAME=ID>" /></td> 
    8679</tr> 
    8780<tr class="<TMPL_IF NAME=IS_ODD>odd<TMPL_ELSE>even</TMPL_IF>"> 
    88 <td colspan="7"><strong>Reason:</strong> <TMPL_VAR NAME=REASON ESCAPE=HTML> 
     81<td colspan="6"><strong>Reason:</strong> <TMPL_VAR NAME=REASON ESCAPE=HTML> 
    8982<TMPL_IF NAME=DOMAIN_LOOP> 
    9083<br /><strong>Domains referenced:</strong> 
     
    9689<TMPL_ELSE> 
    9790<tr class="<TMPL_IF NAME=IS_ODD>odd<TMPL_ELSE>even</TMPL_IF>"> 
     91<th rowspan="2"><input type="checkbox" name="id" value="<TMPL_VAR NAME=ID>" onclick="resetToggleState(event, this)" /></th> 
    9892<td><TMPL_IF NAME=RESULT_BLOCKED><strong><TMPL_VAR NAME=RESULT></strong><TMPL_ELSE><TMPL_VAR NAME=RESULT></TMPL_IF></td> 
    9993<td><TMPL_VAR NAME=TITLE ESCAPE=HTML></td> 
     
    108102(Weblog: <TMPL_VAR NAME=BLOG_NAME>) 
    109103</td> 
    110 <td><TMPL_VAR NAME=CREATED_ON_RELATIVE_DATE></td> 
     104<td><span title="<TMPL_VAR NAME=CREATED_ON_DATE>"><TMPL_VAR NAME=CREATED_ON_RELATIVE_DATE></span></td> 
    111105<td> 
    112106<a href="<TMPL_VAR NAME=MT_URL>?__mode=list_pings&amp;blog_id=<TMPL_VAR NAME=BLOG_ID>&amp;filter=blog_name&amp;filter_val=<TMPL_VAR NAME=TB_BLOG_NAME ESCAPE=URL>"><img border=0 src="<TMPL_VAR NAME="STATIC_URI">images/filter.gif"><TMPL_VAR NAME=TB_BLOG_NAME ESCAPE=HTML></a> (<a href="<TMPL_VAR NAME="MT_URL">?__mode=list_pings&amp;blog_id=<TMPL_VAR NAME="BLOG_ID">&amp;filter=ip&amp;filter_val=<TMPL_VAR NAME=IP ESCAPE=URL>"><TMPL_VAR NAME=IP ESCAPE=HTML></a>) 
    113107</td> 
    114 <td><input type="checkbox" name="id" value="<TMPL_VAR NAME=ID>" /></td> 
    115108</tr> 
    116109<tr class="<TMPL_IF NAME=IS_ODD>odd<TMPL_ELSE>even</TMPL_IF>"> 
    117 <td colspan="7"><strong>Reason:</strong> <TMPL_VAR NAME=REASON ESCAPE=HTML> 
     110<td colspan="6"><strong>Reason:</strong> <TMPL_VAR NAME=REASON ESCAPE=HTML> 
    118111<TMPL_IF NAME=DOMAIN_LOOP> 
    119112<br /><strong>Domains referenced:</strong> 
  • trunk/plugins/spamlookup/tmpl/pings.tmpl

    r80 r90  
    123123</div> 
    124124 
    125 <form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>"
     125<form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>" name="object_list" id="object_list"
    126126<input type="hidden" name="__mode" value="view" /> 
    127127<input type="hidden" name="_type" value="<TMPL_VAR NAME=TYPE>" /> 
     
    147147 
    148148<tr> 
     149<th width="1%" onclick="toggleMarks(document.object_list['mark-button'], 'id')"><input type="checkbox" name="mark-button" value="1" id="mark-button" /></th> 
    149150<TMPL_IF NAME=CAN_MODERATE_PINGS> 
    150151<th width="5%">Status</th> 
    151 <th width="40%"><MT_TRANS phrase="Title"> / <MT_TRANS phrase="Excerpt"></th> 
     152<th width="30%"><MT_TRANS phrase="Title"> / <MT_TRANS phrase="Excerpt"></th> 
    152153<TMPL_ELSE> 
    153 <th width="45%"><MT_TRANS phrase="Title"> / <MT_TRANS phrase="Excerpt"></th> 
    154 </TMPL_IF> 
    155 <th width="15%"><MT_TRANS phrase="Entry"> / <MT_TRANS phrase="Category"></th> 
    156 <th width="15%"><MT_TRANS phrase="Date"></th> 
     154<th width="35%"><MT_TRANS phrase="Title"> / <MT_TRANS phrase="Excerpt"></th> 
     155</TMPL_IF> 
     156<th width="25%"><MT_TRANS phrase="Entry"> / <MT_TRANS phrase="Category"></th> 
     157<th width="19%"><MT_TRANS phrase="Date"></th> 
    157158<th width="20%"><MT_TRANS phrase="Source"></th> 
    158 <th width="5%"><a href="#" onclick="toggle('id')"><MT_TRANS phrase="Mark"></a></th> 
    159159</tr> 
    160160 
     
    162162 
    163163<tr class="<TMPL_IF NAME=IS_ODD>odd<TMPL_ELSE>even</TMPL_IF>"> 
     164<th><input type="checkbox" name="id" value="<TMPL_VAR NAME=ID>" onclick="resetToggleState(event, this)" /></th> 
    164165<TMPL_IF NAME=CAN_MODERATE_PINGS> 
    165166<td style="font-size: 10px; text-align: center; vertical-align: top;"> 
     
    188189(<TMPL_VAR NAME=BLOG_NAME ESCAPE=HTML>) 
    189190</td> 
    190 <td><TMPL_VAR NAME=CREATED_ON_RELATIVE_DATE></td> 
     191<td><span title="<TMPL_VAR NAME=CREATED_ON_DATE>"><TMPL_VAR NAME=CREATED_ON_RELATIVE_DATE></a></td> 
    191192<td> 
    192193<a href="<TMPL_VAR NAME=MT_URL>?__mode=list_pings&amp;blog_id=<TMPL_VAR NAME=BLOG_ID>&amp;filter=blog_name&amp;filter_val=<TMPL_VAR NAME=TB_BLOG_NAME ESCAPE=URL>"><img border=0 src="<TMPL_VAR NAME="STATIC_URI">images/filter.gif"><TMPL_VAR NAME=TB_BLOG_NAME ESCAPE=HTML></a> (<a href="<TMPL_VAR NAME="MT_URL">?__mode=list_pings&amp;blog_id=<TMPL_VAR NAME="BLOG_ID">&amp;filter=ip&amp;filter_val=<TMPL_VAR NAME=IP ESCAPE=URL>"><TMPL_VAR NAME=IP ESCAPE=HTML></a>) 
    193194</td> 
    194 <td><input type="checkbox" name="id" value="<TMPL_VAR NAME=ID>" /></td> 
    195195</tr> 
    196196</TMPL_LOOP> 
  • trunk/plugins/spamlookup/tmpl/slheader.tmpl

    r77 r90  
    2424    oldTabName = tabName; 
    2525} 
    26 </script> 
    27  
    28 <TMPL_IF NAME=NAV_TEST><script type="text/javascript"> 
     26 
     27<TMPL_IF NAME=NAV_TEST> 
    2928var commentCases=new Array ( 
    3029        new Array ( 
     
    9291        f.tb_message.value = trackbackCases[value-1][5]; 
    9392} 
    94  
    95 </script></TMPL_IF> 
     93</TMPL_IF> 
     94 
     95var cb_state; 
     96var last_clicked = -1; 
     97function resetToggleState(e, fld) { 
     98    if (!e) 
     99        e = event; 
     100    cb_state = false; 
     101 
     102    var flds = fld.form['id']; 
     103    var this_clicked; 
     104    for (i = 0; i < flds.length; i++) { 
     105        if (flds[i] == fld) { 
     106            this_clicked = i; 
     107            break; 
     108        } 
     109    } 
     110 
     111    if ((last_clicked != -1) && (e.shiftKey)) { 
     112        var low, hi; 
     113        if (this_clicked < last_clicked) { 
     114            low = this_clicked; 
     115            hi = last_clicked; 
     116        } else { 
     117            low = last_clicked; 
     118            hi = this_clicked; 
     119        } 
     120        for (i = low + 1; i < hi; i++) { 
     121            flds[i].checked = flds[this_clicked].checked; 
     122        } 
     123        flds[last_clicked].checked = flds[this_clicked].checked; 
     124    } 
     125 
     126    last_clicked = this_clicked; 
     127
     128 
     129function toggleMarks(cb, fld) { 
     130    cb.form['mark-button'].checked = false; 
     131    var any_checked = false; 
     132    var flds = cb.form[fld];  
     133    for (i = 0; i < flds.length; i++) { 
     134        if (flds[i].checked) { 
     135            any_checked = true; 
     136            break; 
     137        } 
     138    } 
     139    if (any_checked && !cb_state) { 
     140        for (i = 0; i < flds.length; i++) { 
     141            flds[i].checked = !flds[i].checked; 
     142        }  
     143        cb.form['mark-button'].checked = true; 
     144        //cb.form['mark-button'].disabled = true; 
     145        cb_state = "mixed"; 
     146        return false; 
     147    } 
     148    // first touch... flag all 
     149    if (cb_state == "mixed") 
     150        any_checked = false; 
     151    doCheckAll(cb.form, any_checked ? false : true); 
     152    cb.form['mark-button'].checked = any_checked ? false : true; 
     153    //cb.form['mark-button'].disabled = false; 
     154    cb_state = any_checked ? "none" : "all"; 
     155    return false; 
     156
     157 
     158function doCheckAll (f, v) { 
     159    var e = f.id; 
     160    if (e.value) 
     161        e.checked = v; 
     162    else 
     163        for (i=0; i<e.length; i++) 
     164            e[i].checked = v; 
     165
     166</script> 
    96167 
    97168<style type="text/css">