Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
This commit is contained in:
commit
9c26526740
skolehjem
app
config
database/migrations
2013_07_01_061911_create_resource_categories.php2013_07_01_064512_create_resource_extension.php2013_07_01_064544_create_resource.php2014_10_12_000000_create_users_table.php2020_07_01_064330_create_resource_categories.php
resources/views/app/users
routes
|
@ -3,9 +3,11 @@
|
|||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Resource;
|
||||
use App\ResourceCategory;
|
||||
use App\ResourceExtension;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Symfony\Component\Mime\MimeTypes;
|
||||
|
||||
class ResourceController extends Controller
|
||||
{
|
||||
|
@ -49,30 +51,54 @@ class ResourceController extends Controller
|
|||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
public static function store(Request $request)
|
||||
{
|
||||
$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) {
|
||||
$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 = [
|
||||
"extension" => $file->extension(),
|
||||
"description" => ""
|
||||
"description" => "",
|
||||
"resource_category_id" => $resourceCategory->id
|
||||
];
|
||||
|
||||
$resourceExtension = new ResourceExtension($data);
|
||||
$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)
|
||||
{
|
||||
//
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -274,6 +274,10 @@ class UserController extends Controller
|
|||
return redirect()->route('users.login');
|
||||
}
|
||||
|
||||
/*******************************************/
|
||||
/* Account */
|
||||
/*******************************************/
|
||||
|
||||
public function account()
|
||||
{
|
||||
return Response::detect("users.account");
|
||||
|
@ -284,6 +288,11 @@ class UserController extends Controller
|
|||
return Response::detect("users.edit");
|
||||
}
|
||||
|
||||
public function accounteditpic()
|
||||
{
|
||||
return Response::detect("users.editpic");
|
||||
}
|
||||
|
||||
public function accounteditpass()
|
||||
{
|
||||
return Response::detect("users.editpass");
|
||||
|
@ -293,10 +302,11 @@ class UserController extends Controller
|
|||
* Update the specified resource in storage.
|
||||
*
|
||||
* @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)
|
||||
{
|
||||
/** @var User $user */
|
||||
$user = User::find(Auth::id());
|
||||
|
||||
if ($request->input('password') != null) { // If you're editing the password
|
||||
|
@ -327,6 +337,10 @@ class UserController extends Controller
|
|||
else
|
||||
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.
|
||||
$data = $request->only(['email', 'phone']);
|
||||
$user->update($data);
|
||||
|
@ -343,6 +357,10 @@ class UserController extends Controller
|
|||
return redirect()->route("users.index");
|
||||
}
|
||||
|
||||
/*******************************************/
|
||||
/* Search and settings */
|
||||
/*******************************************/
|
||||
|
||||
public function search(Request $request){
|
||||
if($request->ajax()){
|
||||
$output = "<tr>".
|
||||
|
@ -489,16 +507,7 @@ class UserController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* public function generateCookie(Request $cookieValue){
|
||||
$response = new Response('Set Cookie');
|
||||
$response->withCookie(cookie()->forever('languagesSetting', $cookieValue));
|
||||
return $response;
|
||||
}*/
|
||||
|
||||
|
||||
public function setLanguages(Request $request){
|
||||
public function setLanguages(Request $request){
|
||||
if($request->ajax()){
|
||||
if($request->lang === "en"){
|
||||
$response = new Response('Set Cookie');
|
||||
|
|
|
@ -12,6 +12,10 @@ use Illuminate\Database\Eloquent\Model;
|
|||
//Class of which should extend Model Library
|
||||
class ResourceCategory extends Model
|
||||
{
|
||||
protected $fillable = [
|
||||
'name', 'description', 'slug'
|
||||
];
|
||||
|
||||
public function resourceExtensions() {
|
||||
return $this->hasMany("App\ResourceExtension");
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||
class ResourceExtension extends Model
|
||||
{
|
||||
protected $fillable = [
|
||||
'extension', 'description'
|
||||
'extension', 'description', 'resource_category_id'
|
||||
];
|
||||
|
||||
public function resources() {
|
||||
|
|
|
@ -29,7 +29,7 @@ class User extends Authenticatable
|
|||
*/
|
||||
//protected variable which contains name of database field(s) to be filled.
|
||||
protected $fillable = [
|
||||
'name_first', "name_last", 'email', 'password', "phone"
|
||||
'name_first', "name_last", 'email', 'password', "phone", "resource_id"
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
@ -50,8 +50,8 @@ return [
|
|||
|
||||
'public' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app/public'),
|
||||
'url' => env('APP_URL').'/storage',
|
||||
'root' => public_path(''),
|
||||
'url' => env('APP_URL').'/public',
|
||||
'visibility' => 'public',
|
||||
],
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ use Illuminate\Database\Migrations\Migration;
|
|||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateResourceCategory extends Migration
|
||||
class CreateResourceCategories extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
|
@ -28,6 +28,7 @@ class CreateUsersTable extends Migration
|
|||
$table->string('password');
|
||||
$table->integer("phone")->unique();
|
||||
$table->rememberToken();
|
||||
$table->foreignId("resource_id")->nullable()->constrained("resources", "id");
|
||||
$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.email')}}: {{ Auth::user()->email }}</h4>
|
||||
<h4 class="mt-0">{{__('msg.telefon')}} Nr.: {{ Auth::user()->phone }}</h4>
|
||||
|
||||
{!! 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.accounteditpass") }}">{{__('msg.ændrepassword')}}</a>
|
||||
<a class="btn text-center btn-sde-blue mt-1" href="{{ route("users.accounteditpic") }}">{{__('msg.ændrebillede')}}</a>
|
||||
</main>
|
||||
@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/editpass", "UserController@accounteditpass")->name("users.accounteditpass");
|
||||
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/accountsignups", "EventController@accountsignups")->name("events.accountsignups");
|
||||
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::post("/events/signup", "UserEventController@createajax")->name("userevents.createajax");
|
||||
|
||||
|
||||
//Search/Filter
|
||||
Route::get("/contactsapi", "ContactController@search")->name("contacts.search");
|
||||
Route::get("/eventsapi", "EventController@search")->name("events.search");
|
||||
|
|
Loading…
Reference in New Issue