Skip to content

Commit 7901bd3

Browse files
authored
Merge pull request #11 from jsalzano92/posts
2 parents 362a62a + 1ecf45c commit 7901bd3

File tree

12 files changed

+179
-53
lines changed

12 files changed

+179
-53
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
namespace SoftwareHerd\Http\Controllers;
3+
4+
use SoftwareHerd\User;
5+
use SoftwareHerd\Post;
6+
use SoftwareHerd\Project;
7+
use Illuminate\Http\Request;
8+
9+
class AdminController extends Controller
10+
{
11+
public function getAdmin() {
12+
$users = User::all();
13+
$projects = Project::all();
14+
return view('admin/admin', array('users' => $users, 'projects' => $projects));
15+
}
16+
}

app/Http/Controllers/PostController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@ public function updatePost(request $request)
4141
}
4242

4343
public function deletePost(request $request) {
44-
Post::Find($request['id'])->delete();
44+
$post = Post::Find($request['id']);
45+
foreach($post->comments as $comment)
46+
$comment->delete();
47+
48+
$post->delete();
4549
return array('success' => 'true');
4650
}
4751
}

app/Http/Controllers/ProjectController.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,13 @@ public function declineMember(request $request) {
124124

125125
public function deleteProject(request $request) {
126126
$project = Project::find($request['id']);
127+
foreach($project->posts as $post){
128+
foreach($post->comments as $comment){
129+
$comment->delete();
130+
}
131+
$post->delete();
132+
}
133+
127134
$project->delete();
128135
return array('success'=>'true');
129136
}

app/Http/Controllers/UserController.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,12 @@ public function update_user(request $request) {
3838

3939
return redirect('/user/' . $user->id);
4040
}
41+
42+
public function deleteUser(request $request) {
43+
$user = User::find($request['id']);
44+
$user->delete();
45+
return array('success' => 'true');
46+
47+
}
4148

4249
}

app/Http/Kernel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,6 @@ class Kernel extends HttpKernel
5252
'can' => \Illuminate\Auth\Middleware\Authorize::class,
5353
'guest' => \SoftwareHerd\Http\Middleware\RedirectIfAuthenticated::class,
5454
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
55-
'admin' => \justAmerican\Http\Middleware\checkAdmin::class,
55+
'admin' => \SoftwareHerd\Http\Middleware\checkAdmin::class,
5656
];
5757
}

public/js/admin/main.js

Lines changed: 9 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
function clearActivated() {
2-
$('#manageProject-btn').removeClass('active');
3-
$('#manageProject').hide();
2+
$('#manageSite-btn').removeClass('active');
3+
$('#manageSite').hide();
44
$('#manageMembers-btn').removeClass('active');
55
$('#manageMembers').hide();
6-
$('#managePosts-btn').removeClass('active');
7-
$('#managePosts').hide();
8-
$('#newPost').hide();
6+
$('#manageProjects-btn').removeClass('active');
7+
$('#manageProjects').hide();
98
}
109

1110
$(document).ready(function(){
12-
$("#manageProject-btn").click(function (e) {
11+
$("#manageSite-btn").click(function (e) {
1312
clearActivated();
1413
$(this).addClass('active');
15-
$('#manageProject').show();
14+
$('#manageSite').show();
1615
});
1716

1817
$("#manageMembers-btn").click(function (e) {
@@ -21,47 +20,9 @@ $(document).ready(function(){
2120
$('#manageMembers').show();
2221
});
2322

24-
$("#managePosts-btn").click(function (e) {
23+
$("#manageProjects-btn").click(function (e) {
2524
clearActivated();
2625
$(this).addClass('active');
27-
$('#managePosts').show();
26+
$('#manageProjects').show();
2827
});
29-
});
30-
31-
function newPost() {
32-
$('#managePosts').hide();
33-
$('#newPost').show();
34-
resetPostForm();
35-
}
36-
37-
function deleteProject(id) {
38-
$.ajaxSetup({
39-
headers: {
40-
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
41-
}
42-
})
43-
44-
if(!confirm('Are you sure you want to delete this project?')){
45-
return;
46-
}
47-
if(!confirm('Are you SURE sure?')){
48-
return;
49-
}
50-
51-
var formData = {
52-
id: id
53-
}
54-
55-
$.ajax({
56-
type: "POST",
57-
url: '/deleteProject',
58-
data: formData,
59-
dataType: 'json',
60-
success: function (data) {
61-
window.location = "/project_library";
62-
},
63-
error: function (data) {
64-
console.log('Error:', data);
65-
}
66-
});
67-
}
28+
});

public/js/admin/projects.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
function deleteProject(id) {
2+
$.ajaxSetup({
3+
headers: {
4+
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
5+
}
6+
})
7+
8+
if(!confirm('Are you sure you want to delete this project?')){
9+
return;
10+
}
11+
if(!confirm('Are you SURE sure?')){
12+
return;
13+
}
14+
15+
var formData = {
16+
id: id
17+
}
18+
19+
$.ajax({
20+
type: "POST",
21+
url: '/deleteProject',
22+
data: formData,
23+
dataType: 'json',
24+
success: function (data) {
25+
$("#manageProjects").load(location.href+" #manageProjects>*","");
26+
},
27+
error: function (data) {
28+
console.log('Error:', data);
29+
}
30+
});
31+
}

public/js/admin/users.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
function deleteUser(id) {
2+
$.ajaxSetup({
3+
headers: {
4+
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
5+
}
6+
})
7+
8+
if(!confirm('Are you sure you want to delete this user?')){
9+
return;
10+
}
11+
if(!confirm('Are you SURE sure?')){
12+
return;
13+
}
14+
15+
var formData = {
16+
id: id
17+
}
18+
19+
$.ajax({
20+
type: "POST",
21+
url: '/deleteUser',
22+
data: formData,
23+
dataType: 'json',
24+
success: function (data) {
25+
$("#manageMembers").load(location.href+" #manageMembers>*","");
26+
},
27+
error: function (data) {
28+
console.log('Error:', data);
29+
}
30+
});
31+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
@extends('layouts.master')
2+
@section('content')
3+
<link rel="stylesheet" href="{{ URL::asset('/css/admin.css') }}">
4+
<div class="container">
5+
<div class="row">
6+
<div class="col-md-12">
7+
<div class="well" style="text-align:center;"><b>Welcome {{Auth::user()->name}}</b></div>
8+
<div id="adminButtons" style="float:left; height:100%; width:15%;">
9+
<a id="manageSite-btn">Manage Web-app</a>
10+
<a id="manageMembers-btn">Manage Users</a>
11+
<a id="manageProjects-btn">Manage Projects</a>
12+
</div>
13+
<div id="adminContent" style="float:left; width:85%;">
14+
<div id="manageSite" style="display: none">
15+
Manage the site
16+
</div>
17+
<div id="manageMembers" style="display:none;">
18+
<table class="table table-striped table-hover">
19+
<tr>
20+
<th>ID</th>
21+
<th>Name</th>
22+
<th>Email</th>
23+
<th>Manage</th>
24+
</tr>
25+
@foreach($users->sortBy('user_id') as $user)
26+
<tr>
27+
<td style="width:10%">{{$user->id}}</td>
28+
<td style="width:30%">{{$user->name}}</td>
29+
<td style="width:30%">{{$user->email}}</td>
30+
<td>
31+
<a onClick="deleteUser({{$user->id}});"><i class="fa fa-trash" aria-hidden="true"></i></a>
32+
</td>
33+
</tr>
34+
@endforeach
35+
</table>
36+
</div>
37+
<div id="manageProjects" style="display:none">
38+
<table class="table table-striped table-hover">
39+
<tr>
40+
<th>ID</th>
41+
<th>Title</th>
42+
<th>Summary</th>
43+
<th>Manage</th>
44+
</tr>
45+
@foreach($projects->sortByDesc('created_at') as $project)
46+
<tr>
47+
<td>{{$project->id}}</td>
48+
<td>{{$project->title}}</td>
49+
<td>{{$project->summary}}</td>
50+
<td>
51+
<a onClick="deleteProject({{$project->id}});"><i class="fa fa-trash" aria-hidden="true"></i></a>
52+
</td>
53+
</tr>
54+
@endforeach
55+
</table>
56+
</div>
57+
</div>
58+
</div>
59+
</div>
60+
</div>
61+
<script type="text/javascript" src="{{ asset('/js/admin/main.js') }}"></script>
62+
<script type="text/javascript" src="{{ asset('/js/admin/projects.js') }}"></script>
63+
<script type="text/javascript" src="{{ asset('/js/admin/users.js') }}"></script>
64+
@endsection

resources/views/layouts/master.blade.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
'csrfToken' => csrf_token(),
2626
]); ?>
2727
</script>
28+
<script src="/js/app.js"></script>
2829
</head>
2930

3031
<!-- NAV BAR -->
@@ -73,6 +74,9 @@
7374
<li><a href="/about" id="nav-1200-fix">About</a></li>
7475
<li><a href="/contact" id="nav-1200-fix">Contact</a></li>
7576
<li><a href="/project_library" id="nav-1200-fix">Browse Projects</a></li>
77+
@if(Auth::User()->isSuperAdmin())
78+
<li><a href="/admin" id="nav-1200-fix">Admin</a></li>
79+
@endif
7680
</ul>
7781
<ul class="nav navbar-nav navbar-right" id="">
7882
<li><a href="\new_project" id="nav-right-1200fix" id="nav-1200-fix">New Project</a></li>
@@ -96,10 +100,7 @@
96100

97101

98102
<!-- Scripts -->
99-
<script src="/js/app.js"></script>
100103
<script type="text/javascript" src="{{ asset('/js/posts/comments.js') }}"></script>
101-
<script type="text/javascript" src="{{ asset('/js/project_admin/main.js') }}"></script>
102-
<script type="text/javascript" src="{{ asset('/js/admin/main.js') }}"></script>
103104
</body>
104105
</html>
105106

0 commit comments

Comments
 (0)