package NDWeb::Pages::Calls;
use strict;
use warnings;
+use NDWeb::Forum;
use ND::Include;
use CGI qw/:standard/;
use NDWeb::Include;
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'){
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;
}
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;
}
$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;
}
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;
}
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;
}
}
$DBH->commit or warn $DBH->errstr;
}
+ if (defined $thread and param('cmd') eq 'forumpost'){
+ addForumPost($DBH,$thread,$ND::UID,param('message'));
+ }
}
if ($call){
$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{
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){
}
$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;
$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);
});
$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;
})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){
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;
}