From 1e6453b76642fb34ac806a6160a0a0579a2115da Mon Sep 17 00:00:00 2001 From: Raihan Surya <raihansurya4000@gmail.com> Date: Tue, 31 Oct 2023 10:02:48 +0700 Subject: [PATCH] Revisi kodingan setting dan update profile --- .../Admin/AdminDashboardController.php | 71 ++- .../Admin/AdminSettingController.php | 8 +- .../Controllers/Profile/ProfileController.php | 70 ++- app/Models/Contact.php | 5 + app/Models/Refund.php | 5 + app/Models/Setting.php | 5 + composer.lock | 562 +++++++++--------- .../2014_10_12_000000_create_users_table.php | 2 +- ...08_01_073859_create_transactions_table.php | 5 +- ...2023_08_16_044527_create_refunds_table.php | 3 +- ...023_08_27_074453_create_settings_table.php | 3 +- ...023_09_01_044300_create_contacts_table.php | 3 +- public/assets/js/page/modules-datatables.js | 6 + resources/views/Admin/index.blade.php | 98 +-- resources/views/Admin/layout/footer.blade.php | 8 - resources/views/Admin/layout/main.blade.php | 116 ---- .../views/Admin/layout/sidebar.blade.php | 22 - .../Admin/refund/detail-refund.blade.php | 3 +- resources/views/Admin/refund/index.blade.php | 17 +- resources/views/Admin/setting/index.blade.php | 289 ++++----- .../Admin/setting/modal-add-setting.blade.php | 106 ++-- .../views/Admin/setting/modal-tanya.blade.php | 20 + .../transaction/detail-transaction.blade.php | 4 +- .../views/Admin/transaction/index.blade.php | 15 +- .../views/Admin/users/detail-user.blade.php | 12 +- resources/views/Admin/users/index.blade.php | 2 +- resources/views/User/contact/index.blade.php | 10 +- resources/views/User/index.blade.php | 19 +- resources/views/User/layout/header.blade.php | 226 ------- resources/views/User/layout/main.blade.php | 158 ----- .../views/User/layout/progress-bar.blade.php | 15 - resources/views/User/layout/sidebar.blade.php | 52 -- resources/views/User/profile/index.blade.php | 375 ------------ .../User/refund/history-refund.blade.php | 9 +- resources/views/User/refund/index.blade.php | 12 +- .../views/User/refund/new-refund.blade.php | 11 +- .../Pembeli/detail-transaction.blade.php | 15 +- .../User/transaction/Pembeli/index.blade.php | 9 +- .../Pembeli/invoice-transaction.blade.php | 9 +- .../Pembeli/new-transaction.blade.php | 2 +- .../User/transaction/penjual/index.blade.php | 12 +- .../penjual/modal-tracking.blade.php | 26 +- resources/views/layouts/css.blade.php | 51 ++ .../{User/layout => layouts}/footer.blade.php | 0 .../layout => layouts}/header.blade.php | 15 +- resources/views/layouts/js.blade.php | 40 ++ resources/views/layouts/main.blade.php | 36 ++ resources/views/layouts/sidebar.blade.php | 75 +++ .../{Admin => }/profile/index-2.blade.php | 0 .../views/{Admin => }/profile/index.blade.php | 235 +++++--- routes/api.php | 29 +- routes/web.php | 38 +- 52 files changed, 1223 insertions(+), 1716 deletions(-) delete mode 100644 resources/views/Admin/layout/footer.blade.php delete mode 100644 resources/views/Admin/layout/main.blade.php delete mode 100644 resources/views/Admin/layout/sidebar.blade.php create mode 100644 resources/views/Admin/setting/modal-tanya.blade.php delete mode 100644 resources/views/User/layout/header.blade.php delete mode 100644 resources/views/User/layout/main.blade.php delete mode 100644 resources/views/User/layout/progress-bar.blade.php delete mode 100644 resources/views/User/layout/sidebar.blade.php delete mode 100644 resources/views/User/profile/index.blade.php create mode 100644 resources/views/layouts/css.blade.php rename resources/views/{User/layout => layouts}/footer.blade.php (100%) rename resources/views/{Admin/layout => layouts}/header.blade.php (93%) create mode 100644 resources/views/layouts/js.blade.php create mode 100644 resources/views/layouts/main.blade.php create mode 100644 resources/views/layouts/sidebar.blade.php rename resources/views/{Admin => }/profile/index-2.blade.php (100%) rename resources/views/{Admin => }/profile/index.blade.php (77%) diff --git a/app/Http/Controllers/Admin/AdminDashboardController.php b/app/Http/Controllers/Admin/AdminDashboardController.php index 4f5f150..7c04963 100644 --- a/app/Http/Controllers/Admin/AdminDashboardController.php +++ b/app/Http/Controllers/Admin/AdminDashboardController.php @@ -8,32 +8,75 @@ use Carbon\Carbon; use App\Models\Transactions; use App\Models\Transaction; use App\Models\Refund; +use App\Models\User; use Illuminate\Support\Facades\Auth; class AdminDashboardController extends Controller { public function index() { - $sumSettlement = 0; - $sumCancelled = 0; - $sumRefund = 0; + $transactions = Transactions::allTransactions(); + $currentMonth = Carbon::now()->month; $currentYear = Carbon::now()->year; + + $countSuccess = Transaction::where('status', 'settlement') + ->whereMonth('updated_at', $currentMonth) + ->whereYear('updated_at', $currentYear) + ->count(); + + $countPending = Transaction::where('status', 'pending') + ->whereMonth('updated_at', $currentMonth) + ->whereYear('updated_at', $currentYear) + ->count(); + + $countCancelled = Transaction::where('status', 'cancel') + ->whereMonth('updated_at', $currentMonth) + ->whereYear('updated_at', $currentYear) + ->count(); + + $countRefund = Transaction::where('status', 'refund') + ->whereMonth('updated_at', $currentMonth) + ->whereYear('updated_at', $currentYear) + ->count(); + + $totalTransaction = Transaction::whereMonth('updated_at', $currentMonth) + ->whereYear('updated_at', $currentYear) + ->count(); + $dataChartTransaction = []; $dataChartRefund = []; + + $totalRefund = Transaction::where('status', 'refund')->count(); + $dataChartTotalRefund = []; + + $totalUser = User::where('status', 'Finished')->count(); + $dataChartTotalUser = []; + for ($bulan = 1; $bulan <= 12; $bulan++) { - $transaction = Transaction::whereMonth('created_at', $bulan) - ->whereYear('created_at', $currentYear) + $transaction = Transaction::whereMonth('updated_at', $bulan) + ->whereYear('updated_at', $currentYear) + ->where('status', 'settlement') ->sum('total_bayar'); - // $transaction = Transaction::where('status','finished')->whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total_bayar'); - // $refund = Refund::whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total'); - // $refund = Refund::where('status','Partial Refund')->whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total'); + + $refund = Transaction::whereMonth('updated_at', $bulan) + ->whereYear('updated_at', $currentYear) + ->where('status', 'partial refund') + ->sum('total_harga'); + $dataChartTransaction[] = intval($transaction); - // $dataChartRefund[] = intval($refund); + $dataChartRefund[] = intval($refund); } - return view('admin.index', [ - 'transaction' => Transactions::allTransactions(), - 'dataChartTransaction' => $dataChartTransaction, - // "dataChartRefund" => $dataChartRefund - ]); + + return view('admin.index', compact('transactions', 'countSuccess', 'countPending', 'countCancelled', 'countRefund', 'totalRefund', 'totalUser', 'totalTransaction', 'dataChartTransaction', 'dataChartRefund', 'dataChartTotalUser', 'dataChartTotalRefund')); + } + + public function getChartByMonth() + { + $dataChartLaporan = []; + $tahun = Carbon::now()->year; + } + + public function getCharByYear() + { } } diff --git a/app/Http/Controllers/Admin/AdminSettingController.php b/app/Http/Controllers/Admin/AdminSettingController.php index 7bafff3..2e4e6c7 100644 --- a/app/Http/Controllers/Admin/AdminSettingController.php +++ b/app/Http/Controllers/Admin/AdminSettingController.php @@ -29,10 +29,12 @@ class AdminSettingController extends Controller { try{ DB::beginTransaction(); + Setting::updateOrCreate( ['bulan' => $request->bulan, 'tahun' => $request->tahun], ['persentase' => $request->persentase] ); + DB::commit(); return response()->json(['status' => true, 'message' => 'Berhasil menambah']); @@ -42,7 +44,7 @@ class AdminSettingController extends Controller Log::error($e->getMessage()); - return response()->json(['status' => false, 'message' => 'Terjadi Kesalahan pada sisi server']); + return response()->json(['status' => false, 'message' => 'Terjadi Kesalahan pada sisi server', 'data' => $request]); } } @@ -50,9 +52,9 @@ class AdminSettingController extends Controller /** * Update the specified resource in storage. */ - public function activeSetting($id) + public function activeSetting(Request $request) { - $setting = Setting::findOrFail($id); + $setting = Setting::findOrFail($request->id); if ($setting->status == 'Active') { $setting->status = 'Nonactive'; $result = $setting->save(); diff --git a/app/Http/Controllers/Profile/ProfileController.php b/app/Http/Controllers/Profile/ProfileController.php index f609f4f..ca7dc51 100644 --- a/app/Http/Controllers/Profile/ProfileController.php +++ b/app/Http/Controllers/Profile/ProfileController.php @@ -9,31 +9,43 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Throwable; use App\Models\User; +use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Facades\Storage; +use Laravolt\Indonesia\Models\City; +use Laravolt\Indonesia\Models\District; +use Laravolt\Indonesia\Models\Provinsi; +use Laravolt\Indonesia\Models\Village; class ProfileController extends Controller { - - public function profile(){ - return view('user.profile.index', ['user' => Auth::user()]); + public function index() + { + $provinces = Provinsi::all(); + $cities = City::where('province_code', auth()->user()->village->district->city->province->code)->get(); + $districts = District::where('city_code', auth()->user()->village->district->city->code)->get(); + $villages = Village::where('district_code', auth()->user()->village->district->code)->get(); + return view('profile.index', compact('provinces', 'cities', 'districts', 'villages')); } - public function update(Request $request){ - $nama_depan = $request->nama_depan; - $nama_belakang = $request->nama_belakang; + public function updateProfile(Request $request) + { + $nama_depan = str_replace(' ', '_', $request->nama_depan); + $nama_belakang = str_replace(' ', '_', $request->nama_belakang); $nohp = $request->nohp; $kode_kelurahan = $request->kelurahan; $alamat = $request->alamat; $nama_bank = $request->nama_bank; $no_rek = $request->no_rek; $foto_profile = ''; - if($request->hasFile('foto_profile')){ - $file = $request->file('foto_profile'); - $extension = $file->getClientOriginalExtension(); - $foto_profile = 'Foto-Profil-'.$nama_depan.' '.$nama_belakang.'.'.$extension; - $file->storeAs('storage/foto-profile/'.$foto_profile); + if ($request->hasFile('foto')) { + $file = $request->file('foto'); + $foto_profile = 'Foto_Profil_' . $nama_depan . '_' . $nama_belakang .'.'. $file->getClientOriginalExtension(); + $path = 'foto-profile/' . $foto_profile; + + Storage::disk('public')->put($path, file_get_contents($file)); } - try{ + try { DB::beginTransaction(); User::where('id', Auth::user()->id)->update([ @@ -48,6 +60,40 @@ class ProfileController extends Controller ]); DB::commit(); + + return response()->json(['status' => true, 'message' => 'Data Profile berhasil diupdate']); + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + + return response()->json(['status' => false, 'message' => 'Terjadi Kesalahan pada sisi server']); + } + } + + public function changePassword(Request $request){ + $currentPassword = $request->currentPassword; + $newPassword = $request->newPassword; + $renewPassword = $request->renewPassword; + + if(!Hash::check($currentPassword, auth()->user()->password)){ + return response()->json(['status' => false, 'message' => 'Password sekarang tidak sama','password' => $currentPassword]); + } + + if($renewPassword != $newPassword){ + return response()->json(['status' => false, 'message' => 'Ketikan ulang password baru']); + } + + try{ + DB::beginTransaction(); + + User::where('id', auth()->user()->id)->update([ + 'password' => Hash::make($newPassword) + ]); + + DB::commit(); + + return response()->json(['status' => true, 'message' => 'Password Berhasil diubah']); }catch(Throwable $e){ DB::rollBack(); diff --git a/app/Models/Contact.php b/app/Models/Contact.php index 325f7d1..233a15f 100644 --- a/app/Models/Contact.php +++ b/app/Models/Contact.php @@ -19,6 +19,11 @@ class Contact extends Model 'relasi_kontak', ]; + protected $casts = [ + 'id' => 'string', + ]; + + //Relasi public function pemilikKontak(){ return $this->belongsTo(User::class, 'pemilik_kontak', 'email'); diff --git a/app/Models/Refund.php b/app/Models/Refund.php index 4604bef..d9a07c8 100644 --- a/app/Models/Refund.php +++ b/app/Models/Refund.php @@ -21,6 +21,11 @@ class Refund extends Model 'status', ]; + protected $casts = [ + 'id' => 'string', + ]; + + //Relasi public function transaction(){ return $this->belongsTo(Transaction::class, 'id', 'transaction_id'); diff --git a/app/Models/Setting.php b/app/Models/Setting.php index b7e200c..42f58a6 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -19,4 +19,9 @@ class Setting extends Model 'tahun', 'persentase', ]; + + protected $casts = [ + 'id' => 'string', + ]; + } diff --git a/composer.lock b/composer.lock index 0a92de1..e91429d 100644 --- a/composer.lock +++ b/composer.lock @@ -367,16 +367,16 @@ }, { "name": "egulias/email-validator", - "version": "4.0.1", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff" + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/3a85486b709bc384dae8eb78fb2eec649bdb64ff", - "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", "shasum": "" }, "require": { @@ -385,8 +385,8 @@ "symfony/polyfill-intl-idn": "^1.26" }, "require-dev": { - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^4.30" + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -422,7 +422,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.1" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" }, "funding": [ { @@ -430,25 +430,25 @@ "type": "github" } ], - "time": "2023-01-14T14:17:03+00:00" + "time": "2023-10-06T06:47:41+00:00" }, { "name": "fruitcake/php-cors", - "version": "v1.2.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/fruitcake/php-cors.git", - "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e" + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e", - "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "symfony/http-foundation": "^4.4|^5.4|^6" + "symfony/http-foundation": "^4.4|^5.4|^6|^7" }, "require-dev": { "phpstan/phpstan": "^1.4", @@ -458,7 +458,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -489,7 +489,7 @@ ], "support": { "issues": "https://github.com/fruitcake/php-cors/issues", - "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0" + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" }, "funding": [ { @@ -501,7 +501,7 @@ "type": "github" } ], - "time": "2022-02-20T15:07:15+00:00" + "time": "2023-10-12T05:21:21+00:00" }, { "name": "graham-campbell/result-type", @@ -1056,16 +1056,16 @@ }, { "name": "laravel/framework", - "version": "v10.21.0", + "version": "v10.29.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "96b15c7ac382a9adb4a56d40c640e782d669a112" + "reference": "2d002849a16ad131110a50cbea4d64dbb78515a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/96b15c7ac382a9adb4a56d40c640e782d669a112", - "reference": "96b15c7ac382a9adb4a56d40c640e782d669a112", + "url": "https://api.github.com/repos/laravel/framework/zipball/2d002849a16ad131110a50cbea4d64dbb78515a3", + "reference": "2d002849a16ad131110a50cbea4d64dbb78515a3", "shasum": "" }, "require": { @@ -1083,7 +1083,7 @@ "ext-tokenizer": "*", "fruitcake/php-cors": "^1.2", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1", + "laravel/prompts": "^0.1.9", "laravel/serializable-closure": "^1.3", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", @@ -1098,7 +1098,7 @@ "symfony/console": "^6.2", "symfony/error-handler": "^6.2", "symfony/finder": "^6.2", - "symfony/http-foundation": "^6.2", + "symfony/http-foundation": "^6.3", "symfony/http-kernel": "^6.2", "symfony/mailer": "^6.2", "symfony/mime": "^6.2", @@ -1165,13 +1165,15 @@ "league/flysystem-read-only": "^3.3", "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.5.1", - "orchestra/testbench-core": "^8.4", + "nyholm/psr7": "^1.2", + "orchestra/testbench-core": "^8.12", "pda/pheanstalk": "^4.0", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^10.0.7", "predis/predis": "^2.0.2", "symfony/cache": "^6.2", - "symfony/http-client": "^6.2.4" + "symfony/http-client": "^6.2.4", + "symfony/psr-http-message-bridge": "^2.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", @@ -1252,27 +1254,31 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-08-29T13:55:56+00:00" + "time": "2023-10-24T13:48:53+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.6", + "version": "v0.1.12", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "b514c5620e1b3b61221b0024dc88def26d9654f4" + "reference": "b35f249028c22016e45e48626e19e5d42fd827ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/b514c5620e1b3b61221b0024dc88def26d9654f4", - "reference": "b514c5620e1b3b61221b0024dc88def26d9654f4", + "url": "https://api.github.com/repos/laravel/prompts/zipball/b35f249028c22016e45e48626e19e5d42fd827ff", + "reference": "b35f249028c22016e45e48626e19e5d42fd827ff", "shasum": "" }, "require": { "ext-mbstring": "*", "illuminate/collections": "^10.0|^11.0", "php": "^8.1", - "symfony/console": "^6.2" + "symfony/console": "^6.2|^7.0" + }, + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { "mockery/mockery": "^1.5", @@ -1284,6 +1290,11 @@ "ext-pcntl": "Required for the spinner to be animated." }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.1.x-dev" + } + }, "autoload": { "files": [ "src/helpers.php" @@ -1298,22 +1309,22 @@ ], "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.6" + "source": "https://github.com/laravel/prompts/tree/v0.1.12" }, - "time": "2023-08-18T13:32:23+00:00" + "time": "2023-10-18T14:18:57+00:00" }, { "name": "laravel/sanctum", - "version": "v3.2.6", + "version": "v3.3.1", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "217e8a2bc5aa6a827ced97fcb76504029d3115d7" + "reference": "338f633e6487e76b255470d3373fbc29228aa971" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/217e8a2bc5aa6a827ced97fcb76504029d3115d7", - "reference": "217e8a2bc5aa6a827ced97fcb76504029d3115d7", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/338f633e6487e76b255470d3373fbc29228aa971", + "reference": "338f633e6487e76b255470d3373fbc29228aa971", "shasum": "" }, "require": { @@ -1366,20 +1377,20 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2023-08-22T13:21:11+00:00" + "time": "2023-09-07T15:46:33+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.1", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902" + "reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/e5a3057a5591e1cfe8183034b0203921abe2c902", - "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/076fe2cf128bd54b4341cdc6d49b95b34e101e4c", + "reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c", "shasum": "" }, "require": { @@ -1426,7 +1437,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-07-14T13:56:28+00:00" + "time": "2023-10-17T13:38:16+00:00" }, { "name": "laravel/tinker", @@ -1909,16 +1920,16 @@ }, { "name": "league/flysystem", - "version": "3.15.1", + "version": "3.18.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "a141d430414fcb8bf797a18716b09f759a385bed" + "reference": "015633a05aee22490495159237a5944091d8281e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a141d430414fcb8bf797a18716b09f759a385bed", - "reference": "a141d430414fcb8bf797a18716b09f759a385bed", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/015633a05aee22490495159237a5944091d8281e", + "reference": "015633a05aee22490495159237a5944091d8281e", "shasum": "" }, "require": { @@ -1927,6 +1938,8 @@ "php": "^8.0.2" }, "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", "aws/aws-sdk-php": "3.209.31 || 3.210.0", "guzzlehttp/guzzle": "<7.0", "guzzlehttp/ringphp": "<1.1.1", @@ -1934,8 +1947,8 @@ "symfony/http-client": "<5.2" }, "require-dev": { - "async-aws/s3": "^1.5", - "async-aws/simple-s3": "^1.1", + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", "aws/aws-sdk-php": "^3.220.0", "composer/semver": "^3.0", "ext-fileinfo": "*", @@ -1945,8 +1958,8 @@ "google/cloud-storage": "^1.23", "microsoft/azure-storage-blob": "^1.1", "phpseclib/phpseclib": "^3.0.14", - "phpstan/phpstan": "^0.12.26", - "phpunit/phpunit": "^9.5.11", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", "sabre/dav": "^4.3.1" }, "type": "library", @@ -1981,7 +1994,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.15.1" + "source": "https://github.com/thephpleague/flysystem/tree/3.18.0" }, "funding": [ { @@ -1993,20 +2006,20 @@ "type": "github" } ], - "time": "2023-05-04T09:04:26+00:00" + "time": "2023-10-20T17:59:40+00:00" }, { "name": "league/flysystem-local", - "version": "3.15.0", + "version": "3.18.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3" + "reference": "e7381ef7643f658b87efb7dbe98fe538fb1bbf32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/543f64c397fefdf9cfeac443ffb6beff602796b3", - "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e7381ef7643f658b87efb7dbe98fe538fb1bbf32", + "reference": "e7381ef7643f658b87efb7dbe98fe538fb1bbf32", "shasum": "" }, "require": { @@ -2041,7 +2054,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.15.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.18.0" }, "funding": [ { @@ -2053,20 +2066,20 @@ "type": "github" } ], - "time": "2023-05-02T20:02:14+00:00" + "time": "2023-10-19T20:07:13+00:00" }, { "name": "league/mime-type-detection", - "version": "1.13.0", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96" + "reference": "b6a5854368533df0295c5761a0253656a2e52d9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/a6dfb1194a2946fcdc1f38219445234f65b35c96", - "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e", + "reference": "b6a5854368533df0295c5761a0253656a2e52d9e", "shasum": "" }, "require": { @@ -2097,7 +2110,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.13.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0" }, "funding": [ { @@ -2109,7 +2122,7 @@ "type": "tidelift" } ], - "time": "2023-08-05T12:09:49+00:00" + "time": "2023-10-17T14:13:20+00:00" }, { "name": "midtrans/midtrans-php", @@ -2168,16 +2181,16 @@ }, { "name": "monolog/monolog", - "version": "3.4.0", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d" + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/e2392369686d420ca32df3803de28b5d6f76867d", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", "shasum": "" }, "require": { @@ -2253,7 +2266,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.4.0" + "source": "https://github.com/Seldaek/monolog/tree/3.5.0" }, "funding": [ { @@ -2265,20 +2278,20 @@ "type": "tidelift" } ], - "time": "2023-06-21T08:46:11+00:00" + "time": "2023-10-27T15:32:31+00:00" }, { "name": "nesbot/carbon", - "version": "2.69.0", + "version": "2.71.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "4308217830e4ca445583a37d1bf4aff4153fa81c" + "reference": "98276233188583f2ff845a0f992a235472d9466a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4308217830e4ca445583a37d1bf4aff4153fa81c", - "reference": "4308217830e4ca445583a37d1bf4aff4153fa81c", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/98276233188583f2ff845a0f992a235472d9466a", + "reference": "98276233188583f2ff845a0f992a235472d9466a", "shasum": "" }, "require": { @@ -2371,20 +2384,20 @@ "type": "tidelift" } ], - "time": "2023-08-03T09:00:52+00:00" + "time": "2023-09-25T11:31:05+00:00" }, { "name": "nette/schema", - "version": "v1.2.4", + "version": "v1.2.5", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "c9ff517a53903b3d4e29ec547fb20feecb05b8ab" + "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/c9ff517a53903b3d4e29ec547fb20feecb05b8ab", - "reference": "c9ff517a53903b3d4e29ec547fb20feecb05b8ab", + "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", + "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", "shasum": "" }, "require": { @@ -2431,22 +2444,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.4" + "source": "https://github.com/nette/schema/tree/v1.2.5" }, - "time": "2023-08-05T18:56:25+00:00" + "time": "2023-10-05T20:37:59+00:00" }, { "name": "nette/utils", - "version": "v4.0.1", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "9124157137da01b1f5a5a22d6486cb975f26db7e" + "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/9124157137da01b1f5a5a22d6486cb975f26db7e", - "reference": "9124157137da01b1f5a5a22d6486cb975f26db7e", + "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015", + "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015", "shasum": "" }, "require": { @@ -2468,8 +2481,7 @@ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, "type": "library", "extra": { @@ -2518,9 +2530,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.1" + "source": "https://github.com/nette/utils/tree/v4.0.3" }, - "time": "2023-07-30T15:42:21+00:00" + "time": "2023-10-29T21:02:13+00:00" }, { "name": "nikic/php-parser", @@ -3028,16 +3040,16 @@ }, { "name": "psr/http-client", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { @@ -3074,9 +3086,9 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/1.0.2" + "source": "https://github.com/php-fig/http-client" }, - "time": "2023-04-10T20:12:12+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", @@ -3289,16 +3301,16 @@ }, { "name": "psy/psysh", - "version": "v0.11.20", + "version": "v0.11.22", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "0fa27040553d1d280a67a4393194df5228afea5b" + "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/0fa27040553d1d280a67a4393194df5228afea5b", - "reference": "0fa27040553d1d280a67a4393194df5228afea5b", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b", + "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b", "shasum": "" }, "require": { @@ -3327,7 +3339,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "0.11.x-dev" + "dev-0.11": "0.11.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false } }, "autoload": { @@ -3359,9 +3375,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.20" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.22" }, - "time": "2023-07-31T14:32:22+00:00" + "time": "2023-10-14T21:56:36+00:00" }, { "name": "pusher/pusher-php-server", @@ -4000,16 +4016,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.3.2", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a" + "reference": "1f69476b64fb47105c06beef757766c376b548c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/85fd65ed295c4078367c784e8a5a6cee30348b7a", - "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/1f69476b64fb47105c06beef757766c376b548c4", + "reference": "1f69476b64fb47105c06beef757766c376b548c4", "shasum": "" }, "require": { @@ -4054,7 +4070,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.3.2" + "source": "https://github.com/symfony/error-handler/tree/v6.3.5" }, "funding": [ { @@ -4070,7 +4086,7 @@ "type": "tidelift" } ], - "time": "2023-07-16T17:05:46+00:00" + "time": "2023-09-12T06:57:20+00:00" }, { "name": "symfony/event-dispatcher", @@ -4230,16 +4246,16 @@ }, { "name": "symfony/finder", - "version": "v6.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e" + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9915db259f67d21eefee768c1abcf1cc61b1fc9e", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e", + "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4", + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4", "shasum": "" }, "require": { @@ -4274,7 +4290,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.3" + "source": "https://github.com/symfony/finder/tree/v6.3.5" }, "funding": [ { @@ -4290,20 +4306,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T08:31:44+00:00" + "time": "2023-09-26T12:56:25+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.3.4", + "version": "v6.3.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "cac1556fdfdf6719668181974104e6fcfa60e844" + "reference": "59d1837d5d992d16c2628cd0d6b76acf8d69b33e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cac1556fdfdf6719668181974104e6fcfa60e844", - "reference": "cac1556fdfdf6719668181974104e6fcfa60e844", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/59d1837d5d992d16c2628cd0d6b76acf8d69b33e", + "reference": "59d1837d5d992d16c2628cd0d6b76acf8d69b33e", "shasum": "" }, "require": { @@ -4313,12 +4329,12 @@ "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.2" + "symfony/cache": "<6.3" }, "require-dev": { - "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^5.4|^6.0", + "symfony/cache": "^6.3", "symfony/dependency-injection": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", @@ -4351,7 +4367,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.3.4" + "source": "https://github.com/symfony/http-foundation/tree/v6.3.7" }, "funding": [ { @@ -4367,20 +4383,20 @@ "type": "tidelift" } ], - "time": "2023-08-22T08:20:46+00:00" + "time": "2023-10-28T23:55:27+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.3.4", + "version": "v6.3.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb" + "reference": "6d4098095f93279d9536a0e9124439560cc764d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb", - "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6d4098095f93279d9536a0e9124439560cc764d0", + "reference": "6d4098095f93279d9536a0e9124439560cc764d0", "shasum": "" }, "require": { @@ -4464,7 +4480,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.3.4" + "source": "https://github.com/symfony/http-kernel/tree/v6.3.7" }, "funding": [ { @@ -4480,20 +4496,20 @@ "type": "tidelift" } ], - "time": "2023-08-26T13:54:49+00:00" + "time": "2023-10-29T14:31:45+00:00" }, { "name": "symfony/mailer", - "version": "v6.3.0", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435" + "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/7b03d9be1dea29bfec0a6c7b603f5072a4c97435", - "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435", + "url": "https://api.github.com/repos/symfony/mailer/zipball/d89611a7830d51b5e118bca38e390dea92f9ea06", + "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06", "shasum": "" }, "require": { @@ -4544,7 +4560,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.3.0" + "source": "https://github.com/symfony/mailer/tree/v6.3.5" }, "funding": [ { @@ -4560,20 +4576,20 @@ "type": "tidelift" } ], - "time": "2023-05-29T12:49:39+00:00" + "time": "2023-09-06T09:47:15+00:00" }, { "name": "symfony/mime", - "version": "v6.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98" + "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", - "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", + "url": "https://api.github.com/repos/symfony/mime/zipball/d5179eedf1cb2946dbd760475ebf05c251ef6a6e", + "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e", "shasum": "" }, "require": { @@ -4628,7 +4644,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.3.3" + "source": "https://github.com/symfony/mime/tree/v6.3.5" }, "funding": [ { @@ -4644,7 +4660,7 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-09-29T06:59:36+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5447,16 +5463,16 @@ }, { "name": "symfony/routing", - "version": "v6.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a" + "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e7243039ab663822ff134fbc46099b5fdfa16f6a", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a", + "url": "https://api.github.com/repos/symfony/routing/zipball/82616e59acd3e3d9c916bba798326cb7796d7d31", + "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31", "shasum": "" }, "require": { @@ -5510,7 +5526,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.3.3" + "source": "https://github.com/symfony/routing/tree/v6.3.5" }, "funding": [ { @@ -5526,7 +5542,7 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-09-20T16:05:51+00:00" }, { "name": "symfony/service-contracts", @@ -5612,16 +5628,16 @@ }, { "name": "symfony/string", - "version": "v6.3.2", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "53d1a83225002635bca3482fcbf963001313fb68" + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/53d1a83225002635bca3482fcbf963001313fb68", - "reference": "53d1a83225002635bca3482fcbf963001313fb68", + "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339", "shasum": "" }, "require": { @@ -5678,7 +5694,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.2" + "source": "https://github.com/symfony/string/tree/v6.3.5" }, "funding": [ { @@ -5694,20 +5710,20 @@ "type": "tidelift" } ], - "time": "2023-07-05T08:41:27+00:00" + "time": "2023-09-18T10:38:32+00:00" }, { "name": "symfony/translation", - "version": "v6.3.3", + "version": "v6.3.7", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd" + "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", - "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", + "url": "https://api.github.com/repos/symfony/translation/zipball/30212e7c87dcb79c83f6362b00bde0e0b1213499", + "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499", "shasum": "" }, "require": { @@ -5773,7 +5789,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.3.3" + "source": "https://github.com/symfony/translation/tree/v6.3.7" }, "funding": [ { @@ -5789,7 +5805,7 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-10-28T23:11:45+00:00" }, { "name": "symfony/translation-contracts", @@ -5945,16 +5961,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45" + "reference": "999ede244507c32b8e43aebaa10e9fce20de7c97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2027be14f8ae8eae999ceadebcda5b4909b81d45", - "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/999ede244507c32b8e43aebaa10e9fce20de7c97", + "reference": "999ede244507c32b8e43aebaa10e9fce20de7c97", "shasum": "" }, "require": { @@ -6009,7 +6025,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.3.4" + "source": "https://github.com/symfony/var-dumper/tree/v6.3.6" }, "funding": [ { @@ -6025,20 +6041,20 @@ "type": "tidelift" } ], - "time": "2023-08-24T14:51:05+00:00" + "time": "2023-10-12T18:45:56+00:00" }, { "name": "thiagoalessio/tesseract_ocr", - "version": "2.12.0", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/thiagoalessio/tesseract-ocr-for-php.git", - "reference": "0f10bd7b02bdcba59c4fbd98fbd93a56f93b09b7" + "reference": "232a8cb9d571992f9bd1e263f2f6909cf6c173a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thiagoalessio/tesseract-ocr-for-php/zipball/0f10bd7b02bdcba59c4fbd98fbd93a56f93b09b7", - "reference": "0f10bd7b02bdcba59c4fbd98fbd93a56f93b09b7", + "url": "https://api.github.com/repos/thiagoalessio/tesseract-ocr-for-php/zipball/232a8cb9d571992f9bd1e263f2f6909cf6c173a1", + "reference": "232a8cb9d571992f9bd1e263f2f6909cf6c173a1", "shasum": "" }, "require": { @@ -6074,7 +6090,7 @@ "issues": "https://github.com/thiagoalessio/tesseract-ocr-for-php/issues", "source": "https://github.com/thiagoalessio/tesseract-ocr-for-php" }, - "time": "2021-06-04T21:21:33+00:00" + "time": "2023-10-05T21:14:48+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -6623,16 +6639,16 @@ }, { "name": "laravel/pint", - "version": "v1.12.0", + "version": "v1.13.5", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "08bcf51e520a5e5aea458fc600ac4869f6934a66" + "reference": "df105cf8ce7a8f0b8a9425ff45cd281a5448e423" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/08bcf51e520a5e5aea458fc600ac4869f6934a66", - "reference": "08bcf51e520a5e5aea458fc600ac4869f6934a66", + "url": "https://api.github.com/repos/laravel/pint/zipball/df105cf8ce7a8f0b8a9425ff45cd281a5448e423", + "reference": "df105cf8ce7a8f0b8a9425ff45cd281a5448e423", "shasum": "" }, "require": { @@ -6643,13 +6659,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.21.1", - "illuminate/view": "^10.5.1", + "friendsofphp/php-cs-fixer": "^3.34.1", + "illuminate/view": "^10.26.2", "laravel-zero/framework": "^10.1.2", - "mockery/mockery": "^1.5.1", - "nunomaduro/larastan": "^2.5.1", + "mockery/mockery": "^1.6.6", + "nunomaduro/larastan": "^2.6.4", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.4.0" + "pestphp/pest": "^2.20.0" }, "bin": [ "builds/pint" @@ -6685,31 +6701,31 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2023-08-30T07:53:32+00:00" + "time": "2023-10-26T09:26:10+00:00" }, { "name": "laravel/sail", - "version": "v1.24.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "c8a621d7b69ab2e568d97a20f837ca733a224006" + "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/c8a621d7b69ab2e568d97a20f837ca733a224006", - "reference": "c8a621d7b69ab2e568d97a20f837ca733a224006", + "url": "https://api.github.com/repos/laravel/sail/zipball/c60fe037004e272efd0d81f416ed2bfc623d70b4", + "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4", "shasum": "" }, "require": { - "illuminate/console": "^8.0|^9.0|^10.0", - "illuminate/contracts": "^8.0|^9.0|^10.0", - "illuminate/support": "^8.0|^9.0|^10.0", + "illuminate/console": "^9.0|^10.0|^11.0", + "illuminate/contracts": "^9.0|^10.0|^11.0", + "illuminate/support": "^9.0|^10.0|^11.0", "php": "^8.0", - "symfony/yaml": "^6.0" + "symfony/yaml": "^6.0|^7.0" }, "require-dev": { - "orchestra/testbench": "^6.0|^7.0|^8.0", + "orchestra/testbench": "^7.0|^8.0|^9.0", "phpstan/phpstan": "^1.10" }, "bin": [ @@ -6750,7 +6766,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-08-27T14:26:11+00:00" + "time": "2023-10-18T13:57:15+00:00" }, { "name": "mockery/mockery", @@ -6898,37 +6914,40 @@ }, { "name": "nunomaduro/collision", - "version": "v7.8.1", + "version": "v7.10.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "61553ad3260845d7e3e49121b7074619233d361b" + "reference": "49ec67fa7b002712da8526678abd651c09f375b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/61553ad3260845d7e3e49121b7074619233d361b", - "reference": "61553ad3260845d7e3e49121b7074619233d361b", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2", "shasum": "" }, "require": { "filp/whoops": "^2.15.3", "nunomaduro/termwind": "^1.15.1", "php": "^8.1.0", - "symfony/console": "^6.3.2" + "symfony/console": "^6.3.4" + }, + "conflict": { + "laravel/framework": ">=11.0.0" }, "require-dev": { - "brianium/paratest": "^7.2.4", - "laravel/framework": "^10.17.1", - "laravel/pint": "^1.10.5", - "laravel/sail": "^1.23.1", - "laravel/sanctum": "^3.2.5", - "laravel/tinker": "^2.8.1", + "brianium/paratest": "^7.3.0", + "laravel/framework": "^10.28.0", + "laravel/pint": "^1.13.3", + "laravel/sail": "^1.25.0", + "laravel/sanctum": "^3.3.1", + "laravel/tinker": "^2.8.2", "nunomaduro/larastan": "^2.6.4", - "orchestra/testbench-core": "^8.5.9", - "pestphp/pest": "^2.12.1", - "phpunit/phpunit": "^10.3.1", + "orchestra/testbench-core": "^8.13.0", + "pestphp/pest": "^2.23.2", + "phpunit/phpunit": "^10.4.1", "sebastian/environment": "^6.0.1", - "spatie/laravel-ignition": "^2.2.0" + "spatie/laravel-ignition": "^2.3.1" }, "type": "library", "extra": { @@ -6987,7 +7006,7 @@ "type": "patreon" } ], - "time": "2023-08-07T08:03:21+00:00" + "time": "2023-10-11T15:45:01+00:00" }, { "name": "phar-io/manifest", @@ -7102,16 +7121,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.4", + "version": "10.1.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "cd59bb34756a16ca8253ce9b2909039c227fff71" + "reference": "355324ca4980b8916c18b9db29f3ef484078f26e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/cd59bb34756a16ca8253ce9b2909039c227fff71", - "reference": "cd59bb34756a16ca8253ce9b2909039c227fff71", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/355324ca4980b8916c18b9db29f3ef484078f26e", + "reference": "355324ca4980b8916c18b9db29f3ef484078f26e", "shasum": "" }, "require": { @@ -7168,7 +7187,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.4" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.7" }, "funding": [ { @@ -7176,7 +7195,7 @@ "type": "github" } ], - "time": "2023-08-31T14:04:38+00:00" + "time": "2023-10-04T15:34:17+00:00" }, { "name": "phpunit/php-file-iterator", @@ -7423,16 +7442,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.3.2", + "version": "10.4.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "0dafb1175c366dd274eaa9a625e914451506bcd1" + "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0dafb1175c366dd274eaa9a625e914451506bcd1", - "reference": "0dafb1175c366dd274eaa9a625e914451506bcd1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", + "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", "shasum": "" }, "require": { @@ -7446,7 +7465,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.1", + "phpunit/php-code-coverage": "^10.1.5", "phpunit/php-file-iterator": "^4.0", "phpunit/php-invoker": "^4.0", "phpunit/php-text-template": "^3.0", @@ -7456,7 +7475,7 @@ "sebastian/comparator": "^5.0", "sebastian/diff": "^5.0", "sebastian/environment": "^6.0", - "sebastian/exporter": "^5.0", + "sebastian/exporter": "^5.1", "sebastian/global-state": "^6.0.1", "sebastian/object-enumerator": "^5.0", "sebastian/recursion-context": "^5.0", @@ -7472,7 +7491,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.3-dev" + "dev-main": "10.4-dev" } }, "autoload": { @@ -7504,7 +7523,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.3.2" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.4.2" }, "funding": [ { @@ -7520,7 +7539,7 @@ "type": "tidelift" } ], - "time": "2023-08-15T05:34:23+00:00" + "time": "2023-10-26T07:21:45+00:00" }, { "name": "sebastian/cli-parser", @@ -7768,16 +7787,16 @@ }, { "name": "sebastian/complexity", - "version": "3.0.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "c70b73893e10757af9c6a48929fa6a333b56a97a" + "reference": "68cfb347a44871f01e33ab0ef8215966432f6957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/c70b73893e10757af9c6a48929fa6a333b56a97a", - "reference": "c70b73893e10757af9c6a48929fa6a333b56a97a", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957", + "reference": "68cfb347a44871f01e33ab0ef8215966432f6957", "shasum": "" }, "require": { @@ -7790,7 +7809,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.1-dev" } }, "autoload": { @@ -7814,7 +7833,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0" }, "funding": [ { @@ -7822,7 +7841,7 @@ "type": "github" } ], - "time": "2023-08-31T09:55:53+00:00" + "time": "2023-09-28T11:50:59+00:00" }, { "name": "sebastian/diff", @@ -7957,16 +7976,16 @@ }, { "name": "sebastian/exporter", - "version": "5.0.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0" + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0", - "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", "shasum": "" }, "require": { @@ -7980,7 +7999,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -8022,7 +8041,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" }, "funding": [ { @@ -8030,7 +8050,7 @@ "type": "github" } ], - "time": "2023-02-03T07:06:49+00:00" + "time": "2023-09-24T13:22:09+00:00" }, { "name": "sebastian/global-state", @@ -8500,35 +8520,35 @@ }, { "name": "spatie/flare-client-php", - "version": "1.4.2", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "5f2c6a7a0d2c1d90c12559dc7828fd942911a544" + "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5f2c6a7a0d2c1d90c12559dc7828fd942911a544", - "reference": "5f2c6a7a0d2c1d90c12559dc7828fd942911a544", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", + "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", "shasum": "" }, "require": { - "illuminate/pipeline": "^8.0|^9.0|^10.0", + "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", "nesbot/carbon": "^2.62.1", "php": "^8.0", "spatie/backtrace": "^1.5.2", - "symfony/http-foundation": "^5.0|^6.0", - "symfony/mime": "^5.2|^6.0", - "symfony/process": "^5.2|^6.0", - "symfony/var-dumper": "^5.2|^6.0" + "symfony/http-foundation": "^5.2|^6.0|^7.0", + "symfony/mime": "^5.2|^6.0|^7.0", + "symfony/process": "^5.2|^6.0|^7.0", + "symfony/var-dumper": "^5.2|^6.0|^7.0" }, "require-dev": { - "dms/phpunit-arraysubset-asserts": "^0.3.0", - "pestphp/pest": "^1.20", + "dms/phpunit-arraysubset-asserts": "^0.5.0", + "pestphp/pest": "^1.20|^2.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", - "spatie/phpunit-snapshot-assertions": "^4.0" + "spatie/phpunit-snapshot-assertions": "^4.0|^5.0" }, "type": "library", "extra": { @@ -8558,7 +8578,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.4.2" + "source": "https://github.com/spatie/flare-client-php/tree/1.4.3" }, "funding": [ { @@ -8566,20 +8586,20 @@ "type": "github" } ], - "time": "2023-07-28T08:07:24+00:00" + "time": "2023-10-17T15:54:07+00:00" }, { "name": "spatie/ignition", - "version": "1.10.1", + "version": "1.11.3", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "d92b9a081e99261179b63a858c7a4b01541e7dd1" + "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/d92b9a081e99261179b63a858c7a4b01541e7dd1", - "reference": "d92b9a081e99261179b63a858c7a4b01541e7dd1", + "url": "https://api.github.com/repos/spatie/ignition/zipball/3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", + "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", "shasum": "" }, "require": { @@ -8588,19 +8608,19 @@ "php": "^8.0", "spatie/backtrace": "^1.5.3", "spatie/flare-client-php": "^1.4.0", - "symfony/console": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "require-dev": { - "illuminate/cache": "^9.52", + "illuminate/cache": "^9.52|^10.0|^11.0", "mockery/mockery": "^1.4", - "pestphp/pest": "^1.20", + "pestphp/pest": "^1.20|^2.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", "psr/simple-cache-implementation": "*", - "symfony/cache": "^6.0", - "symfony/process": "^5.4|^6.0", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", "vlucas/phpdotenv": "^5.5" }, "suggest": { @@ -8649,20 +8669,20 @@ "type": "github" } ], - "time": "2023-08-21T15:06:37+00:00" + "time": "2023-10-18T14:09:40+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.3.0", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "4ed813d16edb5a1ab0d7f4b1d116c37ee8cdf3c0" + "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/4ed813d16edb5a1ab0d7f4b1d116c37ee8cdf3c0", - "reference": "4ed813d16edb5a1ab0d7f4b1d116c37ee8cdf3c0", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/bf21cd15aa47fa4ec5d73bbc932005c70261efc8", + "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8", "shasum": "" }, "require": { @@ -8741,20 +8761,20 @@ "type": "github" } ], - "time": "2023-08-23T06:24:34+00:00" + "time": "2023-10-09T12:55:26+00:00" }, { "name": "symfony/yaml", - "version": "v6.3.3", + "version": "v6.3.7", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add" + "reference": "9758b6c69d179936435d0ffb577c3708d57e38a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e23292e8c07c85b971b44c1c4b87af52133e2add", - "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add", + "url": "https://api.github.com/repos/symfony/yaml/zipball/9758b6c69d179936435d0ffb577c3708d57e38a8", + "reference": "9758b6c69d179936435d0ffb577c3708d57e38a8", "shasum": "" }, "require": { @@ -8797,7 +8817,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.3.3" + "source": "https://github.com/symfony/yaml/tree/v6.3.7" }, "funding": [ { @@ -8813,7 +8833,7 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-10-28T23:31:00+00:00" }, { "name": "theseer/tokenizer", diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 588e80c..88d1311 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -26,7 +26,7 @@ return new class extends Migration $table->string('alamat',255); $table->string('foto_ktp')->nullable(); $table->string('foto_wajah')->nullable(); - $table->string('foto_profil')->nullable(); + $table->string('foto_profile')->nullable(); $table->integer('persentase_kemiripan')->nullable(); $table->enum('status',['Finished','Progress','Rejected'])->default('Progress'); $table->string('gender',15); diff --git a/database/migrations/2023_08_01_073859_create_transactions_table.php b/database/migrations/2023_08_01_073859_create_transactions_table.php index 7f5046e..b69dc42 100644 --- a/database/migrations/2023_08_01_073859_create_transactions_table.php +++ b/database/migrations/2023_08_01_073859_create_transactions_table.php @@ -2,6 +2,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration @@ -12,7 +13,7 @@ return new class extends Migration public function up(): void { Schema::create('transactions', function (Blueprint $table) { - $table->uuid('id')->primary(); //order_id + $table->uuid('id')->default(DB::raw('uuid_generate_v4()'))->primary(); //order_id $table->string('pembeli'); // untuk customer_details $table->string('penjual'); //merchant_name $table->string('nama_barang'); // item_details -> item_name @@ -41,8 +42,6 @@ return new class extends Migration $table->foreign('pembeli')->on('users')->references('email'); $table->foreign('penjual')->on('users')->references('email'); - - $table->index('id'); }); } diff --git a/database/migrations/2023_08_16_044527_create_refunds_table.php b/database/migrations/2023_08_16_044527_create_refunds_table.php index d332d54..70f14e1 100644 --- a/database/migrations/2023_08_16_044527_create_refunds_table.php +++ b/database/migrations/2023_08_16_044527_create_refunds_table.php @@ -2,6 +2,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration @@ -12,7 +13,7 @@ return new class extends Migration public function up(): void { Schema::create('refunds', function (Blueprint $table) { - $table->uuid('id')->primary(); + $table->uuid('id')->default(DB::raw('uuid_generate_v4()'))->primary(); $table->foreignUuid('transaction_id'); $table->double('total',10); $table->timestamp('due_date'); diff --git a/database/migrations/2023_08_27_074453_create_settings_table.php b/database/migrations/2023_08_27_074453_create_settings_table.php index 7e00fa2..12e0344 100644 --- a/database/migrations/2023_08_27_074453_create_settings_table.php +++ b/database/migrations/2023_08_27_074453_create_settings_table.php @@ -2,6 +2,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration @@ -12,7 +13,7 @@ return new class extends Migration public function up(): void { Schema::create('settings', function (Blueprint $table) { - $table->uuid('id')->primary(); + $table->uuid('id')->default(DB::raw('uuid_generate_v4()'))->primary(); $table->string('bulan',5); $table->string('tahun',5); $table->float('persentase'); diff --git a/database/migrations/2023_09_01_044300_create_contacts_table.php b/database/migrations/2023_09_01_044300_create_contacts_table.php index 5a24524..753571d 100644 --- a/database/migrations/2023_09_01_044300_create_contacts_table.php +++ b/database/migrations/2023_09_01_044300_create_contacts_table.php @@ -2,6 +2,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration @@ -12,7 +13,7 @@ return new class extends Migration public function up(): void { Schema::create('contacts', function (Blueprint $table) { - $table->uuid('id')->primary(); + $table->uuid('id')->default(DB::raw('uuid_generate_v4()'))->primary(); $table->string('pemilik_kontak'); $table->string('relasi_kontak'); $table->foreign('pemilik_kontak')->on('users')->references('email'); diff --git a/public/assets/js/page/modules-datatables.js b/public/assets/js/page/modules-datatables.js index 7759c29..072f540 100644 --- a/public/assets/js/page/modules-datatables.js +++ b/public/assets/js/page/modules-datatables.js @@ -61,3 +61,9 @@ $("#table-4").dataTable({ columnDefs: [{ sortable: false, targets: [8] }], searchable: true, }); + +// Setting Admin +$("#table-5").dataTable({ + columnDefs: [{ sortable: false, targets: [0, 4, 5] }], + searchable: true, +}); diff --git a/resources/views/Admin/index.blade.php b/resources/views/Admin/index.blade.php index 6c52201..ee857b7 100644 --- a/resources/views/Admin/index.blade.php +++ b/resources/views/Admin/index.blade.php @@ -1,4 +1,4 @@ -@extends('admin.layout.main') +@extends('layouts.main') @section('content') <!-- Main Content --> <div class="main-content"> @@ -8,7 +8,7 @@ <div class="card card-statistic-2"> <div class="card-stats"> <div class="card-stats-title">List Transaction - - {{-- <div class="dropdown d-inline"> + <div class="dropdown d-inline"> <a class="font-weight-600 dropdown-toggle" data-toggle="dropdown" href="#" id="orders-month">August</a> <ul class="dropdown-menu dropdown-menu-sm"> @@ -26,23 +26,23 @@ <li><a href="#" class="dropdown-item">November</a></li> <li><a href="#" class="dropdown-item">December</a></li> </ul> - </div> --}} + </div> </div> <div class="card-stats-items"> <div class="card-stats-item"> - <div class="card-stats-item-count">114</div> + <div class="card-stats-item-count">{{ $countSuccess }}</div> <div class="card-stats-item-label">Success</div> </div> <div class="card-stats-item"> - <div class="card-stats-item-count">12</div> + <div class="card-stats-item-count">{{ $countPending }}</div> <div class="card-stats-item-label">Pending</div> </div> <div class="card-stats-item"> - <div class="card-stats-item-count">23</div> + <div class="card-stats-item-count">{{ $countCancelled }}</div> <div class="card-stats-item-label">Canceled</div> </div> <div class="card-stats-item"> - <div class="card-stats-item-count">23</div> + <div class="card-stats-item-count">{{ $countRefund }}</div> <div class="card-stats-item-label">Refund</div> </div> </div> @@ -55,7 +55,7 @@ <h4>Total Transaction</h4> </div> <div class="card-body"> - 159 + {{ $totalTransaction }} </div> </div> <p class="mb-0 text-muted"> @@ -78,7 +78,7 @@ <h4>Total Refund</h4> </div> <div class="card-body"> - 100 + {{ $totalRefund }} </div> </div> <p class="mb-0 text-muted"> @@ -101,7 +101,7 @@ <h4>Total user</h4> </div> <div class="card-body"> - 100 </div> + {{ $totalUser }}</div> </div> <p class="mb-0 text-muted"> <span class="text-danger me-2"><span class="mdi mdi-arrow-down-bold"></span> @@ -111,16 +111,6 @@ </div> </div> </div> - <div class="row justify-content-end d-flex"> - <div class="col-lg-4 col-md-4 col-sm-12 ml-auto"> - <div class="input-group"> - <input type="text" name="from-to" class="form-control" id="date-range"> - <span class="input-group-text bg-primary text-white align-items-center"> - <i class="mdi mdi-calendar-range font-13"></i> - </span> - </div> - </div> - </div> <br> <div class="row"> <div class="col-lg-8"> @@ -170,11 +160,18 @@ </div> </div> <div class="col-lg-4"> + <div class="input-group mt-4"> + <input type="text" name="from-to" class="form-control" id="date-range"> + <span class="input-group-text bg-primary text-white align-items-center"> + <i class="mdi mdi-calendar-range font-13"></i> + </span> + </div> <div class="card gradient-bottom"> <div class="card-header"> <h4>Top 5 Users</h4> <div class="card-header-action dropdown"> - <a href="#" data-toggle="dropdown" class="btn btn-primary dropdown-toggle">Month</a> + <a href="#" data-toggle="dropdown" + class="btn btn-primary dropdown-toggle">Month</a> <ul class="dropdown-menu dropdown-menu-sm dropdown-menu-right"> <li class="dropdown-title">Select Period</li> <li><a href="#" class="dropdown-item">Today</a></li> @@ -291,11 +288,11 @@ <div class="card-footer pt-3 d-flex justify-content-center"> <div class="budget-price justify-content-center"> <div class="budget-price-square bg-primary" data-width="20"></div> - <div class="budget-price-label">Selling Price</div> + <div class="budget-price-label">Sukses</div> </div> <div class="budget-price justify-content-center"> <div class="budget-price-square bg-danger" data-width="20"></div> - <div class="budget-price-label">Budget Price</div> + <div class="budget-price-label">Refund</div> </div> </div> </div> @@ -325,26 +322,26 @@ </tr> </thead> <tbody> - @foreach ($transaction as $transactions) + @foreach ($transactions as $transaction) <tr> - <td>{{ $transactions['no'] }}</td> - <td><a href="#">{{ $transactions['orderId'] }}</a></td> - <td class="font-weight-600">{{ $transactions['customer'] }}</td> - <td class="font-weight-600">{{ $transactions['seller'] }}</td> - <td class="font-weight-600">{{ $transactions['total'] }}</td> - <td>{{ $transactions['date'] }}</td> + <td>{{ $transaction['no'] }}</td> + <td><a href="#">{{ $transaction['orderId'] }}</a></td> + <td class="font-weight-600">{{ $transaction['customer'] }}</td> + <td class="font-weight-600">{{ $transaction['seller'] }}</td> + <td class="font-weight-600">{{ $transaction['total'] }}</td> + <td>{{ $transaction['date'] }}</td> <td> @php $statusClass = ''; - if ($transactions['status'] === 'pending') { + if ($transaction['status'] === 'pending') { $statusClass = 'badge-warning'; - } elseif ($transactions['status'] === 'paid') { + } elseif ($transaction['status'] === 'paid') { $statusClass = 'badge-success'; - } elseif ($transactions['status'] === 'unpaid') { + } elseif ($transaction['status'] === 'unpaid') { $statusClass = 'badge-danger'; } @endphp - <div class="badge {{ $statusClass }}">{{ $transactions['status'] }} + <div class="badge {{ $statusClass }}">{{ $transaction['status'] }} </div> </td> <td> @@ -375,6 +372,13 @@ </section> </div> @include('admin.transaction.modal-tracking') + <script> + let dataChartTransaction = {{ json_encode($dataChartTransaction) }}; + let dataChartRefund = {{ json_encode($dataChartRefund) }}; + let labels = ''; + let dataChartTotalRefund = {{ json_encode($dataChartTotalRefund) }}; + let dataChartTotalUser = {{ json_encode($dataChartTotalUser) }}; + </script> <script> // Date picker range $(document).ready(function() { @@ -427,12 +431,12 @@ var myChart = new Chart(ctx, { type: 'line', data: { - labels: ["January", "February", "March", "April", "May", "June", "July", "August", "September", - "Oktober", "November", "December" + labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Agu", "Sep", + "Okt", "Nov", "Des" ], datasets: [{ label: 'Transaction', - data: {{json_encode($dataChartTransaction)}}, + data: {{ json_encode($dataChartTransaction) }}, borderWidth: 2, backgroundColor: 'rgba(63,82,227,.8)', borderWidth: 0, @@ -458,12 +462,13 @@ }, options: { layout: { - padding: 20, + padding: 10, }, legend: { display: true, labels: { - padding: 20, + padding: 10, + fontSize: 16 } }, scales: { @@ -475,20 +480,29 @@ }, ticks: { beginAtZero: true, - stepSize: 15000000, + stepSize: 15000, callback: function(value, index, values) { // return 'Rp.' + value; return new Intl.NumberFormat('id-ID', { style: 'currency', currency: 'IDR', }).format(value); - } - } + }, + fontSize: 14, + }, + scaleLabel: { + display: true, + labelString: 'Dalam Ratusan Juta', // Label khusus untuk sumbu Y + fontSize: 16 // Ukuran font untuk label sumbu Y + }, }], xAxes: [{ gridLines: { display: true, tickMarkLength: 15, + }, + ticks: { + fontSize: 16, } }] }, diff --git a/resources/views/Admin/layout/footer.blade.php b/resources/views/Admin/layout/footer.blade.php deleted file mode 100644 index 498655c..0000000 --- a/resources/views/Admin/layout/footer.blade.php +++ /dev/null @@ -1,8 +0,0 @@ -<footer class="main-footer"> - <div class="footer-left"> - Copyright © 2020 <div class="bullet"></div> Design By <a href="#">Template</a> - </div> - <div class="footer-right"> - - </div> -</footer> diff --git a/resources/views/Admin/layout/main.blade.php b/resources/views/Admin/layout/main.blade.php deleted file mode 100644 index 095df81..0000000 --- a/resources/views/Admin/layout/main.blade.php +++ /dev/null @@ -1,116 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - -<head> - <style> - .data-field { - display: flex; - width: 100%; - justify-content: space-between; - font-size: 14px; - } - - .data-field:not(:last-child) { - margin-bottom: 15px; - } - - .data-field span { - text-align: end; - } - - .card-title span a { - color: #899bbd; - text-decoration: underline; - } - - .justified-text { - text-align: justify; - } - - .font-weight-italic { - font-style: italic; - } - </style> - - <meta charset="UTF-8"> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport"> - <meta name="csrf-token" content="{{ csrf_token() }}"> - <title>REKBER</title> - - <!-- General CSS Files --> - <link rel="stylesheet" href="{{ asset('assets/modules/bootstrap/css/bootstrap.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/fontawesome/css/all.min.css') }}"> - <link rel="stylesheet" href="https://cdn.materialdesignicons.com/5.4.55/css/materialdesignicons.min.css"> - <link rel="stylesheet" href="{{ asset('assets/modules/jqvmap/dist/jqvmap.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/summernote/summernote-bs4.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.carousel.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.theme.default.min.css') }}"> - <link rel="stylesheet" type="text/css" - href="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.css" /> - <link rel="stylesheet" href="{{ asset('assets/modules/select2/dist/css/select2.min.css') }}"> - - <!-- Template CSS --> - <link rel="stylesheet" href="{{ asset('assets/css/style.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/css/components.css') }}"> - - {{-- CSS Libraries --}} - <link rel="stylesheet" href="{{ asset('assets/modules/datatables/datatables.min.css') }}"> - <link rel="stylesheet" - href="{{ asset('assets/modules/datatables/DataTables-1.10.16/css/dataTables.bootstrap4.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/datatables/Select-1.2.4/css/select.bootstrap4.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/css/main.css') }}"> - - {{-- JS --}} - <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" - integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" - crossorigin="anonymous" referrerpolicy="no-referrer"></script> - <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" - integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"> - </script> - <script src="{{ asset('assets/modules/chart.min.js') }}"></script> -</head> - -<body> - - <header class="header-area header-sticky"> - @include('admin.layout.header') - </header> - - <main id="main" style="min-height: 100vh;"> - @include('admin.layout.sidebar') - @yield('content') - </main> - - <footer id="footer"> - @include('admin.layout.footer') - </footer> - - <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script> - - <!-- General JS Scripts --> - <script src="{{ asset('assets/modules/popper.js') }}"></script> - <script src="{{ asset('assets/modules/tooltip.js') }}"></script> - <script src="{{ asset('assets/modules/bootstrap/js/bootstrap.min.js') }}"></script> - <script src="{{ asset('assets/modules/moment.min.js') }}"></script> - <script src="{{ asset('assets/js/stisla.js') }}"></script> - <script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script> - - <!-- JS Libraies --> - <script src="{{ asset('assets/modules/owlcarousel2/dist/owl.carousel.min.js') }}"></script> - <script src="{{ asset('assets/modules/summernote/summernote-bs4.js') }}"></script> - - <!-- JS Libraies --> - <script src="{{ asset('assets/modules/datatables/datatables.min.js') }}"></script> - <script src="{{ asset('assets/modules/datatables/DataTables-1.10.16/js/dataTables.bootstrap4.min.js') }}"></script> - <script src="{{ asset('assets/modules/datatables/Select-1.2.4/js/dataTables.select.min.js') }}"></script> - - <!-- Page Specific JS File --> - <script src="{{ asset('assets/js/page/modules-datatables.js') }}"></script> - - <!-- Template JS File --> - <script src="{{ asset('assets/js/scripts.js') }}"></script> - <script src="{{ asset('assets/js/custom.js') }}"></script> - <script src="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.min.js"></script> -</body> - -</html> diff --git a/resources/views/Admin/layout/sidebar.blade.php b/resources/views/Admin/layout/sidebar.blade.php deleted file mode 100644 index f67b7fd..0000000 --- a/resources/views/Admin/layout/sidebar.blade.php +++ /dev/null @@ -1,22 +0,0 @@ -<div class="main-sidebar sidebar-style-2"> - <aside id="sidebar-wrapper"> - <div class="sidebar-brand"> - <a href="{{route('admin.index')}}">REKBER</a> - </div> - <div class="sidebar-brand sidebar-brand-sm"> - <a href="{{route('admin.index')}}">RK</a> - </div> - <ul class="sidebar-menu"> - <li class="menu-header">Dashboard</li> - <li ><a class="nav-link active" href="{{route('admin.index')}}"><i class="fas fa-fire"></i> <span>Dashboard</span></a></li> - <li class="menu-header">Starter</li> - <li><a class="nav-link" href="{{route('admin-user.index')}}"><i class="far fa-user"></i> <span>User</span></a></li> - <li><a class="nav-link" href="{{route('admin-transaction.index')}}"><i - class="fas fa-columns"></i><span>Transaction</span></a></li> - <li><a class="nav-link" href="{{route('admin-refund.index')}}"><i class="far fa-square"></i> <span>List Refund</span></a> - </li> - <li><a class="nav-link" href="{{route('admin-setting.index')}}"><i class="fas fa-cog"></i> <span>Setting</span></a></li> - </ul> - </aside> -</div> -<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.min.js') }}"></script> diff --git a/resources/views/Admin/refund/detail-refund.blade.php b/resources/views/Admin/refund/detail-refund.blade.php index ebaaae9..4c686cd 100644 --- a/resources/views/Admin/refund/detail-refund.blade.php +++ b/resources/views/Admin/refund/detail-refund.blade.php @@ -1,5 +1,4 @@ -@extends('admin.layout.main') - +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> diff --git a/resources/views/Admin/refund/index.blade.php b/resources/views/Admin/refund/index.blade.php index 7c2b94d..c8d7155 100644 --- a/resources/views/Admin/refund/index.blade.php +++ b/resources/views/Admin/refund/index.blade.php @@ -1,13 +1,12 @@ -@extends('admin.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> <div class="section-header"> <h1>History Refund</h1> <div class="section-header-breadcrumb"> - <div class="breadcrumb-item active"><a href="{{route('admin.index')}}">Dashboard</a></div> + <div class="breadcrumb-item active"><a href="{{ route('admin.index') }}">Dashboard</a></div> <div class="breadcrumb-item">Refund</div> - {{-- <div class="breadcrumb-item">History</div> --}} </div> </div> <div class="col-12"> @@ -36,13 +35,15 @@ <td>{{ $loop->iteration }}</td> <td class="font-weight-600">{{ $refund->orderId }}</a></td> <td class="font-weight-600">{{ $refund->orders->pembeli }}</td> - <td class="font-weight-600">{{ $refund->orders->penjual }}</td> - <td class="font-weight-600">{{ $refund->total }}</td> + <td class="font-weight-600">{{ $refund->orders->penjual }}</td> + <td class="font-weight-600">{{ $refund->total }}</td> <td> - <div class="badge {{ $refund->status == 'Partial Refund' ? 'badge-succes' : ($refund->status == 'Pending' ? 'badge-info' : 'badge-warning') }}">{{ $refund->status }}</div> + <div + class="badge {{ $refund->status == 'Partial Refund' ? 'badge-succes' : ($refund->status == 'Pending' ? 'badge-info' : 'badge-warning') }}"> + {{ $refund->status }}</div> </td> - <td class="font-weight-600">{{ $refund->created_at }}</td> - <td class="font-weight-600">{{ $refund->due_date }}</td> + <td class="font-weight-600">{{ $refund->created_at }}</td> + <td class="font-weight-600">{{ $refund->due_date }}</td> <td> <div class="btn-group"> <button type="button" class="btn btn-primary dropdown-toggle" diff --git a/resources/views/Admin/setting/index.blade.php b/resources/views/Admin/setting/index.blade.php index 9afe505..24423e8 100644 --- a/resources/views/Admin/setting/index.blade.php +++ b/resources/views/Admin/setting/index.blade.php @@ -1,69 +1,95 @@ -@extends('admin.layout.main') +@extends('layouts.main') @section('content') - <div class="main-content"> - <section class="section"> - <div class="section-header"> - <h1>Kebijakan Keuntungan</h1> - <div class="section-header-breadcrumb"> - <div class="breadcrumb-item active"><a href="{{ route('index') }}">Dashboard</a></div> - <div class="breadcrumb-item">Kebijakan Keuntungan</div> - </div> - </div> - <div class="col-12"> - <div class="card"> - <div class="card-body"> - <div class="d-flex justify-content-end mb-3"> - <a class="btn btn-success active" href="#" data-toggle="modal" - data-target="#ModalSetting">Tambah Data Kebijakan</a> - </div> - <div class="table-responsive"> - <table class="table table-striped" id="table-2"> - <thead> - <tr> - <th>#</th> - <th>Bulan</th> - <th>Tahun</th> - <th>Persentase (%)</th> - <th>Status</th> - <th>Action</th> - </tr> - </thead> - <tbody> - @foreach ($settings as $setting) - <tr> - <td>{{ $loop->iteration }}</td> - <td>{{ DateTime::createFromFormat('n', $setting->bulan)->format('F') }}</td> - <td>{{ $setting->tahun }}</td> - <td>{{ $setting->persentase }}</td> - <td> - <div - class="badge {{ $setting->status == 'Active' ? 'badge-success' : 'badge-danger' }}"> - {{ $setting->status }}</div> - </td> - <td> - <label class="switch"> - <input type="checkbox" @if ($setting->status === 'Active') checked @endif - data-id="{{ $setting->id }}"> - <span class="slider round" data-on-text="Yes" data-off-text="No" - id="checkOnOf"></span> - </label> - </td> - </tr> - @endforeach - </tbody> - </table> - </div> - </div> - </div> - </div> - </section> - </div> - @include('admin.setting.modal-add-setting') <script> $(document).ready(function() { - const table = $('#table-2').DataTable(); // Inisialisasi DataTable - $('#table-2').on('change', '.switch input[type="checkbox"]', function() { + $("#bulan").select2(); + + $('#tambahModal').click(function() { + $('#ModalSetting').modal('show'); + }); + + $('#buttonTanya').click(function() { + $('#ModalSetting').modal('hide'); + $('#modalTanya').modal('show'); + }); + + $('#closeModal').click(function() { + $('#ModalSetting').modal('show'); + $('#modalTanya').modal('hide'); + }); + + $('#formTambahSetting').on('submit', function(e) { + e.preventDefault(); + + let form = this; + + + if (!form.checkValidity()) { + form.reportValidity(); + return; + } + + let formData = new FormData(this); + + Swal.fire({ + html: '<div class="mt-3"><lord-icon src="https://cdn.lordicon.com/etwtznjn.json" trigger="loop" colors="primary:#0ab39c,secondary:#405189" style="width:120px;height:120px"></lord-icon><div class="mt-4 pt-2 fs-15"><h4>Form Anda sedang diproses!</h4><p class="text-muted mx-4 mb-0">Mohon tunggu...</p></div></div>', + allowEscapeKey: false, + allowOutsideClick: false, + didOpen: () => { + Swal.showLoading(); + } + }); + + if (formData) { + $.ajax({ + type: 'POST', + url: "{{ route('admin-setting.store') }}", + data: formData, + processData: false, + contentType: false, + success: function(response) { + Swal.fire({ + title: response.status ? 'Berhasil!' : 'Gagal!', + text: response.message, + icon: response.status ? 'success' : 'error', + confirmButtonText: 'OK', + position: 'center', + }).then(function() { + Swal.close(); + if (response.status) { + location.reload(); + } + console.log(response); + }); + }, + error: function(error) { + console.log(error.responseText) + + var response = JSON.parse(error.responseText); + + var errorMessage = ''; + + for (var key in response.errors) { + if (response.errors.hasOwnProperty(key)) { + errorMessage += response.errors[key][0] + '<br>'; + } + } + Swal.fire({ + position: 'center', + icon: 'error', + title: 'Terjadi Kesalahan', + html: errorMessage, + showConfirmButton: true + }); + } + }); + } + }); + + const table = $('#table-5').DataTable(); // Inisialisasi DataTable + + $('#table-5').on('change', '.switch input[type="checkbox"]', function() { const parentRow = $(this).closest('tr'); const csrfToken = $('meta[name="csrf-token"]').attr('content'); const statusBadge = parentRow.find('.badge'); @@ -74,12 +100,17 @@ const rowData = table.row(parentRow).data(); // Dapatkan data baris dari DataTable + $.ajaxSetup({ + headers: { + 'X-CSRF-TOKEN': csrfToken + } + }); + $.ajax({ - url: "{{ route('admin-setting.update', ':admin_setting') }}".replace( - ':admin_setting', dataId), + url: "{{ route('admin-setting.active-setting') }}", type: 'PUT', data: { - _token: csrfToken, + id: dataId, }, success: function(response) { Swal.fire({ @@ -112,74 +143,66 @@ } }); }); - - $("#bulan").select2(); - - $('#formTambahSetting').on('submit', function(e) { - e.preventDefault(); - - let form = this; - - if (!form.checkValidity()) { - form.reportValidity(); - return; - } - - let formData = new FormData(this); - - Swal.fire({ - html: '<div class="mt-3"><lord-icon src="https://cdn.lordicon.com/etwtznjn.json" trigger="loop" colors="primary:#0ab39c,secondary:#405189" style="width:120px;height:120px"></lord-icon><div class="mt-4 pt-2 fs-15"><h4>Form Anda sedang diproses!</h4><p class="text-muted mx-4 mb-0">Mohon tunggu...</p></div></div>', - allowEscapeKey: false, - allowOutsideClick: false, - didOpen: () => { - Swal.showLoading() - } - }); - - $.ajax({ - type: 'POST', - url: `{{ route('admin-setting.store') }}`, - data: formData, - proccessData: false, - contentType: false, - success: function(response) { - Swal.fire({ - title: response.status ? 'Berhasil!' : 'Gagal!', - text: response.message, - icon: response.status ? 'success' : 'error', - confirmButtonText: 'OK', - position: 'center', - }).then(function() { - // location.reload(); - Swal.close(); - if (response.status) { - $('#table-2').DataTable().draw(); - form.reset(); - } - }); - }, - error: function(error) { - console.log(error.responseText) - - var response = JSON.parse(error.responseText); - - var errorMessage = ''; - - for (var key in response.errors) { - if (response.errors.hasOwnProperty(key)) { - errorMessage += response.errors[key][0] + '<br>'; - } - } - Swal.fire({ - position: 'center', - icon: 'error', - title: 'Terjadi Kesalahan', - html: errorMessage, - showConfirmButton: true - }); - } - }); - }); }); </script> + <div class="main-content"> + <section class="section"> + <div class="section-header"> + <h1>Kebijakan Keuntungan</h1> + <div class="section-header-breadcrumb"> + <div class="breadcrumb-item active"><a href="{{ route('admin.index') }}">Dashboard</a></div> + <div class="breadcrumb-item">Kebijakan Keuntungan</div> + </div> + </div> + <div class="col-12"> + <div class="card"> + <div class="card-body"> + <div class="d-flex justify-content-end mb-3"> + <a class="btn btn-success active" href="#" id="tambahModal">Tambah Data Kebijakan</a> + </div> + <div class="table-responsive"> + <table class="table table-striped" id="table-5"> + <thead> + <tr> + <th>#</th> + <th>Bulan</th> + <th>Tahun</th> + <th>Persentase (%)</th> + <th>Status</th> + <th>Action</th> + </tr> + </thead> + <tbody> + @foreach ($settings as $setting) + <tr> + <td>{{ $loop->iteration }}</td> + <td>{{ DateTime::createFromFormat('n', $setting->bulan)->format('F') }}</td> + <td>{{ $setting->tahun }}</td> + <td>{{ $setting->persentase }}</td> + <td> + <div + class="badge {{ $setting->status == 'Active' ? 'badge-success' : 'badge-danger' }}"> + {{ $setting->status }} + </div> + </td> + <td> + <label class="switch"> + <input type="checkbox" @if ($setting->status === 'Active') checked @endif + data-id="{{ $setting->id }}"> + <span class="slider round" data-on-text="Yes" data-off-text="No" + id="checkOnOf"></span> + </label> + </td> + </tr> + @endforeach + </tbody> + </table> + </div> + </div> + </div> + </div> + </section> + </div> + @include('admin.setting.modal-add-setting') + @include('admin.setting.modal-tanya') @endsection diff --git a/resources/views/Admin/setting/modal-add-setting.blade.php b/resources/views/Admin/setting/modal-add-setting.blade.php index 4a90639..556862f 100644 --- a/resources/views/Admin/setting/modal-add-setting.blade.php +++ b/resources/views/Admin/setting/modal-add-setting.blade.php @@ -1,62 +1,62 @@ - <div class="modal fade" id="ModalSetting" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" - aria-hidden="true"> - <div class="modal-dialog modal-dialog-centered" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <h2 class="modal-title" id="exampleModalLongTitle">Tambah Kebijakan</h2> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> - </div> - <div class="modal-body"> - <div class="section-body"> - <div class="row"> - <div class="col-12"> - <form action="javascript:void(0);" id="formTambahSetting"> - @csrf - <div class="card-header"> - <h4>Tambah data kebijakan persentase keuntungan</h4> +<div class="modal fade" id="ModalSetting" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" + aria-hidden="true"> + <div class="modal-dialog modal-dialog-centered" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <h2 class="modal-title" id="exampleModalLongTitle">Tambah Kebijakan</h2> + <button type="button" class="close" aria-label="Close" id="buttonTanya"> + <span aria-hidden="true">?</span> + </button> + </div> + <div class="modal-body"> + <div class="section-body"> + <div class="row"> + <div class="col-12"> + <form action="javascript:void(0);" id="formTambahSetting"> + @csrf + <div class="card-body"> + <div class="form-group"> + <label>Bulan</label> + <br> + <select class="form-control" style="width: 100%" id="bulanSetting" + name="bulan" required> + <option selected disabled>Pilih bulan</option> + <option value="1">Januari</option> + <option value="2">Februari</option> + <option value="3">Maret</option> + <option value="4">April</option> + <option value="5">May</option> + <option value="6">Juni</option> + <option value="7">Juli</option> + <option value="8">Agustus</option> + <option value="9">September</option> + <option value="10">Oktober</option> + <option value="11">November</option> + <option value="12">Desember</option> + </select> </div> - <div class="card-body"> - <div class="form-group"> - <label>Bulan</label> - <select class="form-control" id="bulan" name="bulan" required> - <option selected disabled>Pilih bulan</option> - <option value="1">Januari</option> - <option value="2">Februari</option> - <option value="3">Maret</option> - <option value="4">April</option> - <option value="5">May</option> - <option value="6">Juni</option> - <option value="7">Juli</option> - <option value="8">Agustus</option> - <option value="9">September</option> - <option value="10">Oktober</option> - <option value="11">November</option> - <option value="12">Desember</option> - </select> - </div> - <div class="form-group"> - <label>Tahun</label> - <input type="text" class="form-control" name="tahun" id="tahun" - oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/(\..*?)\..*/g, '$1');" - required placeholder="Masukan tahun"> - </div> - <div class="form-group"> - <label>Persentase (%)</label> - <input type="number" class="form-control" name="persentase" id="persentase" - oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1');" - required> - </div> + <div class="form-group"> + <label>Tahun</label> + <input type="text" class="form-control" name="tahun" id="tahunSetting" + oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/(\..*?)\..*/g, '$1');" + required placeholder="Masukan tahun"> </div> - <div class="card-footer text-right"> - <button class="btn btn-primary" id="simpan" type="submit">Simpan</button> + <div class="form-group"> + <label>Persentase (%)</label> + <input type="text" class="form-control" name="persentase" + id="persentaseSetting" + oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1');" + required> </div> - </form> - </div> + </div> + <div class="card-footer text-right"> + <button class="btn btn-primary" id="simpanSetting" type="submit">Simpan</button> + </div> + </form> </div> </div> </div> </div> </div> </div> +</div> diff --git a/resources/views/Admin/setting/modal-tanya.blade.php b/resources/views/Admin/setting/modal-tanya.blade.php new file mode 100644 index 0000000..d490122 --- /dev/null +++ b/resources/views/Admin/setting/modal-tanya.blade.php @@ -0,0 +1,20 @@ +<div class="modal fade" id="modalTanya" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true"> + <div class="modal-dialog modal-dialog-centered" role="document"> + <div class="modal-content"> + <div class="modal-header d-flex justify-content-center"> + <h3 class="modal-title fs-5" id="staticBackdropLabel">Cara Kerja Tambah/Perbarui Kebijakan</h3> + <button type="button" class="close" aria-label="Close" id="closeModal"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <div class="mb-3"> + <h5>Tambah atau Perbarui</h5> + <p class="form-control">Anda bisa memperbarui persentase data dengan menyamai data bulan dan tahun. + Hal ini tidak akan mengubah data sebelumnya. + </p> + </div> + </div> + </div> + </div> +</div> diff --git a/resources/views/Admin/transaction/detail-transaction.blade.php b/resources/views/Admin/transaction/detail-transaction.blade.php index 65effb6..7f2512f 100644 --- a/resources/views/Admin/transaction/detail-transaction.blade.php +++ b/resources/views/Admin/transaction/detail-transaction.blade.php @@ -1,11 +1,11 @@ -@extends('Admin.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> <div class="section-header"> <h1>Detail Transaction</h1> <div class="section-header-breadcrumb"> - <div class="breadcrumb-item active"><a href="{{route('admin.index')}}">Dashboard</a></div> + <div class="breadcrumb-item active"><a href="{{ route('admin.index') }}">Dashboard</a></div> <div class="breadcrumb-item">Transaction</div> <div class="breadcrumb-item">Details</div> </div> diff --git a/resources/views/Admin/transaction/index.blade.php b/resources/views/Admin/transaction/index.blade.php index de0e718..4eaddf5 100644 --- a/resources/views/Admin/transaction/index.blade.php +++ b/resources/views/Admin/transaction/index.blade.php @@ -1,13 +1,12 @@ -@extends('Admin.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> <div class="section-header"> - <h1>History Transaction</h1> + <h1>Transaksi</h1> <div class="section-header-breadcrumb"> - <div class="breadcrumb-item active"><a href="{{route('index')}}">Dashboard</a></div> - <div class="breadcrumb-item">Transaction</div> - <div class="breadcrumb-item">History</div> + <div class="breadcrumb-item active"><a href="{{ route('admin.index') }}">Dashboard</a></div> + <div class="breadcrumb-item">Transaksi</div> </div> </div> <div class="col-12"> @@ -49,7 +48,8 @@ $statusClass = 'badge-danger'; } @endphp - <div class="badge {{ $transaction->status }}">{{ $transaction['status'] }}</div> + <div class="badge {{ $transaction->status }}">{{ $transaction['status'] }} + </div> </td> <td> <div class="btn-group"> @@ -58,7 +58,8 @@ Action </button> <div class="dropdown-menu"> - <a class="dropdown-item" href="{{route('transaction.detail')}}">Details</a> + <a class="dropdown-item" + href="{{ route('transaction.detail') }}">Details</a> <a class="dropdown-item" href="#" data-toggle="modal" data-target="#ModalTransaction">Tracking</a> <a class="dropdown-item" href="#">Delete</a> diff --git a/resources/views/Admin/users/detail-user.blade.php b/resources/views/Admin/users/detail-user.blade.php index aba7f42..f58cb7c 100644 --- a/resources/views/Admin/users/detail-user.blade.php +++ b/resources/views/Admin/users/detail-user.blade.php @@ -1,4 +1,4 @@ -@extends('admin.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> @@ -28,7 +28,9 @@ class="rounded-circle shadow align-self-center" style="max-width: 130px;" alt="" srcset=""> @endif - <h4 class="align-self-center mt-3">Status : {{$user->status == 'Finished' ? 'Selesai diverifikasi' : ($user->status == 'Progress' ? 'Sedang diverifikasi' : 'Tolak')}}</h4> + <h4 class="align-self-center mt-3">Status : + {{ $user->status == 'Finished' ? 'Selesai diverifikasi' : ($user->status == 'Progress' ? 'Sedang diverifikasi' : 'Tolak') }} + </h4> <hr class="border border-1 opacity-75 w-100"> <div class="data-field"> <span class="fw-bold text-start">NIK</span> @@ -104,7 +106,8 @@ <a href="#" id="tampilKTP"> <img id="fotoKTP" src="{{ asset('storage/foto-ktp/' . $user->foto_ktp) }}" - alt="Foto Wajah" class="align-self-center img-fluid" style="width: 450px"> + alt="Foto Wajah" class="align-self-center img-fluid" + style="width: 450px"> </a> @endif </div> @@ -119,7 +122,8 @@ <a href="#" id="tampilWajah"> <img id="fotoWajah" src="{{ asset('storage/foto-wajah/' . $user->foto_wajah) }}" - alt="Foto Wajah" class="align-self-center img-fluid" style="width: 400px"> + alt="Foto Wajah" class="align-self-center img-fluid" + style="width: 400px"> </a> @endif </div> diff --git a/resources/views/Admin/users/index.blade.php b/resources/views/Admin/users/index.blade.php index 5878203..b302810 100644 --- a/resources/views/Admin/users/index.blade.php +++ b/resources/views/Admin/users/index.blade.php @@ -1,4 +1,4 @@ -@extends('admin.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> diff --git a/resources/views/User/contact/index.blade.php b/resources/views/User/contact/index.blade.php index 32fb370..f72dddd 100644 --- a/resources/views/User/contact/index.blade.php +++ b/resources/views/User/contact/index.blade.php @@ -1,15 +1,13 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> <div class="section-header"> - <h1>Manajemen Contact</h1> + <h1>Kontak</h1> <div class="section-header-breadcrumb"> - <div class="breadcrumb-item active"><a href="#">Dashboard</a></div> - <div class="breadcrumb-item"><a href="#"> Transaction</a></div> - <div class="breadcrumb-item">Manajemen Kontak</div> - <div class="breadcrumb-item">Halaman Refund</div> + <div class="breadcrumb-item active"><a href="{{ route('user.index') }}">Dashboard</a></div> + <div class="breadcrumb-item"><a href="{{ route('user-contact.index') }}">Kontak</a></div> </div> </div> diff --git a/resources/views/User/index.blade.php b/resources/views/User/index.blade.php index d745eac..34f7676 100644 --- a/resources/views/User/index.blade.php +++ b/resources/views/User/index.blade.php @@ -1,4 +1,4 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <!-- Main Content --> <div class="main-content"> @@ -20,7 +20,22 @@ <li><a href="#" class="dropdown-item">May</a></li> <li><a href="#" class="dropdown-item">June</a></li> <li><a href="#" class="dropdown-item">July</a></li> - <li><a href="#" class="dropdown-item active">August</a></li> + <li><a href="#" class="dropdown-item {{}}">August</a></li> + <li><a href="#" class="dropdown-item">September</a></li> + <li><a href="#" class="dropdown-item">October</a></li> + <li><a href="#" class="dropdown-item">November</a></li> + <li><a href="#" class="dropdown-item">December</a></li> + </ul> + <ul class="dropdown-menu dropdown-menu-sm"> + <li class="dropdown-title">Select Year</li> + <li><a href="#" class="dropdown-item">January</a></li> + <li><a href="#" class="dropdown-item">February</a></li> + <li><a href="#" class="dropdown-item">March</a></li> + <li><a href="#" class="dropdown-item">April</a></li> + <li><a href="#" class="dropdown-item">May</a></li> + <li><a href="#" class="dropdown-item">June</a></li> + <li><a href="#" class="dropdown-item">July</a></li> + <li><a href="#" class="dropdown-item">August</a></li> <li><a href="#" class="dropdown-item">September</a></li> <li><a href="#" class="dropdown-item">October</a></li> <li><a href="#" class="dropdown-item">November</a></li> diff --git a/resources/views/User/layout/header.blade.php b/resources/views/User/layout/header.blade.php deleted file mode 100644 index b5bc0f4..0000000 --- a/resources/views/User/layout/header.blade.php +++ /dev/null @@ -1,226 +0,0 @@ -<div class="navbar-bg"></div> -<nav class="navbar navbar-expand-lg main-navbar"> - <form class="form-inline mr-auto"> - <ul class="navbar-nav mr-3"> - <li><a href="#" data-toggle="sidebar" class="nav-link nav-link-lg"><i class="fas fa-bars"></i></a></li> - <li><a href="#" data-toggle="search" class="nav-link nav-link-lg d-sm-none"><i - class="fas fa-search"></i></a></li> - </ul> - {{-- <div class="search-element"> - <input class="form-control" type="search" placeholder="Search" aria-label="Search" data-width="250"> - <button class="btn" type="submit"><i class="fas fa-search"></i></button> - <div class="search-backdrop"></div> - <div class="search-result"> - <div class="search-header"> - Histories - </div> - <div class="search-item"> - <a href="#">How to hack NASA using CSS</a> - <a href="#" class="search-close"><i class="fas fa-times"></i></a> - </div> - <div class="search-item"> - <a href="#">Kodinger.com</a> - <a href="#" class="search-close"><i class="fas fa-times"></i></a> - </div> - <div class="search-item"> - <a href="#">#Stisla</a> - <a href="#" class="search-close"><i class="fas fa-times"></i></a> - </div> - <div class="search-header"> - Result - </div> - <div class="search-item"> - <a href="#"> - <img class="mr-3 rounded" width="30" src="assets/img/products/product-3-50.png" - alt="product"> - oPhone S9 Limited Edition - </a> - </div> - <div class="search-item"> - <a href="#"> - <img class="mr-3 rounded" width="30" src="assets/img/products/product-2-50.png" - alt="product"> - Drone X2 New Gen-7 - </a> - </div> - <div class="search-item"> - <a href="#"> - <img class="mr-3 rounded" width="30" src="assets/img/products/product-1-50.png" - alt="product"> - Headphone Blitz - </a> - </div> - <div class="search-header"> - Projects - </div> - <div class="search-item"> - <a href="#"> - <div class="search-icon bg-danger text-white mr-3"> - <i class="fas fa-code"></i> - </div> - Stisla Admin Template - </a> - </div> - <div class="search-item"> - <a href="#"> - <div class="search-icon bg-primary text-white mr-3"> - <i class="fas fa-laptop"></i> - </div> - Create a new Homepage Design - </a> - </div> - </div> - </div> --}} - </form> - <ul class="navbar-nav navbar-right"> - <li class="dropdown dropdown-list-toggle"><a href="#" data-toggle="dropdown" - class="nav-link nav-link-lg message-toggle beep"><i class="far fa-envelope"></i></a> - <div class="dropdown-menu dropdown-list dropdown-menu-right"> - <div class="dropdown-header">Messages - <div class="float-right"> - <a href="#">Mark All As Read</a> - </div> - </div> - <div class="dropdown-list-content dropdown-list-message"> - <a href="#" class="dropdown-item dropdown-item-unread"> - <div class="dropdown-item-avatar"> - <img alt="image" src="{{asset('assets/img/avatar/avatar-1.png')}}" class="rounded-circle"> - <div class="is-online"></div> - </div> - <div class="dropdown-item-desc"> - <b>Kusnaedi</b> - <p>Hello, Bro!</p> - <div class="time">10 Hours Ago</div> - </div> - </a> - <a href="#" class="dropdown-item dropdown-item-unread"> - <div class="dropdown-item-avatar"> - <img alt="image" src="{{asset('assets/img/avatar/avatar-2.png')}}" class="rounded-circle"> - </div> - <div class="dropdown-item-desc"> - <b>Dedik Sugiharto</b> - <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p> - <div class="time">12 Hours Ago</div> - </div> - </a> - <a href="#" class="dropdown-item dropdown-item-unread"> - <div class="dropdown-item-avatar"> - <img alt="image" src="{{asset('assets/img/avatar/avatar-3.png')}}" class="rounded-circle"> - <div class="is-online"></div> - </div> - <div class="dropdown-item-desc"> - <b>Agung Ardiansyah</b> - <p>Sunt in culpa qui officia deserunt mollit anim id est laborum.</p> - <div class="time">12 Hours Ago</div> - </div> - </a> - <a href="#" class="dropdown-item"> - <div class="dropdown-item-avatar"> - <img alt="image" src="{{asset('assets/img/avatar/avatar-4.png')}}" class="rounded-circle"> - </div> - <div class="dropdown-item-desc"> - <b>Ardian Rahardiansyah</b> - <p>Duis aute irure dolor in reprehenderit in voluptate velit ess</p> - <div class="time">16 Hours Ago</div> - </div> - </a> - <a href="#" class="dropdown-item"> - <div class="dropdown-item-avatar"> - <img alt="image" src="{{asset('assets/img/avatar/avatar-5.png')}}" class="rounded-circle"> - </div> - <div class="dropdown-item-desc"> - <b>Alfa Zulkarnain</b> - <p>Exercitation ullamco laboris nisi ut aliquip ex ea commodo</p> - <div class="time">Yesterday</div> - </div> - </a> - </div> - <div class="dropdown-footer text-center"> - <a href="#">View All <i class="fas fa-chevron-right"></i></a> - </div> - </div> - </li> - <li class="dropdown dropdown-list-toggle"><a href="#" data-toggle="dropdown" - class="nav-link notification-toggle nav-link-lg beep"><i class="far fa-bell"></i></a> - <div class="dropdown-menu dropdown-list dropdown-menu-right"> - <div class="dropdown-header">Notifications - <div class="float-right"> - <a href="#">Mark All As Read</a> - </div> - </div> - <div class="dropdown-list-content dropdown-list-icons"> - <a href="#" class="dropdown-item dropdown-item-unread"> - <div class="dropdown-item-icon bg-primary text-white"> - <i class="fas fa-code"></i> - </div> - <div class="dropdown-item-desc"> - Template update is available now! - <div class="time text-primary">2 Min Ago</div> - </div> - </a> - <a href="#" class="dropdown-item"> - <div class="dropdown-item-icon bg-info text-white"> - <i class="far fa-user"></i> - </div> - <div class="dropdown-item-desc"> - <b>You</b> and <b>Dedik Sugiharto</b> are now friends - <div class="time">10 Hours Ago</div> - </div> - </a> - <a href="#" class="dropdown-item"> - <div class="dropdown-item-icon bg-success text-white"> - <i class="fas fa-check"></i> - </div> - <div class="dropdown-item-desc"> - <b>Kusnaedi</b> has moved task <b>Fix bug header</b> to <b>Done</b> - <div class="time">12 Hours Ago</div> - </div> - </a> - <a href="#" class="dropdown-item"> - <div class="dropdown-item-icon bg-danger text-white"> - <i class="fas fa-exclamation-triangle"></i> - </div> - <div class="dropdown-item-desc"> - Low disk space. Let's clean it! - <div class="time">17 Hours Ago</div> - </div> - </a> - <a href="#" class="dropdown-item"> - <div class="dropdown-item-icon bg-info text-white"> - <i class="fas fa-bell"></i> - </div> - <div class="dropdown-item-desc"> - Welcome to Stisla template! - <div class="time">Yesterday</div> - </div> - </a> - </div> - <div class="dropdown-footer text-center"> - <a href="#">View All <i class="fas fa-chevron-right"></i></a> - </div> - </div> - </li> - <li class="dropdown"><a href="#" data-toggle="dropdown" - class="nav-link dropdown-toggle nav-link-lg nav-link-user"> - <img alt="image" src="{{asset('assets/img/avatar/avatar-1.png')}}" class="rounded-circle mr-1"> - <div class="d-sm-none d-lg-inline-block">Hi, {{ Auth::user()->nama_depan }}</div> - </a> - <div class="dropdown-menu dropdown-menu-right"> - <div class="dropdown-title">Logged in 5 min ago</div> - <a href="{{route('user.profile')}}" class="dropdown-item has-icon"> - <i class="far fa-user"></i> Profile - </a> - {{-- <a href="features-activities.html" class="dropdown-item has-icon"> - <i class="fas fa-bolt"></i> Activities - </a> - <a href="features-settings.html" class="dropdown-item has-icon"> - <i class="fas fa-cog"></i> Settings - </a> --}} - <div class="dropdown-divider"></div> - <a href="{{route('logout')}}" class="dropdown-item has-icon text-danger"> - <i class="fas fa-sign-out-alt"></i> Logout - </a> - </div> - </li> - </ul> -</nav> diff --git a/resources/views/User/layout/main.blade.php b/resources/views/User/layout/main.blade.php deleted file mode 100644 index a2b5cac..0000000 --- a/resources/views/User/layout/main.blade.php +++ /dev/null @@ -1,158 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - -<head> - <style> - .data-field { - display: flex; - width: 100%; - justify-content: space-between; - font-size: 14px; - } - - .data-field:not(:last-child) { - margin-bottom: 15px; - } - - .data-field span { - text-align: end; - } - - .card-title span a { - color: #899bbd; - text-decoration: underline; - } - - .justified-text { - text-align: justify; - } - - .font-weight-italic { - font-style: italic; - } - </style> - - <meta charset="UTF-8"> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport"> - <meta name="csrf-token" content="{{ csrf_token() }}"> - <title>REKBER</title> - - <!-- General CSS Files --> - <link rel="stylesheet" href="{{ asset('assets/modules/bootstrap/css/bootstrap.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/fontawesome/css/all.min.css') }}"> - <link rel="stylesheet" href="https://cdn.materialdesignicons.com/5.4.55/css/materialdesignicons.min.css"> - <link rel="stylesheet" href="{{ asset('assets/modules/jqvmap/dist/jqvmap.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/summernote/summernote-bs4.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.carousel.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.theme.default.min.css') }}"> - <link rel="stylesheet" type="text/css" - href="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.css" /> - - <!-- Template CSS --> - <link rel="stylesheet" href="{{ asset('assets/css/style.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/css/components.css') }}"> - - {{-- CSS Libraries --}} - <link rel="stylesheet" href="{{ asset('assets/modules/datatables/datatables.min.css') }}"> - <link rel="stylesheet" - href="{{ asset('assets/modules/datatables/DataTables-1.10.16/css/dataTables.bootstrap4.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/modules/datatables/Select-1.2.4/css/select.bootstrap4.min.css') }}"> - <link rel="stylesheet" href="{{ asset('assets/css/main.css') }}"> - - {{-- JS --}} - <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" - integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" - crossorigin="anonymous" referrerpolicy="no-referrer"></script> - <script src="{{ asset('assets/modules/chart.min.js') }}"></script> -</head> - -<body> - - <header class="header-area header-sticky"> - @include('user.layout.header') - </header> - - <!-- ***** Main Banner Area Start ***** --> - <main id="main" style="min-height: 100vh;"> - @include('user.layout.sidebar') - @yield('content') - </main> - - <!-- End #main --> - <footer id="footer"> - @include('user.layout.footer') - </footer> - - <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script> - - <!-- General JS Scripts --> - <script src="{{ asset('assets/modules/popper.js') }}"></script> - <script src="{{ asset('assets/modules/tooltip.js') }}"></script> - <script src="{{ asset('assets/modules/bootstrap/js/bootstrap.min.js') }}"></script> - <script src="{{ asset('assets/modules/moment.min.js') }}"></script> - <script src="{{ asset('assets/js/stisla.js') }}"></script> - <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> - - <!-- JS Libraies --> - <script src="{{ asset('assets/modules/owlcarousel2/dist/owl.carousel.min.js') }}"></script> - <script src="{{ asset('assets/modules/summernote/summernote-bs4.js') }}"></script> - - <!-- JS Libraies --> - <script src="{{ asset('assets/modules/datatables/datatables.min.js') }}"></script> - <script src="{{ asset('assets/modules/datatables/DataTables-1.10.16/js/dataTables.bootstrap4.min.js') }}"></script> - <script src="{{ asset('assets/modules/datatables/Select-1.2.4/js/dataTables.select.min.js') }}"></script> - - <!-- Page Specific JS File --> - <script src="{{ asset('assets/js/page/modules-datatables.js') }}"></script> - - <!-- Page Specific JS File --> - <script src="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.min.js"></script>i - - <!-- Template JS File --> - <script src="{{ asset('assets/js/scripts.js') }}"></script> - - <script> - $(document).ready(function() { - let searchParams = new URLSearchParams(window.location.search); - let dateInterval = searchParams.get('from-to'); - let start = moment().subtract(29, 'days'); - let end = moment(); - - if (dateInterval) { - dateInterval = dateInterval.split(' - '); - start = moment(dateInterval[0]); - end = moment(dateInterval[1]); - } - - $('#date-range').daterangepicker({ - "showDropdowns": true, - "showWeekNumbers": true, - "alwaysShowCalendars": true, - startDate: start, - endDate: end, - locale: { - format: 'YYYY-MM-DD', - firstDay: 1, - }, - ranges: { - 'Today': [moment(), moment()], - 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], - 'Last 7 Days': [moment().subtract(6, 'days'), moment()], - 'Last 30 Days': [moment().subtract(29, 'days'), moment()], - 'This Month': [moment().startOf('month'), moment().endOf('month')], - 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, - 'month').endOf( - 'month')], - 'This Year': [moment().startOf('year'), moment().endOf('year')], - 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year') - .endOf( - 'year') - ], - 'All time': [moment().subtract(30, 'year').startOf('month'), moment().endOf('month')], - } - }); - }); - </script> -</body> - -</html> diff --git a/resources/views/User/layout/progress-bar.blade.php b/resources/views/User/layout/progress-bar.blade.php deleted file mode 100644 index 06428d6..0000000 --- a/resources/views/User/layout/progress-bar.blade.php +++ /dev/null @@ -1,15 +0,0 @@ -<div class="modal fade " id="modalProgressBar" data-backdrop="static" data-keyboard="false" tabindex="-1" - aria-labelledby="staticBackdropLabel" aria-hidden="true"> - <div class="modal-dialog"> - <div class="modal-content"> - <div class="modal-header d-flex justify-content-center"> - <h3 class="modal-title fs-5" id="staticBackdropLabel">Sedang Memuat</h3> - </div> - <div class="modal-body"> - <div class="mb-3"> - <label class="form-label d-flex justify-content-center">Tunggu Sejenak...</label> - </div> - </div> - </div> - </div> -</div> diff --git a/resources/views/User/layout/sidebar.blade.php b/resources/views/User/layout/sidebar.blade.php deleted file mode 100644 index 37f6449..0000000 --- a/resources/views/User/layout/sidebar.blade.php +++ /dev/null @@ -1,52 +0,0 @@ -<div class="main-sidebar sidebar-style-2"> - <aside id="sidebar-wrapper"> - <div class="sidebar-brand"> - <a href="{{route('user.index')}}">REKBER</a> - </div> - <div class="sidebar-brand sidebar-brand-sm"> - <a href="{{route('user.index')}}">RK</a> - </div> - <ul class="sidebar-menu"> - <li class="menu-header">Dashboard</li> - - <li><a class="nav-link active" href="{{route('user.index')}}"><i class="fas fa-fire"></i> <span>Dashboard</span></a></li> - - <li class="menu-header">Starter</li> - - <li class="drop-down "> - <a class="nav-link" data-toggle="collapse" href="#submenuTransaction" aria-expanded="false" aria-controls="submenuTransaction"> - <i class="fas fa-columns"></i><span>Transaksi</span> <i class="fas fa-caret-down"></i> - </a> - - <div id="submenuTransaction" class="collapse"> - <ul class="nav flex-column sub-menu"> - <li class="nav-item"> - <a class="nav-link" href="{{route('user-transaction.index.pembeli')}}"> - <i class="fas fa-users"></i> Pembeli - </a> - </li> - <li class="nav-item"> - <a class="nav-link" href="{{route('user-transaction.index.penjual')}}"> - <i class="fas fa-user"></i> Penjual - </a> - </li> - </ul> - </div> - </li> - <li> - <a class="nav-link active" href="{{route('user-contact.index')}}"> - <i class="fas fa-address-book"></i> <span>Kontak</span> - </a> - </li> - - - <li> - <a class="nav-link active" href="{{route('user-refund.index')}}"> - <i class="fas fa-money-check-alt"></i> <span>Refund</span> - </a> - </li> - - </ul> - </aside> -</div> -<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.min.js') }}"></script> diff --git a/resources/views/User/profile/index.blade.php b/resources/views/User/profile/index.blade.php deleted file mode 100644 index aa96df5..0000000 --- a/resources/views/User/profile/index.blade.php +++ /dev/null @@ -1,375 +0,0 @@ -@extends('user.layout.main') -@section('content') - <div class="main-content"> - <section class="section"> - <div class="section-header"> - <h1>Profile</h1> - </div> - <div class="card-body profile-card py-2 d-flex flex-column align-items-center text-center" style="border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); position: relative; background: linear-gradient(45deg, #f3f3f3, #e0e0e0);"> - <i class="bi bi-arrow-right" style="position: absolute; top: 10px; right: 10px; font-size: 24px;"></i> - <img src="{{asset('assets/img/avatar/ok.jpg')}}" alt="Profile" class="rounded-circle" style="width: 150px; height: 150px;"> - <h2 class="mt-3">Nurul Prima Annisa</h2> - <h5 class="mb-0">#123udfai90-20udf82</h5> - </div> - - <div class="card"> - <div class="card-body pt-3"> - <!-- Bordered Tabs --> - <ul class="nav nav-tabs nav-tabs-bordered"> - - <li class="nav-item"> - <button class="nav-link active" data-bs-toggle="tab" - data-bs-target="#profile-overview">Overview</button> - </li> - - <li class="nav-item"> - <button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile-edit">Edit - Profile</button> - </li> - - <li class="nav-item"> - <button class="nav-link" data-bs-toggle="tab" - data-bs-target="#profile-settings">Settings</button> - </li> - - <li class="nav-item"> - <button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile-change-password">Change - Password</button> - </li> - - </ul> - <div class="tab-content pt-2"> - - <div class="tab-pane fade show active profile-overview" id="profile-overview"> - <h5 class="card-title">About</h5> - <p class="small fst-italic">Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul - prima - annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima - annisa Nurul prima annisa - </p> - - <h5 class="card-title">Profile Details</h5> - - <div class="row"> - <div class="col-lg-3 col-md-4 label ">Full Name</div> - <div class="col-lg-9 col-md-8">Nurul Prima Annisa</div> - </div> - - <div class="row"> - <div class="col-lg-3 col-md-4 label">Company</div> - <div class="col-lg-9 col-md-8">Ya apa yak</div> - </div> - - <div class="row"> - <div class="col-lg-3 col-md-4 label">Job</div> - <div class="col-lg-9 col-md-8">Frontend Web </div> - </div> - - <div class="row"> - <div class="col-lg-3 col-md-4 label">Country</div> - <div class="col-lg-9 col-md-8">Indonesia</div> - </div> - - <div class="row"> - <div class="col-lg-3 col-md-4 label">Address</div> - <div class="col-lg-9 col-md-8">Depok city broww</div> - </div> - - <div class="row"> - <div class="col-lg-3 col-md-4 label">Phone</div> - <div class="col-lg-9 col-md-8">(+62) 486-3538 29071</div> - </div> - - <div class="row"> - <div class="col-lg-3 col-md-4 label">Email</div> - <div class="col-lg-9 col-md-8">npannisa23@gmail.com</div> - </div> - - </div> - - <div class="tab-pane fade profile-edit pt-3" id="profile-edit"> - - <!-- Profile Edit Form --> - <form> - <div class="row mb-3"> - <label for="profileImage" class="col-md-4 col-lg-3 col-form-label">Profile Image</label> - <div class="col-md-8 col-lg-9"> - <img id="profileImagePreview" src="{{asset('assets/img/avatar/ok.jpg')}}" alt="Profile" - style="max-width: 100%; max-height: 150px;"> - <div class="d-flex justify-content-between align-items-center mt-2"> - <label for="profileImageInput" class="btn btn-primary btn-sm" - title="Upload new profile image"> - <i class="bi bi-upload"></i> Upload - <input type="file" id="profileImageInput" accept="image/*" - style="display: none;"> - </label> - </div> - - </div> - - </div> - - <div class="row mb-3"> - <label for="fullName" class="col-md-4 col-lg-3 col-form-label">Full Name</label> - <div class="col-md-8 col-lg-9"> - <input name="fullName" type="text" class="form-control" id="fullName" - value="Nurul Prima Annisa"> - </div> - </div> - - <div class="row mb-3"> - <label for="about" class="col-md-4 col-lg-3 col-form-label">About</label> - <div class="col-md-8 col-lg-9"> - <textarea name="about" class="form-control" id="about" style="height: 100px"> - - </textarea> - </div> - </div> - - <div class="row mb-3"> - <label for="company" class="col-md-4 col-lg-3 col-form-label">Company</label> - <div class="col-md-8 col-lg-9"> - <input name="company" type="text" class="form-control" id="company" - value="Abbauf Mulia Konsultan Teknologi"> - </div> - </div> - - <div class="row mb-3"> - <label for="Job" class="col-md-4 col-lg-3 col-form-label">Job</label> - <div class="col-md-8 col-lg-9"> - <input name="job" type="text" class="form-control" id="Job" - value="Frontend Web"> - </div> - </div> - - <div class="row mb-3"> - <label for="Country" class="col-md-4 col-lg-3 col-form-label">Country</label> - <div class="col-md-8 col-lg-9"> - <input name="country" type="text" class="form-control" id="Country" - value="Indonesia"> - </div> - </div> - - <div class="row mb-3"> - <label for="Address" class="col-md-4 col-lg-3 col-form-label">Address</label> - <div class="col-md-8 col-lg-9"> - <input name="address" type="text" class="form-control" id="Address" - value="Depok city broww"> - </div> - </div> - - <div class="row mb-3"> - <label for="Phone" class="col-md-4 col-lg-3 col-form-label">Phone</label> - <div class="col-md-8 col-lg-9"> - <input name="phone" type="text" class="form-control" id="Phone" - value="(+62) 486-3538 29071"> - </div> - </div> - - <div class="row mb-3"> - <label for="Email" class="col-md-4 col-lg-3 col-form-label">Email</label> - <div class="col-md-8 col-lg-9"> - <input name="email" type="email" class="form-control" id="Email" - value="npannisa23@gmail.com"> - </div> - </div> - - {{-- <div class="row mb-3"> - <label for="Twitter" class="col-md-4 col-lg-3 col-form-label">Twitter Profile</label> - <div class="col-md-8 col-lg-9"> - <input name="twitter" type="text" class="form-control" id="Twitter" - value="https://twitter.com/#"> - </div> - </div> - - <div class="row mb-3"> - <label for="Facebook" class="col-md-4 col-lg-3 col-form-label">Facebook - Profile</label> - <div class="col-md-8 col-lg-9"> - <input name="facebook" type="text" class="form-control" id="Facebook" - value="https://facebook.com/#"> - </div> - </div> - - <div class="row mb-3"> - <label for="Instagram" class="col-md-4 col-lg-3 col-form-label">Instagram - Profile</label> - <div class="col-md-8 col-lg-9"> - <input name="instagram" type="text" class="form-control" id="Instagram" - value="https://instagram.com/npannisa_?utm_source=qr&igshid=MzNlNGNkZWQ4Mg%3D%3D#"> - </div> - </div> - - <div class="row mb-3"> - <label for="Linkedin" class="col-md-4 col-lg-3 col-form-label">Linkedin - Profile</label> - <div class="col-md-8 col-lg-9"> - <input name="linkedin" type="text" class="form-control" id="Linkedin" - value="https://github.com/npannisa#"> - </div> - </div> --}} - - <div class="text-center"> - <a href="profile" type="submit" class="btn btn-primary">Save Changes</a> - </div> - </form><!-- End Profile Edit Form --> - - </div> - - <div class="tab-pane fade pt-3" id="profile-settings"> - - <!-- Settings Form --> - <form> - - <div class="row mb-3"> - <label for="fullName" class="col-md-4 col-lg-3 col-form-label">Email - Notifications</label> - <div class="col-md-8 col-lg-9"> - <div class="form-check"> - <input class="form-check-input" type="checkbox" id="changesMade" checked> - <label class="form-check-label" for="changesMade"> - Changes made to your account - </label> - </div> - <div class="form-check"> - <input class="form-check-input" type="checkbox" id="newProducts" checked> - <label class="form-check-label" for="newProducts"> - Information on new products and services - </label> - </div> - <div class="form-check"> - <input class="form-check-input" type="checkbox" id="proOffers"> - <label class="form-check-label" for="proOffers"> - Marketing and promo offers - </label> - </div> - <div class="form-check"> - <input class="form-check-input" type="checkbox" id="securityNotify" checked - disabled> - <label class="form-check-label" for="securityNotify"> - Security alerts - </label> - </div> - </div> - </div> - - <div class="text-center"> - <button type="submit" class="btn btn-primary">Save Changes</button> - </div> - </form><!-- End settings Form --> - - </div> - - <div class="tab-pane fade pt-3" id="profile-change-password"> - <!-- Change Password Form --> - <form> - - <div class="row mb-3"> - <label for="currentPassword" class="col-md-4 col-lg-3 col-form-label">Current - Password</label> - <div class="col-md-8 col-lg-9"> - <input name="password" type="password" class="form-control" - id="currentPassword"> - </div> - </div> - - <div class="row mb-3"> - <label for="newPassword" class="col-md-4 col-lg-3 col-form-label">New Password</label> - <div class="col-md-8 col-lg-9"> - <input name="newpassword" type="password" class="form-control" id="newPassword"> - </div> - </div> - - <div class="row mb-3"> - <label for="renewPassword" class="col-md-4 col-lg-3 col-form-label">Re-enter New - Password</label> - <div class="col-md-8 col-lg-9"> - <input name="renewpassword" type="password" class="form-control" - id="renewPassword"> - </div> - </div> - - <div class="text-center"> - <button type="submit" class="btn btn-primary">Change Password</button> - </div> - </form><!-- End Change Password Form --> - - </div> - - </div><!-- End Bordered Tabs --> - - </div> - </div> - </section> - </div> - {{-- profile --}} - <script> - document.addEventListener("DOMContentLoaded", function() { - // Mendapatkan elemen-elemen tombol tab - const editProfileTab = document.querySelector('[data-bs-target="#profile-edit"]'); - const settingsTab = document.querySelector('[data-bs-target="#profile-settings"]'); - const changePasswordTab = document.querySelector('[data-bs-target="#profile-change-password"]'); - const overviewTab = document.querySelector('[data-bs-target="#profile-overview"]'); - - // Menambahkan event listener untuk mengubah tab saat tombol diklik - editProfileTab.addEventListener("click", function() { - activateTabAndContent(editProfileTab, "#profile-edit"); - }); - - settingsTab.addEventListener("click", function() { - activateTabAndContent(settingsTab, "#profile-settings"); - }); - - changePasswordTab.addEventListener("click", function() { - activateTabAndContent(changePasswordTab, "#profile-change-password"); - }); - - // Menambahkan event listener untuk kembali ke tab "Overview" - overviewTab.addEventListener("click", function() { - activateTabAndContent(overviewTab, "#profile-overview"); - }); - - // Fungsi untuk mengaktifkan tab dan konten - function activateTabAndContent(tabButton, tabContentId) { - // Nonaktifkan tab aktif saat ini - const activeTabButton = document.querySelector(".nav-link.active"); - const activeTabContent = document.querySelector(".tab-pane.active"); - - activeTabButton.classList.remove("active"); - activeTabContent.classList.remove("show", "active"); - - // Aktifkan tab yang dipilih - tabButton.classList.add("active"); - - // Tampilkan konten tab yang dipilih - const selectedTabContent = document.querySelector(tabContentId); - selectedTabContent.classList.add("show", "active"); - } - }); - </script> - {{-- profile --}} -@endsection diff --git a/resources/views/User/refund/history-refund.blade.php b/resources/views/User/refund/history-refund.blade.php index 39af118..90ce7b7 100644 --- a/resources/views/User/refund/history-refund.blade.php +++ b/resources/views/User/refund/history-refund.blade.php @@ -1,11 +1,16 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> <div class="col-md-12"> <div class="card"> <div class="card-header"> - <h2>History Refund</h2> + <h1>Detail Refund</h1> + <div class="section-header-breadcrumb"> + <div class="breadcrumb-item active"><a href="{{ route('user.index') }}">Dashboard</a></div> + <div class="breadcrumb-item"><a href="{{ route('user-refund.index') }}">Refund</a></div> + <div class="breadcrumb-item">Detail Refund</div> + </div> </div> <div class="card-body p-0"> <div class="table-responsive table-invoice"> diff --git a/resources/views/User/refund/index.blade.php b/resources/views/User/refund/index.blade.php index cfcc206..fa6cbeb 100644 --- a/resources/views/User/refund/index.blade.php +++ b/resources/views/User/refund/index.blade.php @@ -1,14 +1,12 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> <div class="section-header"> - <h1>Halaman Refund</h1> + <h1>Refund</h1> <div class="section-header-breadcrumb"> - <div class="breadcrumb-item active"><a href="#">Dashboard</a></div> - <div class="breadcrumb-item"><a href="#"> Transaction</a></div> - <div class="breadcrumb-item">Manajemen Kontak</div> - <div class="breadcrumb-item">Halaman Refund</div> + <div class="breadcrumb-item active"><a href="{{ route('user.index') }}">Dashboard</a></div> + <div class="breadcrumb-item"><a href="{{ route('user-refund.index') }}">Refund</a></div> </div> </div> @@ -51,7 +49,7 @@ <div class="badge badge-danger" data-status="ditolak" onclick="setStatus('ditolak')">Ditolak</div> {{-- {{ $HistoryRefundUser['status'] }} --}} - + </td> <td class="font-weight-600"> {{ $HistoryRefundUser['uploadBukti'] }}</td> diff --git a/resources/views/User/refund/new-refund.blade.php b/resources/views/User/refund/new-refund.blade.php index fe866e5..76ebe51 100644 --- a/resources/views/User/refund/new-refund.blade.php +++ b/resources/views/User/refund/new-refund.blade.php @@ -1,4 +1,4 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> @@ -16,17 +16,18 @@ </div> <input type="hidden" name="id" value="{{ $id }}"> <div class="card-body"> - <div class="section-title mt-0">Reason Complaint</div> + <div class="section-title mt-0">Alasan Komplain</div> <div class="col-md-12"> <label for="complaint" class="form-label">Berikan Alasan Mengapa Melakukan Pengembalian</label> <textarea class="form-control" aria-label="With textarea" required id="complaint" name='complaint'></textarea> </div> - <div class="section-title">Upload Image / Video</div> + <div class="section-title">Unggah Foto dan Video</div> <div class="custom-file"> - <label for="uploadBukti" class="form-label">Sertakan bukti seperti Foto - Pesanan</label> + <label for="uploadBukti" class="form-label">Sertakan bukti seperti foto atau + video + barang</label> <input type="file" class="form-control" name="bukti[]" id="fileInput" accept="image/*,video/*" required multiple> <div id="previewContainer"> diff --git a/resources/views/User/transaction/Pembeli/detail-transaction.blade.php b/resources/views/User/transaction/Pembeli/detail-transaction.blade.php index af42103..f5c0c6d 100644 --- a/resources/views/User/transaction/Pembeli/detail-transaction.blade.php +++ b/resources/views/User/transaction/Pembeli/detail-transaction.blade.php @@ -1,4 +1,4 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> @@ -113,7 +113,8 @@ <td class="text-center">{{ $transaction->harga_barang }}</td> <td class="text-center">{{ $transaction->jumlah_barang }}</td> <td class="text-right"> - {{ $transaction->harga_barang * $transaction->jumlah_barang }}</td> + {{ $transaction->harga_barang * $transaction->jumlah_barang }} + </td> </tr> </table> </div> @@ -122,7 +123,9 @@ <div class="section-title">Payment Method</div> <div class="images"> @if ($transaction->metode_pembayaran != null) - <img style="width: 20%; height: 20%;" src="{{ asset('assets/img/metode_pembayaran/'.$transaction->metode_pembayaran.'.png') }}" alt="{{$transaction->metode_pembayaran}}"> + <img style="width: 20%; height: 20%;" + src="{{ asset('assets/img/metode_pembayaran/' . $transaction->metode_pembayaran . '.png') }}" + alt="{{ $transaction->metode_pembayaran }}"> @endif </div> </div> @@ -130,12 +133,14 @@ <div class="invoice-detail-item"> <div class="invoice-detail-name">Subtotal</div> <div class="invoice-detail-value">Rp - {{ number_format($transaction->total_harga, 2, ',', '.') }}</div> + {{ number_format($transaction->total_harga, 2, ',', '.') }} + </div> </div> <div class="invoice-detail-item"> <div class="invoice-detail-name">Biaya Admin</div> <div class="invoice-detail-value"> - Rp {{ number_format($transaction->total_keuntungan, 2, ',', '.') }} + Rp + {{ number_format($transaction->total_keuntungan, 2, ',', '.') }} </div> </div> <hr class="mt-2 mb-2"> diff --git a/resources/views/User/transaction/Pembeli/index.blade.php b/resources/views/User/transaction/Pembeli/index.blade.php index 0a51f49..028777e 100644 --- a/resources/views/User/transaction/Pembeli/index.blade.php +++ b/resources/views/User/transaction/Pembeli/index.blade.php @@ -1,11 +1,12 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> <div class="section-header"> + <h1>Halaman Pembeli</h1> <div class="section-header-breadcrumb"> - <div class="breadcrumb-item active"><a href="#">Dashboard</a></div> - <div class="breadcrumb-item"><a href="{{ route('user-transaction.index.pembeli') }}">Transaksi Pembeli</a> + <div class="breadcrumb-item active"><a href="{{ route('user.index') }}">Dashboard</a></div> + <div class="breadcrumb-item"><a href="{{ route('user-pembeli.index') }}">Transaksi Pembeli</a> </div> </div> </div> @@ -14,7 +15,7 @@ <div class="col-12 mb-4"> <div class="hero bg-primary text-white"> <div class="hero-inner"> - <h1>Welcome! {{ Auth::user()->nama_depan }}</h1> + <h1>Selamat Datang! {{ Auth::user()->nama_depan }}</h1> <p class="lead">Mau belanja apa hari ini?</p> </div> </div> diff --git a/resources/views/User/transaction/Pembeli/invoice-transaction.blade.php b/resources/views/User/transaction/Pembeli/invoice-transaction.blade.php index e7d5d59..2f0b071 100644 --- a/resources/views/User/transaction/Pembeli/invoice-transaction.blade.php +++ b/resources/views/User/transaction/Pembeli/invoice-transaction.blade.php @@ -1,14 +1,13 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> <div class="section-header"> <h1>Invoice</h1> <div class="section-header-breadcrumb"> - <div class="breadcrumb-item active"><a href="#">Dashboard</a></div> - <div class="breadcrumb-item"><a href="#"> Transaction</a></div> - <div class="breadcrumb-item">Manajemen Kontak</div> - <div class="breadcrumb-item">Halaman Refund</div> + <div class="breadcrumb-item active"><a href="{{ route('user.index') }}">Dashboard</a></div> + <div class="breadcrumb-item"><a href="{{ route('user-pembeli.index') }}"> Transaction</a></div> + <div class="breadcrumb-item">Invoice</div> </div> </div> diff --git a/resources/views/User/transaction/Pembeli/new-transaction.blade.php b/resources/views/User/transaction/Pembeli/new-transaction.blade.php index 433a0a9..981d1c5 100644 --- a/resources/views/User/transaction/Pembeli/new-transaction.blade.php +++ b/resources/views/User/transaction/Pembeli/new-transaction.blade.php @@ -1,4 +1,4 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <link rel="stylesheet" href="{{ asset('assets/modules/select2/dist/css/select2.min.css') }}"> <div class="main-content"> diff --git a/resources/views/User/transaction/penjual/index.blade.php b/resources/views/User/transaction/penjual/index.blade.php index ee02f09..10d83a7 100644 --- a/resources/views/User/transaction/penjual/index.blade.php +++ b/resources/views/User/transaction/penjual/index.blade.php @@ -1,14 +1,12 @@ -@extends('user.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> <div class="section-header"> - + <h1>Halaman Penjual</h1> <div class="section-header-breadcrumb"> - <div class="breadcrumb-item active"><a href="#">Dashboard</a></div> - <div class="breadcrumb-item"><a href="#"> Transaction</a></div> - <div class="breadcrumb-item">Manajemen Kontak</div> - <div class="breadcrumb-item">Halaman Refund</div> + <div class="breadcrumb-item active"><a href="{{ route('user.index') }}">Dashboard</a></div> + <div class="breadcrumb-item"><a href="{{ route('user-penjual.index') }}">Penjual</a></div> </div> </div> @@ -17,7 +15,7 @@ <div class="col-12 mb-4"> <div class="hero bg-primary text-white"> <div class="hero-inner"> - <h1>Welcome to the Rekber Aplication</h1> + <h1>Hallo!!</h1> <p class="lead">Selamat Datang {{ Auth::user()->nama_depan }}!</p> </div> </div> diff --git a/resources/views/User/transaction/penjual/modal-tracking.blade.php b/resources/views/User/transaction/penjual/modal-tracking.blade.php index aa97e49..ad3b598 100644 --- a/resources/views/User/transaction/penjual/modal-tracking.blade.php +++ b/resources/views/User/transaction/penjual/modal-tracking.blade.php @@ -14,31 +14,7 @@ <div class="row"> <div class="col-12"> <div class="activities"> - {{-- @forelse ($transaction->transactionDescription as $transactionDescription) - <div class="activity"> - <div class="activity-icon {{$transactionDescription->background}} text-white shadow-primary"> - <i class="{{$transactionDescription->judul}}" style="font-size: 36px;"></i> - </div> - <div class="activity-detail"> - <div class="mb-2"> - <span class="text-job text-primary">{{date("F j, Y, g:i:s a", strtotime($transactionDescription->created_at))}}</span> - </div> - <p>{{$transactionDescription->deskripsi}}</p> - </div> - </div> - @empty - <div class="activity"> - <div class="activity-icon bg-primary text-white shadow-primary"> - <i class="fas fa-ban" style="font-size: 36px;"></i> - </div> - <div class="activity-detail"> - <div class="mb-2"> - <span class="text-job text-primary">--, --:--:-- --</span> - </div> - <p>Kosong</p> - </div> - </div> - @endforelse --}} + </div> </div> </div> diff --git a/resources/views/layouts/css.blade.php b/resources/views/layouts/css.blade.php new file mode 100644 index 0000000..ed2e366 --- /dev/null +++ b/resources/views/layouts/css.blade.php @@ -0,0 +1,51 @@ +<style> + .data-field { + display: flex; + width: 100%; + justify-content: space-between; + font-size: 14px; + } + + .data-field:not(:last-child) { + margin-bottom: 15px; + } + + .data-field span { + text-align: end; + } + + .card-title span a { + color: #899bbd; + text-decoration: underline; + } + + .justified-text { + text-align: justify; + } + + .font-weight-italic { + font-style: italic; + } +</style> + +<!-- General CSS Files --> +<link rel="stylesheet" href="{{ asset('assets/modules/bootstrap/css/bootstrap.min.css') }}"> +<link rel="stylesheet" href="{{ asset('assets/modules/fontawesome/css/all.min.css') }}"> +<link rel="stylesheet" href="https://cdn.materialdesignicons.com/5.4.55/css/materialdesignicons.min.css"> +<link rel="stylesheet" href="{{ asset('assets/modules/jqvmap/dist/jqvmap.min.css') }}"> +<link rel="stylesheet" href="{{ asset('assets/modules/summernote/summernote-bs4.css') }}"> +<link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.carousel.min.css') }}"> +<link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.theme.default.min.css') }}"> +<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.css" /> +<link rel="stylesheet" href="{{ asset('assets/modules/select2/dist/css/select2.min.css') }}"> + +<!-- Template CSS --> +<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}"> +<link rel="stylesheet" href="{{ asset('assets/css/components.css') }}"> + +{{-- CSS Libraries --}} +<link rel="stylesheet" href="{{ asset('assets/modules/datatables/datatables.min.css') }}"> +<link rel="stylesheet" + href="{{ asset('assets/modules/datatables/DataTables-1.10.16/css/dataTables.bootstrap4.min.css') }}"> +<link rel="stylesheet" href="{{ asset('assets/modules/datatables/Select-1.2.4/css/select.bootstrap4.min.css') }}"> +<link rel="stylesheet" href="{{ asset('assets/css/main.css') }}"> diff --git a/resources/views/User/layout/footer.blade.php b/resources/views/layouts/footer.blade.php similarity index 100% rename from resources/views/User/layout/footer.blade.php rename to resources/views/layouts/footer.blade.php diff --git a/resources/views/Admin/layout/header.blade.php b/resources/views/layouts/header.blade.php similarity index 93% rename from resources/views/Admin/layout/header.blade.php rename to resources/views/layouts/header.blade.php index 1ded9b1..1a848de 100644 --- a/resources/views/Admin/layout/header.blade.php +++ b/resources/views/layouts/header.blade.php @@ -3,10 +3,11 @@ <form class="form-inline mr-auto"> <ul class="navbar-nav mr-3"> <li><a href="#" data-toggle="sidebar" class="nav-link nav-link-lg"><i class="fas fa-bars"></i></a></li> + <li><a href="#" data-toggle="search" class="nav-link nav-link-lg d-sm-none"><i + class="fas fa-search"></i></a></li> </ul> </form> <ul class="navbar-nav navbar-right"> - {{-- Message --}} <li class="dropdown dropdown-list-toggle"><a href="#" data-toggle="dropdown" class="nav-link nav-link-lg message-toggle beep"><i class="far fa-envelope"></i></a> <div class="dropdown-menu dropdown-list dropdown-menu-right"> @@ -79,9 +80,6 @@ </div> </div> </li> - {{-- Message --}} - - {{-- Notifikasi --}} <li class="dropdown dropdown-list-toggle"><a href="#" data-toggle="dropdown" class="nav-link notification-toggle nav-link-lg beep"><i class="far fa-bell"></i></a> <div class="dropdown-menu dropdown-list dropdown-menu-right"> @@ -142,15 +140,16 @@ </div> </div> </li> - {{-- Notifikasi --}} <li class="dropdown"><a href="#" data-toggle="dropdown" class="nav-link dropdown-toggle nav-link-lg nav-link-user"> - <img alt="image" src="{{ asset('assets/img/avatar/ok.jpg') }}" class="rounded-circle mr-1"> + <img alt="image" + src="{{ Auth::user()->foto_profile == null ? asset('assets/img/avatar/avatar-1.png') : asset('storage/foto-profile/' . auth()->user()->foto_profile) }}" + class="rounded-circle mr-1"> <div class="d-sm-none d-lg-inline-block">Hi, {{ Auth::user()->nama_depan }}</div> </a> <div class="dropdown-menu dropdown-menu-right"> - {{-- <div class="dropdown-title">Logged in 5 min ago</div> --}} - <a href="{{route('admin.profile')}}" class="dropdown-item has-icon"> + <div class="dropdown-title">Logged in 5 min ago</div> + <a href="{{ route('profile.index') }}" class="dropdown-item has-icon"> <i class="far fa-user"></i> Profile </a> <div class="dropdown-divider"></div> diff --git a/resources/views/layouts/js.blade.php b/resources/views/layouts/js.blade.php new file mode 100644 index 0000000..57523c1 --- /dev/null +++ b/resources/views/layouts/js.blade.php @@ -0,0 +1,40 @@ +<!-- Jquery --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" + integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" + crossorigin="anonymous" referrerpolicy="no-referrer"></script> +{{-- <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> --}} +{{-- <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> --}} + +<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script> +<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" + integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"> +</script> + +<!-- dashboard --> +<script src="{{ asset('assets/modules/chart.min.js') }}"></script> + +<!-- General JS Scripts --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script> +<script src="{{ asset('assets/modules/popper.js') }}"></script> +<script src="{{ asset('assets/modules/tooltip.js') }}"></script> +<script src="{{ asset('assets/modules/bootstrap/js/bootstrap.min.js') }}"></script> +<script src="{{ asset('assets/modules/moment.min.js') }}"></script> +<script src="{{ asset('assets/js/stisla.js') }}"></script> +<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> + +<!-- JS Libraies --> +<script src="{{ asset('assets/modules/owlcarousel2/dist/owl.carousel.min.js') }}"></script> +<script src="{{ asset('assets/modules/summernote/summernote-bs4.js') }}"></script> + +<!-- JS Libraies --> +<script src="{{ asset('assets/modules/datatables/datatables.min.js') }}"></script> +<script src="{{ asset('assets/modules/datatables/DataTables-1.10.16/js/dataTables.bootstrap4.min.js') }}"></script> +<script src="{{ asset('assets/modules/datatables/Select-1.2.4/js/dataTables.select.min.js') }}"></script> + +<!-- Page Specific JS File --> +<script src="{{ asset('assets/js/page/modules-datatables.js') }}"></script> + +<!-- Template JS File --> +<script src="{{ asset('assets/js/scripts.js') }}"></script> +<script src="{{ asset('assets/js/custom.js') }}"></script> +<script src="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.min.js"></script> diff --git a/resources/views/layouts/main.blade.php b/resources/views/layouts/main.blade.php new file mode 100644 index 0000000..e11abec --- /dev/null +++ b/resources/views/layouts/main.blade.php @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html lang="en"> + +<head> + <meta charset="UTF-8"> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport"> + <meta name="csrf-token" content="{{ csrf_token() }}"> + <title>REKBER</title> + + @include('layouts.css') + + @include('layouts.js') +</head> + +<body> + + <header class="header-area header-sticky"> + @include('layouts.header') + </header> + + <!-- ***** Main Banner Area Start ***** --> + <main id="main" style="min-height: 100vh;"> + @include('layouts.sidebar') + @yield('content') + </main> + + <!-- End #main --> + <footer id="footer"> + @include('layouts.footer') + </footer> + + + +</body> + +</html> diff --git a/resources/views/layouts/sidebar.blade.php b/resources/views/layouts/sidebar.blade.php new file mode 100644 index 0000000..d93cc55 --- /dev/null +++ b/resources/views/layouts/sidebar.blade.php @@ -0,0 +1,75 @@ +<div class="main-sidebar sidebar-style-2"> + <aside id="sidebar-wrapper"> + <div class="sidebar-brand"> + <a href="{{ route(Auth::user()->role == 'Admin' ? 'admin.index' : 'user.index') }}">REKBER</a> + </div> + <div class="sidebar-brand sidebar-brand-sm"> + <a href="{{ route(Auth::user()->role == 'Admin' ? 'admin.index' : 'user.index') }}">RK</a> + </div> + <ul class="sidebar-menu"> + <li class="menu-header">Dashboard</li> + + <li><a class="nav-link {{ request()->routeIs(auth()->user()->role == 'Admin' ? 'admin.index' : 'user.index') ? 'active' : '' }}" + href="{{ route(Auth::user()->role == 'Admin' ? 'admin.index' : 'user.index') }}"><i + class="fas fa-fire"></i> <span>Dashboard</span></a></li> + + <li class="menu-header">Starter</li> + + @if (Auth::user()->role == 'Admin') + <li><a class="nav-link {{ request()->routeIs('admin-user.index') ? 'active' : '' }}" + href="{{ route('admin-user.index') }}"><i class="far fa-user"></i> + <span>User</span></a></li> + <li><a class="nav-link {{ request()->routeIs('admin-transaction.index') ? 'active' : '' }}" + href="{{ route('admin-transaction.index') }}"><i + class="fas fa-columns"></i><span>Transaction</span></a></li> + <li><a class="nav-link {{ request()->routeIs('admin-refund.index') ? 'active' : '' }}" + href="{{ route('admin-refund.index') }}"><i class="far fa-square"></i> + <span>Refund</span></a> + </li> + <li><a class="nav-link {{ request()->routeIs('admin-setting.index') ? 'active' : '' }}" + href="{{ route('admin-setting.index') }}"><i class="fas fa-cog"></i> + <span>Setting</span></a></li> + @else + <li class="drop-down "> + <a class="nav-link {{ request()->routeIs('user-transaction.index.pembeli') || request()->routeIs('user-transaction.index.penjual') ? 'active' : '' }}" + data-toggle="collapse" href="#submenuTransaction" aria-expanded="false" + aria-controls="submenuTransaction"> + <i class="fas fa-columns"></i><span>Transaksi</span> <i class="fas fa-caret-down"></i> + </a> + + <div id="submenuTransaction" class="collapse"> + <ul class="nav flex-column sub-menu"> + <li + class="nav-item {{ request()->routeIs('user-transaction.index.pembeli') ? 'active' : '' }}"> + <a class="nav-link" href="{{ route('user-transaction.index.pembeli') }}"> + <i class="fas fa-users"></i> Pembeli + </a> + </li> + <li + class="nav-item {{ request()->routeIs('user-transaction.index.penjual') ? 'active' : '' }}"> + <a class="nav-link" href="{{ route('user-transaction.index.penjual') }}"> + <i class="fas fa-user"></i> Penjual + </a> + </li> + </ul> + </div> + </li> + <li> + <a class="nav-link {{ request()->routeIs('user-contact.index') ? 'active' : '' }}" + href="{{ route('user-contact.index') }}"> + <i class="fas fa-address-book"></i> <span>Kontak</span> + </a> + </li> + + + <li> + <a class="nav-link {{ request()->routeIs('user-refund.index') ? 'active' : '' }}" + href="{{ route('user-refund.index') }}"> + <i class="fas fa-money-check-alt"></i> <span>Refund</span> + </a> + </li> + @endif + </ul> + </aside> +</div> +<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.min.js') }}"></script> diff --git a/resources/views/Admin/profile/index-2.blade.php b/resources/views/profile/index-2.blade.php similarity index 100% rename from resources/views/Admin/profile/index-2.blade.php rename to resources/views/profile/index-2.blade.php diff --git a/resources/views/Admin/profile/index.blade.php b/resources/views/profile/index.blade.php similarity index 77% rename from resources/views/Admin/profile/index.blade.php rename to resources/views/profile/index.blade.php index 6f2fb6c..fd89577 100644 --- a/resources/views/Admin/profile/index.blade.php +++ b/resources/views/profile/index.blade.php @@ -1,4 +1,4 @@ -@extends('admin.layout.main') +@extends('layouts.main') @section('content') <div class="main-content"> <section class="section"> @@ -9,7 +9,7 @@ style="border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); position: relative; background: linear-gradient(45deg, #f3f3f3, #e0e0e0);"> <i class="bi bi-arrow-right" style="position: absolute; top: 10px; right: 10px; font-size: 24px;"></i> - <img src="{{ Auth::user()->foto_profil == null ? asset('assets/img/avatar/avatar-1.png') : asset('storage/foto_profil/' . Auth::user()->foto_profil) }}" + <img src="{{ Auth::user()->foto_profile == null ? asset('assets/img/avatar/avatar-1.png') : asset('storage/foto-profile/' . Auth::user()->foto_profile) }}" alt="{{ Auth::user()->nama_depan }}" class="rounded-circle" style="width: 150px; height: 150px;"> <h2 class="mt-3">{{ Auth::user()->nama_depan . ' ' . Auth::user()->nama_belakang }}</h2> <h5 class="mb-0">#{{ Auth::user()->id }}</h5> @@ -105,13 +105,13 @@ {{-- Edit Profile --}} <div class="tab-pane fade profile-edit pt-3" id="profile-edit"> - <form id="formEditProfile" action="javascript:void(0);"> + <form id="formEditProfile" action="javascript:void(0);" enctype="multipart/form-data"> @csrf <div class="row mb-3"> <label for="profileImage" class="col-md-4 col-lg-3 col-form-label">Foto Profil</label> <div class="col-md-8 col-lg-9"> <img id="profileImagePreview" - src="{{ Auth::user()->foto_profil == null ? asset('assets/img/avatar/avatar-1.png') : asset('storage/foto_profil/' . Auth::user()->foto_profil) }}" + src="{{ Auth::user()->foto_profile == null ? asset('assets/img/avatar/avatar-1.png') : asset('storage/foto-profile/' . auth()->user()->foto_profile) }}" alt="Profile" style="max-width: 100%; max-height: 150px;"> <div class="d-flex justify-content-between align-items-center mt-2"> <label for="profileImageInput" class="btn btn-primary btn-sm" @@ -123,26 +123,26 @@ </div> </div> - </div> <div class="row mb-3"> - <label for="firstName" class="col-md-4 col-lg-3 col-form-label">Nama Lengkap</label> + <label for="nama_depan" class="col-md-4 col-lg-3 col-form-label">Nama + Lengkap</label> <div class="col-md-4 col-lg-4"> - <input name="nama_depan" type="text" class="form-control" id="firstName" + <input name="nama_depan" type="text" class="form-control" id="nama_depan" placeholder="Nama depan" value="{{ Auth::user()->nama_depan }}" required> </div> <div class="col-md-4 col-lg-5"> - <input name="nama_belakang" type="text" class="form-control" id="lastName" - placeholder="Nama belakang" value="{{ Auth::user()->nama_belakang }}" - required> + <input name="nama_belakang" type="text" class="form-control" + id="nama_belakang" placeholder="Nama belakang" + value="{{ Auth::user()->nama_belakang }}" required> </div> </div> <div class="row mb-3"> - <label for="Phone" class="col-md-4 col-lg-3 col-form-label">No. HP</label> + <label for="nohp" class="col-md-4 col-lg-3 col-form-label">No. HP</label> <div class="col-md-8 col-lg-9"> - <input name="nohp" type="text" class="form-control" id="Phone" + <input name="nohp" type="text" class="form-control" id="nohp" value="{{ Auth::user()->nohp }}" oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/(\..*?)\..*/g, '$1');" required> @@ -154,7 +154,9 @@ <label for="selectProvince" class="col-md-4 col-lg-3 col-form-label">Provinsi</label> <div class="col-md-8 col-lg-9"> <select style="width: 100%;" name="provinsi" id="selectProvince"> - + @foreach ($provinces as $province) + <option value="{{ $province->code }}">{{ $province->name }}</option> + @endforeach </select> </div> </div> @@ -164,7 +166,9 @@ class="col-md-4 col-lg-3 col-form-label">Kabupaten/Kota</label> <div class="col-md-8 col-lg-9"> <select style="width: 100%;" name="kota" id="selectCity"> - + @foreach ($cities as $city) + <option value="{{ $city->code }}">{{ $city->name }}</option> + @endforeach </select> </div> </div> @@ -173,7 +177,9 @@ <label for="selectDistrict" class="col-md-4 col-lg-3 col-form-label">Kecamatan</label> <div class="col-md-8 col-lg-9"> <select style="width: 100%;" name="kecamatan" id="selectDistrict"> - + @foreach ($districts as $district) + <option value="{{ $district->code }}">{{ $district->name }}</option> + @endforeach </select> </div> </div> @@ -182,15 +188,17 @@ <label for="selectVillage" class="col-md-4 col-lg-3 col-form-label">Kelurahan</label> <div class="col-md-8 col-lg-9"> <select style="width: 100%;" name="kelurahan" id="selectVillage" required> - + @foreach ($villages as $village) + <option value="{{ $village->code }}">{{ $village->name }}</option> + @endforeach </select> </div> </div> <div class="row mb-3"> - <label for="Address" class="col-md-4 col-lg-3 col-form-label">Alamat</label> + <label for="alamat" class="col-md-4 col-lg-3 col-form-label">Alamat</label> <div class="col-md-8 col-lg-9"> - <input name="alamat" type="text" class="form-control" id="Address" + <input name="alamat" type="text" class="form-control" id="alamat" value="{{ Auth::user()->alamat }}" required> </div> </div> @@ -203,64 +211,83 @@ <option selected disabled>Silahkan Pilih Bank/e-Wallet</option> <option disabled>Bank</option> <option value="bca" - {{ Auth::user()->nama_bank == 'bca' ? 'selected' : '' }}>BCA</option> + {{ Auth::user()->nama_bank == 'bca' ? 'selected' : '' }}>BCA + </option> <option value="mandiri" - {{ Auth::user()->nama_bank == 'mandiri' ? 'selected' : '' }}>Mandiri + {{ Auth::user()->nama_bank == 'mandiri' ? 'selected' : '' }}> + Mandiri </option> <option value="bni" - {{ Auth::user()->nama_bank == 'bni' ? 'selected' : '' }}>BNI</option> + {{ Auth::user()->nama_bank == 'bni' ? 'selected' : '' }}>BNI + </option> <option value="bri" - {{ Auth::user()->nama_bank == 'bri' ? 'selected' : '' }}>BRI</option> + {{ Auth::user()->nama_bank == 'bri' ? 'selected' : '' }}>BRI + </option> <option value="bsm" - {{ Auth::user()->nama_bank == 'bsm' ? 'selected' : '' }}>BSI (Bank Syariah + {{ Auth::user()->nama_bank == 'bsm' ? 'selected' : '' }}>BSI (Bank + Syariah Indonesia)</option> <option value="danamon" {{ Auth::user()->nama_bank == 'danamon' ? 'selected' : '' }}> Danamoon/Danamon Syariah</option> <option value="permata" - {{ Auth::user()->nama_bank == 'permata' ? 'selected' : '' }}>Bank Permata + {{ Auth::user()->nama_bank == 'permata' ? 'selected' : '' }}>Bank + Permata </option> <option value="mega" {{ Auth::user()->nama_bank == 'mega' ? 'selected' : '' }}>Bank Mega </option> <option value="btn" - {{ Auth::user()->nama_bank == 'btn' ? 'selected' : '' }}>BTN/BTN Syariah + {{ Auth::user()->nama_bank == 'btn' ? 'selected' : '' }}>BTN/BTN + Syariah </option> <option value="cimb" - {{ Auth::user()->nama_bank == 'cimb' ? 'selected' : '' }}>CIMB Niaga/CIMB + {{ Auth::user()->nama_bank == 'cimb' ? 'selected' : '' }}>CIMB + Niaga/CIMB Niaga Syariah</option> <option value="hsbc" - {{ Auth::user()->nama_bank == 'hsbc' ? 'selected' : '' }}>HSBC Indonesia + {{ Auth::user()->nama_bank == 'hsbc' ? 'selected' : '' }}>HSBC + Indonesia </option> <option value="uob" - {{ Auth::user()->nama_bank == 'uob' ? 'selected' : '' }}>TMRW/UOB</option> + {{ Auth::user()->nama_bank == 'uob' ? 'selected' : '' }}>TMRW/UOB + </option> <option value="panin" - {{ Auth::user()->nama_bank == 'panin' ? 'selected' : '' }}>Panin Bank + {{ Auth::user()->nama_bank == 'panin' ? 'selected' : '' }}>Panin + Bank </option> <option value="bii" - {{ Auth::user()->nama_bank == 'bii' ? 'selected' : '' }}>Maybank Indonesia + {{ Auth::user()->nama_bank == 'bii' ? 'selected' : '' }}>Maybank + Indonesia </option> <option value="ocbc" {{ Auth::user()->nama_bank == 'ocbc' ? 'selected' : '' }}>OCBC NISP </option> <option value="sinarmas" - {{ Auth::user()->nama_bank == 'sinarmas' ? 'selected' : '' }}>Bank Sinarmas + {{ Auth::user()->nama_bank == 'sinarmas' ? 'selected' : '' }}>Bank + Sinarmas </option> <option value="dbs" - {{ Auth::user()->nama_bank == 'dbs' ? 'selected' : '' }}>DBS Bank Indonesia + {{ Auth::user()->nama_bank == 'dbs' ? 'selected' : '' }}>DBS Bank + Indonesia </option> <option disabled>e-Wallet</option> <option value="ovo" - {{ Auth::user()->nama_bank == 'ovo' ? 'selected' : '' }}>OVO</option> + {{ Auth::user()->nama_bank == 'ovo' ? 'selected' : '' }}>OVO + </option> <option value="dana" - {{ Auth::user()->nama_bank == 'dana' ? 'selected' : '' }}>DANA</option> + {{ Auth::user()->nama_bank == 'dana' ? 'selected' : '' }}>DANA + </option> <option value="linkaja" - {{ Auth::user()->nama_bank == 'linkaja' ? 'selected' : '' }}>LinkAja + {{ Auth::user()->nama_bank == 'linkaja' ? 'selected' : '' }}> + LinkAja </option> <option value="gopay" - {{ Auth::user()->nama_bank == 'gopay' ? 'selected' : '' }}>GoPay</option> + {{ Auth::user()->nama_bank == 'gopay' ? 'selected' : '' }}>GoPay + </option> <option value="shopeepay" - {{ Auth::user()->nama_bank == 'shopeepay' ? 'selected' : '' }}>ShopeePay + {{ Auth::user()->nama_bank == 'shopeepay' ? 'selected' : '' }}> + ShopeePay </option> </select> </div> @@ -273,7 +300,7 @@ </div> <div class="text-center"> - <a href="profile" type="submit" class="btn btn-primary">Simpan</a> + <button type="submit" class="btn btn-primary">Simpan</button> </div> </form> </div> @@ -281,12 +308,13 @@ {{-- Change Password --}} <div class="tab-pane fade pt-3" id="profile-change-password"> - <form> + <form id="formChangePassword" action="javascript:void(0);"> + @csrf <div class="row mb-3"> <label for="currentPassword" class="col-md-4 col-lg-3 col-form-label">Password Sekarang</label> <div class="col-md-8 col-lg-9"> - <input name="password" type="password" class="form-control" + <input name="currentpassword" type="password" class="form-control" id="currentPassword"> </div> </div> @@ -313,7 +341,6 @@ </div> </form> </div> - {{-- Change Password --}} </div> </div> @@ -379,38 +406,13 @@ }); } - // Select - $("#selectProvince").select2({ - placeholder: "Pilih Provinsi", - ajax: { - url: "{{ route('cari-provinsi') }}", - processResults: function({ - data - }) { - return { - results: $.map(data, function(item) { - return { - id: item.code, - text: ucwords(item.name), - }; - }), - }; - }, - }, - }); + $('#selectProvince').select2(); - $('#selectCity').select2({ - placeholder: "Pilih Kabupaten/Kota" - }); + $('#selectCity').select2(); + $('#selectDistrict').select2(); - $('#selectDistrict').select2({ - placeholder: "Pilih Kecamatan" - }); - - $('#selectVillage').select2({ - placeholder: "Pilih Kelurahan" - }); + $('#selectVillage').select2(); // Event Listener untuk selectProvince $("#selectProvince").change(function() { @@ -537,6 +539,78 @@ $('#formEditProfile').on('submit', function(e) { e.preventDefault(); + let form = this; + const csrf = $('meta[name="csrf-token"]').attr('content'); + + if (!form.checkValidity()) { + form.reportValidity(); + return; + } + + let formData = new FormData(this); + formData.append('foto', $('#profileImageInput')[0].files[0]) + + Swal.fire({ + html: '<div class="mt-3"><lord-icon src="https://cdn.lordicon.com/etwtznjn.json" trigger="loop" colors="primary:#0ab39c,secondary:#405189" style="width:120px;height:120px"></lord-icon><div class="mt-4 pt-2 fs-15"><h4>Form Anda sedang diproses!</h4><p class="text-muted mx-4 mb-0">Mohon tunggu...</p></div></div>', + allowEscapeKey: false, + allowOutsideClick: false, + didOpen: () => { + Swal.showLoading() + } + }); + + $.ajaxSetup({ + headers: { + 'X-CSRF-TOKEN': csrf, + } + }); + + $.ajax({ + type: 'POST', + url: "{{ route('profile.update') }}", + data: formData, + processData: false, + contentType: false, + success: function(response) { + Swal.fire({ + title: response.status ? 'Berhasil!' : 'Gagal!', + text: response.message, + icon: response.status ? 'success' : 'error', + confirmButtonText: 'OK', + position: 'center', + }).then(function() { + if (response.status) { + location.reload(); + } + }); + }, + error: function(error) { + console.log(error.responseText) + + var response = JSON.parse(error.responseText); + + var errorMessage = ''; + + for (var key in response.errors) { + if (response.errors.hasOwnProperty(key)) { + errorMessage += response.errors[key][0] + '<br>'; + } + } + Swal.fire({ + position: 'center', + icon: 'error', + title: 'Terjadi Kesalahan', + html: errorMessage, + showConfirmButton: true + }); + } + }); + }); + + // ganti password + $('#formChangePassword').on('submit', function(e) { + e.preventDefault(); + let form = this; if (!form.checkValidity()) { @@ -555,12 +629,20 @@ } }); + + const currentPassword = $('#currentPassword').val(); + const newPassword = $('#newPassword').val(); + const renewPassword = $('#renewPassword').val(); + $.ajax({ type: 'PUT', - url: `{{ route('user.update', ':id') }}`.replace(':id', ), - data: formData, - proccessData: false, - contentType: false, + url: "{{ route('profile.change-password') }}", + data: { + currentPassword: currentPassword, + newPassword: newPassword, + renewPassword: renewPassword, + "_token": "{{ csrf_token() }}", + }, success: function(response) { Swal.fire({ title: response.status ? 'Berhasil!' : 'Gagal!', @@ -569,11 +651,8 @@ confirmButtonText: 'OK', position: 'center', }).then(function() { - // location.reload(); - Swal.close(); if (response.status) { - $('#table-2').DataTable().draw(); - form.reset(); + location.reload(); } }); }, diff --git a/routes/api.php b/routes/api.php index 6e3aa7b..ab5de87 100644 --- a/routes/api.php +++ b/routes/api.php @@ -48,27 +48,23 @@ Route::middleware(['auth'])->group(function(){ Route::prefix('admin')->group(function(){ // aprove atau deny dan hapus user Route::controller(AdminUserController::class)->group(function(){ - Route::delete('admin-user/{id}','delete')->name('admin-user.destroy'); - Route::put('admin-user/approve-user/{id}', 'approveUser')->name('admin-user.approve'); - Route::put('admin-user/deny-user/{id}', 'denyUser')->name('admin-user.deny'); + }); // approve atau deny dan hapus refund Route::controller(AdminRefundController::class)->group(function(){ - Route::put('admin-refund/approve-refund/{id}','approveRefund')->name('admin-refund.approve'); - Route::put('admin-refund/deny-refund/{id}','denyRefund')->name('admin-refund.deny'); + }); Route::controller(AdminSettingController::class)->group(function(){ - Route::post('admin-setting/store','store')->name('admin-setting.store'); - Route::put('admin-setting/active/{id}','activeSetting')->name('admin-setting.active-setting'); + }); }); }); Route::prefix('profile')->group(function(){ Route::controller(ProfileController::class)->group(function(){ - Route::put('update','update')->name('profile.update'); + }); }); @@ -79,28 +75,15 @@ Route::middleware(['auth'])->group(function(){ }); Route::controller(UserContactController::class)->group(function(){ - Route::post('user-contact','store')->name('user-contact.store'); - Route::delete('user-contact/delete/{id}','destroy')->name('user-contact.destroy'); - Route::get('user-contact/get-user-contact','getContact')->name('user-contact.get'); - Route::get('user-contact/cek-contact/{email}','checkEmail')->name('user-contact.email'); + }); Route::controller(UserTransactionController::class)->group(function(){ - // Pembeli - Route::post('user-pembeli','store')->name('user-pembeli.store'); - Route::put('user-pembeli/bayar-transaksi/{id}','payTransaction')->name('user-pembeli.pay'); - Route::put('user-pembeli/batal-transaksi/{id}','cancelTransaction')->name('user-pembeli.cancel'); - Route::put('user-pembeli/transaksi-selesai/{id}','finishTransaction')->name('user-pembeli.finish'); - Route::put('user-pembeli/transaksi-komplain/{id}','complainTransaction')->name('user-pembeli.complain'); - // Penjual - Route::put('user-penjual/terima-transaksi/{id}','acceptTransaction')->name('user-penjual.accept'); - Route::put('user-penjual/kirim-pesanan/{id}','sendingOrder')->name('user-penjual.sending'); - Route::put('user-penjual/selesai-kirim-pesanan/{id}','sentOrder')->name('user-penjual.sent'); }); Route::controller(UserRefundController::class)->group(function(){ - Route::post('user-refund','store')->name('user-refund.store'); + }); }); }); diff --git a/routes/web.php b/routes/web.php index 3f56a1d..b7453c9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -115,6 +115,15 @@ Route::controller(LoginController::class)->group(function(){ // admin dan user Route::middleware(['auth'])->group(function(){ + + Route::prefix('profile')->group(function(){ + Route::controller(ProfileController::class)->group(function(){ + Route::get('/','index')->name('profile.index'); + Route::post('update','updateProfile')->name('profile.update'); + Route::put('ganti-password','changePassword')->name('profile.change-password'); + }); + }); + Route::middleware(['admin'])->group(function(){ Route::prefix('admin')->group(function(){ @@ -127,46 +136,52 @@ Route::middleware(['auth'])->group(function(){ Route::controller(AdminUserController::class)->group(function(){ Route::get('admin-user','index')->name('admin-user.index'); Route::get('admin-user/{id}','show')->name('admin-user.show'); + Route::delete('admin-user/{id}','delete')->name('admin-user.destroy'); + Route::put('admin-user/approve-user/{id}', 'approveUser')->name('admin-user.approve'); + Route::put('admin-user/deny-user/{id}', 'denyUser')->name('admin-user.deny'); }); // Tampilan transaksi (Sudah) Route::controller(AdminTransactionController::class)->group(function(){ Route::get('admin-transaction','index')->name('admin-transaction.index'); Route::get('admin-transaction/detail/{id}','show')->name('admin-transaction.show'); + }); // Tampilan, approve atau deny dan hapus refund Route::controller(AdminRefundController::class)->group(function(){ Route::get('admin-refund','index')->name('admin-refund.index'); Route::get('admin-refund/{id}','show')->name('admin-refund.show'); + Route::put('admin-refund/approve-refund/{id}','approveRefund')->name('admin-refund.approve'); + Route::put('admin-refund/deny-refund/{id}','denyRefund')->name('admin-refund.deny'); }); // Tampilan, tambah, ubah dan hapus kebijakan persentase perusahaan Route::controller(AdminSettingController::class)->group(function(){ Route::get('admin-setting','index')->name('admin-setting.index'); + Route::post('admin-setting/store','store')->name('admin-setting.store'); + Route::put('admin-setting/active/','activeSetting')->name('admin-setting.active-setting'); }); }); }); - Route::prefix('profile')->group(function(){ - Route::controller(ProfileController::class)->group(function(){ - Route::get('/','index')->name('profile.index'); - }); - }); - - Route::middleware(['user'])->group(function(){ Route::prefix('user')->group(function(){ // Tampilan dashboard user beserta perhitungan Route::controller(UserDashboardController::class)->group(function(){ Route::get('/','index')->name('user.index'); + // }); // Tampilan, tambah dan hapus kontak Route::controller(UserContactController::class)->group(function(){ Route::get('user-contact','index')->name('user-contact.index'); + Route::post('user-contact','store')->name('user-contact.store'); + Route::delete('user-contact/delete/{id}','destroy')->name('user-contact.destroy'); + Route::get('user-contact/get-user-contact','getContact')->name('user-contact.get'); + Route::get('user-contact/cek-contact/{email}','checkEmail')->name('user-contact.email'); }); // Tampilan transaksi, bayar, update status pengiriman dan refund @@ -176,10 +191,18 @@ Route::middleware(['auth'])->group(function(){ Route::get('user-pembeli/detail-transaksi/{id}','show')->name('user-pembeli.show'); Route::get('user-pembeli/tambah-transaksi','create')->name('user-pembeli.create'); Route::get('user-pembeli/invoice/{id}','invoice')->name('user-pembeli.invoice'); + Route::post('user-pembeli','store')->name('user-pembeli.store'); + Route::put('user-pembeli/bayar-transaksi/{id}','payTransaction')->name('user-pembeli.pay'); + Route::put('user-pembeli/batal-transaksi/{id}','cancelTransaction')->name('user-pembeli.cancel'); + Route::put('user-pembeli/transaksi-selesai/{id}','finishTransaction')->name('user-pembeli.finish'); + Route::put('user-pembeli/transaksi-komplain/{id}','complainTransaction')->name('user-pembeli.complain'); //Penjual Route::get('user-penjual','indexPenjual')->name('user-penjual.index'); Route::get('user-penjual/detail-transaksi/{id}','show')->name('user-penjual.show'); + Route::put('user-penjual/terima-transaksi/{id}','acceptTransaction')->name('user-penjual.accept'); + Route::put('user-penjual/kirim-pesanan/{id}','sendingOrder')->name('user-penjual.sending'); + Route::put('user-penjual/selesai-kirim-pesanan/{id}','sentOrder')->name('user-penjual.sent'); }); // Tampilan refund @@ -187,6 +210,7 @@ Route::middleware(['auth'])->group(function(){ Route::get('user-refund','index')->name('user-refund.index'); Route::get('user-refund/ajukan-komplain/{id}','create')->name('user-refund.create'); Route::get('user-refund/detail-refund/{id}','show')->name('user-refund.show'); + Route::post('user-refund','store')->name('user-refund.store'); }); }); });