]> ruin.nu Git - ndwebbie.git/commitdiff
list all raids and show information about waves, claims and launched fleets
authorMichael Andreen <harv@ruin.nu>
Mon, 23 Jul 2007 07:34:43 +0000 (07:34 +0000)
committerMichael Andreen <harv@ruin.nu>
Mon, 23 Jul 2007 07:34:43 +0000 (07:34 +0000)
ND/Web/Pages/Raids.pm
templates/raids.tmpl

index afb91c1adb64501481b5f643837489755edc570d..2ae5201e0a187cf78788b31005159b21539f7b98 100644 (file)
@@ -279,25 +279,63 @@ sub render_body {
 
                $BODY->param(Targets => \@targets);
        }else{#list raids if we haven't chosen one yet
-               my $query = $DBH->prepare(q{SELECT id,released_coords FROM raids WHERE open AND not removed AND
-                       id IN (SELECT raid FROM raid_access NATURAL JOIN groupmembers WHERE uid = ?)});
+               my $launched = 0;
+               my $query = $DBH->prepare(q{SELECT r.id AS raid,released_coords AS releasedcoords,tick,waves*COUNT(DISTINCT rt.id) AS waves,
+                               COUNT(rc.uid) AS claims, COUNT(nullif(rc.launched,false)) AS launched,COUNT(NULLIF(rc.uid > 0,true)) AS blocked
+                       FROM raids r JOIN raid_targets rt ON r.id = rt.raid
+                               LEFT OUTER JOIN raid_claims rc ON rt.id = rc.target
+                       WHERE open AND not removed AND r.id 
+                               IN (SELECT raid FROM raid_access NATURAL JOIN groupmembers WHERE uid = ?)
+                       GROUP BY r.id,released_coords,tick,waves});
                $query->execute($ND::UID);
                my @raids;
                while (my $raid = $query->fetchrow_hashref){
-                       push @raids,{Raid => $raid->{id}, ReleasedCoords => $raid->{released_coords}};
+                       $raid->{waves} -= $raid->{blocked};
+                       $raid->{claims} -= $raid->{blocked};
+                       delete $raid->{blocked};
+                       $launched += $raid->{launched};
+                       push @raids,$raid;
                }
                $BODY->param(Raids => \@raids);
 
                if ($self->isBC){
                        $BODY->param(isBC => 1);
-                       my $query = $DBH->prepare(q{SELECT id,open FROM raids WHERE not removed AND (not open 
-                               OR id NOT IN (SELECT raid FROM raid_access NATURAL JOIN groupmembers WHERE uid = ?))});
+                       my $query = $DBH->prepare(q{SELECT r.id AS raid,open ,tick,waves*COUNT(DISTINCT rt.id) AS waves,
+                               COUNT(rc.uid) AS claims, COUNT(nullif(rc.launched,false)) AS launched ,COUNT(NULLIF(uid > 0,true)) AS blocked
+                       FROM raids r JOIN raid_targets rt ON r.id = rt.raid
+                               LEFT OUTER JOIN raid_claims rc ON rt.id = rc.target
+                       WHERE not removed AND (not open 
+                               OR r.id NOT IN (SELECT raid FROM raid_access NATURAL JOIN groupmembers WHERE uid = ?))
+                       GROUP BY r.id,open,tick,waves});
                        $query->execute($ND::UID);
                        my @raids;
                        while (my $raid = $query->fetchrow_hashref){
-                               push @raids,{Raid => $raid->{id}, Open => $raid->{open}};
+                               $raid->{waves} -= $raid->{blocked};
+                               $raid->{claims} -= $raid->{blocked};
+                               delete $raid->{blocked};
+                               $launched += $raid->{launched};
+                               push @raids,$raid;
                        }
                        $BODY->param(ClosedRaids => \@raids);
+
+
+                       $query = $DBH->prepare(q{SELECT r.id AS raid,tick,waves*COUNT(DISTINCT rt.id) AS waves,
+                               COUNT(rc.uid) AS claims, COUNT(nullif(rc.launched,false)) AS launched ,COUNT(NULLIF(uid > 0,true)) AS blocked
+                       FROM raids r JOIN raid_targets rt ON r.id = rt.raid
+                               LEFT OUTER JOIN raid_claims rc ON rt.id = rc.target
+                       WHERE removed
+                       GROUP BY r.id,tick,waves});
+                       $query->execute;
+                       my @oldraids;
+                       while (my $raid = $query->fetchrow_hashref){
+                               $raid->{waves} -= $raid->{blocked};
+                               $raid->{claims} -= $raid->{blocked};
+                               delete $raid->{blocked};
+                               $launched += $raid->{launched};
+                               push @oldraids,$raid;
+                       }
+                       $BODY->param(RemovedRaids => \@oldraids);
+                       $BODY->param(Launched => $launched);
                }
        }
        return $BODY;
index 4c4d5646d54aba168224c1c82567dd7171c158c7..533ffc32e307ad1ae662acfbc46b057d7106fb47 100644 (file)
@@ -1,11 +1,19 @@
+<TMPL_IF isBC>
+       <p>Total launched fleets: <TMPL_VAR NAME=Launched></p>
+</TMPL_IF>
+<p> Open raids </p>
 <TMPL_LOOP Raids>
        <p><a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>">Raid <TMPL_VAR NAME=Raid></a>
+       Landing tick: <TMPL_VAR NAME=tick>
        <TMPL_IF isBC>
                <a href="editRaid?raid=<TMPL_VAR NAME=Raid>">Edit</a>
                <a href="editRaid?raid=<TMPL_VAR NAME=Raid>&amp;cmd=Close">Close raid.</a>
                <TMPL_UNLESS ReleasedCoords>
                <a href="editRaid?raid=<TMPL_VAR NAME=Raid>&amp;cmd=showcoords">Show coords.</a>
                </TMPL_UNLESS>
+               Waves: <TMPL_VAR NAME=Waves>
+               Claims: <TMPL_VAR NAME=Claims>
+               Launched: <TMPL_VAR NAME=Launched>
        </TMPL_IF>
        </p>
 </TMPL_LOOP>
 <TMPL_LOOP ClosedRaids>
                <p>
                        <a href="editRaid?raid=<TMPL_VAR NAME=Raid>">Edit raid <TMPL_VAR NAME=Raid></a>
-                       
+                       Landing tick: <TMPL_VAR NAME=tick>
                        <TMPL_UNLESS Open>
                        <a href="editRaid?raid=<TMPL_VAR NAME=Raid>&amp;cmd=Open">Open raid.</a>
                        </TMPL_UNLESS>
+                       Waves: <TMPL_VAR NAME=Waves>
+                       Claims: <TMPL_VAR NAME=Claims>
+                       Launched: <TMPL_VAR NAME=Launched>
+               </p>
+</TMPL_LOOP>
+
+<p> Removed raids </p>
+<TMPL_LOOP RemovedRaids>
+               <p>
+                       <a href="editRaid?raid=<TMPL_VAR NAME=Raid>">Edit raid <TMPL_VAR NAME=Raid></a>
+                       Landing tick: <TMPL_VAR NAME=tick>
+                       Waves: <TMPL_VAR NAME=Waves>
+                       Claims: <TMPL_VAR NAME=Claims>
+                       Launched: <TMPL_VAR NAME=Launched>
                </p>
 </TMPL_LOOP>
 </TMPL_IF>