]> ruin.nu Git - ndwebbie.git/blobdiff - lib/NDWeb/Controller/Raids.pm
Use sessions for redirect to previous page instead of referer header
[ndwebbie.git] / lib / NDWeb / Controller / Raids.pm
index f9580e46fdb424d7ddb02dc9111aacd049e3fded..f2bfa0a0fc526f9d4159a0b46eb3582f60ebbaa6 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 use parent 'Catalyst::Controller';
 
-use POSIX;
+use POSIX qw/floor pow/;
 use NDWeb::Include;
 use ND::Include;
 
@@ -110,9 +110,9 @@ sub view : Local {
                , p.x,p.y,p.z, race
                , p.value - p.size*200 -
                        COALESCE(ps.metal+ps.crystal+ps.eonium,0)/150 -
-                       COALESCE(ss.total ,(SELECT
+                       COALESCE(ds.total ,(SELECT
                                COALESCE(avg(total),0) FROM
-                               structure_scans)::int)*1500 AS fleetvalue
+                               current_development_scans)::int)*1500 AS fleetvalue
                ,(metal+crystal+eonium)/100 AS resvalue, comment
                , hidden, light, medium, heavy, metal, crystal, eonium
                ,metal_roids, crystal_roids, eonium_roids
@@ -121,15 +121,14 @@ sub view : Local {
                FROM current_planet_stats p
                        JOIN raid_targets r ON p.id = r.planet
                        LEFT OUTER JOIN current_planet_scans ps ON p.id = ps.planet
-                       LEFT OUTER JOIN current_structure_scans ss ON p.id = ss.planet
-                       LEFT OUTER JOIN current_tech_scans ts ON p.id = ts.planet
+                       LEFT OUTER JOIN current_development_scans ds ON p.id = ds.planet
                WHERE r.raid = $1
                        AND NOT COALESCE(p.x = $2 AND p.y = $3,False)
                ORDER BY size});
        $targetquery->execute($raid->{id},$planet->{x},$planet->{y});
        my @targets;
        while (my $target = $targetquery->fetchrow_hashref){
-               if ($planet){
+               if ($planet && $planet->{x}){
                        if ($planet->{x} == $target->{x}){
                                $target->{style} = 'incluster';
                        }
@@ -171,7 +170,7 @@ sub view : Local {
                        my $roids = floor(0.25*$size);
                        $size -= $roids;
                        my $xp = 0;
-                       if ($planet){
+                       if ($planet && $planet->{score}){
                                $xp = pa_xp($roids,$planet->{score},$planet->{value},$target->{score},$target->{value});
                        }
                        push @roids,{wave => $i, roids => $roids, xp => $xp};
@@ -193,7 +192,7 @@ sub view : Local {
                        $target->{resvalue} = floor($target->{resvalue}/$num)*$num;
                }
                $target->{comment} = parseMarkup($target->{comment}) if ($target->{comment});
-               $target->{hidden} = int($target->{hidden} / 100);
+               $target->{hidden} = int($target->{hidden} / 100) if $target->{hidden};
 
                push @targets,$target;
        }
@@ -434,7 +433,7 @@ sub open : Local {
        $c->forward('log',[$raid, "BC opened raid"]);
        $c->model->commit;
 
-       $c->res->redirect($c->req->referer);
+       $c->forward('/redirect');
 }
 
 sub close : Local {
@@ -446,7 +445,7 @@ sub close : Local {
        $c->forward('log',[$raid, "BC closed raid"]);
        $c->model->commit;
 
-       $c->res->redirect($c->req->referer);
+       $c->forward('/redirect');
 }
 
 sub remove : Local {
@@ -458,7 +457,7 @@ sub remove : Local {
        $c->forward('log',[$raid, "BC removed raid"]);
        $c->model->commit;
 
-       $c->res->redirect($c->req->referer);
+       $c->forward('/redirect');
 }
 
 sub showcoords : Local {
@@ -470,7 +469,7 @@ sub showcoords : Local {
        $c->forward('log',[$raid, "BC released coords"]);
        $c->model->commit;
 
-       $c->res->redirect($c->req->referer);
+       $c->forward('/redirect');
 }
 
 sub hidecoords : Local {
@@ -482,7 +481,7 @@ sub hidecoords : Local {
        $c->forward('log',[$raid, "BC hid coords"]);
        $c->model->commit;
 
-       $c->res->redirect($c->req->referer);
+       $c->forward('/redirect');
 }
 
 sub create : Local {
@@ -518,6 +517,8 @@ sub postcreate : Local {
                $addtarget->execute($raid,\@targets,\@gals,$c->req->param('sizelimit'));
                $c->forward('log',[$raid,"BC added planets (@targets) and the gals for (@gals)"]);
        }
+       $dbh->do(q{INSERT INTO raid_access (raid,gid) VALUES(?,2)}
+               ,undef,$raid);
        $dbh->commit;
 
        $c->res->redirect($c->uri_for('edit',$raid));