]> ruin.nu Git - ndwebbie.git/blobdiff - lib/NDWeb/Controller/Members.pm
Bugfix, so recall fleets work at eta 1
[ndwebbie.git] / lib / NDWeb / Controller / Members.pm
index f69e82d19b986fa901aa3ac371d867d115db20f7..2b50ebe7f6449c9f2f6d0a47a99c5fd7b11e3557 100644 (file)
@@ -29,7 +29,6 @@ sub index : Path : Args(0) {
 
        $c->stash(error => $c->flash->{error});
 
-       $c->stash(comma => \&comma_value);
        $c->stash(u => $dbh->selectrow_hashref(q{SELECT planet,defense_points
                        ,attack_points,scan_points,humor_points
                        , (attack_points+defense_points+scan_points/20)::NUMERIC(5,1) as total_points
@@ -205,7 +204,7 @@ sub postfleetsupdates : Local {
        if ($c->req->param('cmd') eq 'Recall Fleets'){
                my $updatefleets = $dbh->prepare(q{UPDATE launch_confirmations
                        SET back = tick() + (tick() - (landing_tick - eta))
-                       WHERE uid = ? AND fid = ? AND back > tick()+eta
+                       WHERE uid = ? AND fid = ? AND back >= tick()+eta
                });
 
                for my $param ($c->req->param()){
@@ -236,21 +235,26 @@ sub ircrequest : Local {
        my $dbh = $c->model;
 
        $c->stash(reply => $c->flash->{reply});
-       $c->stash(channels => ['def','scan','members']);
+       $c->stash(channels => ['scan','members','def']);
 }
 
 sub postircrequest : Local {
        my ( $self, $c ) = @_;
        my $dbh = $c->model;
 
-       my $query = $dbh->prepare(q{INSERT INTO irc_requests
-               (uid,channel,message) VALUES($1,$2,$3)
+       if ($c->req->param('channel')){
+               my $query = $dbh->prepare(q{
+INSERT INTO irc_requests (uid,channel,message) VALUES($1,$2,$3)
                });
-       $query->execute($c->user->id,$c->req->param('channel'),$c->req->param('message'));
-       system 'killall','-USR1', 'irssi';
+               $query->execute($c->user->id,$c->req->param('channel'),$c->req->param('message'));
+               system 'killall','-USR1', 'irssi';
 
-       $c->flash(reply => "Msg sent to: ".$c->req->param('channel'));
-       $c->res->redirect($c->uri_for('ircrequest'));
+               $c->flash(reply => "Msg sent to: ".$c->req->param('channel'));
+               $c->res->redirect($c->uri_for('ircrequest'));
+       }else{
+               $c->stash(ircmessage => $c->req->param('message'));
+               $c->go('ircrequest');
+       }
 }
 
 sub points : Local {
@@ -527,7 +531,7 @@ sub defenders : Local {
 
        my $defenders = $dbh->prepare(q{
 SELECT uid,u.planet,username, to_char(NOW() AT TIME ZONE timezone,'HH24:MI') AS time
-       ,sms_note, call_if_needed, race
+       ,sms_note, call_if_needed, race, timezone
 FROM users u
        JOIN current_planet_stats p ON p.id = u.planet
 WHERE uid IN (SELECT uid FROM groupmembers WHERE gid = 2)
@@ -535,10 +539,19 @@ ORDER BY call_if_needed DESC, LOWER(username)
                });
        $defenders->execute;
 
+       my $available = $dbh->prepare(q{
+SELECT ship,amount FROM available_ships WHERE planet = $1
+               });
+
        my @members;
        while (my $member = $defenders->fetchrow_hashref){
 
                $member->{fleets} = member_fleets($dbh, $member->{uid}, $member->{planet});
+               $available->execute($member->{planet});
+               my $fleet = {fid => $member->{username}, mission => 'Available', name => 'At home'
+                       , ships => $available->fetchall_arrayref({})
+               };
+               push @{$member->{fleets}}, $fleet;
                push @members,$member;
        }
        $c->stash(members => \@members);