X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=NDWeb%2FPages%2FCalls.pm;h=6e51754b11ae6867a1e0a89ac32536d7f653d9f5;hb=95365cc1a5b8827230e5213bf4dd3377949af7f0;hp=27e88de39b3805d02cf27311cbe0779bb852e7f0;hpb=4e8a42b55b7dfce191bd84a1ed31b3831db9f7fb;p=ndwebbie.git diff --git a/NDWeb/Pages/Calls.pm b/NDWeb/Pages/Calls.pm index 27e88de..6e51754 100644 --- a/NDWeb/Pages/Calls.pm +++ b/NDWeb/Pages/Calls.pm @@ -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+)}{$1}g; $call->{dcstyle} = 'Hostile' unless defined $call->{dc}; - $i++; - $call->{ODD} = $i % 2; $call->{shiptype} = $call->{shiptype}; push @calls, $call; }