]> ruin.nu Git - ndwebbie.git/commitdiff
improved raid editing
authorMichael Andreen <harv@ruin.nu>
Tue, 13 Mar 2007 11:36:49 +0000 (11:36 +0000)
committerMichael Andreen <harv@ruin.nu>
Tue, 13 Mar 2007 11:36:49 +0000 (11:36 +0000)
ND/Web/Pages/EditRaid.pm
templates/editRaid.tmpl

index faf9780ce1f023ff4c73aedb7dac0deb21959ba8..16eab5e1c4dd58fb3567aa1ff19971e10b8fa8db 100644 (file)
@@ -103,7 +103,7 @@ sub render_body {
                                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)){
                                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){
                                }
                        }
                        if (param('alliance') =~ /^(\d+)$/ && $1 != 1){
@@ -135,7 +135,24 @@ sub render_body {
                        unless ($DBH->commit){
                                $error .= "<p> Something went wrong: ".$DBH->errstr."</p>";
                        }
                        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";
        }
        if ($raid && param('removeTarget')){
                $error .= "test";
@@ -144,15 +161,6 @@ sub render_body {
                        $error .= "<p> Something went wrong: ".$DBH->errstr."</p>";
                }
        }
                        $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);
 
        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);
@@ -194,7 +202,7 @@ sub render_body {
                        $order = "$1 DESC";
                }
 
                        $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});
                        FROM current_planet_stats p JOIN raid_targets r ON p.id = r.planet 
                        WHERE r.raid = ?
                        ORDER BY $order});
@@ -219,6 +227,31 @@ sub render_body {
                                push @waves,{Wave => $i, Claimers => $claimers};
                        }
                        $target->{waves} = \@waves;
                                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);
                        push @targets,$target;
                }
                $BODY->param(Targets => \@targets);
index 94ed903e9383204eb8039ab9ed27474c8696c551..6725cd607643d578944a57de4a37609095105ef3 100644 (file)
                <a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&amp;order=value">Value</a>
                <a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&amp;order=xp">XP</a>
        </p>
                <a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&amp;order=value">Value</a>
                <a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&amp;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">
 <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>
                                <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">&nbsp;</div>
        <TMPL_LOOP Waves>
                <TMPL_IF Claimers>
        <TMPL_LOOP Waves>
                <TMPL_IF Claimers>
-                       <p><a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&amp;target=<TMPL_VAR NAME=Id>&amp;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>
                <TMPL_ELSE>
-                       <p><a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&amp;target=<TMPL_VAR NAME=Id>&amp;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>
                </TMPL_IF>
        </TMPL_LOOP>
-       <div class="clear">&nbsp;</div>
        <p><a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&amp;removeTarget=<TMPL_VAR NAME=Id>">Remove</a></p>
        <p><a href="/<TMPL_VAR NAME=PAGE>?raid=<TMPL_VAR NAME=Raid>&amp;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>
        </fieldset>
 </TMPL_LOOP>
+<br/><input type="submit" value="Submit target changes"/>
+</form>
 </TMPL_IF>
 </TMPL_IF>