App-Alice
view release on metacpan or search on metacpan
lib/App/Alice/HTTPD.pm view on Meta::CPAN
my $listitem = $self->app->render('server_listitem', $name);
my $res = $req->new_response(200);
$res->body(to_json({config => $config, listitem => $listitem}));
$res->header("Cache-control" => "no-cache");
return $res->finalize;
}
sub save_config {
my ($self, $req) = @_;
$self->app->log(info => "saving config");
my $new_config = {};
if ($req->parameters->{has_servers}) {
$new_config->{servers} = {};
}
for my $name (keys %{$req->parameters}) {
next unless $req->parameters->{$name};
next if $name eq "has_servers";
if ($name =~ /^(.+?)_(.+)/ and exists $new_config->{servers}) {
if ($2 eq "channels" or $2 eq "on_connect") {
$new_config->{servers}{$1}{$2} = [$req->parameters->get_all($name)];
} else {
$new_config->{servers}{$1}{$2} = $req->param($name);
}
}
elsif ($name eq "highlights") {
$new_config->{$name} = [$req->parameters->get_all($name)];
}
else {
$new_config->{$name} = $req->param($name);
}
}
$self->app->reload_config($new_config);
$self->app->broadcast(
$self->app->format_info("config", "saved")
);
my $res = $req->new_response(200);
$res->content_type('text/plain');
$res->content_length(2);
$res->body('ok');
return $res->finalize;
}
sub tab_order {
my ($self, $req) = @_;
$self->app->log(debug => "updating tab order");
$self->app->tab_order([grep {defined $_} $req->parameters->get_all('tabs')]);
my $res = $req->new_response(200);
$res->content_type('text/plain');
$res->content_length(2);
$res->body('ok');
return $res->finalize;
}
sub not_found {
my ($self, $req) = @_;
$self->app->log(debug => "sending 404 " . $req->path_info);
my $res = $req->new_response(404);
return $res->finalize;
}
__PACKAGE__->meta->make_immutable;
1;
( run in 2.366 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )