This commit is contained in:
Vedran Zelen
2020-07-27 14:37:59 +02:00
25 changed files with 517 additions and 36 deletions
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Contact;
use Illuminate\Support\Facades\DB;
use phpDocumentor\Reflection\Types\Context;
class ContactController extends Controller
@@ -53,8 +54,8 @@ class ContactController extends Controller
public function store(Request $request)
{
$requestContact = $request->validate([
"name_first" => "required|max:255",
"name_last" => "required|max:255",
"contactname" => "required|max:255",
"title" => "required|max:255",
"email" => "required|max:255",
"phone" => "required|max:255",
]);
@@ -132,4 +133,48 @@ class ContactController extends Controller
$contact->delete();
return redirect()->route("contacts.index");
}
public function search(Request $request){
if($request->ajax()){
$output = "<tr>".
"<th>Kontakt Navn</th>".
"<th>Titel</th>".
"<th>E-mail</th>".
"<th>Tlf</th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/pencil.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/trashcan.svg\" alt=\"Delete\"></th>".
"</tr>";
$users = DB::table('contacts')->where('name_first', 'LIKE',$request->search.'%')
->orWhere('name_last','LIKE', $request->search.'%')
->orWhere('phone','LIKE', $request->search.'%')
->orWhere('email','LIKE',$request->search. '%')->get();
if(count($users) !== 0){
foreach ($users as $key => $user){
$output.='<tr>'.
'<td>' . $user->name_first . '</td>'.
'<td>' . $user->name_last . '</td>'.
'<td>' . $user->email . '</td>'.
'<td>' . $user->phone .'</td>'.
'<td><a href="'. route("contacts.edit", [ "contact" => $user->id ]) . '"><img class="w-100" src="'. asset('/images/icons/pencil-dark.svg') . '" alt="Update"></a></td>'.
'<td><form method="post" action="' .route("contacts.destroy", [ "contact" => $user->id ]). '" class="w-100 nostyle">'.
csrf_field().
method_field("delete").
'<button class="w-100 nostyle" onclick="return confirm(\'Are you sure you want to delete?\');" type="submit"><img class="w-100 cursor-pointer" src="'. asset('/images/icons/trashcan-dark.svg') . '" alt="Delete"></button>'.
'</form>'.
'</td>'.
'</tr>';
}
}
return Response($output);
}
}
}
@@ -6,6 +6,7 @@ use App\Event;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
class EventController extends Controller
@@ -135,4 +136,44 @@ class EventController extends Controller
$event->delete();
return redirect()->route("events.index");
}
public function search(Request $request){
if($request->ajax()){
$output = "<tr>".
"<th>Event Navn</th>".
"<th>Event Beskrivelse</th>".
"<th>Event Dato</th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/pencil.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/trashcan.svg\" alt=\"Delete\"></th>".
"</tr>";
$events = DB::table('events')->where('name', 'LIKE',$request->search.'%')
->orWhere('date','LIKE', $request->search.'%')
->get();
if(count($events) !== 0){
foreach ($events as $key => $event){
$output.='<tr>'.
'<td>' . $event->name . '</td>'.
'<td>' . $event->description .'</td>'.
'<td>' . $event->date .'</td>'.
'<td><a href="'. route("events.edit", [ "event" => $event->id ]) . '"><img class="w-100" src="'. asset('/images/icons/pencil-dark.svg') . '" alt="Update"></a></td>'.
'<td><form method="post" action="' .route("events.destroy", [ "event" => $event->id ]). '" class="w-100 nostyle">'.
csrf_field().
method_field("delete").
'<button class="w-100 nostyle" onclick="return confirm(\'Are you sure you want to delete?\');" type="submit"><img class="w-100 cursor-pointer" src="'. asset('/images/icons/trashcan-dark.svg') . '" alt="Delete"></button>'.
'</form>'.
'</td>'.
'</tr>';
}
}
return Response($output);
}
}
}
@@ -6,6 +6,7 @@ use App\ExternalLink;
use App\MenuPlan;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
class MenuPlanController extends Controller
@@ -120,7 +121,7 @@ class MenuPlanController extends Controller
/**
* Remove the specified resource from storage.
*
* Test delete return index function.
* @param int $id
* @return \Illuminate\Http\RedirectResponse
*/
@@ -130,4 +131,43 @@ class MenuPlanController extends Controller
$menuplan->delete();
return redirect()->route("menu-plans.index");
}
public function search(Request $request){
if($request->ajax()){
$output = "<tr>".
"<th>Uge</th>".
"<th>Mandag</th>".
"<th>Tirsdag</th>".
"<th>Onsdag</th>".
"<th>Torsdag</th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/pencil.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/trashcan.svg\" alt=\"Delete\"></th>".
"</tr>";
$menuplans = DB::table('menu_plans')->where('week', 'LIKE',$request->search.'%')->get();
if(count($menuplans) !== 0){
foreach ($menuplans as $key => $menuplan){
$output.='<tr>'.
'<td>' . $menuplan->week . '</td>'.
'<td>' . $menuplan->monday . '</td>'.
'<td>' . $menuplan->tuesday . '</td>'.
'<td>' . $menuplan->wednesday .'</td>'.
'<td>' . $menuplan->thursday .'</td>'.
'<td><a href="'. route("menu-plans.edit", [ "menu_plan" => $menuplan->id ]) . '"><img class="w-100" src="'. asset('/images/icons/pencil-dark.svg') . '" alt="Update"></a></td>'.
'<td><form method="post" action="' .route("menu-plans.destroy", [ "menu_plan" => $menuplan->id ]). '" class="w-100 nostyle">'.
csrf_field().
method_field("delete").
'<button class="w-100 nostyle" onclick="return confirm(\'Are you sure you want to delete?\');" type="submit"><img class="w-100 cursor-pointer" src="'. asset('/images/icons/trashcan-dark.svg') . '" alt="Delete"></button>'.
'</form>'.
'</td>'.
'</tr>';
}
}
return Response($output);
}
}
}
@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use Spatie\Permission\Models\Role;
class rolesController extends Controller
@@ -115,4 +116,38 @@ class rolesController extends Controller
$role->delete();
return redirect()->route("roles.index");
}
public function search(Request $request){
if($request->ajax()){
$output = "<tr>".
"<th>Navn</th>".
"<th>Beskrivelse</th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/pencil.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/trashcan.svg\" alt=\"Delete\"></th>".
"</tr>";
$roles = DB::table('roles')->where('name', 'LIKE',$request->search.'%')->get();
if(count($roles) !== 0){
foreach ($roles as $key => $role){
$output.='<tr>'.
'<td>' . $role->name . '</td>'.
'<td>' . $role->description . '</td>'.
'<td><a href="'. route("roles.edit", [ "role" => $role->id ]) . '"><img class="w-100" src="'. asset('/images/icons/pencil-dark.svg') . '" alt="Update"></a></td>'.
'<td><form method="post" action="' .route("roles.destroy", [ "role" => $role->id ]). '" class="w-100 nostyle">'.
csrf_field().
method_field("delete").
'<button class="w-100 nostyle" onclick="return confirm(\'Are you sure you want to delete?\');" type="submit"><img class="w-100 cursor-pointer" src="'. asset('/images/icons/trashcan-dark.svg') . '" alt="Delete"></button>'.
'</form>'.
'</td>'.
'</tr>';
}
}
return Response($output);
}
}
}
@@ -7,6 +7,7 @@ use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
use Spatie\Permission\Models\Role;
@@ -152,7 +153,7 @@ class UserController extends Controller
// else if(Auth::user()->hasPermissionTo("user.edit")) {
$user = User::find($id);
if ($request->roles != null) {
if ($request->roles != null) { //You can only edit roles on the admin site, so if there is an input roles, then update user info and edit roles
/** @var User $user */
$user->update($data);
$user->roles()->detach();
@@ -163,20 +164,20 @@ class UserController extends Controller
}
//$user->save();
} else {
if ($request->input('password') != null) {
if ($request->input('password') != $request->input('confirmpassword')) {
} else { // Else if you're not on the admin site (user site)
if ($request->input('password') != null) { // If you're editing the password
if ($request->input('password') != $request->input('confirmpassword')) { // If new password and new password confirm is not the same, go back.
return Response::detect("users.editpass");
} elseif (!Hash::check($request->input('oldpassword'), $user->password)) {
} elseif (!Hash::check($request->input('oldpassword'), $user->password)) { // If the written current password and current password in DB is not the same, go back.
return Response::detect("users.editpass");
} else {
} else { // If new password and current password is the same AND current written and current DB password is the same. Then update and logout.
/** @var User $user */
$user->update($data);
Auth::logout();
return redirect()->route("users.login");
}
} else {
} else { // Else if you're not editing the password but anything else (Email, Phone Number). Then update user.
$user->update($data);
}
@@ -272,4 +273,60 @@ class UserController extends Controller
{
return Response::detect("users.editpass");
}
public function search(Request $request){
if($request->ajax()){
$output = "<tr>".
"<th>Fornavn</th>".
"<th>Efternavn</th>".
"<th>Email</th>".
"<th>Tlf nr</th>".
"<th>Rolle(r)</th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/pencil.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/trashcan.svg\" alt=\"Delete\"></th>".
"</tr>";
$users = DB::table('users')->where('name_first', 'LIKE',$request->search.'%')
->orWhere('name_last','LIKE', $request->search.'%')
->orWhere('phone','LIKE', $request->search.'%')
->orWhere('email','LIKE',$request->search. '%')->get();
if(count($users) !== 0){
foreach ($users as $key => $user){
$roles = null;
$rolesString = null;
foreach (User::all() as $usr) {
if($usr->id == $user->id)
$roles = $usr->roles;
}
for($i = 0; $i < count($roles); $i++) {
if(count($roles)-1 != $i) {
$rolesString .= $roles[$i]->name.",";
}else {
$rolesString = $roles[$i]->name;
}
}
$output.='<tr>'.
'<td>' . $user->name_first . '</td>'.
'<td>' . $user->name_last . '</td>'.
'<td>' . $user->email . '</td>'.
'<td>' . $user->phone .'</td>'.
'<td>' . $rolesString .'</td>'.
'<td><a href="'. route("users.edit", [ "user" => $user->id ]) . '"><img class="w-100" src="'. asset('/images/icons/pencil-dark.svg') . '" alt="Update"></a></td>'.
'<td><form method="post" action="' .route("users.destroy", [ "user" => $user->id ]). '" class="w-100 nostyle">'.
csrf_field().
method_field("delete").
'<button class="w-100 nostyle" onclick="return confirm(\'Are you sure you want to delete?\');" type="submit"><img class="w-100 cursor-pointer" src="'. asset('/images/icons/trashcan-dark.svg') . '" alt="Delete"></button>'.
'</form>'.
'</td>'.
'</tr>';
}
}
return Response($output);
}
}
}