From a00f9b5c2edcc6e0b6ecb716e06706c8ab8f8d2b Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 14 May 2013 20:38:54 +0100 Subject: [PATCH] move admin tasks and remove JobControl package --- Netdisco/lib/App/Netdisco/Web.pm | 1 - Netdisco/lib/App/Netdisco/Web/AdminTask.pm | 29 +++++++++++++++++++++ Netdisco/lib/App/Netdisco/Web/JobControl.pm | 25 ------------------ 3 files changed, 29 insertions(+), 26 deletions(-) delete mode 100644 Netdisco/lib/App/Netdisco/Web/JobControl.pm diff --git a/Netdisco/lib/App/Netdisco/Web.pm b/Netdisco/lib/App/Netdisco/Web.pm index 67fb07ff..85e88aa0 100644 --- a/Netdisco/lib/App/Netdisco/Web.pm +++ b/Netdisco/lib/App/Netdisco/Web.pm @@ -16,7 +16,6 @@ use App::Netdisco::Web::Report; use App::Netdisco::Web::AdminTask; use App::Netdisco::Web::TypeAhead; use App::Netdisco::Web::PortControl; -use App::Netdisco::Web::JobControl; sub _load_web_plugins { my $plugin_list = shift; diff --git a/Netdisco/lib/App/Netdisco/Web/AdminTask.pm b/Netdisco/lib/App/Netdisco/Web/AdminTask.pm index bf72aa96..cec4f638 100644 --- a/Netdisco/lib/App/Netdisco/Web/AdminTask.pm +++ b/Netdisco/lib/App/Netdisco/Web/AdminTask.pm @@ -1,6 +1,35 @@ package App::Netdisco::Web::AdminTask; use Dancer ':syntax'; +use Dancer::Plugin::AJAX; +use Dancer::Plugin::DBIC; + +sub add_discover_job { + my $ip = NetAddr::IP::Lite->new(shift); + return unless $ip + and $ip->addr ne '0.0.0.0'; + + schema('netdisco')->resultset('Admin')->create({ + device => $ip->addr, + action => 'discover', + status => 'queued', + username => session('user'), + userip => request->remote_address, + }); +} + +ajax '/ajax/control/admin/discover' => sub { + return unless var('user') and var('user')->admin; + add_discover_job(param('device')); +}; + +post '/admin/discover' => sub { + return unless var('user') and var('user')->admin; + add_discover_job(param('device')); + + status(302); + header(Location => uri_for('/admin/jobqueue')->path_query()); +}; get '/admin/*' => sub { my ($tag) = splat; diff --git a/Netdisco/lib/App/Netdisco/Web/JobControl.pm b/Netdisco/lib/App/Netdisco/Web/JobControl.pm deleted file mode 100644 index cd7eb989..00000000 --- a/Netdisco/lib/App/Netdisco/Web/JobControl.pm +++ /dev/null @@ -1,25 +0,0 @@ -package App::Netdisco::Web::JobControl; - -use Dancer ':syntax'; -use Dancer::Plugin::DBIC; - -post '/admin/discover' => sub { - return unless var('user') and var('user')->admin; - - my $ip = NetAddr::IP::Lite->new(param('device')); - return unless $ip - and $ip->addr ne '0.0.0.0'; - - schema('netdisco')->resultset('Admin')->create({ - device => $ip->addr, - action => 'discover', - status => 'queued', - username => session('user'), - userip => request->remote_address, - }); - - status(302); - header(Location => uri_for('/admin/jobqueue')->path_query()); -}; - -true;