Skip to content

izin membantu #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions app/Http/Controllers/DashboardController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

use Illuminate\Http\Request;

use App\Models\Menu;

use Auth;

class DashboardController extends Controller
{
public function index()
Expand Down
173 changes: 172 additions & 1 deletion app/Http/Controllers/ProfileController.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,178 @@
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;

use App\Models\education;
use App\Models\user_education;
use App\Models\user_achievements;
use App\Models\user_experience;

class ProfileController extends Controller
{

public function index(){
$data['user'] = Auth::user();
$data['profile'] = 1;
$data['education'] = education::all();
$data['user_education'] = education::join('user_educations', 'education_id', '=', 'educations.id')
->where('user_id', Auth::user()->id)
->orderBy('education_id', 'asc')
->get();
return view('system.users.profile', $data);
}

public function set_education(Request $request){
$request->validate([
'user_id' => 'required|exists:users,id',
'education_id' => 'required|exists:educations,id',
'institution' => 'required',
'from_year' => 'required',
'to_year' => 'required'
]);

$user_education = new user_education();
$user_education->user_id = $request->user_id;
$user_education->education_id = $request->education_id;
$user_education->institution = $request->institution;
$user_education->from_year = $request->from_year;
$user_education->to_year = $request->to_year;
$user_education->save();

return redirect(route('account.profile'))->with('message', [
'class' => 'success',
'text' => 'Berhasil menambah riwayat pendidikan'
]);
}

public function update_education(Request $request){
// dd($request->all());
$validatedInput = $request->validate([
'user_education_id' => 'required',
'education_id' => 'required',
'institution' => 'required',
'from_year' => 'required',
'to_year' => 'required'
]);

$education = user_education::find($request->user_education_id);

$education->education_id = $request->education_id;
$education->institution = $request->institution;
$education->from_year = $request->from_year;
$education->to_year = $request->to_year;
$education->update();

return redirect(route('account.profile'))->with('message', [
'class' => 'success',
'text' => 'Berhasil mengubah riwayat pendidikan'
]);
}

public function delete_education(Request $request){
// dd($request->all());
$validatedInput = $request->validate([
'user_id' => 'required',
'user_education_id' => 'required'
]);

user_education::where('id', $validatedInput['user_education_id'])->where('user_id', $validatedInput['user_id'])->delete();

return redirect(route('account.profile'))->with('message', [
'class' => 'warning',
'text' => 'Berhasil menghapus riwayat pendidikan'
]);
}

public function set_achievements(Request $request){
// dd($request->all());
$request->validate([
'user_id' => 'required|exists:users,id',
'deskripsi' => 'required'
]);

$pencapaian = new user_achievements();
$pencapaian->description = $request->deskripsi;
$pencapaian->user_id = $request->user_id;
$pencapaian->save();

return redirect(route('account.profile'))->with('message', [
'class' => 'success',
'text' => 'Berhasil menambahkan pencapaian'
]);
}

public function update_achievements(Request $request){
// dd($request->all());
$request->validate([
'user_id' => 'required|exists:users,id',
'id_achievements' => 'required:exists:achievements,id',
'deskripsi' => 'required'
]);

$pencapaian = user_achievements::find($request->id_achievements);
$pencapaian->description = $request->deskripsi;
$pencapaian->update();

return redirect(route('account.profile'))->with('message', [
'class' => 'success',
'text' => 'Berhasil mengubah pencapaian'
]);
}

public function delete_achievements(Request $request){
// dd($request->all());
$request->validate([
'user_id' => 'required|exists:users,id',
'id_achievements' => 'required:exists:achievements,id',
]);

user_achievements::where('id', $request->id_achievements)->where('user_id', $request->user_id)->delete();

return redirect(route('account.profile'))->with('message', [
'class' => 'warning',
'text' => 'Berhasil menghapus pencapaian'
]);
}

public function set_experience(Request $request){
// dd($request->all());
$request->validate([
'user_id' => 'required|exists:users,id',
'institution' => 'required',
'position' => 'required'
]);

$exp = new user_experience();
$exp->user_id = $request->user_id;
$exp->institution = $request->institution;
$exp->position = $request->position;
$exp->save();

return redirect(route('account.profile'))->with('message', [
'class' => 'success',
'text' => 'Berhasil menambahkan pengalaman'
]);
}

public function update_experience(Request $request){
// dd($request->all());
$request->validate([
'user_id' => 'required|exists:users,id',
'exp_id' => 'required|',
'institution' => 'required',
'position' => 'required'
]);

$exp = user_experience::find($request->exp_id);
$exp->institution = $request->institution;
$exp->position = $request->position;
$exp->update();

return redirect(route('account.profile'))->with('message', [
'class' => 'success',
'text' => 'Berhasil mengubah pengalaman'
]);
}

public function delete_experience(Request $request){

}
}
55 changes: 49 additions & 6 deletions app/Http/Controllers/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
use App\Models\UserRole;
use Illuminate\Http\Request;

use File;

class UserController extends Controller
{
/**
Expand Down Expand Up @@ -95,7 +97,7 @@ public function roleDestroy(Request $request)
*/
public function show(User $user)
{
//

}

/**
Expand All @@ -107,7 +109,8 @@ public function show(User $user)
public function edit(User $user)
{
$roles = Role::all();
return view('system.users.form', compact('user', 'roles'));
$profile = 0;
return view('system.users.form', compact('user', 'roles', 'profile'));
}

/**
Expand All @@ -119,10 +122,50 @@ public function edit(User $user)
*/
public function update(Request $request, User $user)
{
return redirect(route('system.users.edit', $user))->with('message', [
'class' => 'success',
'text' => 'Berhasil menyimpan perubahan'
]);
$ubah = User::find($request->user_id);
$ubah->is_male = ($request->isMale == 'on' ? 1 : 0);
$ubah->religion = $request->religion;
$ubah->birth_date = $request->birthDate;
$ubah->birth_city = $request->birthCity;
$ubah->hobby = $request->hobi;
$ubah->motto = $request->moto;
$ubah->bio = $request->bio;
$ubah->id_number = $request->id_number;
if ($request->foto) {
$foto = ['png', 'jpeg', 'jpg'];
if (in_array($request->file('foto')->extension(), $foto)) {
if (File::exists('assets/foto/'.$ubah->img_path)) {
File::delete('assets/foto/'.$ubah->img_path);
$name = time().'.'.$request->file('foto')->extension();
$request->file('foto')->move('assets/foto', $name);
$ubah->img_path = $name;
} else {
$name = time().'.'.$request->file('foto')->extension();
$request->file('foto')->move('assets/foto', $name);
$ubah->img_path = $name;
}
} else {
return redirect(route('account.profile', $user))->with('message', [
'class' => 'danger',
'text' => 'File hanya boleh ber-extensi : .png, .jpg, .jpeg'
]);
}
}
$ubah->update();

if ($request->profile == 0) {
return redirect(route('system.users.edit', $user))->with('message', [
'class' => 'success',
'text' => 'Berhasil menyimpan perubahan'
]);
} else {
return redirect(route('account.profile'))->with('message', [
'class' => 'success',
'text' => 'Berhasil menyimpan perubahan'
]);
}


}

/**
Expand Down
12 changes: 12 additions & 0 deletions app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,20 @@ public function menus()
return $this->hasManyThrough(Menu::class, UserMenu::class, 'user_id', 'id', 'id', 'menu_id');
}

public function educations(){
return $this->hasManyThrough(education::class, user_education::class, 'user_id', 'id', 'id', 'education_id');
}

public function setPasswordAttribute($value)
{
$this->attributes['password'] = bcrypt($value);
}

public function achievements(){
return $this->hasMany(user_achievements::class);
}

public function experience(){
return $this->hasMany(user_experience::class);
}
}
13 changes: 13 additions & 0 deletions app/Models/education.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class education extends Model
{
use HasFactory;

protected $table = 'educations';
}
13 changes: 13 additions & 0 deletions app/Models/user_achievements.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class user_achievements extends Model
{
use HasFactory;
protected $table = 'achievements';
protected $fillable = ['user_id', 'description'];
}
19 changes: 19 additions & 0 deletions app/Models/user_education.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class user_education extends Model
{
use HasFactory;

protected $table = 'user_educations';

protected $fillable = ['id_user', 'education_id', 'from_year', 'to_year', 'institution'];

public function edu(){
return $this->belongsTo('education', 'id', 'education_id');
}
}
13 changes: 13 additions & 0 deletions app/Models/user_experience.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class user_experience extends Model
{
protected $table = 'experience';
protected $fillable = ['user_id', 'institution', 'position'];
use HasFactory;
}
32 changes: 32 additions & 0 deletions database/migrations/2022_10_23_132312_create_educations_table.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateEducationsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('educations', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->softDeletes();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('educations');
}
}
Loading