From ecc514077f4aab821ef18f1180e58925704325a3 Mon Sep 17 00:00:00 2001 From: Dr Masroor Ehsan Date: Sun, 5 Jan 2025 00:09:45 +0600 Subject: [PATCH] minor --- app/Models/Study.php | 5 ++++- app/Models/User.php | 21 +++++++++++++++++-- resources/menu/horizontalMenu.json | 6 +++--- .../layouts/sections/navbar/navbar.blade.php | 12 ++++++----- vite.config.js | 7 ++++++- 5 files changed, 39 insertions(+), 12 deletions(-) diff --git a/app/Models/Study.php b/app/Models/Study.php index ab3e5b5..ecf0dc1 100644 --- a/app/Models/Study.php +++ b/app/Models/Study.php @@ -101,8 +101,11 @@ public function sexAge(): string { $dob = $this->patient_birthdate; $age = $dob ? (int) Carbon::make($dob)->diffInYears().'Y' : null; + if (blank($age) && blank($this->patient_sex)) { + return '~'; + } - return "$age / {$this->patient_sex}"; + return sprintf('%s / %s', $age ?? '~', $this->patient_sex); } public function numInstances(): string diff --git a/app/Models/User.php b/app/Models/User.php index 6deb74f..7c2feb8 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -12,6 +12,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Support\Facades\Storage; +use Illuminate\Support\Str; use Laravel\Fortify\TwoFactorAuthenticatable; use Laravel\Jetstream\HasProfilePhoto; use Laravel\Sanctum\HasApiTokens; @@ -102,6 +103,22 @@ public function isAdmin(): bool ); } + public function isTech(): bool + { + return cache()->remember('user.is_tech:'.$this->id, + 5 * 60, + fn () => $this->hasRole(UserRole::Technician) + ); + } + + public function primaryRole(): string + { + return cache()->remember('user.pri_role:'.$this->id, + 5 * 60, + fn () => Str::title($this->roles()->first()->name) + ); + } + public function may(Permission|iterable|string $perm): bool { return $this->isAdmin() || $this->can($perm); @@ -122,13 +139,13 @@ public function getFullNameAttribute(): string return trim($this->first_name.' '.$this->last_name); } - public function avatar(): string + public function avatar(bool $gravatar = false): string { if (filled($this->profile_photo_path)) { return Storage::url($this->profile_photo_path); } - if (filled($this->email)) { + if ($gravatar && filled($this->email)) { return (new Avatar)->create($this->email)->toGravatar(); } diff --git a/resources/menu/horizontalMenu.json b/resources/menu/horizontalMenu.json index 625f68d..7019777 100644 --- a/resources/menu/horizontalMenu.json +++ b/resources/menu/horizontalMenu.json @@ -7,10 +7,10 @@ "slug": "pages-home" }, { - "url": "/page-2", + "url": "/worklist", "icon": "menu-icon tf-icons ri-file-line", - "name": "Page 2", - "slug": "pages-page-2" + "name": "Worklist", + "slug": "worklist" }, { "url": "/pages/misc-error", diff --git a/resources/views/layouts/sections/navbar/navbar.blade.php b/resources/views/layouts/sections/navbar/navbar.blade.php index 35936f7..a668dac 100644 --- a/resources/views/layouts/sections/navbar/navbar.blade.php +++ b/resources/views/layouts/sections/navbar/navbar.blade.php @@ -84,18 +84,20 @@
- +
@if (Auth::check()) - {{ Auth::user()->name }} - @else - John Doe + {{ Auth::user()->display_name }} @endif - Admin + + @auth + {{ Auth::user()->primaryRole() }} + @endauth +
diff --git a/vite.config.js b/vite.config.js index 9655430..5a4aecb 100644 --- a/vite.config.js +++ b/vite.config.js @@ -43,7 +43,8 @@ const FaCssFiles = GetFilesArray('resources/fontawesome/scss/!(_)*.scss'); // Processing Fonts Scss Files const FontsScssFiles = GetFilesArray('resources/assets/vendor/fonts/**/!(_)*.scss'); const ImageFiles = GetFilesArray('resources/imgs/**/*.*'); -const CustImageFiles = GetFilesArray('resources/assets/img/**/*.*'); +const CustImageFiles = GetFilesArray('resources/assets/img/customizer/*.*'); +const AvImageFiles = GetFilesArray('resources/assets/img/avatars/*.*'); // Processing Window Assignment for Libs like jKanban, pdfMake function libsWindowAssignment() { @@ -89,6 +90,10 @@ export default defineConfig({ { src: [...CustImageFiles], dest: '../assets/img/customizer' + }, + { + src: [...AvImageFiles], + dest: '../assets/img/avatars' } ] }),