]> ruin.nu Git - ndwebbie.git/blobdiff - NDWeb/Pages/Raids.pm
Converted calls page, also using jquery.
[ndwebbie.git] / NDWeb / Pages / Raids.pm
index 766d5a390e589e69202caded65c6527de2688ab1..31be782d6b6000cb8efcdd66cf7faf29ebf71ace 100644 (file)
@@ -119,13 +119,18 @@ sub render_body {
                my $target = param('target');
                my $wave = param('wave');
 
-               my $findtarget = $DBH->prepare("SELECT rt.id FROM raid_targets rt NATURAL JOIN raid_access ra NATURAL JOIN groupmembers where uid = ? AND id = ?");
+               $DBH->begin_work;
+               my $findtarget = $DBH->prepare(q{SELECT rt.id FROM raid_targets rt 
+                       NATURAL JOIN raid_access ra NATURAL JOIN groupmembers 
+                       WHERE uid = ? AND id = ?
+                       FOR UPDATE
+               });
                my $result = $DBH->selectrow_array($findtarget,undef,$ND::UID,$target);
                if ($result != $target){
+                       $DBH->rollback;
                        return $self->noAccess; 
                }
 
-               $DBH->begin_work;
                if (param('cmd') eq 'Claim'){
                        my $claims = $DBH->prepare(qq{SELECT username FROM raid_claims NATURAL JOIN users WHERE target = ? AND wave = ?});
                        $claims->execute($target,$wave);
@@ -200,6 +205,7 @@ sub render_body {
                                        COALESCE(avg(total),0) FROM
                                        structure_scans)::int)*1500 AS fleetvalue
                        ,(metal+crystal+eonium)/100 AS resvalue, comment
+                       , hidden, light, medium, heavy
                        FROM current_planet_stats p 
                        JOIN raid_targets r ON p.id = r.planet 
                        LEFT OUTER JOIN planet_scans ps ON p.id = ps.planet
@@ -209,6 +215,7 @@ sub render_body {
                        ORDER BY size});
                $targetquery->execute($raid->{id});
                my @targets;
+               my %production = (0 => 'None', 35 => 'Light', 65 => 'Medium', 100 => 'High');
                while (my $target = $targetquery->fetchrow_hashref){
                        my %target;
                        if ($planet){
@@ -222,9 +229,9 @@ sub render_body {
                        $target{Id} = $target->{id};
                        $target{Race} = $target->{race};
                        my $num = pow(10,length($target->{score})-2);
-                       $target{Score} = ceil($target->{score}/$num)*$num;
+                       $target{Score} = "Hidden"; #ceil($target->{score}/$num)*$num;
                        $num = pow(10,length($target->{value})-2);
-                       $target{Value} = ceil($target->{value}/$num)*$num;
+                       $target{Value} = "Hidden"; #ceil($target->{value}/$num)*$num;
                        $num = pow(10,length($target->{size})-2);
                        $target{Size} = floor($target->{size}/$num)*$num;
                        $num = pow(10,length($target->{fleetvalue})-2);
@@ -234,32 +241,36 @@ sub render_body {
                                $target{ResValue} = floor($target->{resvalue}/$num)*$num;
                        }
                        $target{comment} = parseMarkup($target->{comment}) if ($target->{comment});
+                       
+                       $target{Hidden} = int($target->{hidden} / 100);
+                       $target{Light} = $production{$target->{light}};
+                       $target{Medium} = $production{$target->{medium}};
+                       $target{Heavy} = $production{$target->{heavy}};
 
                        my $unitscans = $DBH->prepare(q{ 
-                               SELECT i.id,i.name, i.tick, i.amount 
+                               SELECT DISTINCT ON (name) i.id,i.name, i.tick, i.amount 
                                FROM fleets i
                                WHERE  i.uid = -1
                                        AND i.sender = ?
                                        AND i.mission = 'Full fleet'
                                GROUP BY i.id,i.tick,i.name,i.amount
-                               ORDER BY i.tick,name
+                               ORDER BY name,i.tick DESC
                        });
                        $unitscans->execute($target->{planet}) or warn $DBH->errstr;
-                       my $ships = $DBH->prepare(q{SELECT ship,amount FROM fleet_ships WHERE id = ?});
+                       my $ships = $DBH->prepare(q{SELECT ship,amount FROM fleet_ships
+                               WHERE id = ? ORDER BY num
+                       });
                        my @missions;
-                       my $i = 0;
                        while (my $mission = $unitscans->fetchrow_hashref){
-                               $mission->{ODD} = $i++ % 2;
                                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;
                                $mission->{ships} = \@ships;
                                $mission->{amount} =~ s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1,/g; #Add comma for ever 3 digits, i.e. 1000 => 1,000
+                               delete $mission->{id};
                                push @missions,$mission;
                        }
                        $target{missions} = \@missions;
@@ -283,7 +294,7 @@ sub render_body {
                                $size -= $roids;
                                my $xp = 0;
                                if ($planet){
-                                       $xp = pa_xp($roids,$planet->{score},$planet->{value},$target{Score},$target{Value});
+                                       $xp = pa_xp($roids,$planet->{score},$planet->{value},$target->{score},$target->{value});
                                }
                                push @roids,{Wave => $i, Roids => $roids, XP => $xp};
                                if ($self->{AJAX}){