]> ruin.nu Git - ndwebbie.git/blobdiff - ND/Web/Pages/Calls.pm
oops, show removed raids even if there aren't any closed ones
[ndwebbie.git] / ND / Web / Pages / Calls.pm
index 6cb626a13c2e5e70d459159538f90e7ca42a7454..d399fec0a36df3a684854b8f9bbc8cb8401b669d 100644 (file)
@@ -126,7 +126,7 @@ sub render_body {
                $BODY->param(DefensePoints => $call->{defense_points});
                $BODY->param(LandingTick => $call->{landing_tick});
                $BODY->param(ETA => $call->{landing_tick}-$self->{TICK});
-               $BODY->param(Info => $call->{info});
+               $BODY->param(Info => escapeHTML $call->{info});
                $BODY->param(DC => $call->{dc});
                if ($call->{covered}){
                        $BODY->param(Cover => 'Uncover');
@@ -213,19 +213,22 @@ sub render_body {
                my ($maxpoints) = $DBH->selectrow_array($pointlimits,undef,'DEFMAX');
 
                my $query = $DBH->prepare(qq{
-                       SELECT c.id, coords(p.x,p.y,p.z), u.defense_points, c.landing_tick, c.dc,
-                       TRIM('/' FROM concat(p2.race||' /')) AS race, TRIM('/' FROM concat(i.amount||' /')) AS amount,
-                       TRIM('/' FROM concat(i.eta||' /')) AS eta, TRIM('/' FROM concat(i.shiptype||' /')) AS shiptype,
-                       TRIM('/' FROM concat(c.landing_tick - tick() ||' /')) AS curreta,
-                       TRIM('/' FROM concat(p2.alliance ||' /')) AS alliance,
-                       TRIM('/' FROM concat(coords(p2.x,p2.y,p2.z) ||' /')) AS attackers
+                       SELECT c.id, coords(p.x,p.y,p.z), u.defense_points, c.landing_tick, dc.username AS dc,
+                       TRIM('/' FROM concat(DISTINCT p2.race||' /')) AS race, TRIM('/' FROM concat(DISTINCT i.amount||' /')) AS amount,
+                       TRIM('/' FROM concat(DISTINCT i.eta||' /')) AS eta, TRIM('/' FROM concat(DISTINCT i.shiptype||' /')) AS shiptype,
+                       (c.landing_tick - tick()) AS curreta,
+                       TRIM('/' FROM concat(DISTINCT p2.alliance ||' /')) AS alliance,
+                       TRIM('/' FROM concat(DISTINCT coords(p2.x,p2.y,p2.z) ||' /')) AS attackers,
+                       COUNT(DISTINCT f.id) AS fleets
                        FROM calls c 
                        JOIN incomings i ON i.call = c.id
                        JOIN users u ON c.member = u.uid
                        JOIN current_planet_stats p ON u.planet = p.id
                        JOIN current_planet_stats p2 ON i.sender = p2.id
+                       LEFT OUTER JOIN users dc ON c.dc = dc.uid
+                       LEFT OUTER JOIN fleets f ON f.target = u.planet AND f.landing_tick = c.landing_tick AND f.back = f.landing_tick + f.eta - 1
                        WHERE $where
-                       GROUP BY c.id, p.x,p.y,p.z, u.username, c.landing_tick, c.info,u.defense_points,c.dc
+                       GROUP BY c.id, p.x,p.y,p.z, u.username, c.landing_tick, c.info,u.defense_points,dc.username
                        ORDER BY c.landing_tick DESC
                        })or $error .= $DBH->errstr;
                $query->execute or $error .= $DBH->errstr;
@@ -246,7 +249,7 @@ sub render_body {
                                $i = 0;
                        }
                        $call->{attackers} =~ s{(\d+:\d+:\d+)}{<a href="/check?coords=$1">$1</a>}g;
-                       $call->{dc} = 'Hostile' unless defined $call->{dc};
+                       $call->{dcstyle} = 'Hostile' unless defined $call->{dc};
                        $i++;
                        $call->{ODD} = $i % 2;
                        $call->{shiptype} = escapeHTML($call->{shiptype});