added delete for whole test, settings for users and small layout changes
This commit is contained in:
parent
d50b6214ed
commit
74cbeb2eb8
9 changed files with 143 additions and 76 deletions
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
@extends('layouts.base')
|
36
resources/views/user/settings.blade.php
Normal file
36
resources/views/user/settings.blade.php
Normal 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
|
|
@ -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');
|
||||
|
||||
|
|
Reference in a new issue