Add Organisation Code
This commit is contained in:
parent
0a65cc2f47
commit
a1b6dd8d2a
4 changed files with 71 additions and 0 deletions
|
@ -171,6 +171,8 @@ sub startup {
|
||||||
$admin_routes->post('/users/:id/delete')->to('admin-users#delete');
|
$admin_routes->post('/users/:id/delete')->to('admin-users#delete');
|
||||||
|
|
||||||
$admin_routes->get('/organisations')->to('admin-organisations#list');
|
$admin_routes->get('/organisations')->to('admin-organisations#list');
|
||||||
|
$admin_routes->get('/organisations/add')->to('admin-organisations#add_org');
|
||||||
|
$admin_routes->post('/organisations/add/submit')->to('admin-organisations#add_org_submit');
|
||||||
$admin_routes->get('/organisations/valid/:id')->to('admin-organisations#valid_read');
|
$admin_routes->get('/organisations/valid/:id')->to('admin-organisations#valid_read');
|
||||||
$admin_routes->post('/organisations/valid/:id/edit')->to('admin-organisations#valid_edit');
|
$admin_routes->post('/organisations/valid/:id/edit')->to('admin-organisations#valid_edit');
|
||||||
$admin_routes->get('/organisations/pending/:id')->to('admin-organisations#pending_read');
|
$admin_routes->get('/organisations/pending/:id')->to('admin-organisations#pending_read');
|
||||||
|
|
|
@ -16,6 +16,46 @@ sub list {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub add_org {
|
||||||
|
my $c = shift;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub add_org_submit {
|
||||||
|
my $c = shift;
|
||||||
|
|
||||||
|
my $validation = $c->validation;
|
||||||
|
|
||||||
|
$validation->required('name');
|
||||||
|
$validation->optional('street_name');
|
||||||
|
$validation->required('town');
|
||||||
|
$validation->optional('postcode')->postcode;
|
||||||
|
|
||||||
|
if ( $validation->has_error ) {
|
||||||
|
$c->flash( error => 'The validation has failed' );
|
||||||
|
$c->app->log->warn(Dumper $validation);
|
||||||
|
return $c->redirect_to( '/admin/organisations/add/' );
|
||||||
|
}
|
||||||
|
|
||||||
|
my $organisation;
|
||||||
|
|
||||||
|
try {
|
||||||
|
$organisation = $c->schema->resultset('Organisation')->create({
|
||||||
|
name => $validation->param('name'),
|
||||||
|
street_name => $validation->param('street_name'),
|
||||||
|
town => $validation->param('town'),
|
||||||
|
postcode => $validation->param('postcode'),
|
||||||
|
});
|
||||||
|
} finally {
|
||||||
|
if ( @_ ) {
|
||||||
|
$c->flash( error => 'Something went wrong Adding the Organisation' );
|
||||||
|
$c->app->log->warn(Dumper @_);
|
||||||
|
} else {
|
||||||
|
$c->flash( success => 'Added Organisation' );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
$c->redirect_to( '/admin/organisations/add/' );
|
||||||
|
}
|
||||||
|
|
||||||
sub valid_read {
|
sub valid_read {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $valid_org = $c->schema->resultset('Organisation')->find( $c->param('id') );
|
my $valid_org = $c->schema->resultset('Organisation')->find( $c->param('id') );
|
||||||
|
|
28
templates/admin/organisations/add_org.html.ep
Normal file
28
templates/admin/organisations/add_org.html.ep
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
% layout 'admin';
|
||||||
|
% title 'Organisations';
|
||||||
|
% content_for javascript => begin
|
||||||
|
% end
|
||||||
|
% if ( my $error = flash 'error' ) {
|
||||||
|
<div class="alert alert-danger" role="alert">
|
||||||
|
<strong>Error!</strong> <%= $error %>
|
||||||
|
</div>
|
||||||
|
% } elsif ( my $success = flash 'success' ) {
|
||||||
|
<div class="alert alert-success" role="alert">
|
||||||
|
<strong>Success!</strong> <%= $success %>
|
||||||
|
</div>
|
||||||
|
% }
|
||||||
|
<div class="card mb-3">
|
||||||
|
<h3 class="card-header">
|
||||||
|
Add an Organisation
|
||||||
|
</h3>
|
||||||
|
<ul class="list-group list-group-flush">
|
||||||
|
<form action="<%= url_for . '/submit' %>" method="post">
|
||||||
|
<li class="list-group-item">Only 'Organisation Name' and 'Town' are required entries.</li>
|
||||||
|
<li class="list-group-item"><input id="name" type="text" class="form-control" placeholder="Organisation Name" name="name"></li>
|
||||||
|
<li class="list-group-item"><input id="street_name" type="text" class="form-control" placeholder="Street Name" name="street_name"></li>
|
||||||
|
<li class="list-group-item"><input id="town" type="text" class="form-control" placeholder="Town" name="town"></li>
|
||||||
|
<li class="list-group-item"><input id="postcode" type="text" class="form-control" placeholder="Postcode" name="postcode"></li>
|
||||||
|
<li class="list-group-item"><button class="btn btn-success" type="submit">Add Organisation</button></li>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</div>
|
|
@ -16,6 +16,7 @@
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3 class="card-header">
|
<h3 class="card-header">
|
||||||
Valid Organisations
|
Valid Organisations
|
||||||
|
<a href="<%= url_for . '/add' %>" class="btn btn-success" style="float: right">Add Organisation</a>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="list-group list-group-flush">
|
<div class="list-group list-group-flush">
|
||||||
% for my $valid_org ($valid_orgs_rs->all) {
|
% for my $valid_org ($valid_orgs_rs->all) {
|
||||||
|
|
Reference in a new issue