SELECT ?, id FROM current_planet_stats p WHERE x = ? AND y = ? AND COALESCE(z = ?,TRUE) $sizelimit)});
while ($targets =~ m/(\d+):(\d+)(?::(\d+))?/g){
unless ($addtarget->execute($raid->{id},$1,$2,$3)){
- $error .= "<p> Something went wrong: ".$DBH->errstr."</p>";
+ $error .= "<p> Something went wrong when adding $1:$2".($3 ? ":$3" : '').": ".$DBH->errstr."</p>";
}
}
if (param('alliance') =~ /^(\d+)$/ && $1 != 1){
unless ($DBH->commit){
$error .= "<p> Something went wrong: ".$DBH->errstr."</p>";
}
+ }elsif (param('cmd') eq 'targets'){
+ $DBH->begin_work;
+ my $comment = $DBH->prepare(q{UPDATE raid_targets SET comment = ? WHERE id = ?});
+ my $unclaim = $DBH->prepare(q{DELETE FROM raid_claims WHERE target = ? AND wave = ?});
+ my $block = $DBH->prepare(q{INSERT INTO raid_claims (target,uid,wave) VALUES(?,-2,?)});
+ for $_ (param()){
+ if (/^comment:(\d+)$/){
+ $comment->execute(escapeHTML(param($_)),$1) or $error .= p($DBH->errstr);
+ }elsif(/^unclaim:(\d+):(\d+)$/){
+ $unclaim->execute($1,$2) or $error .= p($DBH->errstr);
+ log_message $ND::UID,"BC unclaimed target $1 wave $2.";
+ }elsif(/^block:(\d+):(\d+)$/){
+ $block->execute($1,$2) or $error .= p($DBH->errstr);
+ }
+ }
+ $DBH->commit or $error .= p($DBH->errstr);
}
+
}
if ($raid && param('removeTarget')){
$error .= "test";
$error .= "<p> Something went wrong: ".$DBH->errstr."</p>";
}
}
- if ($raid && param('block') && param('target')){
- $DBH->do(q{INSERT INTO raid_claims (target,uid,wave) VALUES(?,-2,?)}
- ,undef,param('target'),param('block'));
- }
- if ($raid && param('unclaim') && param('target')){
- $DBH->do(q{DELETE FROM raid_claims WHERE target = ? AND wave = ?}
- ,undef,param('target'),param('unclaim'));
- log_message $ND::UID,"BC unclaimed target ".param('target')." wave ".param('unclaim').".";
- }
my $groups = $DBH->prepare(q{SELECT g.gid,g.groupname,raid FROM groups g LEFT OUTER JOIN (SELECT gid,raid FROM raid_access WHERE raid = ?) AS ra ON g.gid = ra.gid WHERE g.attack});
$groups->execute($raid ? $raid->{id} : undef);
$order = "$1 DESC";
}
- my $targetquery = $DBH->prepare(qq{SELECT r.id,coords(x,y,z),raid,comment,size,score,value,race,planet_status AS planetstatus,relationship,comment
+ my $targetquery = $DBH->prepare(qq{SELECT r.id,coords(x,y,z),raid,comment,size,score,value,race,planet_status AS planetstatus,relationship,comment,r.planet
FROM current_planet_stats p JOIN raid_targets r ON p.id = r.planet
WHERE r.raid = ?
ORDER BY $order});
push @waves,{Wave => $i, Claimers => $claimers};
}
$target->{waves} = \@waves;
+
+ my $scans = $DBH->prepare(q{SELECT DISTINCT ON (type) type, tick, scan FROM scans
+ WHERE planet = ? AND type ~ 'Unit|Planet|Advanced Unit|.* Analysis' AND tick + 24 > tick() AND scan is not null
+ GROUP BY type, tick, scan ORDER BY type ,tick DESC});
+ $scans->execute($target->{planet});
+ delete $target->{planet};
+ my %scans;
+ while (my $scan = $scans->fetchrow_hashref){
+ $scans{$scan->{type}} = $scan;
+ }
+
+ my @scans;
+ for my $type ('Planet','Unit','Advanced Unit','Surface Analysis','Technology Analysis'){
+ next unless exists $scans{$type};
+ my $scan = $scans{$type};
+ if ($self->{TICK} - $scan->{tick} > 5){
+ $scan->{scan} =~ s{<table( cellpadding="\d+")?>}{<table class="old">};
+ }
+ if ($type eq 'Planet'){
+ $target->{PlanetScan} = $scan->{scan};
+ next;
+ }
+ push @scans,{Scan => $scan->{scan}};
+ }
+ $target->{Scans} = \@scans;
push @targets,$target;
}
$BODY->param(Targets => \@targets);
<a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&order=value">Value</a>
<a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&order=xp">XP</a>
</p>
+<form action="<TMPL_VAR NAME=PAGE>" method="post">
+<input type="hidden" name="page" value="<TMPL_VAR NAME=PAGE>"/>
+<input type="hidden" name="raid" value="<TMPL_VAR NAME=Raid>"/>
+<input type="hidden" name="cmd" value="targets"/>
<TMPL_LOOP Targets>
<fieldset> <legend>Target: #<TMPL_VAR NAME=Id> <TMPL_VAR NAME=Coords></legend>
<div class="leftinfo">
<td class="<TMPL_VAR NAME=Relationship>"><TMPL_VAR NAME=Relationship></td>
</tr>
</table>
- </div>
- <form action="<TMPL_VAR NAME=PAGE>" method="post">
- <input type="hidden" name="page" value="<TMPL_VAR NAME=PAGE>"/>
- <input type="hidden" name="target" value="<TMPL_VAR NAME=Id>"/>
- <input type="hidden" name="cmd" value="comment"/>
- <input type="hidden" name="raid" value="<TMPL_VAR NAME=Raid>"/>
- <p> Comment:<br/>
- <textarea rows="5" cols="20" name="comment"><TMPL_VAR NAME=Comment></textarea>
- <br/><input type="submit" value="Submit"/>
- </p>
- </form>
- <div class="clear"> </div>
<TMPL_LOOP Waves>
<TMPL_IF Claimers>
- <p><a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&target=<TMPL_VAR NAME=Id>&unclaim=<TMPL_VAR NAME=Wave>">Unclaim wave <TMPL_VAR NAME=Wave> (<TMPL_VAR NAME=Claimers>)</a></p>
+ <p>Unclaim wave <TMPL_VAR NAME=Wave> (<TMPL_VAR NAME=Claimers>): <input type="checkbox" name="unclaim:<TMPL_VAR NAME=Id>:<TMPL_VAR NAME=Wave>" value="unclaim"/></p>
<TMPL_ELSE>
- <p><a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&target=<TMPL_VAR NAME=Id>&block=<TMPL_VAR NAME=Wave>">Block wave <TMPL_VAR NAME=Wave></a></p>
+ <p>Block wave <TMPL_VAR NAME=Wave>: <input type="checkbox" name="block:<TMPL_VAR NAME=Id>:<TMPL_VAR NAME=Wave>" value="block"/></p>
</TMPL_IF>
</TMPL_LOOP>
- <div class="clear"> </div>
<p><a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&removeTarget=<TMPL_VAR NAME=Id>">Remove</a></p>
+ </div>
+ <div class="leftinfo">
+ <p> Comment:<br/>
+ <textarea rows="5" cols="20" name="comment:<TMPL_VAR NAME=Id>"><TMPL_VAR NAME=Comment></textarea>
+ <TMPL_VAR NAME=PlanetScan>
+ </p>
+ </div>
+ <TMPL_LOOP Scans>
+ <div class="leftinfo">
+ <TMPL_VAR NAME=Scan>
+ </div>
+ </TMPL_LOOP>
</fieldset>
</TMPL_LOOP>
+<br/><input type="submit" value="Submit target changes"/>
+</form>
</TMPL_IF>