You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2005/11/15 04:23:51 UTC

svn commit: r344298 - /spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi

Author: jm
Date: Mon Nov 14 19:23:49 2005
New Revision: 344298

URL: http://svn.apache.org/viewcvs?rev=344298&view=rev
Log:
add a 'long view' of all daterevs

Modified:
    spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi

Modified: spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi?rev=344298&r1=344297&r2=344298&view=diff
==============================================================================
--- spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi (original)
+++ spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi Mon Nov 14 19:23:49 2005
@@ -97,14 +97,33 @@
 $daterev = date_in_direction($daterev, 0);
 
 my $rule = $q->url_param('rule') || '';
+my $nicerule = $rule; if (!$nicerule) { $nicerule = 'all rules'; }
+
+my $datadir;
+my %freqs_head = ();
+my %freqs_data = ();
+my %freqs_ordr = ();
+my $line_counter = 0;
+
+# ---------------------------------------------------------------------------
+# supported views
 
 my $graph = $q->url_param('graph');
 if ($graph) {
   if ($graph eq 'over_time') { graph_over_time(); }
-  die "graph '$graph' unknown, or fell out of exec";
+  else { die "graph '$graph' unknown"; }
+}
+elsif ($q->url_param('longdatelist')) {
+  show_daterev_selector_page();
 }
+else {
+  show_default_view();
+}
+exit;
 
-my $nicerule = $rule; if (!$nicerule) { $nicerule = 'all rules'; }
+# ---------------------------------------------------------------------------
+
+sub show_default_view {
 my $title;
 if ($s{detail}) {
   $title = "Rule QA: details for $nicerule (in $daterev)";
@@ -223,6 +242,7 @@
   <input type=checkbox name=s_net !s_net!> Show frequencies from network tests, set 1<br/>
   <input type=checkbox name=s_html !s_html!> Show frequencies for mails containing HTML only, set 0<br/>
   <br/>
+
   <table style="padding-left: 0px" class=datetable>
 
       <tr>
@@ -250,10 +270,13 @@
       </tr><tr class=daterevtr><td class=daterevtd><b>Later</b></td>
        !daylinkpls3!
       </tr>
-
   </table>
+
   Date/Rev to display (UTC timezone):
   <input type=textfield name=daterev value="!daterev!"><br/>
+
+  <a href="!THISURL!&longdatelist=1">Display Full Date/Rev List</a><br/>
+
   <br/>
   <h4> Which Rules?</h4>
   Show only these rules (space separated, or regexp with '/' prefix):<br/>
@@ -335,12 +358,6 @@
   };
 }
 
-my $datadir;
-my %freqs_head = ();
-my %freqs_data = ();
-my %freqs_ordr = ();
-my $line_counter = 0;
-
 show_all_sets_for_daterev($daterev, $daterev);
 
 if ($s{detail}) {
@@ -393,6 +410,8 @@
 
 exit;
 
+}
+
 sub get_all_daterevs {
   return sort map {
       s/^.*\/(\d+)\/(r\d+)$/$1-$2/; $_;
@@ -868,7 +887,7 @@
       my $cdate = $info->{checkin_date};
       $cdate =~ s/T(\S+)\.\d+Z$/ $1/;
 
-      my $net = $fastinfo->{includes_net} ? "[net]" : "";
+      my $net = $fastinfo->{includes_net} ? "net" : "";
 
       my $drtitle = ($info->{msg} ? $info->{msg} : '');
       $drtitle =~ s/[\"\']/ /gs;
@@ -885,8 +904,8 @@
         <a title="$drtitle" href="!drhref!">$cdate</a></td>
           <td class=daterevtd>
         <a title="$drtitle" href="!drhref!">$info->{checkin_rev}</a></td>
-          <td class=daterevtd> <em>$info->{author}</em></td>
-          <td class=daterevtd> <em>$net</em> </td>
+          <td class=daterevtd> <em><mcauthor>$info->{author}</mcauthor></em></td>
+          <td class=daterevtd> <em><mcwasnet>$net</mcwasnet></em> </td>
 
         </tr>
         <tr class=daterevdesc>
@@ -896,7 +915,7 @@
             <em>($drtitle)</em>
           </td>
           <td class=daterevtd colspan=2>
-            <em> $fastinfo->{submitters} </em>
+            <em><mcsubmitters>$fastinfo->{submitters}</mcsubmitters></em>
           </td>
 
       };
@@ -931,6 +950,62 @@
   };
 
   return $txt;
+}
+
+sub show_daterev_selector_page {
+  my @drs_net = ();
+  my @drs_nightly = ();
+  my @drs_preflight = ();
+
+  # foreach my $i (-50 .. +50) { my $dr = date_in_direction($daterev, $i); }
+  foreach my $dr (@daterevs) {
+    next unless $dr;
+
+    my $obj = {
+        dr => $dr,
+        text => get_daterev_description($dr) || ''
+      };
+
+    # now match against the microformat data in the HTML, to select
+    # the desired subsets of certain types
+    if ($obj->{text} =~ /<mcsubmitters>\s*mc-/) {
+      push @drs_preflight, $obj;
+    } else {
+      push @drs_nightly, $obj;
+    }
+
+    if ($obj->{text} =~ /<mcwasnet>\s*net/) {
+      push @drs_net, $obj;
+    }
+  }
+
+  print "<h3> Network Mass-Checks </h3> ".
+                gen_daterev_table(@drs_net);
+
+  print "<h3> Nightly Mass-Checks </h3> ".
+                gen_daterev_table(@drs_nightly);
+
+  print "<h3> Preflight Mass-Checks </h3> ".
+                gen_daterev_table(@drs_preflight);
+}
+
+sub daterev_table {
+  my @list = @_;
+
+  my $str = qq{
+
+      <table style="padding-left: 0px" class=datetable>
+
+    }. join(' ', map {
+      my $dr = $_->{dr};
+      my $text = $_->{text};
+      $text =~ s/!drhref!/$dr/gs;
+      $text;
+    } @list). qq{
+
+      </table>
+
+    };
 }
   
 =cut