Skip to content

Commit 232c05c

Browse files
committed
Add support for deleting nodes
Finishes node management
1 parent 52c506b commit 232c05c

File tree

3 files changed

+58
-7
lines changed

3 files changed

+58
-7
lines changed

app/Http/Controllers/Admin/NodesController.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,4 +186,22 @@ public function postAllocations(Request $request, $id)
186186
}
187187
}
188188

189+
public function deleteNode(Request $request, $id)
190+
{
191+
$node = Models\Node::findOrFail($id);
192+
$servers = Models\Server::where('node', $id)->count();
193+
if ($servers > 0) {
194+
Alert::danger('You cannot delete a node with servers currently attached to it.')->flash();
195+
return redirect()->route('admin.nodes.view', [
196+
'id' => $id,
197+
'tab' => 'tab_delete'
198+
]);
199+
}
200+
201+
$node->delete();
202+
Alert::success('Node successfully deleted.')->flash();
203+
return redirect()->route('admin.nodes');
204+
205+
}
206+
189207
}

app/Http/Routes/AdminRoutes.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,11 @@ public function map(Router $router) {
186186
'uses' => 'Admin\NodesController@postAllocations'
187187
]);
188188

189+
$router->delete('/view/{id}', [
190+
'as' => 'admin.nodes.delete',
191+
'uses' => 'Admin\NodesController@deleteNode'
192+
]);
193+
189194
});
190195

191196
}

resources/views/admin/nodes/view.blade.php

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
<li><a href="#tab_configuration" data-toggle="tab">Configuration</a></li>
4343
<li><a href="#tab_allocation" data-toggle="tab">Allocation</a></li>
4444
<li><a href="#tab_servers" data-toggle="tab">Servers</a></li>
45-
<li><a href="#tab_delete" data-toggle="tab">Delete</a></li>
45+
@if(count($servers) === 0)<li><a href="#tab_delete" data-toggle="tab">Delete</a></li>@endif
4646
</ul>
4747
<div class="tab-content">
4848
<div class="tab-pane active" id="tab_about">
@@ -410,14 +410,27 @@
410410
</div>
411411
</div>
412412
</div>
413-
<div class="tab-pane" id="tab_delete">
414-
<div class="panel panel-default">
415-
<div class="panel-heading"></div>
416-
<div class="panel-body">
417-
Delete
413+
@if(count($servers) === 0)
414+
<div class="tab-pane" id="tab_delete">
415+
<div class="panel panel-default">
416+
<div class="panel-heading"></div>
417+
<div class="panel-body">
418+
<div class="row">
419+
<div class="col-xs-4 text-center">
420+
<form action="{{ route('admin.nodes.delete', $node->id) }}" method="POST" id="deleteNodeForm">
421+
{!! method_field('DELETE') !!}
422+
{!! csrf_field() !!}
423+
<input type="submit" name="doSomethingForFucksSake" value="Delete Node" class="btn btn-sm btn-danger" />
424+
</form>
425+
</div>
426+
<div class="col-xs-8">
427+
<div class="alert alert-danger" style="margin-bottom:0;">Deleting this node is a permanent action, it cannot be undone.</div>
428+
</div>
429+
</div>
430+
</div>
418431
</div>
419432
</div>
420-
</div>
433+
@endif
421434
</div>
422435
<div class="row">
423436
<div class="col-xs-11" id="col11_setter"></div>
@@ -431,6 +444,21 @@
431444
placement: 'auto'
432445
});
433446
447+
$('#deleteNodeForm').submit(function (event) {
448+
event.preventDefault();
449+
swal({
450+
type: 'warning',
451+
title: 'Are You Sure?',
452+
text: 'This will immediately delete this node, there is no undo.',
453+
showCancelButton: true,
454+
allowOutsideClick: true,
455+
confirmButtonText: 'Delete',
456+
confirmButtonColor: '#d9534f',
457+
}, function () {
458+
event.target.submit();
459+
});
460+
});
461+
434462
$('.cloneElement').on('click', function (event) {
435463
event.preventDefault();
436464
var cloned = $('#duplicate').clone();

0 commit comments

Comments
 (0)