Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
This commit is contained in:
commit
9c26526740
|
@ -3,9 +3,11 @@
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Resource;
|
use App\Resource;
|
||||||
|
use App\ResourceCategory;
|
||||||
use App\ResourceExtension;
|
use App\ResourceExtension;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
|
use Symfony\Component\Mime\MimeTypes;
|
||||||
|
|
||||||
class ResourceController extends Controller
|
class ResourceController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -49,30 +51,54 @@ class ResourceController extends Controller
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public static function store(Request $request)
|
||||||
{
|
{
|
||||||
$file = $request->file("resource");
|
$file = $request->file("resource");
|
||||||
|
|
||||||
$resourceExtension = ResourceExtension::where("extension", "=", $file->extension())->first();
|
$resourceExtension = ResourceExtension::query()->where("extension", "=", $file->extension())->first();
|
||||||
|
|
||||||
|
//Create resourceExtension if it doesn't exist
|
||||||
if($resourceExtension === null) {
|
if($resourceExtension === null) {
|
||||||
|
$category = substr($file->getMimeType(), 0, strpos($file->getMimeType(), "/"));
|
||||||
|
|
||||||
|
$resourceCategory = ResourceCategory::query()->where("name", "=", $category)->first();
|
||||||
|
|
||||||
|
//Create resourceCategory if it doesn't exist
|
||||||
|
if($resourceCategory === null){
|
||||||
|
$data = [
|
||||||
|
"name" => $category,
|
||||||
|
"description" => "",
|
||||||
|
"slug" => ""
|
||||||
|
];
|
||||||
|
|
||||||
|
$resourceCategory = new ResourceCategory($data);
|
||||||
|
$resourceCategory->save();
|
||||||
|
}
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
"extension" => $file->extension(),
|
"extension" => $file->extension(),
|
||||||
"description" => ""
|
"description" => "",
|
||||||
|
"resource_category_id" => $resourceCategory->id
|
||||||
];
|
];
|
||||||
|
|
||||||
$resourceExtension = new ResourceExtension($data);
|
$resourceExtension = new ResourceExtension($data);
|
||||||
$resourceExtension->save();
|
$resourceExtension->save();
|
||||||
} else {
|
|
||||||
$resource = new Resource();
|
|
||||||
|
|
||||||
$resource->extension_id = $resourceExtension->id;
|
|
||||||
$resource->filename = substr(md5($file->getFilename() . rand()), 0, 7);
|
|
||||||
|
|
||||||
$resource->save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return Response::detect("resources.store");
|
$resource = new Resource();
|
||||||
|
|
||||||
|
$resource->extension_id = $resourceExtension->id;
|
||||||
|
|
||||||
|
$fileName = time().'_'.$file->getClientOriginalName();
|
||||||
|
$filePath = $file->storeAs('uploads', $fileName, 'public');
|
||||||
|
|
||||||
|
/* /uploads/filename.ext */
|
||||||
|
$resource->filename = '/' . $filePath;
|
||||||
|
|
||||||
|
|
||||||
|
$resource->save();
|
||||||
|
|
||||||
|
return $resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -117,6 +143,6 @@ class ResourceController extends Controller
|
||||||
*/
|
*/
|
||||||
public function destroy($id)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
//
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -274,6 +274,10 @@ class UserController extends Controller
|
||||||
return redirect()->route('users.login');
|
return redirect()->route('users.login');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*******************************************/
|
||||||
|
/* Account */
|
||||||
|
/*******************************************/
|
||||||
|
|
||||||
public function account()
|
public function account()
|
||||||
{
|
{
|
||||||
return Response::detect("users.account");
|
return Response::detect("users.account");
|
||||||
|
@ -284,6 +288,11 @@ class UserController extends Controller
|
||||||
return Response::detect("users.edit");
|
return Response::detect("users.edit");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function accounteditpic()
|
||||||
|
{
|
||||||
|
return Response::detect("users.editpic");
|
||||||
|
}
|
||||||
|
|
||||||
public function accounteditpass()
|
public function accounteditpass()
|
||||||
{
|
{
|
||||||
return Response::detect("users.editpass");
|
return Response::detect("users.editpass");
|
||||||
|
@ -293,10 +302,11 @@ class UserController extends Controller
|
||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
* @return \Illuminate\Http\RedirectResponse
|
||||||
*/
|
*/
|
||||||
public function accountupdate(Request $request)
|
public function accountupdate(Request $request)
|
||||||
{
|
{
|
||||||
|
/** @var User $user */
|
||||||
$user = User::find(Auth::id());
|
$user = User::find(Auth::id());
|
||||||
|
|
||||||
if ($request->input('password') != null) { // If you're editing the password
|
if ($request->input('password') != null) { // If you're editing the password
|
||||||
|
@ -327,6 +337,10 @@ class UserController extends Controller
|
||||||
else
|
else
|
||||||
return redirect()->route("users.login")->with('success#passwordchange', '<p class="text-center text-white"><b>Dit password er hermed ændret!</b></p>');
|
return redirect()->route("users.login")->with('success#passwordchange', '<p class="text-center text-white"><b>Dit password er hermed ændret!</b></p>');
|
||||||
}
|
}
|
||||||
|
} else if($request->file("resource")) { // Else if you're editing the profile pic
|
||||||
|
$user->update([ "resource_id" => ResourceController::store($request)->id ]);
|
||||||
|
|
||||||
|
return redirect()->route("users.account");
|
||||||
} else { // Else if you're not editing the password but anything else (Email, Phone Number). Then update user.
|
} else { // Else if you're not editing the password but anything else (Email, Phone Number). Then update user.
|
||||||
$data = $request->only(['email', 'phone']);
|
$data = $request->only(['email', 'phone']);
|
||||||
$user->update($data);
|
$user->update($data);
|
||||||
|
@ -343,6 +357,10 @@ class UserController extends Controller
|
||||||
return redirect()->route("users.index");
|
return redirect()->route("users.index");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*******************************************/
|
||||||
|
/* Search and settings */
|
||||||
|
/*******************************************/
|
||||||
|
|
||||||
public function search(Request $request){
|
public function search(Request $request){
|
||||||
if($request->ajax()){
|
if($request->ajax()){
|
||||||
$output = "<tr>".
|
$output = "<tr>".
|
||||||
|
@ -489,16 +507,7 @@ class UserController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setLanguages(Request $request){
|
||||||
|
|
||||||
/* public function generateCookie(Request $cookieValue){
|
|
||||||
$response = new Response('Set Cookie');
|
|
||||||
$response->withCookie(cookie()->forever('languagesSetting', $cookieValue));
|
|
||||||
return $response;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
public function setLanguages(Request $request){
|
|
||||||
if($request->ajax()){
|
if($request->ajax()){
|
||||||
if($request->lang === "en"){
|
if($request->lang === "en"){
|
||||||
$response = new Response('Set Cookie');
|
$response = new Response('Set Cookie');
|
||||||
|
|
|
@ -12,6 +12,10 @@ use Illuminate\Database\Eloquent\Model;
|
||||||
//Class of which should extend Model Library
|
//Class of which should extend Model Library
|
||||||
class ResourceCategory extends Model
|
class ResourceCategory extends Model
|
||||||
{
|
{
|
||||||
|
protected $fillable = [
|
||||||
|
'name', 'description', 'slug'
|
||||||
|
];
|
||||||
|
|
||||||
public function resourceExtensions() {
|
public function resourceExtensions() {
|
||||||
return $this->hasMany("App\ResourceExtension");
|
return $this->hasMany("App\ResourceExtension");
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ use Illuminate\Database\Eloquent\Model;
|
||||||
class ResourceExtension extends Model
|
class ResourceExtension extends Model
|
||||||
{
|
{
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'extension', 'description'
|
'extension', 'description', 'resource_category_id'
|
||||||
];
|
];
|
||||||
|
|
||||||
public function resources() {
|
public function resources() {
|
||||||
|
|
|
@ -29,7 +29,7 @@ class User extends Authenticatable
|
||||||
*/
|
*/
|
||||||
//protected variable which contains name of database field(s) to be filled.
|
//protected variable which contains name of database field(s) to be filled.
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'name_first', "name_last", 'email', 'password', "phone"
|
'name_first', "name_last", 'email', 'password', "phone", "resource_id"
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -50,8 +50,8 @@ return [
|
||||||
|
|
||||||
'public' => [
|
'public' => [
|
||||||
'driver' => 'local',
|
'driver' => 'local',
|
||||||
'root' => storage_path('app/public'),
|
'root' => public_path(''),
|
||||||
'url' => env('APP_URL').'/storage',
|
'url' => env('APP_URL').'/public',
|
||||||
'visibility' => 'public',
|
'visibility' => 'public',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ use Illuminate\Database\Migrations\Migration;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
class CreateResourceCategory extends Migration
|
class CreateResourceCategories extends Migration
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Run the migrations.
|
* Run the migrations.
|
|
@ -28,6 +28,7 @@ class CreateUsersTable extends Migration
|
||||||
$table->string('password');
|
$table->string('password');
|
||||||
$table->integer("phone")->unique();
|
$table->integer("phone")->unique();
|
||||||
$table->rememberToken();
|
$table->rememberToken();
|
||||||
|
$table->foreignId("resource_id")->nullable()->constrained("resources", "id");
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
<?php
|
|
||||||
//Migrations acts as a version control for the database allowing you to modify the app's database schema
|
|
||||||
|
|
||||||
//allows use of necessary libraries
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
class CreateResourceCategories extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
/*Schema::create('resource_categories', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->string("name")->unique();
|
|
||||||
$table->text("description");
|
|
||||||
$table->string("slug")->unique();
|
|
||||||
$table->timestamps();
|
|
||||||
});*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('resource_categories');
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -11,8 +11,10 @@
|
||||||
<h4 class="mt-0">{{__('msg.navn')}}: {{ Auth::user()->name_first . " " . Auth::user()->name_last }}</h4>
|
<h4 class="mt-0">{{__('msg.navn')}}: {{ Auth::user()->name_first . " " . Auth::user()->name_last }}</h4>
|
||||||
<h4 class="mt-0">{{__('msg.email')}}: {{ Auth::user()->email }}</h4>
|
<h4 class="mt-0">{{__('msg.email')}}: {{ Auth::user()->email }}</h4>
|
||||||
<h4 class="mt-0">{{__('msg.telefon')}} Nr.: {{ Auth::user()->phone }}</h4>
|
<h4 class="mt-0">{{__('msg.telefon')}} Nr.: {{ Auth::user()->phone }}</h4>
|
||||||
|
|
||||||
{!! session()->get('success#credentialschanged') !!}
|
{!! session()->get('success#credentialschanged') !!}
|
||||||
<a class="btn text-center btn-sde-blue mt-1" href="{{ route("users.accountedit") }}">{{__('msg.redigeroplysninger')}}</a>
|
<a class="btn text-center btn-sde-blue mt-1" href="{{ route("users.accountedit") }}">{{__('msg.redigeroplysninger')}}</a>
|
||||||
<a class="btn text-center btn-sde-blue mt-1" href="{{ route("users.accounteditpass") }}">{{__('msg.ændrepassword')}}</a>
|
<a class="btn text-center btn-sde-blue mt-1" href="{{ route("users.accounteditpass") }}">{{__('msg.ændrepassword')}}</a>
|
||||||
|
<a class="btn text-center btn-sde-blue mt-1" href="{{ route("users.accounteditpic") }}">{{__('msg.ændrebillede')}}</a>
|
||||||
</main>
|
</main>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
@extends("app.layout.base")
|
||||||
|
|
||||||
|
@section("title")
|
||||||
|
Account
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section("content")
|
||||||
|
<main style="justify-content: unset">
|
||||||
|
<h1 class="text-center sde-blue mt-1">{{__('msg.konto')}}</h1>
|
||||||
|
<form method="post" action="{{ route("users.accountupdate", ['user' => Auth::user()]) }}" enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
@method("put")
|
||||||
|
|
||||||
|
@if(\App\Resource::query()->where("resource_id", "=",Auth::user()->resource_id)->first() != null)
|
||||||
|
<img style="width: calc(100% - 72px); margin: auto;" src="{{ \App\Resource::query()->where("resource_id", "=",Auth::user()->resource_id)->first()->filename }}">
|
||||||
|
@else
|
||||||
|
@if(request()->cookie("mode") == "dark")
|
||||||
|
<img style="width: calc(100% - 72px); margin: auto;" src="{{ asset("/images/icons/user-hvid.svg") }}">
|
||||||
|
@else
|
||||||
|
<img style="width: calc(100% - 72px); margin: auto;" src="{{ asset("/images/icons/user.svg") }}">
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<span>{{__('msg.profilbillede')}}:</span>
|
||||||
|
<input type="file" name="resource" class="custom-file-input" id="chooseFile">
|
||||||
|
<button type="submit" class="btn text-center btn-sde-blue mt-1">{{__('msg.rediger')}}</button>
|
||||||
|
<a href="{{ route('users.account') }}" class="btn text-center btn-sde-blue mt-1">{{__('msg.tilbage')}}</a>
|
||||||
|
</form>
|
||||||
|
</main>
|
||||||
|
@endsection
|
|
@ -25,6 +25,7 @@ Route::get("/account", "UserController@account")->name("users.account");
|
||||||
Route::get("/account/edit", "UserController@accountedit")->name("users.accountedit");
|
Route::get("/account/edit", "UserController@accountedit")->name("users.accountedit");
|
||||||
Route::get("/account/editpass", "UserController@accounteditpass")->name("users.accounteditpass");
|
Route::get("/account/editpass", "UserController@accounteditpass")->name("users.accounteditpass");
|
||||||
Route::put("/account/update", "UserController@accountupdate")->name("users.accountupdate");
|
Route::put("/account/update", "UserController@accountupdate")->name("users.accountupdate");
|
||||||
|
Route::get("/account/editpic", "UserController@accounteditpic")->name("users.accounteditpic");
|
||||||
Route::get("/events/signups", "EventController@signups")->name("events.signups");
|
Route::get("/events/signups", "EventController@signups")->name("events.signups");
|
||||||
Route::get("/events/accountsignups", "EventController@accountsignups")->name("events.accountsignups");
|
Route::get("/events/accountsignups", "EventController@accountsignups")->name("events.accountsignups");
|
||||||
Route::get("phones", "PhoneController@index")->name("phones.index");
|
Route::get("phones", "PhoneController@index")->name("phones.index");
|
||||||
|
@ -33,6 +34,7 @@ Route::get("/app/washing-reservations", "WashingReservationController@appindex")
|
||||||
Route::get("/settings", "SettingsController@index")->name("settings.index");
|
Route::get("/settings", "SettingsController@index")->name("settings.index");
|
||||||
Route::post("/events/signup", "UserEventController@createajax")->name("userevents.createajax");
|
Route::post("/events/signup", "UserEventController@createajax")->name("userevents.createajax");
|
||||||
|
|
||||||
|
|
||||||
//Search/Filter
|
//Search/Filter
|
||||||
Route::get("/contactsapi", "ContactController@search")->name("contacts.search");
|
Route::get("/contactsapi", "ContactController@search")->name("contacts.search");
|
||||||
Route::get("/eventsapi", "EventController@search")->name("events.search");
|
Route::get("/eventsapi", "EventController@search")->name("events.search");
|
||||||
|
|
Loading…
Reference in New Issue