refactored a bit of code and edit the views to be more DRY
This commit is contained in:
parent
fc2cbef237
commit
fd715bda05
27 changed files with 74 additions and 309 deletions
app
resources/views
routes
|
@ -16,42 +16,20 @@ class AdminController extends Controller
|
|||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('admin.admin');
|
||||
return view('admin.index');
|
||||
}
|
||||
|
||||
public function showUsers()
|
||||
{
|
||||
$users = User::all();
|
||||
return view('admin.user.showall', compact('users'));
|
||||
}
|
||||
|
||||
public function newUser()
|
||||
{
|
||||
return view('admin.user.new');
|
||||
return view('users.showall', compact('users'));
|
||||
}
|
||||
|
||||
public function showTests()
|
||||
{
|
||||
$tests = Test::all();
|
||||
return view('admin.test.showall', compact('tests'));
|
||||
return view('tests.showall', compact('tests'));
|
||||
}
|
||||
|
||||
public function showTest(Test $test)
|
||||
{
|
||||
$questions = $test->questions;
|
||||
return view('admin.test.show', compact('test'), compact('questions'));
|
||||
}
|
||||
|
||||
public function newTest()
|
||||
{
|
||||
return view('admin.test.new');
|
||||
}
|
||||
|
||||
public function editTest(Test $test)
|
||||
{
|
||||
return view('admin.test.edit', compact('test'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ class HomeController extends Controller
|
|||
public function settings()
|
||||
{
|
||||
$user = Auth::user();
|
||||
return view('user.settings', compact('user'));
|
||||
return view('users.settings', compact('user'));
|
||||
}
|
||||
|
||||
public function updatePassword()
|
||||
|
|
|
@ -13,9 +13,20 @@ class ModeratorController extends Controller
|
|||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('mod.mod');
|
||||
return view('mod.index');
|
||||
}
|
||||
|
||||
public function showUsers()
|
||||
{
|
||||
$users = Auth::user()->group()->getGroupUsers();
|
||||
return view('users.showall', compact('users'));
|
||||
}
|
||||
|
||||
public function showTests()
|
||||
{
|
||||
$tests = Auth::user()->getTests();
|
||||
return view('tests.showall', compact('tests'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -134,6 +134,22 @@ class TestController extends Controller
|
|||
return redirect("/admin/tests/$test->id");
|
||||
}
|
||||
|
||||
public function showTest(Test $test)
|
||||
{
|
||||
$questions = $test->questions;
|
||||
return view('tests.show', compact('test'), compact('questions'));
|
||||
}
|
||||
|
||||
public function newTest()
|
||||
{
|
||||
return view('tests.new');
|
||||
}
|
||||
|
||||
public function editTest(Test $test)
|
||||
{
|
||||
return view('tests.edit', compact('test'));
|
||||
}
|
||||
|
||||
/* REFACTOR */
|
||||
public function addQuestion(Test $test)
|
||||
{
|
||||
|
|
|
@ -36,4 +36,9 @@ class UserController extends Controller
|
|||
$user->addUser(request()->all());
|
||||
return redirect('/admin/users');
|
||||
}
|
||||
|
||||
public function newUser()
|
||||
{
|
||||
return view('users.new');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ class Question extends Model
|
|||
if ($user_answer == $this->answer_id) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function deleteQuestion()
|
||||
|
|
|
@ -85,6 +85,10 @@ class User extends Authenticatable
|
|||
$this->name = $request["name"];
|
||||
$this->email = $request["email"];
|
||||
$this->passwordHash($request["password"]);
|
||||
if (Auth::user()->access_level == 2) {
|
||||
$this->save();
|
||||
return true;
|
||||
}
|
||||
if (!empty($request["group_id"])) {
|
||||
$this->group_id = $request["group_id"];
|
||||
}
|
||||
|
|
|
@ -45,7 +45,11 @@
|
|||
<li><a href="/home">Tests</a></li>
|
||||
<li><a href="/stats">Statistik</a></li>
|
||||
<li><a href="/settings">Indstillinger</a></li>
|
||||
<li><a href="/admin">Admin</a></li>
|
||||
@if (Auth::user()->access_level == 2)
|
||||
<li><a href="/mod">Moderator</a></li>
|
||||
@elseif (Auth::user()->access_level == 3)
|
||||
<li><a href="/admin">Admin</a></li>
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
<!-- Right Side Of Navbar -->
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<h1>Are you Sure!</h1>
|
||||
</br>
|
||||
<form method="POST" action="/admin/tests/{{ $test->id }}">
|
||||
{{ csrf_field() }}
|
||||
{{ method_field('DELETE') }}
|
||||
<button type="submit" class="btn btn-default">Yes</button>
|
||||
</form>
|
||||
<form method="GET" action="/admin/tests">
|
||||
<button type="submit" class="btn btn-default">No</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
|
@ -1,25 +0,0 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<h1>Edit Test: {{ $test->title }}</h1>
|
||||
</br>
|
||||
<form method="POST" action="/admin/tests/{{ $test->id }}">
|
||||
{{ csrf_field() }}
|
||||
{{ method_field('PATCH') }}
|
||||
<div class="form-group">
|
||||
<label>Title</label>
|
||||
<input type="text" class="form-control" name="title" value="{{ $test->title }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Number of Questions</label>
|
||||
<input type="text" class="form-control" name="question_count" value="{{ $test->question_count }}">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stop
|
|
@ -1,28 +0,0 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<h1>Create New Test</h1>
|
||||
</br>
|
||||
<form method="POST" action="/admin/tests/new">
|
||||
{{ csrf_field() }}
|
||||
<div class="form-group">
|
||||
<label>Title</label>
|
||||
<input type="text" class="form-control" name="title">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Number of Questions</label>
|
||||
<input type="text" class="form-control" name="question_count">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Number of Wrong Questions Allowed</label>
|
||||
<input type="text" class="form-control" name="question_count_to_fail">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stop
|
|
@ -1,18 +0,0 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<h1>Are you Sure!</h1>
|
||||
</br>
|
||||
<form method="POST" action="/admin/questions/{{ $question->id }}">
|
||||
{{ csrf_field() }}
|
||||
{{ method_field('DELETE') }}
|
||||
<button type="submit" class="btn btn-default">Yes</button>
|
||||
</form>
|
||||
<form method="GET" action="/admin/tests">
|
||||
<button type="submit" class="btn btn-default">No</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
|
@ -1,37 +0,0 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<h1>Edit User</h1>
|
||||
</br>
|
||||
<form method="POST" action="/admin/questions/{{ $question->id }}">
|
||||
{{ csrf_field() }}
|
||||
{{ method_field('PATCH') }}
|
||||
<div class="form-group">
|
||||
<label>Question</label>
|
||||
<input type="text" class="form-control" name="question" value="{{ $question->question }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Right Answer</label>
|
||||
<input type="text" class="form-control" name="option1" value="{{ $options[0]->option }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Option 2</label>
|
||||
<input type="text" class="form-control" name="option2" value="{{ $options[1]->option }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Option 3</label>
|
||||
<input type="text" class="form-control" name="option3" value="{{ $options[2]->option }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Option 4</label>
|
||||
<input type="text" class="form-control" name="option4" value="{{ $options[3]->option }}">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stop
|
|
@ -1,39 +0,0 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<h1>Question {{ $question_number }}</h1>
|
||||
</br>
|
||||
<form method="POST" action="/admin/tests/{{ $test->id }}/question">
|
||||
{{ csrf_field() }}
|
||||
<div class="form-group">
|
||||
<label>Title</label>
|
||||
<input type="text" class="form-control" name="title">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Question</label>
|
||||
<input type="text" class="form-control" name="question">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Right Answer</label>
|
||||
<input type="text" class="form-control" name="option1">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Option 2</label>
|
||||
<input type="text" class="form-control" name="option2">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Option 3</label>
|
||||
<input type="text" class="form-control" name="option3">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Option 4</label>
|
||||
<input type="text" class="form-control" name="option4">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stop
|
|
@ -1,54 +0,0 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Test</div>
|
||||
<div class="panel-body">
|
||||
<form method="get">
|
||||
<button class="btn btn-default pull-right" formaction="/admin/tests/{{ $test->id }}/delete">Delete</button>
|
||||
<button class="btn btn-default pull-right" formaction="/admin/tests/{{ $test->id }}/edit">Edit</button>
|
||||
</form>
|
||||
<strong>Title:</strong><br>
|
||||
{{ $test->title }}
|
||||
<br>
|
||||
<br>
|
||||
<strong>Question count:</strong><br>
|
||||
{{ $test->question_count }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Questions</div>
|
||||
<div class="panel-body">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Question</th>
|
||||
<th>
|
||||
<form method="get">
|
||||
<button class="btn btn-sm btn-default pull-right" formaction="/admin/tests/{{ $test->id }}/question">Add Question</button>
|
||||
</form>
|
||||
</th>
|
||||
</tr>
|
||||
@foreach ($questions as $question)
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>{{ $question->question }}</td>
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/questions/{{ $question->id }}/edit">Edit</button>
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/questions/{{ $question->id }}/delete">Delete</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
|
@ -1,38 +0,0 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 col-md-offset-2">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Tests</div>
|
||||
<div class="panel-body">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Test</th>
|
||||
<th>
|
||||
<form method="get">
|
||||
<button class="btn btn-sm btn-default pull-right" formaction="/admin/tests/new">Add Test</button>
|
||||
</form>
|
||||
</th>
|
||||
</tr>
|
||||
@foreach ($tests as $test)
|
||||
<tr>
|
||||
<td>{{ $test->id }}</td>
|
||||
<td>{{ $test->title }}</td>
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/tests/{{ $test->id }}">Edit</button>
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/tests/{{ $test->id }}/delete">Delete</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
|
@ -21,12 +21,14 @@
|
|||
<tr>
|
||||
<td>{{ $test->id }}</td>
|
||||
<td>{{ $test->title }}</td>
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/tests/{{ $test->id }}">Edit</button>
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/tests/{{ $test->id }}/delete">Delete</button>
|
||||
</form>
|
||||
</td>
|
||||
@if (Auth::user()->access_level == 2 AND !$test->group_id == 0 OR Auth::user()->access_level == 3)
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/tests/{{ $test->id }}">Edit</button>
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/tests/{{ $test->id }}/delete">Delete</button>
|
||||
</form>
|
||||
</td>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
|
@ -19,18 +19,20 @@
|
|||
<label>Password</label>
|
||||
<input type="password" class="form-control" name="password">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Group id</label>
|
||||
<input type="text" class="form-control" name="group_id">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Enabled</label>
|
||||
<input type="text" class="form-control" name="enabled">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Access Level</label>
|
||||
<input type="text" class="form-control" name="access_level">
|
||||
</div>
|
||||
@if (Auth::user()->access_level == 3)
|
||||
<div class="form-group">
|
||||
<label>Group id</label>
|
||||
<input type="text" class="form-control" name="group_id">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Enabled</label>
|
||||
<input type="text" class="form-control" name="enabled">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Access Level</label>
|
||||
<input type="text" class="form-control" name="access_level">
|
||||
</div>
|
||||
@endif
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
</form>
|
||||
</div>
|
|
@ -49,14 +49,13 @@ Route::group(['prefix' => 'admin'], function () {
|
|||
Route::get('/', 'AdminController@index');
|
||||
|
||||
Route::get('/tests', 'AdminController@showTests');
|
||||
Route::get('/tests/new', 'AdminController@newTest');
|
||||
Route::get('/tests/new', 'TestController@newTest');
|
||||
Route::post('/tests/new', 'TestController@addTest');
|
||||
Route::get('/tests/{test}', 'AdminController@showTest');
|
||||
Route::get('/tests/{test}/edit', 'AdminController@editTest');
|
||||
Route::get('/tests/{test}', 'TestController@showTest');
|
||||
Route::get('/tests/{test}/edit', 'TestController@editTest');
|
||||
Route::patch('/tests/{test}/edit', 'TestController@updateTest');
|
||||
Route::get('/tests/{test}/delete', 'TestController@confirmDeleteTest');
|
||||
Route::delete('/tests/{test}/delete', 'TestController@deleteTest');
|
||||
|
||||
Route::get('/tests/{test}/question', 'TestController@newQuestion');
|
||||
Route::post('/tests/{test}/question', 'TestController@addQuestion');
|
||||
Route::get('/questions/{question}/edit', 'TestController@editQuestion');
|
||||
|
@ -65,7 +64,7 @@ Route::group(['prefix' => 'admin'], function () {
|
|||
Route::delete('/questions/{question}/', 'TestController@deleteQuestion');
|
||||
|
||||
Route::get('/users', 'AdminController@showUsers');
|
||||
Route::get('/users/new', 'AdminController@newUser');
|
||||
Route::get('/users/new', 'UserController@newUser');
|
||||
Route::post('/users/new', 'UserController@addUser');
|
||||
Route::get('/users/{user}/delete', 'UserController@confirmDeleteUser');
|
||||
Route::delete('/users/{user}', 'UserController@deleteUser');
|
||||
|
|
Reference in a new issue