INSERT INTO roles VALUES('intel_member');
INSERT INTO roles VALUES('intel_naps');
INSERT INTO roles VALUES('textexport_alliance');
+INSERT INTO roles VALUES('stats_find_nick');
INSERT INTO group_roles (gid,role) VALUES(2,'member_menu');
INSERT INTO group_roles (gid,role) VALUES(2,'attack_menu');
INSERT INTO group_roles (gid,role) VALUES(9,'members_points_nolimit');
INSERT INTO group_roles (gid,role) VALUES(9,'stats_intel');
+INSERT INTO group_roles (gid,role) VALUES(9,'stats_find_nick');
INSERT INTO group_roles (gid,role) VALUES(1,'dc_menu');
INSERT INTO group_roles (gid,role) VALUES(1,'bc_menu');
my $dbh = $c->model;
local $_ = $find || $c->req->param('coords');
+ $c->stash(searchterm => $_);
if (/(\d+)(?: |:)(\d+)(?: |:)(\d+)(?:(?: |:)(\d+))?/){
my $planet = $dbh->selectrow_array(q{SELECT planetid($1,$2,$3,$4)}
$c->res->redirect($c->uri_for('planet',$planet));
}elsif (/(\d+)(?: |:)(\d+)/){
$c->res->redirect($c->uri_for('galaxy',$1,$2));
+ }elsif($c->check_user_roles(qw/stats_find_nick/)) {
+ my $query = $dbh->prepare(q{SELECT id,coords(x,y,z),nick
+ FROM current_planet_stats p
+ WHERE nick ilike $1
+ });
+ $query->execute($_);
+ my $planets = $query->fetchall_arrayref({});
+ if (@{$planets} == 1){
+ $c->res->redirect($c->uri_for('planet',$planets->[0]->{id}));
+ }else{
+ $c->stash(planets => $planets);
+ }
}
-
}
[% META title = 'Find' %]
-<p>Could not find: "[% c.req.param('coords') | html %]"</p>
+<p>Could not find a single planet matching: "[% searchterm | html %]"</p>
+
+[% IF planets %]
+<table>
+ <tr><th>Coords</th><th>Nick</th></tr>
+ [% FOR p IN planets %]
+ <tr>
+ <td><a href="[% c.uri_for('planet',p.id) %]">[% p.coords %]</a></td>
+ <td>[% p.nick %]</td>
+ </tr>
+ [% END %]
+</table>
+[% END %]
+
<p>The following syntaxes are possible:</p>
<ul>
<li>X:Y:Z tick (i.e. "1:1:1 37") Finds the planet that had the coords at the specified tick</li>
<li>X:Y:Z (i.e. "1:1:1") Finds the planet that had the coords at the current tick</li>
<li>X:Y (i.e. "1:1") Finds a galaxy</li>
+ [% IF c.check_user_roles('stats_find_nick') %]
+ <li>A nick, with or without wildcard like %</li>
+ [% END %]
</ul>
+