]> ruin.nu Git - ndwebbie.git/commitdiff
possible to mark planets as cov opped
authorMichael Andreen <harv@ruin.nu>
Sun, 6 Apr 2008 19:40:26 +0000 (21:40 +0200)
committerMichael Andreen <harv@ruin.nu>
Sun, 6 Apr 2008 19:40:26 +0000 (21:40 +0200)
NDWeb/Pages/CovOp.pm
database/covops.sql [new file with mode: 0644]
templates/covop.tmpl

index ddb8aa0720b974b627ded2684c95eb9ac8c82f8f..ce6a417f17881bd22935a5a93070a7d142d7fa09 100644 (file)
@@ -45,14 +45,14 @@ sub render_body {
        my $show = q{AND (NOT planet_status IN ('Friendly','NAP')) AND  (relationship IS NULL OR NOT relationship IN ('Friendly','NAP'))};
        $show = '' if defined param('show') && param('show') eq 'all';
        if (defined param('covop') && param('covop') =~ /^(\d+)$/){
-               my $update = $DBH->prepare('UPDATE covop_targets SET covop_by = ?, last_covop = tick() WHERE planet = ? ');
+               my $update = $DBH->prepare(q{INSERT INTO covop_attacks (uid,id,tick) VALUES(?,?,tick())});
                $update->execute($ND::UID,$1);
        }
 
        my $list = '';
        my $where = '';
        if (defined param('list') && param('list') eq 'distwhores'){
-               $list = '&amp;list=distwhores';
+               $list = 'list=distwhores';
                $where = qq{AND distorters > 0 $show
                ORDER BY distorters DESC,COALESCE(seccents::float/structures*100,0)ASC}
        }else{
@@ -60,10 +60,11 @@ sub render_body {
                $show
                ORDER BY COALESCE(seccents::float/structures*100,0) ASC,MaxResHack DESC,metal+crystal+eonium DESC};
        }
+       $BODY->param(List => $list);
 
        my $query = $DBH->prepare(qq{SELECT id, coords, metal, crystal, eonium
-               , seccents::float/structures*100 AS secs, distorters
-               , MaxResHack
+               , seccents::float/structures*100 AS seccents, distorters
+               , MaxResHack,co.tick AS lastcovop
                FROM (SELECT p.id,coords(x,y,z), metal,crystal,eonium,
                        seccents,NULLIF(ss.total,0) AS structures,distorters
                        ,max_bank_hack(metal,crystal,eonium,p.value
@@ -73,16 +74,15 @@ sub render_body {
                                LEFT OUTER JOIN planet_scans ps ON p.id = ps.planet
                                LEFT OUTER JOIN structure_scans ss ON p.id = ss.planet
                        ) AS foo
+                       LEFT OUTER JOIN (SELECT id,max(tick) AS tick FROM covop_attacks GROUP BY id) co USING (id)
                WHERE (metal IS NOT NULL OR seccents IS NOT NULL)
                $where
        });
        $query->execute($self->{PLANET});
 
        my @targets;
-       while (my ($id,$coords,$metal,$crystal,$eonium,$seccents,$dists,$max) = $query->fetchrow){
-               push @targets,{Target => $id, Coords => $coords
-                       , Metal => $metal, Crystal => $crystal, Eonium => $eonium, SecCents => $seccents
-                       , Dists => $dists, MaxResHack => $max, List => $list};
+       while (my $target = $query->fetchrow_hashref){
+               push @targets,$target;
        }
        $BODY->param(Targets => \@targets);
        return $BODY;
diff --git a/database/covops.sql b/database/covops.sql
new file mode 100644 (file)
index 0000000..c12b895
--- /dev/null
@@ -0,0 +1,6 @@
+CREATE TABLE covop_attacks (
+       uid integer NOT NULL REFERENCES users(uid),
+       tick integer NOT NULL,
+       id integer NOT NULL REFERENCES planets(id),
+       PRIMARY KEY (id,tick,uid)
+);
index ca9651732c4bac79a1cedbb389890e0811336f7a..8c7ec877169e1eeafb3293f1bf55c9f495404324 100644 (file)
@@ -9,10 +9,10 @@
        <td><TMPL_VAR NAME=Crystal></td>
        <td><TMPL_VAR NAME=Eonium></td>
        <td><TMPL_VAR NAME=SecCents></td>
-       <td><TMPL_VAR NAME=Dists></td>
+       <td><TMPL_VAR NAME=Distorters></td>
        <td><TMPL_VAR NAME=MaxResHack></td>
-       <td><TMPL_VAR NAME=Username> (<TMPL_VAR NAME=LastCovOp>)</td>
-       <td><a href="/<TMPL_VAR NAME=PAGE>?<TMPL_VAR NAME=List>&amp;covop=<TMPL_VAR NAME=Target>">Did CovOp this tick</a></td>
+       <td><TMPL_VAR NAME=LastCovOp></td>
+       <td><a href="/<TMPL_VAR NAME=PAGE>?<TMPL_VAR NAME=List>&amp;covop=<TMPL_VAR NAME=Id>">Did CovOp this tick</a></td>
        </tr>
        </TMPL_LOOP>
 </table>