]> ruin.nu Git - ndwebbie.git/blobdiff - NDWeb/Pages/Calls.pm
Converted covop target list
[ndwebbie.git] / NDWeb / Pages / Calls.pm
index 27e88de39b3805d02cf27311cbe0779bb852e7f0..6e51754b11ae6867a1e0a89ac32536d7f653d9f5 100644 (file)
@@ -19,6 +19,7 @@
 package NDWeb::Pages::Calls;
 use strict;
 use warnings;
+use NDWeb::Forum;
 use ND::Include;
 use CGI qw/:standard/;
 use NDWeb::Include;
@@ -36,15 +37,19 @@ sub render_body {
        return $self->noAccess unless $self->isDC;
 
        my $call;
+       my $thread;
        if (defined param('call') && param('call') =~ /^(\d+)$/){
                my $query = $DBH->prepare(q{
-                       SELECT c.id, coords(p.x,p.y,p.z), c.landing_tick, c.info, covered, open, dc.username AS dc, u.defense_points,c.member,u.planet, u.username AS member, u.sms
+                       SELECT c.id, coords(p.x,p.y,p.z), c.landing_tick, c.info, covered, open, dc.username AS dc, u.defense_points,c.member,u.planet, u.username AS member, u.sms,c.ftid
                        FROM calls c 
                        JOIN users u ON c.member = u.uid
                        LEFT OUTER JOIN users dc ON c.dc = dc.uid
                        JOIN current_planet_stats p ON u.planet = p.id
                        WHERE c.id = ?});
                $call = $DBH->selectrow_hashref($query,undef,$1);
+
+               $thread = $DBH->selectrow_hashref(q{SELECT ftid AS id, subject FROM forum_threads
+                       where ftid = $1},undef,$call->{ftid}) or warn $DBH->errstr;
        }
        if ($call && defined param('cmd')){
                if (param('cmd') eq 'Submit'){
@@ -53,7 +58,7 @@ sub render_body {
                                if ($DBH->do(q{UPDATE calls SET landing_tick = ? WHERE id = ?}
                                                ,undef,param('tick'),$call->{id})){
                                        $call->{landing_tick} = param('tick');
-                                       log_message $ND::UID,"DC updated landing tick for call $call->{id}";
+                                       def_log $ND::UID,$call->{id},"Updated landing tick to [B] $call->{landing_tick} [/B]";
                                }else{
                                        warn $DBH->errstr;
                                }
@@ -62,7 +67,7 @@ sub render_body {
                                if ($DBH->do(q{UPDATE calls SET info = ? WHERE id = ?}
                                                ,undef,param('info'),$call->{id})){
                                        $call->{info} = param('info');
-                                       log_message $ND::UID,"DC updated info for call $call->{id}";
+                                       def_log $ND::UID,$call->{id},"Updated info";
                                }else{
                                        warn $DBH->errstr;
                                }
@@ -84,6 +89,7 @@ sub render_body {
                                $call->{covered} = (param('cmd') eq 'Cover call');
                                $call->{open} = (param('cmd') =~ /^(Uncover|Open) call$/);
                                $call->{DC} = $self->{USER};
+                               def_log $ND::UID,$call->{id},'Changed status to: [B]'.param('cmd').'[/B]';
                        }else{
                                warn $DBH->errstr;
                        }
@@ -93,7 +99,7 @@ sub render_body {
                        for my $param (param()){
                                if ($param =~ /^change:(\d+)$/){
                                        if($query->execute($1,$call->{id})){
-                                               log_message $ND::UID,"DC deleted fleet: $1, call $call->{id}";
+                                               def_log $ND::UID,$call->{id},"Deleted fleet: [B] $1 [/B]";
                                        }else{
                                                warn $DBH->errstr;
                                        }
@@ -107,7 +113,7 @@ sub render_body {
                                if ($param =~ /^change:(\d+)$/){
                                        my $shiptype = escapeHTML(param("shiptype:$1"));
                                        if($query->execute($shiptype,$1,$call->{id})){
-                                               log_message $ND::UID,"DC set fleet: $1, call $call->{id} to: $shiptype";
+                                               def_log $ND::UID,$call->{id},"set fleet: [B] $1 [/B] to: [B] $shiptype [/B]";
                                        }else{
                                                warn $DBH->errstr;
                                        }
@@ -115,6 +121,9 @@ sub render_body {
                        }
                        $DBH->commit or warn $DBH->errstr;
                }
+               if (defined $thread and param('cmd') eq 'forumpost'){
+                       addForumPost($DBH,$thread,$ND::UID,param('message'));
+               }
        }
 
        if ($call){
@@ -127,6 +136,7 @@ sub render_body {
                $BODY->param(DC => $call->{dc});
                $BODY->param(Member => $call->{member});
                $BODY->param(SMS => $call->{sms});
+               $BODY->param(Thread => viewForumThread $thread);
                if ($call->{covered}){
                        $BODY->param(Cover => 'Uncover');
                }else{
@@ -146,10 +156,10 @@ sub render_body {
                                NATURAL JOIN planet_stats) t ON i.target = t.id
                                        AND t.tick = ( SELECT MAX(tick) FROM planet_stats)
                        WHERE  i.sender = $1 
-                               AND (i.tick > $2 - 14 OR i.mission = 'Full Fleet')
+                               AND (i.tick > $2 - 14 OR i.mission = 'Full fleet')
                        ORDER BY i.tick,x,y,z
                });
-               my $ships = $DBH->prepare('SELECT ship,amount FROM fleet_ships WHERE id = ?');
+               my $ships = $DBH->prepare('SELECT ship,amount FROM fleet_ships WHERE id = ? ORDER BY num');
                $outgoings->execute($call->{planet},$call->{landing_tick});
                my @fleets;
                while (my $fleet = $outgoings->fetchrow_hashref){
@@ -159,10 +169,7 @@ sub render_body {
                        }
                        $ships->execute($fleet->{id});
                        my @ships;
-                       my $i = 0;
                        while (my $ship = $ships->fetchrow_hashref){
-                               $i++;
-                               $ship->{ODD} = $i % 2;
                                push @ships,$ship;
                        }
                        $fleet->{Ships} = \@ships;
@@ -188,14 +195,10 @@ sub render_body {
                        $fleet->{CLASS} = $fleet->{mission};
                        $ships->execute($fleet->{id});
                        my @ships;
-                       my $i = 0;
                        while (my $ship = $ships->fetchrow_hashref){
-                               $i++;
-                               $ship->{ODD} = $i % 2;
                                push @ships,$ship;
                        }
                        $fleet->{Ships} = \@ships;
-                       delete $fleet->{id};
                        push @defenders, $fleet;
                }
                $BODY->param(Defenders => \@defenders);
@@ -209,23 +212,16 @@ sub render_body {
                });
                $attackers->execute($call->{id});
                my @attackers;
-               my $i = 0;
                while(my $attacker = $attackers->fetchrow_hashref){
-                       $i++;
-                       $attacker->{ODD} = $i % 2;
                        $outgoings->execute($attacker->{planet},$call->{landing_tick});
                        my @missions;
-                       my $k = 0;
                        while (my $mission = $outgoings->fetchrow_hashref){
                                $mission->{eta} = '?' if not defined $mission->{eta};
                                $mission->{amount} = '?' if not defined $mission->{amount};
-                               $mission->{ODD} = $k++ % 2;
                                $mission->{CLASS} = $mission->{mission};
                                my @ships;
                                $ships->execute($mission->{id});
-                               my $j = 0;
                                while (my $ship = $ships->fetchrow_hashref){
-                                       $ship->{ODD} = $j++ % 2;
                                        push @ships,$ship;
                                }
                                push @ships, {ship => 'No', amount => 'ships'} if @ships == 0;
@@ -275,7 +271,6 @@ sub render_body {
                        })or warn $DBH->errstr;
                $query->execute or warn $DBH->errstr;
                my @calls;
-               my $i = 0;
                my $tick = $self->{TICK};
                while (my $call = $query->fetchrow_hashref){
                        if ($call->{defense_points} < $minpoints){
@@ -288,12 +283,9 @@ sub render_body {
                        while ($tick - 24 > $call->{landing_tick}){
                                $tick -= 24;
                                push @calls,{};
-                               $i = 0;
                        }
                        $call->{attackers} =~ s{(\d+:\d+:\d+)}{<a href="/check?coords=$1">$1</a>}g;
                        $call->{dcstyle} = 'Hostile' unless defined $call->{dc};
-                       $i++;
-                       $call->{ODD} = $i % 2;
                        $call->{shiptype} = $call->{shiptype};
                        push @calls, $call;
                }