refactored a bit of code and edit the views to be more DRY

This commit is contained in:
mwalbeck 2016-09-18 15:00:44 +02:00
parent fc2cbef237
commit fd715bda05
27 changed files with 74 additions and 309 deletions

View file

@ -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'));
}
}

View file

@ -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()

View file

@ -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'));
}
}

View file

@ -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)
{

View file

@ -36,4 +36,9 @@ class UserController extends Controller
$user->addUser(request()->all());
return redirect('/admin/users');
}
public function newUser()
{
return view('users.new');
}
}

View file

@ -23,6 +23,7 @@ class Question extends Model
if ($user_answer == $this->answer_id) {
return true;
}
return false;
}
public function deleteQuestion()

View file

@ -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"];
}

View file

@ -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 -->

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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');