This commit is contained in:
ziggi
2017-12-11 18:48:58 +00:00
parent 276fb0ba09
commit dd17acb51f
24 changed files with 1151 additions and 50 deletions

View File

@@ -89,13 +89,29 @@ nobase_dist_pkgdata_DATA = \
templs/alias-rename-form.html.ep \
templs/alias-rename-handler.html.ep \
\
templs/forward-list.html.ep \
templs/forward-add-form.html.ep \
templs/forward-add-handler.html.ep \
templs/forward-update-form.html.ep \
templs/forward-update-handler.html.ep \
templs/forward-delete-form.html.ep \
templs/forward-delete-handler.html.ep \
templs/forwarded-list.html.ep \
templs/forwarded-add-form.html.ep \
templs/forwarded-add-handler.html.ep \
templs/forwarded-update-form.html.ep \
templs/forwarded-update-handler.html.ep \
templs/forwarded-delete-form.html.ep \
templs/forwarded-delete-handler.html.ep \
\
templs/unwanted-list.html.ep \
templs/unwanted-add-form.html.ep \
templs/unwanted-add-handler.html.ep \
templs/unwanted-update-form.html.ep \
templs/unwanted-update-handler.html.ep \
templs/unwanted-delete-form.html.ep \
templs/unwanted-delete-handler.html.ep \
\
templs/trusted-list.html.ep \
templs/trusted-add-form.html.ep \
templs/trusted-add-handler.html.ep \
templs/trusted-update-form.html.ep \
templs/trusted-update-handler.html.ep \
templs/trusted-delete-form.html.ep \
templs/trusted-delete-handler.html.ep \
\
templs/exception.development.html.ep \
templs/exception.production.html.ep \

291
maacom.pl
View File

@@ -525,66 +525,190 @@ sub user_delete {
# --- FORWARD ---
sub forward_exist {
sub forwarded_exist {
my ($self, $name) = @_;
return undef unless $name;
my $res = $self->db->exec1("select id from forwards where name = '$name' order by id limit 1");
my $res = $self->db->exec1("select id from forwarded where name = '$name' order by id limit 1");
$res->{id};
}
sub forward_profile {
sub forwarded_profile {
my ($self, $id) = @_;
return undef unless $id;
my $row = $self->db->exec1("select * from forwards where forwards.id = $id limit 1");
my $row = $self->db->exec1("select * from forwarded where forwarded.id = $id limit 1");
$row;
}
sub forward_nextid {
sub forwarded_nextid {
my $self = shift;
my $res = $self->db->exec1("select id from forwards order by id desc limit 1");
my $res = $self->db->exec1("select id from forwarded order by id desc limit 1");
my $id = $res->{id} || 0;
$id += 1;
}
sub forward_add {
sub forwarded_add {
my ($self, $name) = @_;
return undef unless $name;
return undef if $self->forward_exist($name);
my $next_id = $self->forward_nextid;
$self->db->do("insert into forwards (id, name) values ($next_id, '$name')");
$self->forward_exist($name);
return undef if $self->forwarded_exist($name);
my $next_id = $self->forwarded_nextid;
$self->db->do("insert into forwarded (id, name) values ($next_id, '$name')");
$self->forwarded_exist($name);
}
sub forward_list {
sub forwarded_list {
my $self = shift;
$self->db->exec("select * from forwards order by id");
$self->db->exec("select * from forwarded order by id");
}
sub forward_update {
sub forwarded_update {
my ($self, $id, %args) = @_;
return undef unless $id;
my $prof = $self->forward_profile($id);
my $prof = $self->forwarded_profile($id);
return undef unless $prof;
my $name = $args{name} || $prof->{name};
$self->db->do("update forwards set name = '$name' where id = $id");
my $res = $self->forward_profile($id);
$self->db->do("update forwarded set name = '$name' where id = $id");
my $res = $self->forwarded_profile($id);
return undef unless $res->{name} eq $name;
$id;
}
sub forward_delete {
sub forwarded_delete {
my ($self, $id) = @_;
return undef unless $id;
# return $id unless $self->forward_profile($id);
$self->db->do("delete from forwards where id = $id");
return undef if $self->forward_profile($id);
# return $id unless $self->forwarded_profile($id);
$self->db->do("delete from forwarded where id = $id");
return undef if $self->forwarded_profile($id);
$id;
}
# --- UNWANTED ---
sub unwanted_exist {
my ($self, $name) = @_;
return undef unless $name;
my $res = $self->db->exec1("select id from unwanted where name = '$name' order by id limit 1");
$res->{id};
}
sub unwanted_profile {
my ($self, $id) = @_;
return undef unless $id;
my $row = $self->db->exec1("select * from unwanted where unwanted.id = $id limit 1");
$row;
}
sub unwanted_nextid {
my $self = shift;
my $res = $self->db->exec1("select id from unwanted order by id desc limit 1");
my $id = $res->{id} || 0;
$id += 1;
}
sub unwanted_add {
my ($self, $name) = @_;
return undef unless $name;
return undef if $self->unwanted_exist($name);
my $next_id = $self->unwanted_nextid;
$self->db->do("insert into unwanted (id, name) values ($next_id, '$name')");
$self->unwanted_exist($name);
}
sub unwanted_list {
my $self = shift;
$self->db->exec("select * from unwanted order by id");
}
sub unwanted_update {
my ($self, $id, %args) = @_;
return undef unless $id;
my $prof = $self->unwanted_profile($id);
return undef unless $prof;
my $name = $args{name} || $prof->{name};
$self->db->do("update unwanted set name = '$name' where id = $id");
my $res = $self->unwanted_profile($id);
return undef unless $res->{name} eq $name;
$id;
}
sub unwanted_delete {
my ($self, $id) = @_;
return undef unless $id;
# return $id unless $self->unwanted_profile($id);
$self->db->do("delete from unwanted where id = $id");
return undef if $self->unwanted_profile($id);
$id;
}
# --- TRUSTED ---
sub trusted_exist {
my ($self, $name) = @_;
return undef unless $name;
my $res = $self->db->exec1("select id from trusted where name = '$name' order by id limit 1");
$res->{id};
}
sub trusted_profile {
my ($self, $id) = @_;
return undef unless $id;
my $row = $self->db->exec1("select * from trusted where trusted.id = $id limit 1");
$row;
}
sub trusted_nextid {
my $self = shift;
my $res = $self->db->exec1("select id from trusted order by id desc limit 1");
my $id = $res->{id} || 0;
$id += 1;
}
sub trusted_add {
my ($self, $name) = @_;
return undef unless $name;
return undef if $self->trusted_exist($name);
my $next_id = $self->trusted_nextid;
$self->db->do("insert into trusted (id, name) values ($next_id, '$name')");
$self->trusted_exist($name);
}
sub trusted_list {
my $self = shift;
$self->db->exec("select * from trusted order by id");
}
sub trusted_update {
my ($self, $id, %args) = @_;
return undef unless $id;
my $prof = $self->trusted_profile($id);
return undef unless $prof;
my $name = $args{name} || $prof->{name};
$self->db->do("update trusted set name = '$name' where id = $id");
my $res = $self->trusted_profile($id);
return undef unless $res->{name} eq $name;
$id;
}
sub trusted_delete {
my ($self, $id) = @_;
return undef unless $id;
# return $id unless $self->trusted_profile($id);
$self->db->do("delete from trusted where id = $id");
return undef if $self->trusted_profile($id);
$id;
}
1;
@@ -885,39 +1009,105 @@ sub mxlog {
# --- FORWARD ---
sub forward_list {
sub forwarded_list {
my $self = shift;
$self->render(template => 'forward-list');
$self->render(template => 'forwarded-list');
}
sub forward_add_form {
sub forwarded_add_form {
my $self = shift;
$self->render(template => 'forward-add-form');
$self->render(template => 'forwarded-add-form');
}
sub forward_add_handler {
sub forwarded_add_handler {
my $self = shift;
$self->render(template => 'forward-add-handler');
$self->render(template => 'forwarded-add-handler');
}
sub forward_update_form {
sub forwarded_update_form {
my $self = shift;
$self->render(template => 'forward-update-form');
$self->render(template => 'forwarded-update-form');
}
sub forward_update_handler {
sub forwarded_update_handler {
my $self = shift;
$self->render(template => 'forward-update-handler');
$self->render(template => 'forwarded-update-handler');
}
sub forward_delete_form {
sub forwarded_delete_form {
my $self = shift;
$self->render(template => 'forward-delete-form');
$self->render(template => 'forwarded-delete-form');
}
sub forward_delete_handler {
sub forwarded_delete_handler {
my $self = shift;
$self->render(template => 'forward-delete-handler');
$self->render(template => 'forwarded-delete-handler');
}
# --- UNWANTED ---
sub unwanted_list {
my $self = shift;
$self->render(template => 'unwanted-list');
}
sub unwanted_add_form {
my $self = shift;
$self->render(template => 'unwanted-add-form');
}
sub unwanted_add_handler {
my $self = shift;
$self->render(template => 'unwanted-add-handler');
}
sub unwanted_update_form {
my $self = shift;
$self->render(template => 'unwanted-update-form');
}
sub unwanted_update_handler {
my $self = shift;
$self->render(template => 'unwanted-update-handler');
}
sub unwanted_delete_form {
my $self = shift;
$self->render(template => 'unwanted-delete-form');
}
sub unwanted_delete_handler {
my $self = shift;
$self->render(template => 'unwanted-delete-handler');
}
# --- TRUSTED ---
sub trusted_list {
my $self = shift;
$self->render(template => 'trusted-list');
}
sub trusted_add_form {
my $self = shift;
$self->render(template => 'trusted-add-form');
}
sub trusted_add_handler {
my $self = shift;
$self->render(template => 'trusted-add-handler');
}
sub trusted_update_form {
my $self = shift;
$self->render(template => 'trusted-update-form');
}
sub trusted_update_handler {
my $self = shift;
$self->render(template => 'trusted-update-handler');
}
sub trusted_delete_form {
my $self = shift;
$self->render(template => 'trusted-delete-form');
}
sub trusted_delete_handler {
my $self = shift;
$self->render(template => 'trusted-delete-handler');
}
1;
@@ -1071,13 +1261,30 @@ $r->any('/alias/rename/handler')->over('auth')->to('controller#alias_rename_hand
$r->any('/mxlog')->over('auth')->to('controller#mxlog' );
$r->any('/forward/list')->over('auth')->to('controller#forward_list' );
$r->any('/forward/add/form')->over('auth')->to('controller#forward_add_form' );
$r->any('/forward/add/handler')->over('auth')->to('controller#forward_add_handler' );
$r->any('/forward/update/form')->over('auth')->to('controller#forward_update_form' );
$r->any('/forward/update/handler')->over('auth')->to('controller#forward_update_handler' );
$r->any('/forward/delete/form')->over('auth')->to('controller#forward_delete_form' );
$r->any('/forward/delete/handler')->over('auth')->to('controller#forward_delete_handler' );
$r->any('/forwarded/list')->over('auth')->to('controller#forwarded_list' );
$r->any('/forwarded/add/form')->over('auth')->to('controller#forwarded_add_form' );
$r->any('/forwarded/add/handler')->over('auth')->to('controller#forwarded_add_handler' );
$r->any('/forwarded/update/form')->over('auth')->to('controller#forwarded_update_form' );
$r->any('/forwarded/update/handler')->over('auth')->to('controller#forwarded_update_handler' );
$r->any('/forwarded/delete/form')->over('auth')->to('controller#forwarded_delete_form' );
$r->any('/forwarded/delete/handler')->over('auth')->to('controller#forwarded_delete_handler' );
$r->any('/unwanted/list')->over('auth')->to('controller#unwanted_list' );
$r->any('/unwanted/add/form')->over('auth')->to('controller#unwanted_add_form' );
$r->any('/unwanted/add/handler')->over('auth')->to('controller#unwanted_add_handler' );
$r->any('/unwanted/update/form')->over('auth')->to('controller#unwanted_update_form' );
$r->any('/unwanted/update/handler')->over('auth')->to('controller#unwanted_update_handler' );
$r->any('/unwanted/delete/form')->over('auth')->to('controller#unwanted_delete_form' );
$r->any('/unwanted/delete/handler')->over('auth')->to('controller#unwanted_delete_handler' );
$r->any('/trusted/list')->over('auth')->to('controller#trusted_list' );
$r->any('/trusted/add/form')->over('auth')->to('controller#trusted_add_form' );
$r->any('/trusted/add/handler')->over('auth')->to('controller#trusted_add_handler' );
$r->any('/trusted/update/form')->over('auth')->to('controller#trusted_update_form' );
$r->any('/trusted/update/handler')->over('auth')->to('controller#trusted_update_handler' );
$r->any('/trusted/delete/form')->over('auth')->to('controller#trusted_delete_form' );
$r->any('/trusted/delete/handler')->over('auth')->to('controller#trusted_delete_handler' );
#----------------

View File

@@ -0,0 +1,30 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 medium-centered cell">
<form accept-charset="UTF-8" action="/forwarded/add/handler" method="get" data-abide novalidate>
<h5 class="text-center">Add forwardeded domain</h5>
<label>Domain name
<input type="text" name="forwarded_name" placeholder="domain.org" required pattern="[_.-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{5,42}"/>
<span class="form-error">Mandatory, 5 or more letter</span>
</label>
<div class="text-center">
<button type="submit" class="button">Accept</button>
<a class="button" href="/forwarded/list">Escape</a>
</div>
</form>
</div>
</div>
</div>
%#EOF

View File

@@ -0,0 +1,32 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $name = $c->req->param('forwarded_name');
% my $id = $u->forwarded_exist($name);
% if ($id) {
<div class="callout warning">Domain <%= $name %> already exists</div>
% }
% unless ($id) {
% my $res = $u->forwarded_add($name);
% if ($res) {
<div class="callout success">Domain <%= $name %> has been added.</div>
% }
% unless ($res) {
<div class="callout alert">Domain <%= $name %> was not added.</div>
% }
% }
%#EOF

View File

@@ -0,0 +1,39 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $forwarded_id = $c->req->param('forwarded_id') || 0;
% my $profile = $u->forwarded_profile($forwarded_id);
% if ($profile) {
% my $forwarded_name = $profile->{name};
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 medium-centered cell">
<form accept-charset="UTF-8" action="/forwarded/delete/handler" method="get" data-abide novalidate>
<h5 class="text-center">Delete domain <%= $forwarded_name %></h5>
<input type="hidden" name="forwarded_id" value="<%= $forwarded_id %>"/>
<div class="text-center">
<button type="submit" class="button">Accept</button>
<a class="button" href="/forwarded/list">Escape</a>
</div>
</form>
</div>
</div>
</div>
% }
% unless ($profile) {
<div class="callout warning">Domain with id <%= $forwarded_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,32 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $forwarded_id = $c->req->param('forwarded_id') || 0;
% my $profile = $u->forwarded_profile($forwarded_id);
% if ($profile) {
% my $name = $profile->{name};
% my $res = $u->forwarded_delete($forwarded_id);
% if ($res) {
<div class="callout success">Domain <%= $name %> has been deleted</div>
% }
% unless ($res) {
<div class="callout alert">Domain <%= $name %> was not deleted</div>
% }
% }
% unless ($profile) {
<div class="callout warning">Domain with id <%= $forwarded_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,74 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
<h5 class="text-center">
Domains <a href="/forwarded/list"><i class="fi-refresh"></i></a>
<a class="float-right button tiny" href="/forwarded/add/form">
<i class="fi-plus"></i>
</a>
</h5>
% my $list = $u->forwarded_list;
% unless ($list) {
<div class="callout alert">
Cannot list domains. May be wrong database?
</div>
% }
<table class="hover" id="table">
<thead>
<tr>
<th>#</th>
<th>domain</th>
<th><i class="fi-pencil"></i></th>
<th><i class="fi-trash"></i></th>
</tr>
</thead>
<tbody>
% my $n = 0;
% if ($list) {
% foreach my $row (@$list) {
% $n += 1;
% my $id = $row->{id};
% my $name = $row->{name};
% my $size = $row->{size};
<tr>
<td><%= $n %></td>
<td><%= $name %></td>
<td><a href="/forwarded/update/form?forwarded_id=<%= $id %>"><i class="fi-pencil"></i></a></td>
<td><a href="/forwarded/delete/form?forwarded_id=<%= $id %>"><i class="fi-trash"></i></a></td>
</tr>
% }
% }
</tbody>
</table>
<script>
$.extend(true, $.fn.dataTable.defaults, {
"searching": true,
"ordering": true,
"language": {
"search": "",
"lengthMenu": "_MENU_",
"info": "_START_-_END_ of _TOTAL_",
"infoEmpty": "",
},
} );
$(document).ready(function() {
$('#table').DataTable();
});
</script>
%# EOF

View File

@@ -0,0 +1,44 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $forwarded_id = $c->req->param('forwarded_id') || 0;
% my $profile = $u->forwarded_profile($forwarded_id);
% if ($profile) {
% my $forwarded_name = $profile->{name};
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 medium-centered cell">
<form accept-charset="UTF-8" action="/forwarded/update/handler" method="get" data-abide novalidate>
<h5 class="text-center">Edit domain</h5>
<input type="hidden" name="forwarded_id" value="<%= $forwarded_id %>"/>
<label>Domain name
<input type="text" value="<%= $forwarded_name %>" name="forwarded_name" required pattern="[_.-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{5,42}"/>
<span class="form-error">Mandatory, 5 or more letter</span>
</label>
<div class="text-center">
<button type="submit" class="button">Accept</button>
<a class="button" href="/forwarded/list">Escape</a>
</div>
</form>
</div>
</div>
</div>
% }
% unless ($profile) {
<div class="callout warning">Domain with id <%= $forwarded_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,41 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $name = $c->req->param('forwarded_name');
% my $forwarded_id = $c->req->param('forwarded_id') || 0;
% my $profile = $u->forwarded_profile($forwarded_id);
% if ($profile) {
% my $cid = $u->forwarded_exist($name);
% if ($cid) {
<div class="callout warning">Domain <%= $name %> already exists</div>
% }
% unless ($cid) {
% my $res = $u->forwarded_update($forwarded_id, name => $name);
% if ($res) {
<div class="callout success">Domain <%= $name %> has been updated.</div>
% }
% unless ($res) {
<div class="callout alert">Domain <%= $name %> was not updated.</div>
% }
% }
% }
% unless ($profile) {
<div class="callout warning">Domain with id <%= $forwarded_id %> not exist</div>
% }
%#EOF

View File

@@ -31,7 +31,9 @@
<li><a href="/domain/list">Domain</a></li>
<li><a href="/user/list">User</a></li>
<li><a href="/alias/list">Alias</a></li>
<li><a href="/forward/list">Forward</a></li>
<li><a href="/forwarded/list">Forwarded</a></li>
<li><a href="/unwanted/list">Unwanted</a></li>
<li><a href="/trusted/list">Trusted</a></li>
<li><a href="/mxlog">Log</a></li>
<li><a href="/logout"><i class="fi-arrow-right"></i></a></li>
</ul>

View File

@@ -0,0 +1,30 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 medium-centered cell">
<form accept-charset="UTF-8" action="/trusted/add/handler" method="get" data-abide novalidate>
<h5 class="text-center">Add trusteded host</h5>
<label>Host name
<input type="text" name="trusted_name" placeholder="host.org" required pattern="[_.-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{5,42}"/>
<span class="form-error">Mandatory, 5 or more letter</span>
</label>
<div class="text-center">
<button type="submit" class="button">Accept</button>
<a class="button" href="/trusted/list">Escape</a>
</div>
</form>
</div>
</div>
</div>
%#EOF

View File

@@ -0,0 +1,32 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $name = $c->req->param('trusted_name');
% my $id = $u->trusted_exist($name);
% if ($id) {
<div class="callout warning">Host <%= $name %> already exists</div>
% }
% unless ($id) {
% my $res = $u->trusted_add($name);
% if ($res) {
<div class="callout success">Host <%= $name %> has been added.</div>
% }
% unless ($res) {
<div class="callout alert">Host <%= $name %> was not added.</div>
% }
% }
%#EOF

View File

@@ -0,0 +1,39 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $trusted_id = $c->req->param('trusted_id') || 0;
% my $profile = $u->trusted_profile($trusted_id);
% if ($profile) {
% my $trusted_name = $profile->{name};
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 medium-centered cell">
<form accept-charset="UTF-8" action="/trusted/delete/handler" method="get" data-abide novalidate>
<h5 class="text-center">Delete host <%= $trusted_name %></h5>
<input type="hidden" name="trusted_id" value="<%= $trusted_id %>"/>
<div class="text-center">
<button type="submit" class="button">Accept</button>
<a class="button" href="/trusted/list">Escape</a>
</div>
</form>
</div>
</div>
</div>
% }
% unless ($profile) {
<div class="callout warning">Host with id <%= $trusted_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,32 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $trusted_id = $c->req->param('trusted_id') || 0;
% my $profile = $u->trusted_profile($trusted_id);
% if ($profile) {
% my $name = $profile->{name};
% my $res = $u->trusted_delete($trusted_id);
% if ($res) {
<div class="callout success">Host <%= $name %> has been deleted</div>
% }
% unless ($res) {
<div class="callout alert">Host <%= $name %> was not deleted</div>
% }
% }
% unless ($profile) {
<div class="callout warning">Host with id <%= $trusted_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,74 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
<h5 class="text-center">
Hosts <a href="/trusted/list"><i class="fi-refresh"></i></a>
<a class="float-right button tiny" href="/trusted/add/form">
<i class="fi-plus"></i>
</a>
</h5>
% my $list = $u->trusted_list;
% unless ($list) {
<div class="callout alert">
Cannot list hosts. May be wrong database?
</div>
% }
<table class="hover" id="table">
<thead>
<tr>
<th>#</th>
<th>host</th>
<th><i class="fi-pencil"></i></th>
<th><i class="fi-trash"></i></th>
</tr>
</thead>
<tbody>
% my $n = 0;
% if ($list) {
% foreach my $row (@$list) {
% $n += 1;
% my $id = $row->{id};
% my $name = $row->{name};
% my $size = $row->{size};
<tr>
<td><%= $n %></td>
<td><%= $name %></td>
<td><a href="/trusted/update/form?trusted_id=<%= $id %>"><i class="fi-pencil"></i></a></td>
<td><a href="/trusted/delete/form?trusted_id=<%= $id %>"><i class="fi-trash"></i></a></td>
</tr>
% }
% }
</tbody>
</table>
<script>
$.extend(true, $.fn.dataTable.defaults, {
"searching": true,
"ordering": true,
"language": {
"search": "",
"lengthMenu": "_MENU_",
"info": "_START_-_END_ of _TOTAL_",
"infoEmpty": "",
},
} );
$(document).ready(function() {
$('#table').DataTable();
});
</script>
%# EOF

View File

@@ -0,0 +1,44 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $trusted_id = $c->req->param('trusted_id') || 0;
% my $profile = $u->trusted_profile($trusted_id);
% if ($profile) {
% my $trusted_name = $profile->{name};
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 medium-centered cell">
<form accept-charset="UTF-8" action="/trusted/update/handler" method="get" data-abide novalidate>
<h5 class="text-center">Edit host</h5>
<input type="hidden" name="trusted_id" value="<%= $trusted_id %>"/>
<label>Host name
<input type="text" value="<%= $trusted_name %>" name="trusted_name" required pattern="[_.-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{5,42}"/>
<span class="form-error">Mandatory, 5 or more letter</span>
</label>
<div class="text-center">
<button type="submit" class="button">Accept</button>
<a class="button" href="/trusted/list">Escape</a>
</div>
</form>
</div>
</div>
</div>
% }
% unless ($profile) {
<div class="callout warning">Host with id <%= $trusted_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,41 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $name = $c->req->param('trusted_name');
% my $trusted_id = $c->req->param('trusted_id') || 0;
% my $profile = $u->trusted_profile($trusted_id);
% if ($profile) {
% my $cid = $u->trusted_exist($name);
% if ($cid) {
<div class="callout warning">Host <%= $name %> already exists</div>
% }
% unless ($cid) {
% my $res = $u->trusted_update($trusted_id, name => $name);
% if ($res) {
<div class="callout success">Host <%= $name %> has been updated.</div>
% }
% unless ($res) {
<div class="callout alert">Host <%= $name %> was not updated.</div>
% }
% }
% }
% unless ($profile) {
<div class="callout warning">Host with id <%= $trusted_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,30 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 medium-centered cell">
<form accept-charset="UTF-8" action="/unwanted/add/handler" method="get" data-abide novalidate>
<h5 class="text-center">Add unwanted host</h5>
<label>Host name
<input type="text" name="unwanted_name" placeholder="host.org" required pattern="[_.-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{5,42}"/>
<span class="form-error">Mandatory, 5 or more letter</span>
</label>
<div class="text-center">
<button type="submit" class="button">Accept</button>
<a class="button" href="/unwanted/list">Escape</a>
</div>
</form>
</div>
</div>
</div>
%#EOF

View File

@@ -0,0 +1,32 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $name = $c->req->param('unwanted_name');
% my $id = $u->unwanted_exist($name);
% if ($id) {
<div class="callout warning">Host <%= $name %> already exists</div>
% }
% unless ($id) {
% my $res = $u->unwanted_add($name);
% if ($res) {
<div class="callout success">Host <%= $name %> has been added.</div>
% }
% unless ($res) {
<div class="callout alert">Host <%= $name %> was not added.</div>
% }
% }
%#EOF

View File

@@ -0,0 +1,39 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $unwanted_id = $c->req->param('unwanted_id') || 0;
% my $profile = $u->unwanted_profile($unwanted_id);
% if ($profile) {
% my $unwanted_name = $profile->{name};
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 medium-centered cell">
<form accept-charset="UTF-8" action="/unwanted/delete/handler" method="get" data-abide novalidate>
<h5 class="text-center">Delete host <%= $unwanted_name %></h5>
<input type="hidden" name="unwanted_id" value="<%= $unwanted_id %>"/>
<div class="text-center">
<button type="submit" class="button">Accept</button>
<a class="button" href="/unwanted/list">Escape</a>
</div>
</form>
</div>
</div>
</div>
% }
% unless ($profile) {
<div class="callout warning">Host with id <%= $unwanted_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,32 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $unwanted_id = $c->req->param('unwanted_id') || 0;
% my $profile = $u->unwanted_profile($unwanted_id);
% if ($profile) {
% my $name = $profile->{name};
% my $res = $u->unwanted_delete($unwanted_id);
% if ($res) {
<div class="callout success">Host <%= $name %> has been deleted</div>
% }
% unless ($res) {
<div class="callout alert">Host <%= $name %> was not deleted</div>
% }
% }
% unless ($profile) {
<div class="callout warning">Host with id <%= $unwanted_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,74 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
<h5 class="text-center">
Hosts <a href="/unwanted/list"><i class="fi-refresh"></i></a>
<a class="float-right button tiny" href="/unwanted/add/form">
<i class="fi-plus"></i>
</a>
</h5>
% my $list = $u->unwanted_list;
% unless ($list) {
<div class="callout alert">
Cannot list hosts. May be wrong database?
</div>
% }
<table class="hover" id="table">
<thead>
<tr>
<th>#</th>
<th>host</th>
<th><i class="fi-pencil"></i></th>
<th><i class="fi-trash"></i></th>
</tr>
</thead>
<tbody>
% my $n = 0;
% if ($list) {
% foreach my $row (@$list) {
% $n += 1;
% my $id = $row->{id};
% my $name = $row->{name};
% my $size = $row->{size};
<tr>
<td><%= $n %></td>
<td><%= $name %></td>
<td><a href="/unwanted/update/form?unwanted_id=<%= $id %>"><i class="fi-pencil"></i></a></td>
<td><a href="/unwanted/delete/form?unwanted_id=<%= $id %>"><i class="fi-trash"></i></a></td>
</tr>
% }
% }
</tbody>
</table>
<script>
$.extend(true, $.fn.dataTable.defaults, {
"searching": true,
"ordering": true,
"language": {
"search": "",
"lengthMenu": "_MENU_",
"info": "_START_-_END_ of _TOTAL_",
"infoEmpty": "",
},
} );
$(document).ready(function() {
$('#table').DataTable();
});
</script>
%# EOF

View File

@@ -0,0 +1,44 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $unwanted_id = $c->req->param('unwanted_id') || 0;
% my $profile = $u->unwanted_profile($unwanted_id);
% if ($profile) {
% my $unwanted_name = $profile->{name};
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 medium-centered cell">
<form accept-charset="UTF-8" action="/unwanted/update/handler" method="get" data-abide novalidate>
<h5 class="text-center">Edit host</h5>
<input type="hidden" name="unwanted_id" value="<%= $unwanted_id %>"/>
<label>Host name
<input type="text" value="<%= $unwanted_name %>" name="unwanted_name" required pattern="[_.-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{5,42}"/>
<span class="form-error">Mandatory, 5 or more letter</span>
</label>
<div class="text-center">
<button type="submit" class="button">Accept</button>
<a class="button" href="/unwanted/list">Escape</a>
</div>
</form>
</div>
</div>
</div>
% }
% unless ($profile) {
<div class="callout warning">Host with id <%= $unwanted_id %> not exist</div>
% }
%#EOF

View File

@@ -0,0 +1,41 @@
%#
%# $Id$
%#
% layout 'default';
% title 'Maacom';
% use Mojo::Util qw(dumper);
% my $u = $c->app->user;
% my $name = $c->req->param('unwanted_name');
% my $unwanted_id = $c->req->param('unwanted_id') || 0;
% my $profile = $u->unwanted_profile($unwanted_id);
% if ($profile) {
% my $cid = $u->unwanted_exist($name);
% if ($cid) {
<div class="callout warning">Host <%= $name %> already exists</div>
% }
% unless ($cid) {
% my $res = $u->unwanted_update($unwanted_id, name => $name);
% if ($res) {
<div class="callout success">Host <%= $name %> has been updated.</div>
% }
% unless ($res) {
<div class="callout alert">Host <%= $name %> was not updated.</div>
% }
% }
% }
% unless ($profile) {
<div class="callout warning">Host with id <%= $unwanted_id %> not exist</div>
% }
%#EOF