This commit is contained in:
Dr Masroor Ehsan 2025-01-05 12:49:53 +06:00
parent ea21a659d4
commit bebfb3ca7a
52 changed files with 292 additions and 328 deletions

View File

@ -2,8 +2,8 @@
namespace App\DAL; namespace App\DAL;
use Cache; use Illuminate\Support\Facades\Cache;
use DB; use Illuminate\Support\Facades\DB;
final readonly class Studies final readonly class Studies
{ {

View File

@ -39,6 +39,11 @@ abstract class WorklistBase implements IUserStudyLister
private ?string $reportDateTo = null; private ?string $reportDateTo = null;
protected static function reportCompleteQuery(Builder $query): Builder
{
return $query->where('report_status', '=', ReportStatus::Authorized->value);
}
public function setRadiologist(int $radiologist_id): self public function setRadiologist(int $radiologist_id): self
{ {
$this->radiologist_id = $radiologist_id; $this->radiologist_id = $radiologist_id;
@ -53,46 +58,6 @@ public function setStudyStatus(StudyLevelStatus $status): self
return $this; return $this;
} }
private function applyRadiologist(Builder $query): Builder
{
if ($this->radiologist_id != null) {
$rad = $this->radiologist_id;
$query = $query->where(function ($query) use ($rad) {
$query->Where('assigned_physician_id', '=', $rad);
$query->orWhere('reporting_physician_id', '=', $rad);
});
}
return $query;
}
protected function getStudiesQuery(): Builder
{
if ($this->archived === null) {
return Study::active();
}
return Study::query();
}
private function applyStudyStatus(Builder $query): Builder
{
if ($this->studyStatus != null) {
$query = $query->where('study_status', '=', $this->studyStatus->value);
}
return $query;
}
private function applyReportStatus(Builder $query): Builder
{
if ($this->reportStatus != null) {
$query = $query->where('report_status', '=', $this->reportStatus->value);
}
return $query;
}
public function setReportStatus(ReportStatus $status): self public function setReportStatus(ReportStatus $status): self
{ {
$this->reportStatus = $status; $this->reportStatus = $status;
@ -100,28 +65,6 @@ public function setReportStatus(ReportStatus $status): self
return $this; return $this;
} }
protected static function reportCompleteQuery(Builder $query): Builder
{
return $query->where('report_status', '=', ReportStatus::Authorized->value);
}
protected function applySort(Builder $query): Builder
{
if (! empty($this->sortColumns)) {
foreach ($this->sortColumns as $column => $dir) {
$query = $query->orderBy($column, $dir);
}
return $query;
}
return $query
->orderByDesc('priority')
->orderByDesc('received_at');
}
abstract protected function buildQuery(?int $user_id = null): Builder;
public function query(?int $user_id = null): Builder public function query(?int $user_id = null): Builder
{ {
$query = $this->buildQuery($user_id); $query = $this->buildQuery($user_id);
@ -189,6 +132,87 @@ public function setSearchTerm(string $search): self
return $this; return $this;
} }
public function setStudyDate(string $from, ?string $to = null): self
{
$this->studyDateFrom = $from;
$this->studyDateTo = $to;
return $this;
}
public function setReceiveDate(string $from, ?string $to = null): self
{
$this->receiveDateFrom = $from;
$this->receiveDateTo = $to;
return $this;
}
public function setReportDate(string $from, ?string $to = null): self
{
$this->reportDateFrom = $from;
$this->reportDateTo = $to;
return $this;
}
protected function getStudiesQuery(): Builder
{
if ($this->archived === null) {
return Study::active();
}
return Study::query();
}
protected function applySort(Builder $query): Builder
{
if (! empty($this->sortColumns)) {
foreach ($this->sortColumns as $column => $dir) {
$query = $query->orderBy($column, $dir);
}
return $query;
}
return $query
->orderByDesc('priority')
->orderByDesc('received_at');
}
abstract protected function buildQuery(?int $user_id = null): Builder;
private function applyRadiologist(Builder $query): Builder
{
if ($this->radiologist_id != null) {
$rad = $this->radiologist_id;
$query = $query->where(function ($query) use ($rad) {
$query->Where('assigned_physician_id', '=', $rad);
$query->orWhere('reporting_physician_id', '=', $rad);
});
}
return $query;
}
private function applyStudyStatus(Builder $query): Builder
{
if ($this->studyStatus != null) {
$query = $query->where('study_status', '=', $this->studyStatus->value);
}
return $query;
}
private function applyReportStatus(Builder $query): Builder
{
if ($this->reportStatus != null) {
$query = $query->where('report_status', '=', $this->reportStatus->value);
}
return $query;
}
private function getPageSize(?int $user_id = null): int private function getPageSize(?int $user_id = null): int
{ {
return $this->perPage ?? user_per_page($user_id); return $this->perPage ?? user_per_page($user_id);
@ -260,28 +284,4 @@ private function applyDateFilters(Builder $query): Builder
return $query; return $query;
} }
public function setStudyDate(string $from, ?string $to = null): self
{
$this->studyDateFrom = $from;
$this->studyDateTo = $to;
return $this;
}
public function setReceiveDate(string $from, ?string $to = null): self
{
$this->receiveDateFrom = $from;
$this->receiveDateTo = $to;
return $this;
}
public function setReportDate(string $from, ?string $to = null): self
{
$this->reportDateFrom = $from;
$this->reportDateTo = $to;
return $this;
}
} }

View File

@ -3,7 +3,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\User; use App\Models\User;
use Auth; use Illuminate\Support\Facades\Auth;
use Laravel\Socialite\Facades\Socialite; use Laravel\Socialite\Facades\Socialite;
class SocialLoginController extends Controller class SocialLoginController extends Controller

View File

@ -8,6 +8,16 @@
class StudyViewerController extends HashidControllerBase class StudyViewerController extends HashidControllerBase
{ {
public function stone()
{
return $this->loadViewer(fn (Study $study) => $study->getStoneLink());
}
public function ohif()
{
return $this->loadViewer(fn (Study $study) => $study->getOhifLink());
}
private function loadViewer(\Closure $callback) private function loadViewer(\Closure $callback)
{ {
$this->decodeKeys(); $this->decodeKeys();
@ -18,14 +28,4 @@ private function loadViewer(\Closure $callback)
return view('staff.studies.viewer', compact('url', 'title')); return view('staff.studies.viewer', compact('url', 'title'));
} }
public function stone()
{
return $this->loadViewer(fn (Study $study) => $study->getStoneLink());
}
public function ohif()
{
return $this->loadViewer(fn (Study $study) => $study->getOhifLink());
}
} }

View File

@ -23,14 +23,6 @@ function () use ($token) {
return $token; return $token;
} }
public function getTokenableAttribute()
{
return Cache::remember("PersonalAccessToken::{$this->id}::tokenable", 600,
function () {
return parent::tokenable()->first();
});
}
public static function boot() public static function boot()
{ {
parent::boot(); parent::boot();
@ -50,4 +42,12 @@ public static function boot()
return false; return false;
}); });
} }
public function getTokenableAttribute()
{
return Cache::remember("PersonalAccessToken::{$this->id}::tokenable", 600,
function () {
return parent::tokenable()->first();
});
}
} }

View File

@ -22,14 +22,6 @@ public function sender(): BelongsTo
return $this->belongsTo(User::class, 'sender_id'); return $this->belongsTo(User::class, 'sender_id');
} }
protected function casts(): array
{
return [
'expires_at' => 'datetime',
'access_flags' => StudyAccessFlags::class,
];
}
public function isPasswordProtected(): bool public function isPasswordProtected(): bool
{ {
return ! blank($this->access_password); return ! blank($this->access_password);
@ -52,4 +44,12 @@ public function hasExpired(): bool
return $this->expires_at->isPast(); return $this->expires_at->isPast();
} }
protected function casts(): array
{
return [
'expires_at' => 'datetime',
'access_flags' => StudyAccessFlags::class,
];
}
} }

View File

@ -18,21 +18,6 @@ class Study extends BaseModel
{ {
use HashableId; use HashableId;
protected function casts(): array
{
return [
'is_locked' => 'boolean',
'is_archived' => 'boolean',
'study_status' => StudyLevelStatus::class,
'report_status' => ReportStatus::class,
'priority' => Priority::class,
'received_at' => 'immutable_datetime',
'reported_at' => 'immutable_datetime',
'assigned_at' => 'immutable_datetime',
'study_date' => 'immutable_datetime',
];
}
public function details(): HasOne public function details(): HasOne
{ {
return $this->hasOne(StudyDetails::class); return $this->hasOne(StudyDetails::class);
@ -268,4 +253,19 @@ public function getPriorityIcon(): string
default => '', default => '',
}; };
} }
protected function casts(): array
{
return [
'is_locked' => 'boolean',
'is_archived' => 'boolean',
'study_status' => StudyLevelStatus::class,
'report_status' => ReportStatus::class,
'priority' => Priority::class,
'received_at' => 'immutable_datetime',
'reported_at' => 'immutable_datetime',
'assigned_at' => 'immutable_datetime',
'study_date' => 'immutable_datetime',
];
}
} }

View File

@ -7,15 +7,30 @@
class StudyDetails extends BaseModel class StudyDetails extends BaseModel
{ {
use HashableId;
protected $table = 'study_details'; protected $table = 'study_details';
use HashableId; public static function historyOnly(int $studyId): self
{
return self::where('study_id', $studyId)->select(['id', 'study_id', 'clinical_history', 'surgical_history', 'lab_results', 'clinical_diagnosis'])->firstOrFail();
}
public static function seriesOnly(int $studyId): self
{
return self::where('study_id', $studyId)->select(['id', 'study_id', 'series'])->firstOrFail();
}
public function study(): BelongsTo public function study(): BelongsTo
{ {
return $this->belongsTo(Study::class); return $this->belongsTo(Study::class);
} }
public function historyIcon(): string
{
return sprintf('<i class="fa-regular fa-file-prescription %s"></i>', blank($this->clinical_history) ? 'text-muted' : 'text-success');
}
/** /**
* @return array<string, string> * @return array<string, string>
*/ */
@ -27,19 +42,4 @@ protected function casts(): array
'assignment_log' => 'array', 'assignment_log' => 'array',
]; ];
} }
public static function historyOnly(int $studyId): self
{
return self::where('study_id', $studyId)->select(['id', 'study_id', 'clinical_history', 'surgical_history', 'lab_results', 'clinical_diagnosis'])->firstOrFail();
}
public static function seriesOnly(int $studyId): self
{
return self::where('study_id', $studyId)->select(['id', 'study_id', 'series'])->firstOrFail();
}
public function historyIcon(): string
{
return sprintf('<i class="fa-regular fa-file-prescription %s"></i>', blank($this->clinical_history) ? 'text-muted' : 'text-success');
}
} }

View File

@ -113,14 +113,14 @@ public static function on(int $value, self $bit): bool
return ($value & $bit->value) === $bit->value; return ($value & $bit->value) === $bit->value;
} }
public function toString(): string
{
return self::valueToString($this->value);
}
/** @param Int32BitMask $value */ /** @param Int32BitMask $value */
public static function valueToString(int $value): string public static function valueToString(int $value): string
{ {
return '0b' . substr(chunk_split(sprintf('%\'032b', $value), 4, '_'), 0, -1); return '0b' . substr(chunk_split(sprintf('%\'032b', $value), 4, '_'), 0, -1);
} }
public function toString(): string
{
return self::valueToString($this->value);
}
} }

View File

@ -18,6 +18,16 @@ public static function hashToId(string $hash): int
return unhash_it($hash); return unhash_it($hash);
} }
public static function byHashOrFail($hash): self
{
return self::query()->byHash($hash)->firstOrFail();
}
public static function byHash($hash): ?self
{
return self::query()->byHash($hash)->first();
}
/** /**
* Get HashId column name. * Get HashId column name.
*/ */
@ -48,14 +58,4 @@ public function resolveRouteBinding($value, $field = null)
return $this->byHash($value); return $this->byHash($value);
} }
public static function byHashOrFail($hash): self
{
return self::query()->byHash($hash)->firstOrFail();
}
public static function byHash($hash): ?self
{
return self::query()->byHash($hash)->first();
}
} }

View File

@ -75,21 +75,6 @@ class User extends Authenticatable
'last_seen', 'last_seen',
]; ];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'is_active' => 'bool',
'email_verified_at' => 'datetime',
'last_seen_at' => 'datetime',
'password' => 'hashed',
];
}
public function scopeActive($query) public function scopeActive($query)
{ {
return $query->where('is_active', true); return $query->where('is_active', true);
@ -151,4 +136,19 @@ public function avatar(bool $gravatar = false): string
return (new Avatar)->create($this->full_name)->toBase64(); return (new Avatar)->create($this->full_name)->toBase64();
} }
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'is_active' => 'bool',
'email_verified_at' => 'datetime',
'last_seen_at' => 'datetime',
'password' => 'hashed',
];
}
} }

View File

@ -3,8 +3,8 @@
namespace App\Services\AuditTrail; namespace App\Services\AuditTrail;
use App\Models\Study; use App\Models\Study;
use DB;
use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Support\Facades\DB;
class ActivityLogger class ActivityLogger
{ {

View File

@ -4,8 +4,8 @@
use App\Models\Enums\NameMatchModes; use App\Models\Enums\NameMatchModes;
use App\Services\InputMatcher; use App\Services\InputMatcher;
use Cache; use Illuminate\Support\Facades\Cache;
use DB; use Illuminate\Support\Facades\DB;
final class InstituteMapper final class InstituteMapper
{ {

View File

@ -23,6 +23,13 @@ class StudiesSync
private OrthancRestClient $client; private OrthancRestClient $client;
public function __construct(?OrthancRestClient $client = null)
{
$this->study_ids = collect();
$this->client = $client ?? new OrthancRestClient;
$this->resetQueues();
}
public function execute(): void public function execute(): void
{ {
app(Pipeline::class) app(Pipeline::class)
@ -37,13 +44,6 @@ public function execute(): void
->thenReturn(); ->thenReturn();
} }
public function __construct(?OrthancRestClient $client = null)
{
$this->study_ids = collect();
$this->client = $client ?? new OrthancRestClient;
$this->resetQueues();
}
public function getClient(): OrthancRestClient public function getClient(): OrthancRestClient
{ {
return $this->client; return $this->client;

View File

@ -7,11 +7,6 @@
final readonly class UserService final readonly class UserService
{ {
private static function lastSeenKey(int $userId): string
{
return sprintf('last_seen:%d', $userId);
}
public static function setLastSeen(int $userId, ?Carbon $seenAt = null): void public static function setLastSeen(int $userId, ?Carbon $seenAt = null): void
{ {
Redis::connection()->set(self::lastSeenKey($userId), ($seenAt ?? Carbon::now())->toISOString()); Redis::connection()->set(self::lastSeenKey($userId), ($seenAt ?? Carbon::now())->toISOString());
@ -23,4 +18,9 @@ public static function getLastSeen(int $userId): ?Carbon
return $lastSeen ? Carbon::parse($lastSeen) : null; return $lastSeen ? Carbon::parse($lastSeen) : null;
} }
private static function lastSeenKey(int $userId): string
{
return sprintf('last_seen:%d', $userId);
}
} }

View File

@ -8,9 +8,6 @@
return new class extends Migration return new class extends Migration
{ {
/**
* Run the migrations.
*/
public function up(): void public function up(): void
{ {
Schema::create('users', function (Blueprint $table) { Schema::create('users', function (Blueprint $table) {
@ -50,9 +47,6 @@ public function up(): void
}); });
} }
/**
* Reverse the migrations.
*/
public function down(): void public function down(): void
{ {
Schema::dropIfExists('users'); Schema::dropIfExists('users');

View File

@ -6,9 +6,6 @@
return new class extends Migration return new class extends Migration
{ {
/**
* Run the migrations.
*/
public function up(): void public function up(): void
{ {
Schema::create('cache', function (Blueprint $table) { Schema::create('cache', function (Blueprint $table) {
@ -24,9 +21,6 @@ public function up(): void
}); });
} }
/**
* Reverse the migrations.
*/
public function down(): void public function down(): void
{ {
Schema::dropIfExists('cache'); Schema::dropIfExists('cache');

View File

@ -6,9 +6,6 @@
return new class extends Migration return new class extends Migration
{ {
/**
* Run the migrations.
*/
public function up(): void public function up(): void
{ {
Schema::create('jobs', function (Blueprint $table) { Schema::create('jobs', function (Blueprint $table) {
@ -45,9 +42,6 @@ public function up(): void
}); });
} }
/**
* Reverse the migrations.
*/
public function down(): void public function down(): void
{ {
Schema::dropIfExists('jobs'); Schema::dropIfExists('jobs');

View File

@ -7,9 +7,6 @@
return new class extends Migration return new class extends Migration
{ {
/**
* Run the migrations.
*/
public function up(): void public function up(): void
{ {
Schema::table('users', function (Blueprint $table) { Schema::table('users', function (Blueprint $table) {
@ -29,9 +26,6 @@ public function up(): void
}); });
} }
/**
* Reverse the migrations.
*/
public function down(): void public function down(): void
{ {
Schema::table('users', function (Blueprint $table) { Schema::table('users', function (Blueprint $table) {

View File

@ -6,9 +6,6 @@
return new class extends Migration return new class extends Migration
{ {
/**
* Run the migrations.
*/
public function up(): void public function up(): void
{ {
Schema::create('personal_access_tokens', function (Blueprint $table) { Schema::create('personal_access_tokens', function (Blueprint $table) {
@ -23,9 +20,6 @@ public function up(): void
}); });
} }
/**
* Reverse the migrations.
*/
public function down(): void public function down(): void
{ {
Schema::dropIfExists('personal_access_tokens'); Schema::dropIfExists('personal_access_tokens');

View File

@ -6,9 +6,6 @@
return new class extends Migration return new class extends Migration
{ {
/**
* Run the migrations.
*/
public function up(): void public function up(): void
{ {
$teams = config('permission.teams'); $teams = config('permission.teams');
@ -120,9 +117,6 @@ public function up(): void
->forget(config('permission.cache.key')); ->forget(config('permission.cache.key'));
} }
/**
* Reverse the migrations.
*/
public function down(): void public function down(): void
{ {
$tableNames = config('permission.table_names'); $tableNames = config('permission.table_names');

View File

@ -17,20 +17,20 @@
@section('content') @section('content')
<div class="authentication-wrapper authentication-cover"> <div class="authentication-wrapper authentication-cover">
<!-- Logo --> <!-- Logo -->
<a href="{{url('/')}}" class="auth-cover-brand d-flex align-items-center gap-2"> <a href="{{ url('/') }}" class="auth-cover-brand d-flex align-items-center gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
<!-- /Logo --> <!-- /Logo -->
<div class="authentication-inner row m-0"> <div class="authentication-inner row m-0">
<!-- /Left Section --> <!-- /Left Section -->
<div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2"> <div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2">
<img src="{{asset('assets/img/illustrations/auth-forgot-password-illustration-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-forgot-password-illustration-'.$configData['style'].'.png') }}"
class="auth-cover-illustration w-100" alt="auth-illustration" class="auth-cover-illustration w-100" alt="auth-illustration"
data-app-light-img="illustrations/auth-forgot-password-illustration-light.png" data-app-light-img="illustrations/auth-forgot-password-illustration-light.png"
data-app-dark-img="illustrations/auth-forgot-password-illustration-dark.png"/> data-app-dark-img="illustrations/auth-forgot-password-illustration-dark.png"/>
<img src="{{asset('assets/img/illustrations/auth-cover-forgot-password-mask-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-cover-forgot-password-mask-'.$configData['style'].'.png') }}"
class="authentication-image" alt="mask" class="authentication-image" alt="mask"
data-app-light-img="illustrations/auth-cover-forgot-password-mask-light.png" data-app-light-img="illustrations/auth-cover-forgot-password-mask-light.png"
data-app-dark-img="illustrations/auth-cover-forgot-password-mask-dark.png"/> data-app-dark-img="illustrations/auth-cover-forgot-password-mask-dark.png"/>

View File

@ -17,20 +17,20 @@
@section('content') @section('content')
<div class="authentication-wrapper authentication-cover"> <div class="authentication-wrapper authentication-cover">
<!-- Logo --> <!-- Logo -->
<a href="{{url('/')}}" class="auth-cover-brand d-flex align-items-center gap-2"> <a href="{{ url('/') }}" class="auth-cover-brand d-flex align-items-center gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
<!-- /Logo --> <!-- /Logo -->
<div class="authentication-inner row m-0"> <div class="authentication-inner row m-0">
<!-- /Left Section --> <!-- /Left Section -->
<div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2"> <div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2">
<img src="{{asset('assets/img/illustrations/auth-forgot-password-illustration-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-forgot-password-illustration-'.$configData['style'].'.png') }}"
class="auth-cover-illustration w-100" alt="auth-illustration" class="auth-cover-illustration w-100" alt="auth-illustration"
data-app-light-img="illustrations/auth-forgot-password-illustration-light.png" data-app-light-img="illustrations/auth-forgot-password-illustration-light.png"
data-app-dark-img="illustrations/auth-forgot-password-illustration-dark.png"/> data-app-dark-img="illustrations/auth-forgot-password-illustration-dark.png"/>
<img src="{{asset('assets/img/illustrations/auth-cover-forgot-password-mask-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-cover-forgot-password-mask-'.$configData['style'].'.png') }}"
class="authentication-image" alt="mask" class="authentication-image" alt="mask"
data-app-light-img="illustrations/auth-cover-forgot-password-mask-light.png" data-app-light-img="illustrations/auth-cover-forgot-password-mask-light.png"
data-app-dark-img="illustrations/auth-cover-forgot-password-mask-dark.png"/> data-app-dark-img="illustrations/auth-cover-forgot-password-mask-dark.png"/>

View File

@ -16,20 +16,20 @@
@section('content') @section('content')
<div class="authentication-wrapper authentication-cover"> <div class="authentication-wrapper authentication-cover">
<!-- Logo --> <!-- Logo -->
<a href="{{url('/')}}" class="auth-cover-brand d-flex align-items-center gap-2"> <a href="{{ url('/') }}" class="auth-cover-brand d-flex align-items-center gap-2">
<span <span
class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
<!-- /Logo --> <!-- /Logo -->
<div class="authentication-inner row m-0"> <div class="authentication-inner row m-0">
<!-- /Left Section --> <!-- /Left Section -->
<div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2"> <div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2">
<img src="{{asset('assets/img/illustrations/auth-login-illustration-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-login-illustration-'.$configData['style'].'.png') }}"
class="auth-cover-illustration w-100" alt="auth-illustration" class="auth-cover-illustration w-100" alt="auth-illustration"
data-app-light-img="illustrations/auth-login-illustration-light.png" data-app-light-img="illustrations/auth-login-illustration-light.png"
data-app-dark-img="illustrations/auth-login-illustration-dark.png"/> data-app-dark-img="illustrations/auth-login-illustration-dark.png"/>
<img src="{{asset('assets/img/illustrations/auth-cover-login-mask-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-cover-login-mask-'.$configData['style'].'.png') }}"
class="authentication-image" alt="mask" class="authentication-image" alt="mask"
data-app-light-img="illustrations/auth-cover-login-mask-light.png" data-app-light-img="illustrations/auth-cover-login-mask-light.png"
data-app-dark-img="illustrations/auth-cover-login-mask-dark.png"/> data-app-dark-img="illustrations/auth-cover-login-mask-dark.png"/>
@ -40,7 +40,7 @@ class="authentication-image" alt="mask"
<div <div
class="d-flex col-12 col-lg-5 col-xl-4 align-items-center authentication-bg position-relative py-sm-12 px-12 py-6"> class="d-flex col-12 col-lg-5 col-xl-4 align-items-center authentication-bg position-relative py-sm-12 px-12 py-6">
<div class="w-px-400 mx-auto pt-5 pt-lg-0"> <div class="w-px-400 mx-auto pt-5 pt-lg-0">
<h4 class="mb-1">Welcome to {{config('variables.templateName')}}! 👋</h4> <h4 class="mb-1">Welcome to {{ config('variables.templateName') }}! 👋</h4>
<p class="mb-5">Please sign-in to your account and start the adventure</p> <p class="mb-5">Please sign-in to your account and start the adventure</p>
@if (session('status')) @if (session('status'))

View File

@ -17,20 +17,20 @@
@section('content') @section('content')
<div class="authentication-wrapper authentication-cover"> <div class="authentication-wrapper authentication-cover">
<!-- Logo --> <!-- Logo -->
<a href="{{url('/')}}" class="auth-cover-brand d-flex align-items-center gap-2"> <a href="{{ url('/') }}" class="auth-cover-brand d-flex align-items-center gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
<!-- /Logo --> <!-- /Logo -->
<div class="authentication-inner row m-0"> <div class="authentication-inner row m-0">
<!-- /Left Text --> <!-- /Left Text -->
<div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2"> <div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2">
<img src="{{asset('assets/img/illustrations/auth-register-illustration-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-register-illustration-'.$configData['style'].'.png') }}"
class="auth-cover-illustration w-100" alt="auth-illustration" class="auth-cover-illustration w-100" alt="auth-illustration"
data-app-light-img="illustrations/auth-register-illustration-light.png" data-app-light-img="illustrations/auth-register-illustration-light.png"
data-app-dark-img="illustrations/auth-register-illustration-dark.png"/> data-app-dark-img="illustrations/auth-register-illustration-dark.png"/>
<img src="{{asset('assets/img/illustrations/auth-cover-register-mask-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-cover-register-mask-'.$configData['style'].'.png') }}"
class="authentication-image" alt="mask" class="authentication-image" alt="mask"
data-app-light-img="illustrations/auth-cover-register-mask-light.png" data-app-light-img="illustrations/auth-cover-register-mask-light.png"
data-app-dark-img="illustrations/auth-cover-register-mask-dark.png"/> data-app-dark-img="illustrations/auth-cover-register-mask-dark.png"/>

View File

@ -18,20 +18,20 @@
<div class="position-relative"> <div class="position-relative">
<div class="authentication-wrapper authentication-cover"> <div class="authentication-wrapper authentication-cover">
<!-- Logo --> <!-- Logo -->
<a href="{{url('/')}}" class="auth-cover-brand d-flex align-items-center gap-2"> <a href="{{ url('/') }}" class="auth-cover-brand d-flex align-items-center gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
<!-- /Logo --> <!-- /Logo -->
<div class="authentication-inner row m-0"> <div class="authentication-inner row m-0">
<!-- /Left Section --> <!-- /Left Section -->
<div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2"> <div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2">
<img src="{{asset('assets/img/illustrations/auth-reset-password-illustration-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-reset-password-illustration-'.$configData['style'].'.png') }}"
class="auth-cover-illustration w-100" alt="auth-illustration" class="auth-cover-illustration w-100" alt="auth-illustration"
data-app-light-img="illustrations/auth-reset-password-illustration-light.png" data-app-light-img="illustrations/auth-reset-password-illustration-light.png"
data-app-dark-img="illustrations/auth-reset-password-illustration-dark.png"/> data-app-dark-img="illustrations/auth-reset-password-illustration-dark.png"/>
<img src="{{asset('assets/img/illustrations/auth-cover-reset-password-mask-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-cover-reset-password-mask-'.$configData['style'].'.png') }}"
class="authentication-image" alt="mask" class="authentication-image" alt="mask"
data-app-light-img="illustrations/auth-cover-reset-password-mask-light.png" data-app-light-img="illustrations/auth-cover-reset-password-mask-light.png"
data-app-dark-img="illustrations/auth-cover-reset-password-mask-dark.png"/> data-app-dark-img="illustrations/auth-cover-reset-password-mask-dark.png"/>
@ -50,7 +50,7 @@ class="authentication-image" alt="mask"
<div class="form-floating form-floating-outline mb-5"> <div class="form-floating form-floating-outline mb-5">
<input type="email" class="form-control @error('email') is-invalid @enderror" id="email" <input type="email" class="form-control @error('email') is-invalid @enderror" id="email"
name="email" placeholder="john@example.com" value="{{Request()->email}}" name="email" placeholder="john@example.com" value="{{ Request()->email }}"
readonly/> readonly/>
<label for="email">Email</label> <label for="email">Email</label>
@error('email') @error('email')

View File

@ -17,20 +17,20 @@
@section('content') @section('content')
<div class="authentication-wrapper authentication-cover"> <div class="authentication-wrapper authentication-cover">
<!-- Logo --> <!-- Logo -->
<a href="{{url('/')}}" class="auth-cover-brand d-flex align-items-center gap-2"> <a href="{{ url('/') }}" class="auth-cover-brand d-flex align-items-center gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
<!-- /Logo --> <!-- /Logo -->
<div class="authentication-inner row m-0"> <div class="authentication-inner row m-0">
<!-- /Left Section --> <!-- /Left Section -->
<div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2"> <div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2">
<img src="{{asset('assets/img/illustrations/auth-two-steps-illustration-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-two-steps-illustration-'.$configData['style'].'.png') }}"
class="auth-cover-illustration w-100" alt="auth-illustration" class="auth-cover-illustration w-100" alt="auth-illustration"
data-app-light-img="illustrations/auth-two-steps-illustration-light.png" data-app-light-img="illustrations/auth-two-steps-illustration-light.png"
data-app-dark-img="illustrations/auth-two-steps-illustration-dark.png"/> data-app-dark-img="illustrations/auth-two-steps-illustration-dark.png"/>
<img src="{{asset('assets/img/illustrations/auth-cover-register-mask-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-cover-register-mask-'.$configData['style'].'.png') }}"
class="authentication-image" alt="mask" class="authentication-image" alt="mask"
data-app-light-img="illustrations/auth-cover-register-mask-light.png" data-app-light-img="illustrations/auth-cover-register-mask-light.png"
data-app-dark-img="illustrations/auth-cover-register-mask-dark.png"/> data-app-dark-img="illustrations/auth-cover-register-mask-dark.png"/>

View File

@ -18,10 +18,10 @@
@section('content') @section('content')
<div class="authentication-wrapper authentication-cover"> <div class="authentication-wrapper authentication-cover">
<!-- Logo --> <!-- Logo -->
<a href="{{url('/')}}" class="auth-cover-brand d-flex align-items-center gap-2"> <a href="{{ url('/') }}" class="auth-cover-brand d-flex align-items-center gap-2">
<span <span
class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
<!-- /Logo --> <!-- /Logo -->
<div class="authentication-inner row m-0"> <div class="authentication-inner row m-0">
@ -29,11 +29,11 @@ class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'
<!-- /Left Section --> <!-- /Left Section -->
<div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2"> <div class="d-none d-lg-flex col-lg-7 col-xl-8 align-items-center justify-content-center p-12 pb-2">
<img <img
src="{{asset('assets/img/illustrations/auth-verify-email-illustration-'.$configData['style'].'.png') }}" src="{{ asset('assets/img/illustrations/auth-verify-email-illustration-'.$configData['style'].'.png') }}"
class="auth-cover-illustration w-100" alt="auth-illustration" class="auth-cover-illustration w-100" alt="auth-illustration"
data-app-light-img="illustrations/auth-verify-email-illustration-light.png" data-app-light-img="illustrations/auth-verify-email-illustration-light.png"
data-app-dark-img="illustrations/auth-verify-email-illustration-dark.png"/> data-app-dark-img="illustrations/auth-verify-email-illustration-dark.png"/>
<img src="{{asset('assets/img/illustrations/auth-cover-login-mask-'.$configData['style'].'.png') }}" <img src="{{ asset('assets/img/illustrations/auth-cover-login-mask-'.$configData['style'].'.png') }}"
class="authentication-image" alt="mask" class="authentication-image" alt="mask"
data-app-light-img="illustrations/auth-cover-login-mask-light.png" data-app-light-img="illustrations/auth-cover-login-mask-light.png"
data-app-dark-img="illustrations/auth-cover-login-mask-dark.png"/> data-app-dark-img="illustrations/auth-cover-login-mask-dark.png"/>
@ -56,7 +56,7 @@ class="d-flex col-12 col-lg-5 col-xl-4 align-items-center authentication-bg posi
@endif @endif
<p class="text-start mb-0"> <p class="text-start mb-0">
Account activation link sent to your email address: <span Account activation link sent to your email address: <span
class="h6">{{Auth::user()->email}}</span> Please follow the link inside to continue. class="h6">{{ Auth::user()->email }}</span> Please follow the link inside to continue.
</p> </p>
<div class="mt-5 d-flex flex-column gap-2"> <div class="mt-5 d-flex flex-column gap-2">
<form method="POST" action="{{ route('verification.send') }}"> <form method="POST" action="{{ route('verification.send') }}">
@ -65,7 +65,7 @@ class="h6">{{Auth::user()->email}}</span> Please follow the link inside to conti
</button> </button>
</form> </form>
<form method="POST" action="{{route('logout')}}"> <form method="POST" action="{{ route('logout') }}">
@csrf @csrf
<button type="submit" class="w-100 btn btn-danger">Log Out</button> <button type="submit" class="w-100 btn btn-danger">Log Out</button>
</form> </form>

View File

@ -43,18 +43,18 @@
<div class="card p-md-7 p-1"> <div class="card p-md-7 p-1">
<!-- Logo --> <!-- Logo -->
<div class="app-brand justify-content-center mt-5"> <div class="app-brand justify-content-center mt-5">
<a href="{{url('/')}}" class="app-brand-link gap-2"> <a href="{{ url('/') }}" class="app-brand-link gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
</div> </div>
<!-- /Logo --> <!-- /Logo -->
<div class="card-body mt-1"> <div class="card-body mt-1">
<h4 class="mb-1">Welcome to {{config('variables.templateName')}}! 👋</h4> <h4 class="mb-1">Welcome to {{ config('variables.templateName') }}! 👋</h4>
<p class="mb-5">Please sign-in to your account and start the adventure</p> <p class="mb-5">Please sign-in to your account and start the adventure</p>
<form id="formAuthentication" class="mb-5" action="{{url('/')}}" method="GET"> <form id="formAuthentication" class="mb-5" action="{{ url('/') }}" method="GET">
<div class="form-floating form-floating-outline mb-5"> <div class="form-floating form-floating-outline mb-5">
<input type="text" class="form-control" id="email" name="email-username" <input type="text" class="form-control" id="email" name="email-username"
placeholder="Enter your email or username" autofocus> placeholder="Enter your email or username" autofocus>
@ -81,7 +81,7 @@ class="ri-eye-off-line"></i></span>
Remember Me Remember Me
</label> </label>
</div> </div>
<a href="{{url('auth/forgot-password-basic')}}" class="float-end mb-1 mt-2"> <a href="{{ url('auth/forgot-password-basic') }}" class="float-end mb-1 mt-2">
<span>Forgot Password?</span> <span>Forgot Password?</span>
</a> </a>
</div> </div>
@ -92,7 +92,7 @@ class="ri-eye-off-line"></i></span>
<p class="text-center"> <p class="text-center">
<span>New on our platform?</span> <span>New on our platform?</span>
<a href="{{url('auth/register-basic')}}"> <a href="{{ url('auth/register-basic') }}">
<span>Create an account</span> <span>Create an account</span>
</a> </a>
</p> </p>
@ -122,7 +122,7 @@ class="ri-eye-off-line"></i></span>
</div> </div>
<!-- /Login --> <!-- /Login -->
<img alt="mask" <img alt="mask"
src="{{asset('assets/img/illustrations/auth-basic-login-mask-'.$configData['style'].'.png') }}" src="{{ asset('assets/img/illustrations/auth-basic-login-mask-'.$configData['style'].'.png') }}"
class="authentication-image d-none d-lg-block" class="authentication-image d-none d-lg-block"
data-app-light-img="illustrations/auth-basic-login-mask-light.png" data-app-light-img="illustrations/auth-basic-login-mask-light.png"
data-app-dark-img="illustrations/auth-basic-login-mask-dark.png"/> data-app-dark-img="illustrations/auth-basic-login-mask-dark.png"/>

View File

@ -43,9 +43,9 @@
<div class="card p-md-7 p-1"> <div class="card p-md-7 p-1">
<!-- Logo --> <!-- Logo -->
<div class="app-brand justify-content-center mt-5"> <div class="app-brand justify-content-center mt-5">
<a href="{{url('/')}}" class="app-brand-link gap-2"> <a href="{{ url('/') }}" class="app-brand-link gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
</div> </div>
<!-- /Logo --> <!-- /Logo -->
@ -53,7 +53,7 @@
<h4 class="mb-1">Adventure starts here 🚀</h4> <h4 class="mb-1">Adventure starts here 🚀</h4>
<p class="mb-5">Make your app management easy and fun!</p> <p class="mb-5">Make your app management easy and fun!</p>
<form id="formAuthentication" class="mb-5" action="{{url('/')}}" method="GET"> <form id="formAuthentication" class="mb-5" action="{{ url('/') }}" method="GET">
<div class="form-floating form-floating-outline mb-5"> <div class="form-floating form-floating-outline mb-5">
<input type="text" class="form-control" id="username" name="username" <input type="text" class="form-control" id="username" name="username"
placeholder="Enter your username" autofocus> placeholder="Enter your username" autofocus>
@ -92,7 +92,7 @@
<p class="text-center"> <p class="text-center">
<span>Already have an account?</span> <span>Already have an account?</span>
<a href="{{url('auth/login-basic')}}"> <a href="{{ url('auth/login-basic') }}">
<span>Sign in instead</span> <span>Sign in instead</span>
</a> </a>
</p> </p>
@ -122,7 +122,7 @@
</div> </div>
<!-- Register Card --> <!-- Register Card -->
<img alt="mask" <img alt="mask"
src="{{asset('assets/img/illustrations/auth-basic-register-mask-'.$configData['style'].'.png') }}" src="{{ asset('assets/img/illustrations/auth-basic-register-mask-'.$configData['style'].'.png') }}"
class="authentication-image d-none d-lg-block" class="authentication-image d-none d-lg-block"
data-app-light-img="illustrations/auth-basic-register-mask-light.png" data-app-light-img="illustrations/auth-basic-register-mask-light.png"
data-app-dark-img="illustrations/auth-basic-register-mask-dark.png"/> data-app-dark-img="illustrations/auth-basic-register-mask-dark.png"/>

View File

@ -20,12 +20,12 @@
<h4 class="mb-2">Page Not Found ⚠️</h4> <h4 class="mb-2">Page Not Found ⚠️</h4>
<p class="mb-6 mx-2">we couldn't find the page you are looking for</p> <p class="mb-6 mx-2">we couldn't find the page you are looking for</p>
<div class="d-flex justify-content-center mt-9"> <div class="d-flex justify-content-center mt-9">
<img src="{{ asset('assets/img/illustrations/misc-error-object.png')}}" alt="misc-error" class="img-fluid misc-object d-none d-lg-inline-block" width="160"> <img src="{{ asset('assets/img/illustrations/misc-error-object.png') }}" alt="misc-error" class="img-fluid misc-object d-none d-lg-inline-block" width="160">
<img src="{{ asset('assets/img/illustrations/misc-bg-'.$configData['style'].'.png') }}" alt="misc-error" class="misc-bg d-none d-lg-inline-block" data-app-light-img="illustrations/misc-bg-light.png" data-app-dark-img="illustrations/misc-bg-dark.png"> <img src="{{ asset('assets/img/illustrations/misc-bg-'.$configData['style'].'.png') }}" alt="misc-error" class="misc-bg d-none d-lg-inline-block" data-app-light-img="illustrations/misc-bg-light.png" data-app-dark-img="illustrations/misc-bg-dark.png">
<div class="d-flex flex-column align-items-center"> <div class="d-flex flex-column align-items-center">
<img src="{{ asset('assets/img/illustrations/misc-error-illustration.png' )}}" alt="misc-error" class="img-fluid z-1" width="190"> <img src="{{ asset('assets/img/illustrations/misc-error-illustration.png' ) }}" alt="misc-error" class="img-fluid z-1" width="190">
<div> <div>
<a href="{{url('/')}}" class="btn btn-primary text-center my-10">Back to home</a> <a href="{{ url('/') }}" class="btn btn-primary text-center my-10">Back to home</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -6,7 +6,7 @@
$contentLayout = (isset($container) ? (($container === 'container-xxl') ? "layout-compact" : "layout-wide") : ""); $contentLayout = (isset($container) ? (($container === 'container-xxl') ? "layout-compact" : "layout-wide") : "");
@endphp @endphp
<html lang="{{ session()->get('locale') ?? app()->getLocale() }}" class="{{ $configData['style'] }}-style {{($contentLayout ?? '')}} {{ ($navbarType ?? '') }} {{ ($menuFixed ?? '') }} {{ $menuCollapsed ?? '' }} {{ $menuFlipped ?? '' }} {{ $menuOffcanvas ?? '' }} {{ $footerFixed ?? '' }} {{ $customizerHidden ?? '' }}" dir="{{ $configData['textDirection'] }}" data-theme="{{ $configData['theme'] }}" data-assets-path="{{ asset('/assets') . '/' }}" data-base-url="{{url('/')}}" data-framework="laravel" data-template="{{ $configData['layout'] . '-menu-' . $configData['themeOpt'] . '-' . $configData['styleOpt'] }}" data-style="{{$configData['styleOptVal']}}"> <html lang="{{ session()->get('locale') ?? app()->getLocale() }}" class="{{ $configData['style'] }}-style {{ ($contentLayout ?? '') }} {{ ($navbarType ?? '') }} {{ ($menuFixed ?? '') }} {{ $menuCollapsed ?? '' }} {{ $menuFlipped ?? '' }} {{ $menuOffcanvas ?? '' }} {{ $footerFixed ?? '' }} {{ $customizerHidden ?? '' }}" dir="{{ $configData['textDirection'] }}" data-theme="{{ $configData['theme'] }}" data-assets-path="{{ asset('/assets') . '/' }}" data-base-url="{{ url('/') }}" data-framework="laravel" data-template="{{ $configData['layout'] . '-menu-' . $configData['themeOpt'] . '-' . $configData['styleOpt'] }}" data-style="{{ $configData['styleOptVal'] }}">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />

View File

@ -59,9 +59,9 @@
<!-- Content --> <!-- Content -->
@if ($isFlex) @if ($isFlex)
<div class="{{$container}} d-flex align-items-stretch flex-grow-1 p-0"> <div class="{{ $container }} d-flex align-items-stretch flex-grow-1 p-0">
@else @else
<div class="{{$container}} flex-grow-1 container-p-y"> <div class="{{ $container }} flex-grow-1 container-p-y">
@endif @endif
@yield('content') @yield('content')

View File

@ -57,9 +57,9 @@
<!-- Content --> <!-- Content -->
@if ($isFlex) @if ($isFlex)
<div class="{{$container}} d-flex align-items-stretch flex-grow-1 p-0"> <div class="{{ $container }} d-flex align-items-stretch flex-grow-1 p-0">
@else @else
<div class="{{$container}} flex-grow-1 container-p-y"> <div class="{{ $container }} flex-grow-1 container-p-y">
@endif @endif
@yield('content') @yield('content')

View File

@ -1,7 +1,7 @@
<!-- Footer: Start --> <!-- Footer: Start -->
<footer class="landing-footer"> <footer class="landing-footer">
<div class="footer-top position-relative overflow-hidden"> <div class="footer-top position-relative overflow-hidden">
<img src="{{asset('assets/img/front-pages/backgrounds/footer-bg.png')}}" alt="footer bg" class="footer-bg banner-bg-img" /> <img src="{{ asset('assets/img/front-pages/backgrounds/footer-bg.png') }}" alt="footer bg" class="footer-bg banner-bg-img" />
<div class="container position-relative"> <div class="container position-relative">
<div class="row gx-0 gy-7 gx-sm-6 gx-lg-12"> <div class="row gx-0 gy-7 gx-sm-6 gx-lg-12">
<div class="col-lg-5"> <div class="col-lg-5">
@ -65,8 +65,8 @@
</div> </div>
<div class="col-lg-3 col-md-4"> <div class="col-lg-3 col-md-4">
<h6 class="footer-title mb-4 mb-lg-6">Download our app</h6> <h6 class="footer-title mb-4 mb-lg-6">Download our app</h6>
<a href="javascript:void(0);" class="d-block footer-link mb-4"><img src="{{asset('assets/img/front-pages/landing-page/apple-icon.png')}}" alt="apple icon" /></a> <a href="javascript:void(0);" class="d-block footer-link mb-4"><img src="{{ asset('assets/img/front-pages/landing-page/apple-icon.png') }}" alt="apple icon" /></a>
<a href="javascript:void(0);" class="d-block footer-link"><img src="{{asset('assets/img/front-pages/landing-page/google-play-icon.png')}}" alt="google play icon" /></a> <a href="javascript:void(0);" class="d-block footer-link"><img src="{{ asset('assets/img/front-pages/landing-page/google-play-icon.png') }}" alt="google play icon" /></a>
</div> </div>
</div> </div>
</div> </div>
@ -77,13 +77,13 @@
<span class="footer-text">© <span class="footer-text">©
<script>document.write(new Date().getFullYear());</script>, Made with <i class="tf-icons ri-heart-fill text-danger"></i> by <script>document.write(new Date().getFullYear());</script>, Made with <i class="tf-icons ri-heart-fill text-danger"></i> by
</span> </span>
<a href="{{config('variables.creatorUrl')}}" target="_blank" class="footer-link fw-medium footer-theme-link">{{config('variables.creatorName')}}</a> <a href="{{ config('variables.creatorUrl') }}" target="_blank" class="footer-link fw-medium footer-theme-link">{{ config('variables.creatorName') }}</a>
</div> </div>
<div> <div>
<a href="{{config('variables.githubUrl')}}" class="footer-link me-4" target="_blank"><i class="ri-github-fill"></i></a> <a href="{{ config('variables.githubUrl') }}" class="footer-link me-4" target="_blank"><i class="ri-github-fill"></i></a>
<a href="{{config('variables.facebookUrl')}}" class="footer-link me-4" target="_blank"><i class="ri-facebook-circle-fill"></i></a> <a href="{{ config('variables.facebookUrl') }}" class="footer-link me-4" target="_blank"><i class="ri-facebook-circle-fill"></i></a>
<a href="{{config('variables.twitterUrl')}}" class="footer-link me-4" target="_blank"><i class="ri-twitter-fill"></i></a> <a href="{{ config('variables.twitterUrl') }}" class="footer-link me-4" target="_blank"><i class="ri-twitter-fill"></i></a>
<a href="{{config('variables.instagramUrl')}}" class="footer-link" target="_blank"><i class='ri-instagram-line'></i></a> <a href="{{ config('variables.instagramUrl') }}" class="footer-link" target="_blank"><i class='ri-instagram-line'></i></a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -5,7 +5,7 @@
@endphp @endphp
<!-- Horizontal Menu --> <!-- Horizontal Menu -->
<aside id="layout-menu" class="layout-menu-horizontal menu-horizontal menu bg-menu-theme flex-grow-0"> <aside id="layout-menu" class="layout-menu-horizontal menu-horizontal menu bg-menu-theme flex-grow-0">
<div class="{{$containerNav}} d-flex h-100"> <div class="{{ $containerNav }} d-flex h-100">
<ul class="menu-inner"> <ul class="menu-inner">
@foreach ($menuData[1]->menu as $menu) @foreach ($menuData[1]->menu as $menu)
@ -35,7 +35,7 @@
@endphp @endphp
{{-- main menu --}} {{-- main menu --}}
<li class="menu-item {{$activeClass}}"> <li class="menu-item {{ $activeClass }}">
<a href="{{ isset($menu->url) ? url($menu->url) : 'javascript:void(0);' }}" <a href="{{ isset($menu->url) ? url($menu->url) : 'javascript:void(0);' }}"
class="{{ isset($menu->submenu) ? 'menu-link menu-toggle' : 'menu-link' }}" class="{{ isset($menu->submenu) ? 'menu-link menu-toggle' : 'menu-link' }}"
@if (isset($menu->target) and !empty($menu->target)) target="_blank" @endif> @if (isset($menu->target) and !empty($menu->target)) target="_blank" @endif>

View File

@ -31,7 +31,7 @@
} }
@endphp @endphp
<li class="menu-item {{$activeClass}}"> <li class="menu-item {{ $activeClass }}">
<a href="{{ isset($submenu->url) ? url($submenu->url) : 'javascript:void(0)' }}" class="{{ isset($submenu->submenu) ? 'menu-link menu-toggle' : 'menu-link' }}" @if (isset($submenu->target) and !empty($submenu->target)) target="_blank" @endif> <a href="{{ isset($submenu->url) ? url($submenu->url) : 'javascript:void(0)' }}" class="{{ isset($submenu->submenu) ? 'menu-link menu-toggle' : 'menu-link' }}" @if (isset($submenu->target) and !empty($submenu->target)) target="_blank" @endif>
@if (isset($submenu->icon)) @if (isset($submenu->icon))
<i class="{{ $submenu->icon }}"></i> <i class="{{ $submenu->icon }}"></i>

View File

@ -7,11 +7,11 @@
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme"> <aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme">
<!-- ! Hide app brand if navbar-full --> <!-- ! Hide app brand if navbar-full -->
@if(!isset($navbarFull)) @if (!isset($navbarFull))
<div class="app-brand demo"> <div class="app-brand demo">
<a href="{{url('/')}}" class="app-brand-link"> <a href="{{ url('/') }}" class="app-brand-link">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo menu-text fw-semibold ms-2">{{config('variables.templateName')}}</span> <span class="app-brand-text demo menu-text fw-semibold ms-2">{{ config('variables.templateName') }}</span>
</a> </a>
<a href="javascript:void(0);" class="layout-menu-toggle menu-link text-large ms-auto"> <a href="javascript:void(0);" class="layout-menu-toggle menu-link text-large ms-auto">
@ -64,7 +64,7 @@
@endphp @endphp
{{-- main menu --}} {{-- main menu --}}
<li class="menu-item {{$activeClass}}"> <li class="menu-item {{ $activeClass }}">
<a href="{{ isset($menu->url) ? url($menu->url) : 'javascript:void(0);' }}" <a href="{{ isset($menu->url) ? url($menu->url) : 'javascript:void(0);' }}"
class="{{ isset($menu->submenu) ? 'menu-link menu-toggle' : 'menu-link' }}" class="{{ isset($menu->submenu) ? 'menu-link menu-toggle' : 'menu-link' }}"
@if (isset($menu->target) and !empty($menu->target)) target="_blank" @endif> @if (isset($menu->target) and !empty($menu->target)) target="_blank" @endif>

View File

@ -30,7 +30,7 @@
<!-- Menu wrapper: End --> <!-- Menu wrapper: End -->
<!-- Toolbar: Start --> <!-- Toolbar: Start -->
<ul class="navbar-nav flex-row align-items-center ms-auto"> <ul class="navbar-nav flex-row align-items-center ms-auto">
@if($configData['hasCustomizer'] == true) @if ($configData['hasCustomizer'] == true)
<!-- Style Switcher --> <!-- Style Switcher -->
<li class="nav-item dropdown-style-switcher dropdown me-2 me-xl-0"> <li class="nav-item dropdown-style-switcher dropdown me-2 me-xl-0">
<a class="nav-link btn btn-text-secondary rounded-pill btn-icon dropdown-toggle hide-arrow me-sm-4" href="javascript:void(0);" data-bs-toggle="dropdown"> <a class="nav-link btn btn-text-secondary rounded-pill btn-icon dropdown-toggle hide-arrow me-sm-4" href="javascript:void(0);" data-bs-toggle="dropdown">

View File

@ -6,22 +6,22 @@
@endphp @endphp
<!-- Navbar --> <!-- Navbar -->
@if(isset($navbarDetached) && $navbarDetached == 'navbar-detached') @if (isset($navbarDetached) && $navbarDetached == 'navbar-detached')
<nav class="layout-navbar {{$containerNav}} navbar navbar-expand-xl {{$navbarDetached}} align-items-center bg-navbar-theme" id="layout-navbar"> <nav class="layout-navbar {{ $containerNav }} navbar navbar-expand-xl {{ $navbarDetached }} align-items-center bg-navbar-theme" id="layout-navbar">
@endif @endif
@if(isset($navbarDetached) && $navbarDetached == '') @if (isset($navbarDetached) && $navbarDetached == '')
<nav class="layout-navbar navbar navbar-expand-xl align-items-center bg-navbar-theme" id="layout-navbar"> <nav class="layout-navbar navbar navbar-expand-xl align-items-center bg-navbar-theme" id="layout-navbar">
<div class="{{$containerNav}}"> <div class="{{ $containerNav }}">
@endif @endif
<!-- Brand demo (display only for navbar-full and hide on below xl) --> <!-- Brand demo (display only for navbar-full and hide on below xl) -->
@if(isset($navbarFull)) @if (isset($navbarFull))
<div class="navbar-brand app-brand demo d-none d-xl-flex py-0 me-6"> <div class="navbar-brand app-brand demo d-none d-xl-flex py-0 me-6">
<a href="{{url('/')}}" class="app-brand-link gap-2"> <a href="{{ url('/') }}" class="app-brand-link gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo menu-text fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo menu-text fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
@if(isset($menuHorizontal)) @if (isset($menuHorizontal))
<a href="javascript:void(0);" class="layout-menu-toggle menu-link text-large ms-auto d-xl-none"> <a href="javascript:void(0);" class="layout-menu-toggle menu-link text-large ms-auto d-xl-none">
<i class="ri-close-fill align-middle"></i> <i class="ri-close-fill align-middle"></i>
</a> </a>
@ -30,7 +30,7 @@
@endif @endif
<!-- ! Not required for layout-without-menu --> <!-- ! Not required for layout-without-menu -->
@if(!isset($navbarHideToggle)) @if (!isset($navbarHideToggle))
<div class="layout-menu-toggle navbar-nav align-items-xl-center me-4 me-xl-0{{ isset($menuHorizontal) ? ' d-xl-none ' : '' }} {{ isset($contentNavbar) ?' d-xl-none ' : '' }}"> <div class="layout-menu-toggle navbar-nav align-items-xl-center me-4 me-xl-0{{ isset($menuHorizontal) ? ' d-xl-none ' : '' }} {{ isset($contentNavbar) ?' d-xl-none ' : '' }}">
<a class="nav-item nav-link px-0 me-xl-6" href="javascript:void(0)"> <a class="nav-item nav-link px-0 me-xl-6" href="javascript:void(0)">
<i class="ri-menu-fill ri-24px"></i> <i class="ri-menu-fill ri-24px"></i>
@ -40,7 +40,7 @@
<div class="navbar-nav-right d-flex align-items-center" id="navbar-collapse"> <div class="navbar-nav-right d-flex align-items-center" id="navbar-collapse">
@if($configData['hasCustomizer'] == true) @if ($configData['hasCustomizer'] == true)
<!-- Style Switcher --> <!-- Style Switcher -->
<div class="navbar-nav align-items-center"> <div class="navbar-nav align-items-center">
<div class="nav-item dropdown-style-switcher dropdown me-1 me-xl-0"> <div class="nav-item dropdown-style-switcher dropdown me-1 me-xl-0">
@ -193,7 +193,7 @@
<!--/ User --> <!--/ User -->
</ul> </ul>
</div> </div>
@if(!isset($navbarDetached)) @if (!isset($navbarDetached))
</div> </div>
@endif @endif
</nav> </nav>

View File

@ -20,9 +20,9 @@
window.templateCustomizer = new TemplateCustomizer({ window.templateCustomizer = new TemplateCustomizer({
cssPath: '', cssPath: '',
themesPath: '', themesPath: '',
defaultStyle: "{{$configData['styleOpt']}}", defaultStyle: "{{ $configData['styleOpt'] }}",
defaultShowDropdownOnHover: "{{$configData['showDropdownOnHover']}}", // true/false (for horizontal layout only) defaultShowDropdownOnHover: "{{ $configData['showDropdownOnHover'] }}", // true/false (for horizontal layout only)
displayCustomizer: "{{$configData['displayCustomizer']}}", displayCustomizer: "{{ $configData['displayCustomizer'] }}",
lang: '{{ app()->getLocale() }}', lang: '{{ app()->getLocale() }}',
pathResolver: function(path) { pathResolver: function(path) {
var resolvedPaths = { var resolvedPaths = {

View File

@ -19,8 +19,8 @@
window.templateCustomizer = new TemplateCustomizer({ window.templateCustomizer = new TemplateCustomizer({
cssPath: '', cssPath: '',
themesPath: '', themesPath: '',
defaultStyle: "{{$configData['styleOpt']}}", defaultStyle: "{{ $configData['styleOpt'] }}",
displayCustomizer: "{{$configData['displayCustomizer']}}", displayCustomizer: "{{ $configData['displayCustomizer'] }}",
pathResolver: function(path) { pathResolver: function(path) {
var resolvedPaths = { var resolvedPaths = {
// Core stylesheets // Core stylesheets

View File

@ -27,7 +27,7 @@
</tr> </tr>
</thead> </thead>
<tbody class="bg-white divide-y divide-gray-200"> <tbody class="bg-white divide-y divide-gray-200">
@foreach($studies as $study) @foreach ($studies as $study)
<tr> <tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">{{ $study->id }}</td> <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">{{ $study->id }}</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">{{ $study->accession_number }}</td> <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">{{ $study->accession_number }}</td>
@ -45,7 +45,7 @@
<a target="_blank" href="{{ \App\Services\Pacs\PacsUrlGen::stoneViewer($study->study_instance_uid) }}" >St</a> <a target="_blank" href="{{ \App\Services\Pacs\PacsUrlGen::stoneViewer($study->study_instance_uid) }}" >St</a>
| |
<a target="_blank" href="{{ \App\Services\Pacs\PacsUrlGen::ohifViewer($study->study_instance_uid) }}">OHF</a> <a target="_blank" href="{{ \App\Services\Pacs\PacsUrlGen::ohifViewer($study->study_instance_uid) }}">OHF</a>
@if($study->image_count > 1 && $study->study_modality != 'CR') @if ($study->image_count > 1 && $study->study_modality != 'CR')
| |
<a target="_blank" href="{{ \App\Services\Pacs\PacsUrlGen::ohifViewerMpr($study->study_instance_uid) }}">MPR</a> <a target="_blank" href="{{ \App\Services\Pacs\PacsUrlGen::ohifViewerMpr($study->study_instance_uid) }}">MPR</a>
| |

View File

@ -19,15 +19,15 @@
<div class="card p-md-7 p-1"> <div class="card p-md-7 p-1">
<!-- Logo --> <!-- Logo -->
<div class="app-brand justify-content-center mt-5"> <div class="app-brand justify-content-center mt-5">
<a href="{{url('/')}}" class="app-brand-link gap-2"> <a href="{{ url('/') }}" class="app-brand-link gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
</div> </div>
<!-- /Logo --> <!-- /Logo -->
<div class="card-body mt-1">{!! $policy !!}</div> <div class="card-body mt-1">{!! $policy !!}</div>
</div> </div>
<img alt="mask" src="{{asset('assets/img/illustrations/auth-basic-login-mask-'.$configData['style'].'.png') }}" class="authentication-image d-none d-lg-block" data-app-light-img="illustrations/auth-basic-login-mask-light.png" data-app-dark-img="illustrations/auth-basic-login-mask-dark.png" /> <img alt="mask" src="{{ asset('assets/img/illustrations/auth-basic-login-mask-'.$configData['style'].'.png') }}" class="authentication-image d-none d-lg-block" data-app-light-img="illustrations/auth-basic-login-mask-light.png" data-app-dark-img="illustrations/auth-basic-login-mask-dark.png" />
</div> </div>
</div> </div>
</div> </div>

View File

@ -17,7 +17,7 @@
</div> </div>
<x-section-border/> <x-section-border/>
@if(may(\App\Models\Enums\Permission::StudyMetadataEdit)) @if (may(\App\Models\Enums\Permission::StudyMetadataEdit))
<a class="btn btn-sm" href="{{ route('staff.meta.edit', $study->hash) }}">Edit</a> <a class="btn btn-sm" href="{{ route('staff.meta.edit', $study->hash) }}">Edit</a>
@endif @endif

View File

@ -17,7 +17,7 @@
</div> </div>
<x-section-border/> <x-section-border/>
@if(may(\App\Models\Enums\Permission::StudyMetadataEdit)) @if (may(\App\Models\Enums\Permission::StudyMetadataEdit))
<a class="btn btn-sm" href="{{ route('staff.meta.edit', $study->hash) }}">Edit</a> <a class="btn btn-sm" href="{{ route('staff.meta.edit', $study->hash) }}">Edit</a>
@endif @endif

View File

@ -106,7 +106,7 @@ class="d-flex justify-content-between align-items-start border-end pb-4 pb-sm-0
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($studies as $study) @foreach ($studies as $study)
<tr> <tr>
<td>{{ $study->accession_number }}</td> <td>{{ $study->accession_number }}</td>
<td> <td>

View File

@ -106,7 +106,7 @@ class="d-flex justify-content-between align-items-start border-end pb-4 pb-sm-0
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($studies as $study) @foreach ($studies as $study)
<tr> <tr>
<td>{{ $study->accession_number }}</td> <td>{{ $study->accession_number }}</td>
<td> <td>

View File

@ -19,15 +19,15 @@
<!-- Logo --> <!-- Logo -->
<div class="card p-md-7 p-1"> <div class="card p-md-7 p-1">
<div class="app-brand justify-content-center mt-5"> <div class="app-brand justify-content-center mt-5">
<a href="{{url('/')}}" class="app-brand-link gap-2"> <a href="{{ url('/') }}" class="app-brand-link gap-2">
<span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span> <span class="app-brand-logo demo">@include('_partials.macros',["width"=>25,"withbg"=>'var(--bs-primary)'])</span>
<span class="app-brand-text demo text-heading fw-semibold">{{config('variables.templateName')}}</span> <span class="app-brand-text demo text-heading fw-semibold">{{ config('variables.templateName') }}</span>
</a> </a>
</div> </div>
<!-- /Logo --> <!-- /Logo -->
<div class="card-body mt-1">{!! $terms !!}</div> <div class="card-body mt-1">{!! $terms !!}</div>
</div> </div>
<img alt="mask" src="{{asset('assets/img/illustrations/auth-basic-forgot-password-mask-'.$configData['style'].'.png') }}" class="authentication-image d-none d-lg-block" data-app-light-img="illustrations/auth-basic-forgot-password-mask-light.png" data-app-dark-img="illustrations/auth-basic-forgot-password-mask-dark.png" /> <img alt="mask" src="{{ asset('assets/img/illustrations/auth-basic-forgot-password-mask-'.$configData['style'].'.png') }}" class="authentication-image d-none d-lg-block" data-app-light-img="illustrations/auth-basic-forgot-password-mask-light.png" data-app-dark-img="illustrations/auth-basic-forgot-password-mask-dark.png" />
</div> </div>
</div> </div>
</div> </div>

View File

@ -3,6 +3,6 @@
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::get('/user', function (Request $request) { Route::get('user', function (Request $request) {
return $request->user(); return $request->user();
})->middleware('auth:sanctum'); })->middleware('auth:sanctum');

View File

@ -27,7 +27,7 @@
config('jetstream.auth_session'), config('jetstream.auth_session'),
'verified', 'verified',
])->group(function () { ])->group(function () {
Route::get('/dashboard', function () { Route::get('dashboard', function () {
return view('dashboard'); return view('dashboard');
})->name('dashboard'); })->name('dashboard');
@ -36,7 +36,7 @@
}); });
Route::group(['prefix' => 'radiologist', 'as' => 'radiologist.'], function () { Route::group(['prefix' => 'radiologist', 'as' => 'radiologist.'], function () {
Route::get('/report-write/{id}', ReportWriteController::class)->name('report-write'); Route::get('report-write/{id}', ReportWriteController::class)->name('report-write');
}); });
Route::group(['prefix' => 'viewer', 'as' => 'viewer.'], function () { Route::group(['prefix' => 'viewer', 'as' => 'viewer.'], function () {
@ -76,7 +76,7 @@
Route::post('auth/{hashid}', [ViewSharedStudyController::class, 'auth'])->name('auth'); Route::post('auth/{hashid}', [ViewSharedStudyController::class, 'auth'])->name('auth');
}); });
Route::view('/ck', 'ck'); Route::view('ck', 'ck');
Route::group(['prefix' => 'social', 'as' => 'social.'], function () { Route::group(['prefix' => 'social', 'as' => 'social.'], function () {
Route::get('{driver}', [SocialLoginController::class, 'redirect'])->name('login'); Route::get('{driver}', [SocialLoginController::class, 'redirect'])->name('login');