added delete for whole test, settings for users and small layout changes

This commit is contained in:
mwalbeck 2016-09-06 15:34:17 +02:00
parent d50b6214ed
commit 74cbeb2eb8
9 changed files with 143 additions and 76 deletions

View file

@ -61,7 +61,7 @@ class AdminController extends Controller
public function updateTest(Test $test)
{
$test->update(request()->all());
return back();
return redirect("/admin/tests/$test->id");
}
public function delTest(Test $test)
@ -71,6 +71,14 @@ class AdminController extends Controller
public function deleteTest(Test $test)
{
$questions = $test->questions;
foreach ($questions as $question) {
$options = $question->options;
foreach ($options as $option) {
$option->delete();
}
$question->delete();
}
$test->delete();
return redirect('/admin/tests');
}
@ -162,7 +170,7 @@ class AdminController extends Controller
$question->options()->save($option2);
$question->options()->save($option3);
$question->options()->save($option4);
return redirect("/admin/tests/");
return redirect("/admin/tests/$test->id");
}
public function delQuestion(Question $question)
@ -172,12 +180,13 @@ class AdminController extends Controller
public function deleteQuestion(Question $question)
{
$test = $question->test;
$options = $question->options;
foreach ($options as $option) {
$option->delete();
}
$question->delete();
return redirect('/admin/tests');
return redirect("/admin/tests/$test->id");
}
public function editQuestion(Question $question)
@ -188,6 +197,7 @@ class AdminController extends Controller
public function updateQuestion(Question $question)
{
$test = $question->test;
$question->question = request()->question;
$options = $question->options;
$options[0]->option = request()->option1;
@ -199,6 +209,6 @@ class AdminController extends Controller
$options[1]->update();
$options[2]->update();
$options[3]->update();
return redirect('/admin/tests');
return redirect("/admin/tests/$test->id");
}
}

View file

@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Test;
class HomeController extends Controller
@ -35,6 +36,28 @@ class HomeController extends Controller
public function settings()
{
return view('settings');
$user = Auth::user();
return view('user.settings', compact('user'));
}
public function updateSettings()
{
$user = Auth::user();
$email = request()->email;
$old_password = request()->old_password;
$new_password1 = request()->new_password1;
$new_password2 = request()->new_password2;
if (!empty($email)) {
$user->email = $email;
}
if ((!empty($old_password)) && ($user->getAuthPassword() == password_verify($old_password, $user->getAuthPassword()))) {
if ($new_password1 == $new_password2) {
$user->password = password_hash($new_password1, PASSWORD_DEFAULT);
}
}
$user->update();
return redirect('/settings');
}
}

View file

@ -8,6 +8,7 @@
<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>
@ -50,6 +51,4 @@
</div>
</div>
</div>
@stop
<button class="btn btn-default" formaction="/admin/tests/{{ $test->id }}/delete">Delete</button>
@stop

View file

@ -4,19 +4,32 @@
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel panel-default">
<div class="panel-heading">Tests</div>
<div class="panel-body">
@foreach ($tests as $test)
<div class="list-group-item">
{{ $test->title}}
<form class="pull-right" method="get">
<button formaction="/admin/tests/{{ $test->id }}/">More</button>
<button formaction="/admin/tests/{{ $test->id }}/delete">Delete</button>
</form>
</div>
</br>
@endforeach
<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>

View file

@ -5,18 +5,31 @@
<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-heading">Users</div>
<div class="panel-body">
@foreach ($users as $user)
<div class="list-group-item">
{{ $user->name}} ({{ $user->email }})
<form class="pull-right" method="get">
<button formaction="/admin/users/{{ $user->id }}/edit">Edit</button>
<button formaction="/admin/users/{{ $user->id }}/delete">Delete</button>
</form>
</div>
</br>
@endforeach
<table class="table">
<tr>
<th>#</th>
<th>User</th>
<th>
<form method="get">
<button class="btn btn-sm btn-default pull-right" formaction="/admin/users/new">Add User</button>
</form>
</th>
</tr>
@foreach ($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->name }} ({{ $user->email }})</td>
<td>
<form method="get" class="pull-right">
<button class="btn btn-sm btn-default pull-left" formaction="/admin/users/{{ $user->id }}/edit">Edit</button>
<button class="btn btn-sm btn-default pull-left" formaction="/admin/users/{{ $user->id }}/delete">Delete</button>
</form>
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>

View file

@ -5,57 +5,31 @@
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Recommended Tests</div>
<div class="panel-body">
@foreach ($tests as $test)
<div class="list-group-item">
{{ $test->title}}
{{ $test->question_count }}
<a href="/test/{{ $test->id }}"><button class="pull-right">Start</button></a>
</div>
</br>
@endforeach
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Tests</div>
<div class="panel-body">
@foreach ($tests as $test)
<div class="list-group-item">
{{ $test->title}}
<button class="pull-right">Start</button>
</div>
</br>
@endforeach
<table class="table">
<tr>
<th>#</th>
<th>Test</th>
<th></th>
</tr>
@foreach ($tests as $test)
<tr>
<td>1</td>
<td>{{ $test->title }}</td>
<td>
<form method="get" class="pull-right">
<button class="btn btn-xs btn-default pull-left" formaction="/admin/questions/{{ $test->id }}/edit">Start</button>
</form>
</td>
</tr>
@endforeach
</table>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Completed Tests</div>
<div class="panel-body">
@foreach ($tests as $test)
<div class="list-group-item">
{{ $test->title}}
<button class="pull-right">Start</button>
</div>
</br>
@endforeach
</div>
</div>
</div>

View file

@ -1 +0,0 @@
@extends('layouts.base')

View file

@ -0,0 +1,36 @@
@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">
<form method="post" action="/settings/update">
{{ csrf_field() }}
{{ method_field('PATCH') }}
<div class="form-group">
<h4>Change Password</h4>
<label>Old Password</label>
<input type="password" class="form-control" name="old_password">
<br>
<label>New Password</label>
<input type="password" class="form-control" name="new_password1">
<br>
<label>Repeat New Password</label>
<input type="password" class="form-control" name="new_password2">
</div>
<div class="form-group">
<h4>Change Email</h4>
<label>Email</label>
<input type="text" class="form-control" name="email" value="{{ $user->email }}">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</div>
</div>
</div>
</div>
@stop

View file

@ -18,6 +18,7 @@ Auth::routes();
Route::get('/home', 'HomeController@index');
Route::get('/stats', 'HomeController@stats');
Route::get('/settings', 'HomeController@settings');
Route::patch('/settings/update', 'HomeController@updateSettings');
Route::get('/test/{test}', 'TestController@test');
Route::get('/test/answer', 'TestController@answer');
@ -47,4 +48,3 @@ Route::get('/admin/users/{user}/edit', 'AdminController@editUser');
Route::patch('/admin/users/{user}', 'AdminController@updateUser');
Route::get('/admin/users/{user}/delete', 'AdminController@delUser');
Route::delete('/admin/users/{user}', 'AdminController@deleteUser');