Файловый менеджер - Редактировать - /home/clickysoft/public_html/jmapi5.clickysoft.net/app.tar
Назад
.gitignore 0000644 00000000027 15021221467 0006533 0 ustar 00 * !public/ !.gitignore Models/Asset.php 0000644 00000010054 15021222772 0007557 0 ustar 00 <?php namespace App\Models; use Carbon\Carbon; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\MediaCollections\Models\Media; class Asset extends Model implements HasMedia { use InteractsWithMedia, HasFactory; public $table = 'assets'; protected $appends = [ 'asset_image', ]; protected $dates = [ 'asset_expiration_date', 'next_audit_date', 'purchase_date', 'eol_date', 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'asset_name', 'asset_status_id', 'category_id', 'manufacturer_id', 'supplier_id', 'company_id', 'branch_id', 'qty', 'purchase_cost', 'currency_id', 'notes', 'asset_expiration_date', 'next_audit_date', 'purchase_date', 'eol_date', 'created_at', 'updated_at', ]; protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('thumb')->fit('crop', 100, 100); $this->addMediaConversion('preview')->fit('crop', 200, 200); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function asset_status() { return $this->belongsTo(Status::class, 'asset_status_id'); } public function category() { return $this->belongsTo(Category::class, 'category_id'); } public function manufacturer() { return $this->belongsTo(Manufacturer::class, 'manufacturer_id'); } public function supplier() { return $this->belongsTo(Supplier::class, 'supplier_id'); } public function company() { return $this->belongsTo(Company::class, 'company_id'); } public function branch() { return $this->belongsTo(Branch::class, 'branch_id'); } public function getAssetImageAttribute() { $file = $this->getMedia('asset_image')->last(); if ($file) { $file->url = $file->getUrl(); $file->thumbnail = $file->getUrl('thumb'); $file->preview = $file->getUrl('preview'); } return $file; } public function getAssetExpirationDateAttribute($value) { return $value ? Carbon::parse($value)->format(config('panel.date_format')) : null; } public function setAssetExpirationDateAttribute($value) { $this->attributes['asset_expiration_date'] = $value ? Carbon::createFromFormat(config('panel.date_format'), $value)->format('Y-m-d') : null; } public function getNextAuditDateAttribute($value) { return $value ? Carbon::parse($value)->format(config('panel.date_format')) : null; } public function setNextAuditDateAttribute($value) { $this->attributes['next_audit_date'] = $value ? Carbon::createFromFormat(config('panel.date_format'), $value)->format('Y-m-d') : null; } public function getPurchaseDateAttribute($value) { return $value ? Carbon::parse($value)->format(config('panel.date_format')) : null; } public function setPurchaseDateAttribute($value) { $this->attributes['purchase_date'] = $value ? Carbon::createFromFormat(config('panel.date_format'), $value)->format('Y-m-d') : null; } public function getEolDateAttribute($value) { return $value ? Carbon::parse($value)->format(config('panel.date_format')) : null; } public function setEolDateAttribute($value) { $this->attributes['eol_date'] = $value ? Carbon::createFromFormat(config('panel.date_format'), $value)->format('Y-m-d') : null; } public function currency() { return $this->belongsTo(Currency::class, 'currency_id'); } } Models/AssetTag.php 0000644 00000001504 15021222772 0010213 0 ustar 00 <?php namespace App\Models; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class AssetTag extends Model { use HasFactory; public $table = 'asset_tags'; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'asset_id', 'tag_name', 'code', 'serial', 'created_at', 'updated_at', ]; protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function asset() { return $this->belongsTo(Asset::class, 'asset_id'); } } Models/Role.php 0000644 00000001637 15021222772 0007410 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Role extends Model { use HasFactory; public $table = 'roles'; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'title', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization()); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function permissions() { return $this->belongsToMany(Permission::class); } } Models/Branch.php 0000644 00000001770 15021222772 0007702 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Branch extends Model { use HasFactory; public $table = 'branches'; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'company_id', 'name', 'email', 'contact_number', 'address', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function company() { return $this->belongsTo(Company::class, 'company_id'); } } Models/Scopes/UserOrganization.php 0000644 00000001035 15021222772 0013236 0 ustar 00 <?php namespace App\Models\Scopes; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Scope; class UserOrganization implements Scope { /** * Apply the scope to a given Eloquent query builder. */ public function apply(Builder $builder, Model $model): void { if (auth()->user()) { $builder->where(function ($query) { $query->where('organization_id', auth()->user()->organization_id); }); } } } Models/Country.php 0000644 00000001046 15021222772 0010144 0 ustar 00 <?php namespace App\Models; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Country extends Model { use HasFactory; public $table = 'countries'; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'name', 'short_code', 'created_at', 'updated_at', ]; protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } } Models/Category.php 0000644 00000003110 15021222772 0010250 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\MediaCollections\Models\Media; class Category extends Model implements HasMedia { use InteractsWithMedia, HasFactory; public $table = 'categories'; protected $appends = [ 'image', ]; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'name', 'description', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('thumb')->fit('crop', 100, 100); $this->addMediaConversion('preview')->fit('crop', 200, 200); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function getImageAttribute() { $file = $this->getMedia('image')->last(); if ($file) { $file->url = $file->getUrl(); $file->thumbnail = $file->getUrl('thumb'); $file->preview = $file->getUrl('preview'); } return $file; } } Models/Company.php 0000644 00000003256 15021222772 0010114 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\MediaCollections\Models\Media; class Company extends Model implements HasMedia { use InteractsWithMedia, HasFactory; public $table = 'companies'; protected $appends = [ 'logo', ]; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'name', 'contact_number', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function branches() { return $this->hasMany(Branch::class, 'company_id'); } public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('thumb')->fit('crop', 100, 100); $this->addMediaConversion('preview')->fit('crop', 200, 200); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function getLogoAttribute() { $file = $this->getMedia('logo')->last(); if ($file) { $file->url = $file->getUrl(); $file->thumbnail = $file->getUrl('thumb'); $file->preview = $file->getUrl('preview'); } return $file; } } Models/Department.php 0000644 00000002130 15021222772 0010577 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Department extends Model { use HasFactory; public $table = 'departments'; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'company_id', 'name', 'contact_number', 'manager_id', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function company() { return $this->belongsTo(Company::class, 'company_id'); } public function manager() { return $this->belongsTo(User::class, 'manager_id'); } } Models/Status.php 0000644 00000001472 15021222772 0007767 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Status extends Model { use HasFactory; public $table = 'statuses'; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'name', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } } Models/Supplier.php 0000644 00000003722 15021222772 0010307 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\MediaCollections\Models\Media; class Supplier extends Model implements HasMedia { use InteractsWithMedia, HasFactory; public $table = 'suppliers'; protected $appends = [ 'logo', ]; public const STATUS_RADIO = [ '1' => 'Active', '0' => 'Inactive', ]; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'contact_name', 'contact_email', 'contact_number', 'address_line_1', 'address_line_2', 'city', 'state', 'zip_code', 'country_id', 'url', 'status', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization()); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('thumb')->fit('crop', 100, 100); $this->addMediaConversion('preview')->fit('crop', 200, 200); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function country() { return $this->belongsTo(Country::class, 'country_id'); } public function getLogoAttribute() { $file = $this->getMedia('logo')->last(); if ($file) { $file->url = $file->getUrl(); $file->thumbnail = $file->getUrl('thumb'); $file->preview = $file->getUrl('preview'); } return $file; } } Models/User.php 0000644 00000006350 15021222772 0007422 0 ustar 00 <?php namespace App\Models; use Carbon\Carbon; use DateTimeInterface; use Hash; use App\Models\Scopes\UserOrganization; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable implements HasMedia, MustVerifyEmail { use Notifiable, InteractsWithMedia, HasFactory, HasApiTokens; public $table = 'users'; protected $appends = [ 'avatar', ]; protected $hidden = [ 'remember_token', 'password', ]; protected $dates = [ 'email_verified_at', 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'first_name', 'last_name', 'email', 'password', 'contact_number', 'status', 'email_verified_at', 'remember_token', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization()); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function getIsAdminAttribute() { return $this->roles()->where('id', 1)->exists(); } public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('thumb')->fit('crop', 100, 100); $this->addMediaConversion('preview')->fit('crop', 200, 200); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function companies() { // return $this->belongsToMany(Company::class); return $this->belongsToMany(Company::class, 'company_user', 'user_id', 'company_id') ->withPivot('branch_id'); } public function setPasswordAttribute($input) { if ($input) { $this->attributes['password'] = app('hash')->needsRehash($input) ? Hash::make($input) : $input; } } public function getAvatarAttribute() { $file = $this->getMedia('avatar')->last(); if ($file) { $file->url = $file->getUrl(); $file->thumbnail = $file->getUrl('thumb'); $file->preview = $file->getUrl('preview'); } return $file; } public function getFullNameAttribute() { return $this->first_name . ' ' . $this->last_name; } public function getEmailVerifiedAtAttribute($value) { return $value ? Carbon::createFromFormat('Y-m-d H:i:s', $value)->format(config('panel.date_format') . ' ' . config('panel.time_format')) : null; } public function setEmailVerifiedAtAttribute($value) { $this->attributes['email_verified_at'] = $value ? Carbon::createFromFormat(config('panel.date_format') . ' ' . config('panel.time_format'), $value)->format('Y-m-d H:i:s') : null; } public function roles() { return $this->belongsToMany(Role::class); } } Models/MaintenanceSchedule.php 0000644 00000002216 15021222772 0012400 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class MaintenanceSchedule extends Model { use HasFactory; public $table = 'maintenance_schedules'; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'asset_id', 'maintenance_type', 'scheduled_date', 'completion_date', 'status', 'frequency', 'interval', 'cost', 'assigned_to', 'next_scheduled_date', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function asset() { return $this->belongsTo(Asset::class, 'asset_id'); } } Models/Currency.php 0000644 00000001347 15021222772 0010277 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Currency extends Model { use HasFactory; public $table = 'currencies'; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'name', 'code', 'symbol', 'organization_id', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } } Models/Permission.php 0000644 00000001026 15021222772 0010627 0 ustar 00 <?php namespace App\Models; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Permission extends Model { use HasFactory; public $table = 'permissions'; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'title', 'created_at', 'updated_at', ]; protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } } Models/CompanyUser.php 0000644 00000000332 15021222772 0010743 0 ustar 00 <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class CompanyUser extends Model { use HasFactory; public $table = 'company_user'; } Models/Manufacturer.php 0000644 00000003426 15021222772 0011141 0 ustar 00 <?php namespace App\Models; use App\Models\Scopes\UserOrganization; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\MediaCollections\Models\Media; class Manufacturer extends Model implements HasMedia { use InteractsWithMedia, HasFactory; public $table = 'manufacturers'; protected $appends = [ 'logo', ]; public const STATUS_RADIO = [ '1' => 'Active', '0' => 'Inactive', ]; protected $dates = [ 'created_at', 'updated_at', ]; protected $fillable = [ 'organization_id', 'name', 'support_url', 'support_contact_number', 'support_email', 'warranty_lookup_url', 'status', 'created_at', 'updated_at', ]; protected static function booted(): void { static::addGlobalScope(new UserOrganization); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('thumb')->fit('crop', 100, 100); $this->addMediaConversion('preview')->fit('crop', 200, 200); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function getLogoAttribute() { $file = $this->getMedia('logo')->last(); if ($file) { $file->url = $file->getUrl(); $file->thumbnail = $file->getUrl('thumb'); $file->preview = $file->getUrl('preview'); } return $file; } } Models/Organization.php 0000644 00000003502 15021222772 0011144 0 ustar 00 <?php namespace App\Models; use Carbon\Carbon; use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\MediaCollections\Models\Media; class Organization extends Model implements HasMedia { use InteractsWithMedia, HasFactory; public $table = 'organizations'; protected $appends = [ 'logo', ]; public const STATUS_RADIO = [ '1' => 'Active', '0' => 'Inactive', ]; protected $dates = [ 'date_expiration', 'created_at', 'updated_at', ]; protected $fillable = [ 'name', 'email', 'contact_number', 'address_line_1', 'address_line_2', 'status', 'date_expiration', 'created_at', 'updated_at', ]; protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('thumb')->fit('crop', 100, 100); $this->addMediaConversion('preview')->fit('crop', 200, 200); } public function organizationRoles() { return $this->hasMany(Role::class, 'organization_id', 'id'); } public function getLogoAttribute() { $file = $this->getMedia('logo')->last(); if ($file) { $file->url = $file->getUrl(); $file->thumbnail = $file->getUrl('thumb'); $file->preview = $file->getUrl('preview'); } return $file; } public function getDateExpirationAttribute($value) { return $value ? Carbon::parse($value)->format(config('panel.date_format')) : null; } } Console/Kernel.php 0000644 00000001075 15021222772 0010102 0 ustar 00 <?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * Define the application's command schedule. */ protected function schedule(Schedule $schedule): void { // $schedule->command('inspire')->hourly(); } /** * Register the commands for the application. */ protected function commands(): void { $this->load(__DIR__.'/Commands'); require base_path('routes/console.php'); } } .DS_Store 0000644 00000014004 15021222772 0006226 0 ustar 00 Bud1 o l eIlocbl C o n s o l eIlocblob A .������ E x c e p t i o n sIlocblob � .������ H t t pIlocblob .������ H t t pbwspblob �bplist00�]ShowStatusBar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar _{{300, 102}, {960, 741}} #/;R_klmno� � H t t pvSrnlong M o d e l sIlocblob � .������ P r o v i d e r sIlocblob � .������ @ � @ � @ � @ E DSDB ` � @ � @ � @ Exceptions/Handler.php 0000644 00000002005 15021222772 0010750 0 ustar 00 <?php namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Throwable; class Handler extends ExceptionHandler { /** * A list of exception types with their corresponding custom log levels. * * @var array<class-string<\Throwable>, \Psr\Log\LogLevel::*> */ protected $levels = [ // ]; /** * A list of the exception types that are not reported. * * @var array<int, class-string<\Throwable>> */ protected $dontReport = [ // ]; /** * A list of the inputs that are never flashed to the session on validation exceptions. * * @var array<int, string> */ protected $dontFlash = [ 'current_password', 'password', 'password_confirmation', ]; /** * Register the exception handling callbacks for the application. */ public function register(): void { $this->reportable(function (Throwable $e) { // }); } } Http/Controllers/Controller.php 0000644 00000000453 15021222772 0012627 0 ustar 00 <?php namespace App\Http\Controllers; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Routing\Controller as BaseController; class Controller extends BaseController { use AuthorizesRequests, ValidatesRequests; } Http/Controllers/HomeController.php 0000644 00000000723 15021222772 0013440 0 ustar 00 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HomeController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); } /** * Show the application dashboard. * * @return \Illuminate\Contracts\Support\Renderable */ public function index() { return view('home'); } } Http/Controllers/Api/.DS_Store 0000644 00000014004 15021222772 0012164 0 ustar 00 Bud1 blob �bpli V 1bwspblob �bplist00�]ShowStatusBar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar _{{260, 330}, {920, 464}} #/;R_klmno� � V 1vSrnlong @ � @ � @ � @ E DSDB ` � @ � @ � @ Http/Controllers/Api/V1/AssetsApiController.php 0000644 00000004625 15021222772 0015450 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\StoreAssetRequest; use App\Http\Requests\UpdateAssetRequest; use App\Http\Resources\Admin\AssetDetailResource; use App\Http\Resources\Admin\AssetResource; use App\Models\Asset; use Gate; use Symfony\Component\HttpFoundation\Response; class AssetsApiController extends Controller { use MediaUploadingTrait; public function index() { abort_if(Gate::denies('asset_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return AssetResource::collection(Asset::with([ 'asset_status:id,name', 'category:id,name', 'company:id,name', 'branch:id,name', 'currency:id,code' ]) ->paginate(50)); } public function store(StoreAssetRequest $request) { $asset = Asset::create($request->all()); if ($request->file('asset_image')) { $asset->addMediaFromRequest('asset_image')->toMediaCollection('asset_image', 'asset'); } return (new AssetResource($asset)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Asset $asset) { abort_if(Gate::denies('asset_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new AssetDetailResource($asset->load([ 'asset_status:id,name', 'category:id,name', 'company:id,name', 'branch:id,name', 'currency:id,code' ])); } public function update(UpdateAssetRequest $request, Asset $asset) { $asset->update($request->all()); if ($request->file('asset_image', false)) { if ($asset->asset_image) { $asset->asset_image->delete(); } $asset->addMediaFromRequest('asset_image')->toMediaCollection('asset_image', 'asset'); } return (new AssetResource($asset)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Asset $asset) { abort_if(Gate::denies('asset_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($asset->asset_image) { $asset->asset_image->delete(); } $asset->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/StatusesApiController.php 0000644 00000003271 15021222772 0016015 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Requests\StoreStatusRequest; use App\Http\Requests\UpdateStatusRequest; use App\Http\Resources\Admin\StatusDropDownResource; use App\Http\Resources\Admin\StatusResource; use App\Models\Status; use Gate; use Symfony\Component\HttpFoundation\Response; class StatusesApiController extends Controller { public function index() { abort_if(Gate::denies('status_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return StatusResource::collection(Status::paginate(50)); } public function dropDown() { abort_if(Gate::denies('status_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return StatusDropDownResource::collection(Status::get()); } public function store(StoreStatusRequest $request) { $status = Status::create($request->all()); return (new StatusResource($status)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Status $status) { abort_if(Gate::denies('status_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new StatusResource($status); } public function update(UpdateStatusRequest $request, Status $status) { $status->update($request->all()); return (new StatusResource($status)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Status $status) { abort_if(Gate::denies('status_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $status->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/CompanyApiController.php 0000644 00000004474 15021222772 0015616 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\StoreCompanyRequest; use App\Http\Requests\UpdateCompanyRequest; use App\Http\Resources\Admin\CompanyDropDownResource; use App\Http\Resources\Admin\CompanyResource; use App\Http\Resources\Admin\CompanyShowResource; use App\Models\Company; use Gate; use Symfony\Component\HttpFoundation\Response; class CompanyApiController extends Controller { use MediaUploadingTrait; public function index() { abort_if(Gate::denies('company_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return CompanyResource::collection(Company::paginate(50)); } public function dropDown() { abort_if(Gate::denies('company_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return CompanyDropDownResource::collection(Company::get()); } public function store(StoreCompanyRequest $request) { $company = Company::create($request->all()); if ($request->file('logo')) { $company->addMediaFromRequest('logo')->toMediaCollection('logo', 'company'); } return (new CompanyShowResource($company)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Company $company) { abort_if(Gate::denies('company_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new CompanyShowResource($company->load(['branches'])); } public function update(UpdateCompanyRequest $request, Company $company) { $company->update($request->all()); if ($request->file('logo', false)) { if ($company->logo) { $company->logo->delete(); } $company->addMediaFromRequest('logo')->toMediaCollection('logo', 'company'); } return (new CompanyResource($company)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Company $company) { abort_if(Gate::denies('company_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($company->logo) { $company->logo->delete(); } $company->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/MaintenanceSchedulesApiController.php 0000644 00000003304 15021222772 0020261 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Requests\StoreMaintenanceScheduleRequest; use App\Http\Requests\UpdateMaintenanceScheduleRequest; use App\Http\Resources\Admin\MaintenanceScheduleResource; use App\Models\MaintenanceSchedule; use Gate; use Symfony\Component\HttpFoundation\Response; class MaintenanceSchedulesApiController extends Controller { public function index() { abort_if(Gate::denies('maintenance_schedule_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return MaintenanceScheduleResource::collection(MaintenanceSchedule::paginate(50)); } public function store(StoreMaintenanceScheduleRequest $request) { $schedule = MaintenanceSchedule::create($request->all()); return (new MaintenanceScheduleResource($schedule)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(MaintenanceSchedule $schedule) { abort_if(Gate::denies('maintenance_schedule_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new MaintenanceScheduleResource($schedule); } public function update(UpdateMaintenanceScheduleRequest $request, MaintenanceSchedule $schedule) { $schedule->update($request->all()); return (new MaintenanceScheduleResource($schedule)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(MaintenanceSchedule $schedule) { abort_if(Gate::denies('maintenance_schedule_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $schedule->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/.DS_Store 0000644 00000014004 15021222772 0012452 0 ustar 00 Bud1 nbwspblob A d m i nbwspblob �bplist00�]ShowStatusBar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar _{{260, 330}, {920, 464}} #/;R_klmno� � A d m i nvSrnlong @ � @ � @ � @ E DSDB ` � @ � @ � @ Http/Controllers/Api/V1/SuppliersApiController.php 0000644 00000004473 15021222772 0016175 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\StoreSupplierRequest; use App\Http\Requests\UpdateSupplierRequest; use App\Http\Resources\Admin\SupplierDropDownResource; use App\Http\Resources\Admin\SupplierResource; use App\Models\Supplier; use Gate; use Symfony\Component\HttpFoundation\Response; class SuppliersApiController extends Controller { use MediaUploadingTrait; public function index() { abort_if(Gate::denies('supplier_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return SupplierResource::collection(Supplier::with('country')->paginate(50)); } public function dropDown() { abort_if(Gate::denies('supplier_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return SupplierDropDownResource::collection(Supplier::get()); } public function store(StoreSupplierRequest $request) { $supplier = Supplier::create($request->all()); if ($request->file('logo')) { $supplier->addMediaFromRequest('logo')->toMediaCollection('logo', 'supplier'); } return (new SupplierResource($supplier)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Supplier $supplier) { abort_if(Gate::denies('supplier_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new SupplierResource($supplier->load(['country'])); } public function update(UpdateSupplierRequest $request, Supplier $supplier) { $supplier->update($request->all()); if ($request->file('logo', false)) { if ($supplier->logo) { $supplier->logo->delete(); } $supplier->addMediaFromRequest('logo')->toMediaCollection('logo', 'supplier'); } return (new SupplierResource($supplier)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Supplier $supplier) { abort_if(Gate::denies('supplier_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($supplier->logo) { $supplier->logo->delete(); } $supplier->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/UsersApiController.php 0000644 00000006133 15021222772 0015303 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\StoreUserRequest; use App\Http\Requests\UpdateUserRequest; use App\Http\Resources\Admin\UserDropDownResource; use App\Http\Resources\Admin\UserResource; use App\Http\Resources\Admin\UserShowResource; use App\Models\User; use DB; use Gate; use Symfony\Component\HttpFoundation\Response; class UsersApiController extends Controller { use MediaUploadingTrait; public function index() { abort_if(Gate::denies('user_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return UserResource::collection(User::paginate(50)); } public function dropDown() { abort_if(Gate::denies('user_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return UserDropDownResource::collection(User::select('id', 'first_name', 'last_name')->get()); } public function store(StoreUserRequest $request) { DB::beginTransaction(); try { $user = User::create($request->all()); $user->companies()->attach($request->input('companies', [])); $user->roles()->attach($request->input('roles', [])); if ($request->file('avatar')) { $user->addMediaFromRequest('avatar')->toMediaCollection('avatar', 'avatar'); } DB::commit(); return (new UserShowResource($user)) ->response() ->setStatusCode(Response::HTTP_CREATED); } catch (\Exception $e) { DB::rollBack(); return response()->json(['message' => $e->getMessage()], 500); } } public function show(User $user) { abort_if(Gate::denies('user_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new UserShowResource($user->load(['organization', 'companies', 'roles'])); } public function update(UpdateUserRequest $request, User $user) { DB::beginTransaction(); try { $user->update($request->all()); $user->companies()->sync($request->input('companies', [])); $user->roles()->sync($request->input('roles', [])); if ($request->file('avatar', false)) { if ($user->avatar) { $user->avatar->delete(); } $user->addMediaFromRequest('avatar')->toMediaCollection('avatar', 'avatar'); } DB::commit(); return (new UserShowResource($user)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } catch (\Exception $e) { DB::rollBack(); return response()->json(['message' => $e->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR); } } public function destroy(User $user) { abort_if(Gate::denies('user_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($user->avatar) { $user->avatar->delete(); } $user->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/BranchesApiController.php 0000644 00000003403 15021222772 0015724 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Requests\StoreBranchRequest; use App\Http\Requests\UpdateBranchRequest; use App\Http\Resources\Admin\BranchDropDownResource; use App\Http\Resources\Admin\BranchResource; use App\Models\Branch; use Gate; use Symfony\Component\HttpFoundation\Response; class BranchesApiController extends Controller { public function index() { abort_if(Gate::denies('branch_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return BranchResource::collection(Branch::paginate(50)); } public function dropDown($companyId) { abort_if(Gate::denies('company_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return BranchDropDownResource::collection(Branch::whereCompanyId($companyId)->get()); } public function store(StoreBranchRequest $request) { $branch = Branch::create($request->all()); return (new BranchResource($branch)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Branch $branch) { abort_if(Gate::denies('branch_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new BranchResource($branch->load(['organization', 'company'])); } public function update(UpdateBranchRequest $request, Branch $branch) { $branch->update($request->all()); return (new BranchResource($branch)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Branch $branch) { abort_if(Gate::denies('branch_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $branch->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/CountriesApiController.php 0000644 00000002743 15021222772 0016160 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Requests\StoreCountryRequest; use App\Http\Requests\UpdateCountryRequest; use App\Http\Resources\Admin\CountryResource; use App\Models\Country; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; class CountriesApiController extends Controller { public function index() { abort_if(Gate::denies('country_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new CountryResource(Country::all()); } public function store(StoreCountryRequest $request) { $country = Country::create($request->all()); return (new CountryResource($country)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Country $country) { abort_if(Gate::denies('country_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new CountryResource($country); } public function update(UpdateCountryRequest $request, Country $country) { $country->update($request->all()); return (new CountryResource($country)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Country $country) { abort_if(Gate::denies('country_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $country->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/DepartmentsApiController.php 0000644 00000003144 15021222772 0016467 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Requests\StoreDepartmentRequest; use App\Http\Requests\UpdateDepartmentRequest; use App\Http\Resources\Admin\DepartmentResource; use App\Models\Department; use Gate; use Symfony\Component\HttpFoundation\Response; class DepartmentsApiController extends Controller { public function index() { abort_if(Gate::denies('department_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return DepartmentResource::collection(Department::with(['company', 'manager'])->paginate(50)); } public function store(StoreDepartmentRequest $request) { $department = Department::create($request->all()); return (new DepartmentResource($department)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Department $department) { abort_if(Gate::denies('department_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new DepartmentResource($department->load(['company', 'manager'])); } public function update(UpdateDepartmentRequest $request, Department $department) { $department->update($request->all()); return (new DepartmentResource($department)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Department $department) { abort_if(Gate::denies('department_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $department->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/AssetTagsApiController.php 0000644 00000003103 15021222772 0016072 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Requests\StoreAssetTagRequest; use App\Http\Requests\UpdateAssetTagRequest; use App\Http\Resources\Admin\AssetTagResource; use App\Models\AssetTag; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; class AssetTagsApiController extends Controller { public function index() { abort_if(Gate::denies('asset_tag_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new AssetTagResource(AssetTag::with(['organization', 'asset'])->get()); } public function store(StoreAssetTagRequest $request) { $assetTag = AssetTag::create($request->all()); return (new AssetTagResource($assetTag)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(AssetTag $assetTag) { abort_if(Gate::denies('asset_tag_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new AssetTagResource($assetTag->load(['organization', 'asset'])); } public function update(UpdateAssetTagRequest $request, AssetTag $assetTag) { $assetTag->update($request->all()); return (new AssetTagResource($assetTag)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(AssetTag $assetTag) { abort_if(Gate::denies('asset_tag_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $assetTag->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/CategoryApiController.php 0000644 00000004527 15021222772 0015764 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\StoreCategoryRequest; use App\Http\Requests\UpdateCategoryRequest; use App\Http\Resources\Admin\CategoryDropDownResource; use App\Http\Resources\Admin\CategoryResource; use App\Http\Resources\Admin\CategoryShowResource; use App\Models\Category; use Gate; use Symfony\Component\HttpFoundation\Response; class CategoryApiController extends Controller { use MediaUploadingTrait; public function index() { abort_if(Gate::denies('category_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return CategoryResource::collection(Category::paginate(50)); } public function dropDown() { abort_if(Gate::denies('category_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return CategoryDropDownResource::collection(Category::get()); } public function store(StoreCategoryRequest $request) { $category = Category::create($request->all()); if ($request->file('image')) { $category->addMediaFromRequest('image')->toMediaCollection('image', 'category'); } return (new CategoryResource($category)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Category $category) { abort_if(Gate::denies('category_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new CategoryShowResource($category); } public function update(UpdateCategoryRequest $request, Category $category) { $category->update($request->all()); if ($request->file('image', false)) { if ($category->image) { $category->image->delete(); } $category->addMediaFromRequest('image')->toMediaCollection('image', 'category'); } return (new CategoryResource($category)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Category $category) { abort_if(Gate::denies('category_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($category->image) { $category->image->delete(); } $category->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/OrganizationApiController.php 0000644 00000004526 15021222772 0016652 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\StoreOrganizationRequest; use App\Http\Requests\UpdateOrganizationRequest; use App\Http\Resources\Admin\OrganizationResource; use App\Models\Organization; use Gate; use Symfony\Component\HttpFoundation\Response; class OrganizationApiController extends Controller { use MediaUploadingTrait; public function index() { abort_if(Gate::denies('organization_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new OrganizationResource(Organization::all()); } public function store(StoreOrganizationRequest $request) { $organization = Organization::create($request->all()); if ($request->input('logo', false)) { $organization->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } return (new OrganizationResource($organization)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Organization $organization) { abort_if(Gate::denies('organization_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new OrganizationResource($organization); } public function update(UpdateOrganizationRequest $request, Organization $organization) { $organization->update($request->all()); if ($request->input('logo', false)) { if (! $organization->logo || $request->input('logo') !== $organization->logo->file_name) { if ($organization->logo) { $organization->logo->delete(); } $organization->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } } elseif ($organization->logo) { $organization->logo->delete(); } return (new OrganizationResource($organization)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Organization $organization) { abort_if(Gate::denies('organization_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organization->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/RolesApiController.php 0000644 00000004174 15021222772 0015271 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Requests\StoreRoleRequest; use App\Http\Requests\UpdateRoleRequest; use App\Http\Resources\Admin\PermissionDropDownResource; use App\Http\Resources\Admin\RoleDropDownResource; use App\Http\Resources\Admin\RoleResource; use App\Models\Permission; use App\Models\Role; use Gate; use Symfony\Component\HttpFoundation\Response; class RolesApiController extends Controller { public function index() { abort_if(Gate::denies('role_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return RoleResource::collection(Role::paginate(50)); } public function dropDown() { abort_if(Gate::denies('user_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new RoleDropDownResource(Role::select('id', 'title')->get()); } public function permissionDropDown() { abort_if(Gate::denies('user_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new PermissionDropDownResource(Permission::select('id', 'title')->get()); } public function store(StoreRoleRequest $request) { $role = Role::create($request->all()); $role->permissions()->sync($request->input('permissions', [])); return (new RoleResource($role)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Role $role) { abort_if(Gate::denies('role_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new RoleResource($role->load(['organization', 'permissions'])); } public function update(UpdateRoleRequest $request, Role $role) { $role->update($request->all()); $role->permissions()->sync($request->input('permissions', [])); return (new RoleResource($role)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Role $role) { abort_if(Gate::denies('role_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $role->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/CurrenciesApiController.php 0000644 00000003371 15021222772 0016305 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Requests\StoreCurrencyRequest; use App\Http\Requests\UpdateCurrencyRequest; use App\Http\Resources\Admin\CurrencyDropDownResource; use App\Http\Resources\Admin\CurrencyResource; use App\Models\Currency; use Gate; use Symfony\Component\HttpFoundation\Response; class CurrenciesApiController extends Controller { public function index() { abort_if(Gate::denies('currency_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return CurrencyResource::collection(Currency::paginate(50)); } public function dropDown() { abort_if(Gate::denies('currency_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return CurrencyDropDownResource::collection(Currency::get()); } public function store(StoreCurrencyRequest $request) { $currency = Currency::create($request->all()); return (new CurrencyResource($currency)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Currency $currency) { abort_if(Gate::denies('currency_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new CurrencyResource($currency); } public function update(UpdateCurrencyRequest $request, Currency $currency) { $currency->update($request->all()); return (new CurrencyResource($currency)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Currency $currency) { abort_if(Gate::denies('currency_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $currency->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Api/V1/ManufacturersApiController.php 0000644 00000004712 15021222772 0017022 0 ustar 00 <?php namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\StoreManufacturerRequest; use App\Http\Requests\UpdateManufacturerRequest; use App\Http\Resources\Admin\ManufacturerDropDownResource; use App\Http\Resources\Admin\ManufacturerResource; use App\Models\Manufacturer; use Gate; use Symfony\Component\HttpFoundation\Response; class ManufacturersApiController extends Controller { use MediaUploadingTrait; public function index() { abort_if(Gate::denies('manufacturer_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return ManufacturerResource::collection(Manufacturer::paginate(50)); } public function dropDown() { abort_if(Gate::denies('company_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return ManufacturerDropDownResource::collection(Manufacturer::get()); } public function store(StoreManufacturerRequest $request) { $manufacturer = Manufacturer::create($request->all()); if ($request->file('logo')) { $manufacturer->addMediaFromRequest('logo')->toMediaCollection('logo', 'manufacturer'); } return (new ManufacturerResource($manufacturer)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Manufacturer $manufacturer) { abort_if(Gate::denies('manufacturer_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return new ManufacturerResource($manufacturer->load(['organization'])); } public function update(UpdateManufacturerRequest $request, Manufacturer $manufacturer) { $manufacturer->update($request->all()); if ($request->file('logo', false)) { if ($manufacturer->logo) { $manufacturer->logo->delete(); } $manufacturer->addMediaFromRequest('logo')->toMediaCollection('logo', 'manufacturer'); } return (new ManufacturerResource($manufacturer)) ->response() ->setStatusCode(Response::HTTP_ACCEPTED); } public function destroy(Manufacturer $manufacturer) { abort_if(Gate::denies('manufacturer_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($manufacturer->logo) { $manufacturer->logo->delete(); } $manufacturer->delete(); return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/VerifyEmailController.php 0000644 00000003513 15021222772 0014764 0 ustar 00 <?php namespace App\Http\Controllers; use Illuminate\Auth\Events\Verified; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Routing\Controller; use App\Models\User; use App\Notifications\WelcomeNotification; class VerifyEmailController extends Controller { public function __invoke(Request $request): RedirectResponse { $user = User::find($request->route('id')); if ($user->hasVerifiedEmail()) { return redirect(env('APP_URL') . '/email/verify/already-success'); } if ($user->markEmailAsVerified()) { try { event(new Verified($user)); $user->notify(new WelcomeNotification()); } catch (\Exception $e) { \Log::info($e->getMessage()); } } return redirect(env('APP_URL') . '/email/verify/success'); } /** * Resend email verification link. * * @return \Response */ public function resendEmailVerificationLink(Request $request) { try { if ($request->user()->hasVerifiedEmail()) { return response()->json(['message' => "Email already verified."]); } $request->user()->sendEmailVerificationNotification(); return response()->json(['message' => "Verification link sent."]); } catch (\Exception $e) { return response()->json(['message' => "Verification link could not be sent."], 500); } } /** * Show email verified page. * * @return string */ public function email_verified() { return view('email-verified'); } /** * Show email verified page. * * @return string */ public function email_already_verified() { return view('email-already-verified'); } } Http/Controllers/.DS_Store 0000644 00000014004 15021222772 0011453 0 ustar 00 Bud1 spblob �bp A p ibwspblob �bplist00�]ShowStatusBar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar _{{260, 330}, {920, 464}} #/;R_klmno� � A p ivSrnlong @ � @ � @ � @ E DSDB ` � @ � @ � @ Http/Controllers/ApiController.php 0000644 00000017773 15021222772 0013276 0 ustar 00 <?php namespace App\Http\Controllers; use App\Http\Requests\OrganizationSignupRequest; use App\Models\Currency; use App\Models\Organization; use App\Models\User; use App\Models\Role; use App\Models\Permission; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Illuminate\Support\Facades\Validator; use App\Http\Requests\ForgotPasswordRequest; use App\Http\Requests\ResetPasswordRequest; use App\Notifications\ForgotPasswordNotification; use Illuminate\Auth\Events\Registered; use Carbon\Carbon; use DB; class ApiController extends Controller { public function login(Request $request) { $credentials = $request->only('email', 'password'); //Validate credential $validator = Validator::make($credentials, [ 'email' => 'required|email', 'password' => 'required' ]); //Send failed response if request is not valid if ($validator->fails()) { return response()->json(['error' => $validator->messages()], 200); } if (!auth()->attempt($credentials)) { return response()->json([ 'message' => 'The given data was invalid.', 'errors' => [ 'password' => [ 'Invalid credentials' ], ] ], 422); } $user = User::where('email', $request->email)->first(); if ($user->organization->status == 0) { return response()->json([ 'message' => 'Organization disabled.', 'errors' => [ 'email' => [ 'Your organization is disabled, please contact administrator.' ], ] ], 422); } if ($user->status == 0) { return response()->json([ 'message' => 'Account disabled.', 'errors' => [ 'email' => [ 'Your account is disabled, please contact administrator.' ], ] ], 422); } $isVerifiedEmail = $user->hasVerifiedEmail(); if (!$isVerifiedEmail) { return response()->json([ 'message' => 'Email not verified.', 'errors' => [ 'email' => [ 'Please verify your email address.' ], ] ], 422); } $authToken = $user->createToken('auth-token')->plainTextToken; return response()->json([ 'user' => [ "id" => $user->id, "first_name" => $user->first_name, "last_name" => $user->last_name, 'full_name' => $user->full_name, "email" => $user->email, "contact_number" => $user->contact_number, "organization" => [ "id" => $user->organization->id, "name" => $user->organization->name, ], "email_verified" => $isVerifiedEmail, ], 'access_token' => $authToken, ], Response::HTTP_OK); } public function organizationSignup(OrganizationSignupRequest $request) { try { DB::beginTransaction(); $organization = Organization::create([ 'name' => $request->organization_name, 'email' => $request->organization_email, 'contact_number' => $request->organization_contact_number, 'address_line_1' => $request->organization_address_line1, 'address_line_2' => $request->organization_address_line2, 'date_expiration' => Carbon::now()->addYear()->format(config('panel.date_format')), 'status' => 1, ]); if ($request->file('logo')) { $organization->addMediaFromRequest('logo')->toMediaCollection('logo', 'organization'); } $user = User::create([ 'first_name' => $request->user_first_name, 'last_name' => $request->user_last_name, 'email' => $request->user_email, 'password' => $request->user_password, 'status' => 1, 'organization_id' => $organization->id, ]); $role = Role::create([ 'title' => 'Admin', 'organization_id' => $organization->id, ]); $permissions = Permission::all()->pluck("id"); $role->permissions()->attach($permissions); $user->roles()->attach($role->id); Currency::insert([ [ 'code' => 'USD', 'name' => 'US Dollar', 'symbol' => '$', 'organization_id' => $organization->id, 'created_at' => now(), ], [ 'code' => 'PKR', 'name' => 'Pakistan Rupee', 'symbol' => 'Rs.', 'organization_id' => $organization->id, 'created_at' => now(), ] ]); $authToken = $user->createToken('auth-token')->plainTextToken; try { event(new Registered($user)); } catch (\Exception $e) { \Log::info($e->getMessage()); } DB::commit(); return response()->json([ 'message' => 'Organization has been created.', 'user' => [ "id" => $user->id, "first_name" => $user->first_name, "last_name" => $user->last_name, 'full_name' => $user->full_name, "email" => $user->email, "contact_number" => $user->contact_number, "organization" => [ "id" => $organization->id, "name" => $organization->name, ], "email_verified" => $user->hasVerifiedEmail(), ], 'access_token' => $authToken, ], Response::HTTP_CREATED); } catch (\Exception $e) { DB::rollBack(); \Log::info($e->getMessage()); return response()->json([ 'message' => 'Something went wrong.', ], Response::HTTP_INTERNAL_SERVER_ERROR); } } public function logout(Request $request) { $request->user()->tokens()->delete(); return response()->json(['success' => true, "message" => "User has been logged out successfully."]); } public function forgot_password(ForgotPasswordRequest $request) { $resetCode = substr(number_format(time() * rand(), 0, '', ''), 0, 6); $user = User::whereEmail($request->input("email"))->first(); $user->password_reset_code = $resetCode; $user->save(); try { $user->notify(new ForgotPasswordNotification($resetCode)); } catch (\Exception $e) { \Log::info($e->getMessage()); } return response()->json(['success' => true, "message" => "A password reset code has been sent to your email address."]); } public function reset_password(ResetPasswordRequest $request) { $user = User::whereEmail($request->input("email")) ->wherePasswordResetCode($request->input("password_reset_code")) ->first(); if (empty($user)) { return response()->json([ "message" => "The given data was invalid.", "errors" => ["password_reset_code" => ["The password reset code is invalid or user does not exists."]] ], 422); } $user->password = \Hash::make($request->input("password")); $user->password_reset_code = null; $user->save(); return response()->json(['success' => true, "message" => "Password has been changed successfully."]); } } Http/Controllers/Traits/MediaUploadingTrait.php 0000644 00000002436 15021222772 0015643 0 ustar 00 <?php namespace App\Http\Controllers\Traits; use Illuminate\Http\Request; trait MediaUploadingTrait { public function storeMedia(Request $request) { // Validates file size if (request()->has('size')) { $this->validate(request(), [ 'file' => 'max:' . request()->input('size') * 1024, ]); } // If width or height is preset - we are validating it as an image if (request()->has('width') || request()->has('height')) { $this->validate(request(), [ 'file' => sprintf( 'image|dimensions:max_width=%s,max_height=%s', request()->input('width', 100000), request()->input('height', 100000) ), ]); } $path = storage_path('tmp/uploads'); try { if (! file_exists($path)) { mkdir($path, 0755, true); } } catch (\Exception $e) { } $file = $request->file('file'); $name = uniqid() . '_' . trim($file->getClientOriginalName()); $file->move($path, $name); return response()->json([ 'name' => $name, 'original_name' => $file->getClientOriginalName(), ]); } } Http/Controllers/Admin/UsersController.php 0000644 00000016136 15021222772 0014706 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroyUserRequest; use App\Http\Requests\StoreUserRequest; use App\Http\Requests\UpdateUserRequest; use App\Models\Company; use App\Models\Organization; use App\Models\Role; use App\Models\User; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class UsersController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('user_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = User::with(['organization', 'companies', 'roles'])->select(sprintf('%s.*', (new User)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'user_show'; $editGate = 'user_edit'; $deleteGate = 'user_delete'; $crudRoutePart = 'users'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('company', function ($row) { $labels = []; foreach ($row->companies as $company) { $labels[] = sprintf('<span class="label label-info label-many">%s</span>', $company->name); } return implode(' ', $labels); }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->editColumn('email', function ($row) { return $row->email ? $row->email : ''; }); $table->editColumn('contact_number', function ($row) { return $row->contact_number ? $row->contact_number : ''; }); $table->editColumn('avatar', function ($row) { if ($photo = $row->avatar) { return sprintf( '<a href="%s" target="_blank"><img src="%s" width="50px" height="50px"></a>', $photo->url, $photo->thumbnail ); } return ''; }); $table->editColumn('roles', function ($row) { $labels = []; foreach ($row->roles as $role) { $labels[] = sprintf('<span class="label label-info label-many">%s</span>', $role->title); } return implode(' ', $labels); }); $table->rawColumns(['actions', 'placeholder', 'organization', 'company', 'avatar', 'roles']); return $table->make(true); } $organizations = Organization::get(); $companies = Company::get(); $roles = Role::get(); return view('admin.users.index', compact('organizations', 'companies', 'roles')); } public function create() { abort_if(Gate::denies('user_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id'); $roles = Role::pluck('title', 'id'); return view('admin.users.create', compact('companies', 'organizations', 'roles')); } public function store(StoreUserRequest $request) { $user = User::create($request->all()); $user->companies()->sync($request->input('companies', [])); $user->roles()->sync($request->input('roles', [])); if ($request->input('avatar', false)) { $user->addMedia(storage_path('tmp/uploads/' . basename($request->input('avatar'))))->toMediaCollection('avatar'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $user->id]); } return redirect()->route('admin.users.index'); } public function edit(User $user) { abort_if(Gate::denies('user_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id'); $roles = Role::pluck('title', 'id'); $user->load('organization', 'companies', 'roles'); return view('admin.users.edit', compact('companies', 'organizations', 'roles', 'user')); } public function update(UpdateUserRequest $request, User $user) { $user->update($request->all()); $user->companies()->sync($request->input('companies', [])); $user->roles()->sync($request->input('roles', [])); if ($request->input('avatar', false)) { if (! $user->avatar || $request->input('avatar') !== $user->avatar->file_name) { if ($user->avatar) { $user->avatar->delete(); } $user->addMedia(storage_path('tmp/uploads/' . basename($request->input('avatar'))))->toMediaCollection('avatar'); } } elseif ($user->avatar) { $user->avatar->delete(); } return redirect()->route('admin.users.index'); } public function show(User $user) { abort_if(Gate::denies('user_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $user->load('organization', 'companies', 'roles'); return view('admin.users.show', compact('user')); } public function destroy(User $user) { abort_if(Gate::denies('user_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $user->delete(); return back(); } public function massDestroy(MassDestroyUserRequest $request) { $users = User::find(request('ids')); foreach ($users as $user) { $user->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('user_create') && Gate::denies('user_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new User(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } } Http/Controllers/Admin/AssetsController.php 0000644 00000022765 15021222772 0015054 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroyAssetRequest; use App\Http\Requests\StoreAssetRequest; use App\Http\Requests\UpdateAssetRequest; use App\Models\Asset; use App\Models\Branch; use App\Models\Category; use App\Models\Company; use App\Models\Currency; use App\Models\Manufacturer; use App\Models\Organization; use App\Models\Status; use App\Models\Supplier; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class AssetsController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('asset_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Asset::with(['organization', 'asset_status', 'category', 'manufacturer', 'supplier', 'company', 'branch', 'currency'])->select(sprintf('%s.*', (new Asset)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'asset_show'; $editGate = 'asset_edit'; $deleteGate = 'asset_delete'; $crudRoutePart = 'assets'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('asset_name', function ($row) { return $row->asset_name ? $row->asset_name : ''; }); $table->addColumn('asset_status_name', function ($row) { return $row->asset_status ? $row->asset_status->name : ''; }); $table->addColumn('category_name', function ($row) { return $row->category ? $row->category->name : ''; }); $table->addColumn('manufacturer_name', function ($row) { return $row->manufacturer ? $row->manufacturer->name : ''; }); $table->addColumn('supplier_contact_name', function ($row) { return $row->supplier ? $row->supplier->contact_name : ''; }); $table->addColumn('company_name', function ($row) { return $row->company ? $row->company->name : ''; }); $table->addColumn('branch_name', function ($row) { return $row->branch ? $row->branch->name : ''; }); $table->editColumn('qty', function ($row) { return $row->qty ? $row->qty : ''; }); $table->editColumn('notes', function ($row) { return $row->notes ? $row->notes : ''; }); $table->editColumn('asset_image', function ($row) { if ($photo = $row->asset_image) { return sprintf( '<a href="%s" target="_blank"><img src="%s" width="50px" height="50px"></a>', $photo->url, $photo->thumbnail ); } return ''; }); $table->editColumn('purchase_cost', function ($row) { return $row->purchase_cost ? $row->purchase_cost : ''; }); $table->addColumn('currency_name', function ($row) { return $row->currency ? $row->currency->name : ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'asset_status', 'category', 'manufacturer', 'supplier', 'company', 'branch', 'asset_image', 'currency']); return $table->make(true); } $organizations = Organization::get(); $statuses = Status::get(); $categories = Category::get(); $manufacturers = Manufacturer::get(); $suppliers = Supplier::get(); $companies = Company::get(); $branches = Branch::get(); $currencies = Currency::get(); return view('admin.assets.index', compact('organizations', 'statuses', 'categories', 'manufacturers', 'suppliers', 'companies', 'branches', 'currencies')); } public function create() { abort_if(Gate::denies('asset_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $asset_statuses = Status::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $categories = Category::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $manufacturers = Manufacturer::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $suppliers = Supplier::pluck('contact_name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $branches = Branch::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $currencies = Currency::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.assets.create', compact('asset_statuses', 'branches', 'categories', 'companies', 'currencies', 'manufacturers', 'organizations', 'suppliers')); } public function store(StoreAssetRequest $request) { $asset = Asset::create($request->all()); if ($request->input('asset_image', false)) { $asset->addMedia(storage_path('tmp/uploads/' . basename($request->input('asset_image'))))->toMediaCollection('asset_image'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $asset->id]); } return redirect()->route('admin.assets.index'); } public function edit(Asset $asset) { abort_if(Gate::denies('asset_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $asset_statuses = Status::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $categories = Category::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $manufacturers = Manufacturer::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $suppliers = Supplier::pluck('contact_name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $branches = Branch::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $currencies = Currency::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $asset->load('organization', 'asset_status', 'category', 'manufacturer', 'supplier', 'company', 'branch', 'currency'); return view('admin.assets.edit', compact('asset', 'asset_statuses', 'branches', 'categories', 'companies', 'currencies', 'manufacturers', 'organizations', 'suppliers')); } public function update(UpdateAssetRequest $request, Asset $asset) { $asset->update($request->all()); if ($request->input('asset_image', false)) { if (! $asset->asset_image || $request->input('asset_image') !== $asset->asset_image->file_name) { if ($asset->asset_image) { $asset->asset_image->delete(); } $asset->addMedia(storage_path('tmp/uploads/' . basename($request->input('asset_image'))))->toMediaCollection('asset_image'); } } elseif ($asset->asset_image) { $asset->asset_image->delete(); } return redirect()->route('admin.assets.index'); } public function show(Asset $asset) { abort_if(Gate::denies('asset_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $asset->load('organization', 'asset_status', 'category', 'manufacturer', 'supplier', 'company', 'branch', 'currency'); return view('admin.assets.show', compact('asset')); } public function destroy(Asset $asset) { abort_if(Gate::denies('asset_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $asset->delete(); return back(); } public function massDestroy(MassDestroyAssetRequest $request) { $assets = Asset::find(request('ids')); foreach ($assets as $asset) { $asset->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('asset_create') && Gate::denies('asset_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new Asset(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } } Http/Controllers/Admin/HomeController.php 0000644 00000000214 15021222772 0014463 0 ustar 00 <?php namespace App\Http\Controllers\Admin; class HomeController { public function index() { return view('home'); } } Http/Controllers/Admin/CountriesController.php 0000644 00000006462 15021222772 0015561 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\MassDestroyCountryRequest; use App\Http\Requests\StoreCountryRequest; use App\Http\Requests\UpdateCountryRequest; use App\Models\Country; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class CountriesController extends Controller { public function index(Request $request) { abort_if(Gate::denies('country_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Country::query()->select(sprintf('%s.*', (new Country)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'country_show'; $editGate = 'country_edit'; $deleteGate = 'country_delete'; $crudRoutePart = 'countries'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->editColumn('short_code', function ($row) { return $row->short_code ? $row->short_code : ''; }); $table->rawColumns(['actions', 'placeholder']); return $table->make(true); } return view('admin.countries.index'); } public function create() { abort_if(Gate::denies('country_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.countries.create'); } public function store(StoreCountryRequest $request) { $country = Country::create($request->all()); return redirect()->route('admin.countries.index'); } public function edit(Country $country) { abort_if(Gate::denies('country_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.countries.edit', compact('country')); } public function update(UpdateCountryRequest $request, Country $country) { $country->update($request->all()); return redirect()->route('admin.countries.index'); } public function show(Country $country) { abort_if(Gate::denies('country_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.countries.show', compact('country')); } public function destroy(Country $country) { abort_if(Gate::denies('country_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $country->delete(); return back(); } public function massDestroy(MassDestroyCountryRequest $request) { $countries = Country::find(request('ids')); foreach ($countries as $country) { $country->delete(); } return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Admin/CompanyController.php 0000644 00000013402 15021222772 0015204 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroyCompanyRequest; use App\Http\Requests\StoreCompanyRequest; use App\Http\Requests\UpdateCompanyRequest; use App\Models\Company; use App\Models\Organization; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class CompanyController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('company_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Company::with(['organization'])->select(sprintf('%s.*', (new Company)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'company_show'; $editGate = 'company_edit'; $deleteGate = 'company_delete'; $crudRoutePart = 'companies'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->editColumn('contact_number', function ($row) { return $row->contact_number ? $row->contact_number : ''; }); $table->editColumn('logo', function ($row) { if ($photo = $row->logo) { return sprintf( '<a href="%s" target="_blank"><img src="%s" width="50px" height="50px"></a>', $photo->url, $photo->thumbnail ); } return ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'logo']); return $table->make(true); } $organizations = Organization::get(); return view('admin.companies.index', compact('organizations')); } public function create() { abort_if(Gate::denies('company_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.companies.create', compact('organizations')); } public function store(StoreCompanyRequest $request) { $company = Company::create($request->all()); if ($request->input('logo', false)) { $company->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $company->id]); } return redirect()->route('admin.companies.index'); } public function edit(Company $company) { abort_if(Gate::denies('company_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $company->load('organization'); return view('admin.companies.edit', compact('company', 'organizations')); } public function update(UpdateCompanyRequest $request, Company $company) { $company->update($request->all()); if ($request->input('logo', false)) { if (! $company->logo || $request->input('logo') !== $company->logo->file_name) { if ($company->logo) { $company->logo->delete(); } $company->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } } elseif ($company->logo) { $company->logo->delete(); } return redirect()->route('admin.companies.index'); } public function show(Company $company) { abort_if(Gate::denies('company_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $company->load('organization'); return view('admin.companies.show', compact('company')); } public function destroy(Company $company) { abort_if(Gate::denies('company_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $company->delete(); return back(); } public function massDestroy(MassDestroyCompanyRequest $request) { $companies = Company::find(request('ids')); foreach ($companies as $company) { $company->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('company_create') && Gate::denies('company_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new Company(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } } Http/Controllers/Admin/CurrenciesController.php 0000644 00000006720 15021222772 0015705 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\MassDestroyCurrencyRequest; use App\Http\Requests\StoreCurrencyRequest; use App\Http\Requests\UpdateCurrencyRequest; use App\Models\Currency; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class CurrenciesController extends Controller { public function index(Request $request) { abort_if(Gate::denies('currency_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Currency::query()->select(sprintf('%s.*', (new Currency)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'currency_show'; $editGate = 'currency_edit'; $deleteGate = 'currency_delete'; $crudRoutePart = 'currencies'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->editColumn('code', function ($row) { return $row->code ? $row->code : ''; }); $table->editColumn('symbol', function ($row) { return $row->symbol ? $row->symbol : ''; }); $table->rawColumns(['actions', 'placeholder']); return $table->make(true); } return view('admin.currencies.index'); } public function create() { abort_if(Gate::denies('currency_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.currencies.create'); } public function store(StoreCurrencyRequest $request) { $currency = Currency::create($request->all()); return redirect()->route('admin.currencies.index'); } public function edit(Currency $currency) { abort_if(Gate::denies('currency_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.currencies.edit', compact('currency')); } public function update(UpdateCurrencyRequest $request, Currency $currency) { $currency->update($request->all()); return redirect()->route('admin.currencies.index'); } public function show(Currency $currency) { abort_if(Gate::denies('currency_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.currencies.show', compact('currency')); } public function destroy(Currency $currency) { abort_if(Gate::denies('currency_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $currency->delete(); return back(); } public function massDestroy(MassDestroyCurrencyRequest $request) { $currencies = Currency::find(request('ids')); foreach ($currencies as $currency) { $currency->delete(); } return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Admin/SuppliersController.php 0000644 00000016641 15021222772 0015574 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroySupplierRequest; use App\Http\Requests\StoreSupplierRequest; use App\Http\Requests\UpdateSupplierRequest; use App\Models\Country; use App\Models\Organization; use App\Models\Supplier; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class SuppliersController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('supplier_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Supplier::with(['organization', 'country'])->select(sprintf('%s.*', (new Supplier)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'supplier_show'; $editGate = 'supplier_edit'; $deleteGate = 'supplier_delete'; $crudRoutePart = 'suppliers'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('contact_name', function ($row) { return $row->contact_name ? $row->contact_name : ''; }); $table->editColumn('contact_email', function ($row) { return $row->contact_email ? $row->contact_email : ''; }); $table->editColumn('contact_number', function ($row) { return $row->contact_number ? $row->contact_number : ''; }); $table->editColumn('address_line_1', function ($row) { return $row->address_line_1 ? $row->address_line_1 : ''; }); $table->editColumn('address_line_2', function ($row) { return $row->address_line_2 ? $row->address_line_2 : ''; }); $table->editColumn('city', function ($row) { return $row->city ? $row->city : ''; }); $table->editColumn('state', function ($row) { return $row->state ? $row->state : ''; }); $table->editColumn('zip_code', function ($row) { return $row->zip_code ? $row->zip_code : ''; }); $table->addColumn('country_name', function ($row) { return $row->country ? $row->country->name : ''; }); $table->editColumn('url', function ($row) { return $row->url ? $row->url : ''; }); $table->editColumn('logo', function ($row) { if ($photo = $row->logo) { return sprintf( '<a href="%s" target="_blank"><img src="%s" width="50px" height="50px"></a>', $photo->url, $photo->thumbnail ); } return ''; }); $table->editColumn('status', function ($row) { return $row->status ? Supplier::STATUS_RADIO[$row->status] : ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'country', 'logo']); return $table->make(true); } $organizations = Organization::get(); $countries = Country::get(); return view('admin.suppliers.index', compact('organizations', 'countries')); } public function create() { abort_if(Gate::denies('supplier_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $countries = Country::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.suppliers.create', compact('countries', 'organizations')); } public function store(StoreSupplierRequest $request) { $supplier = Supplier::create($request->all()); if ($request->input('logo', false)) { $supplier->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $supplier->id]); } return redirect()->route('admin.suppliers.index'); } public function edit(Supplier $supplier) { abort_if(Gate::denies('supplier_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $countries = Country::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $supplier->load('organization', 'country'); return view('admin.suppliers.edit', compact('countries', 'organizations', 'supplier')); } public function update(UpdateSupplierRequest $request, Supplier $supplier) { $supplier->update($request->all()); if ($request->input('logo', false)) { if (! $supplier->logo || $request->input('logo') !== $supplier->logo->file_name) { if ($supplier->logo) { $supplier->logo->delete(); } $supplier->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } } elseif ($supplier->logo) { $supplier->logo->delete(); } return redirect()->route('admin.suppliers.index'); } public function show(Supplier $supplier) { abort_if(Gate::denies('supplier_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $supplier->load('organization', 'country'); return view('admin.suppliers.show', compact('supplier')); } public function destroy(Supplier $supplier) { abort_if(Gate::denies('supplier_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $supplier->delete(); return back(); } public function massDestroy(MassDestroySupplierRequest $request) { $suppliers = Supplier::find(request('ids')); foreach ($suppliers as $supplier) { $supplier->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('supplier_create') && Gate::denies('supplier_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new Supplier(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } } Http/Controllers/Admin/AssetTagsController.php 0000644 00000011051 15021222772 0015472 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\MassDestroyAssetTagRequest; use App\Http\Requests\StoreAssetTagRequest; use App\Http\Requests\UpdateAssetTagRequest; use App\Models\Asset; use App\Models\AssetTag; use App\Models\Organization; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class AssetTagsController extends Controller { public function index(Request $request) { abort_if(Gate::denies('asset_tag_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = AssetTag::with(['organization', 'asset'])->select(sprintf('%s.*', (new AssetTag)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'asset_tag_show'; $editGate = 'asset_tag_edit'; $deleteGate = 'asset_tag_delete'; $crudRoutePart = 'asset-tags'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->addColumn('asset_asset_name', function ($row) { return $row->asset ? $row->asset->asset_name : ''; }); $table->editColumn('tag_name', function ($row) { return $row->tag_name ? $row->tag_name : ''; }); $table->editColumn('code', function ($row) { return $row->code ? $row->code : ''; }); $table->editColumn('serial', function ($row) { return $row->serial ? $row->serial : ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'asset']); return $table->make(true); } $organizations = Organization::get(); $assets = Asset::get(); return view('admin.assetTags.index', compact('organizations', 'assets')); } public function create() { abort_if(Gate::denies('asset_tag_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $assets = Asset::pluck('asset_name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.assetTags.create', compact('assets', 'organizations')); } public function store(StoreAssetTagRequest $request) { $assetTag = AssetTag::create($request->all()); return redirect()->route('admin.asset-tags.index'); } public function edit(AssetTag $assetTag) { abort_if(Gate::denies('asset_tag_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $assets = Asset::pluck('asset_name', 'id')->prepend(trans('global.pleaseSelect'), ''); $assetTag->load('organization', 'asset'); return view('admin.assetTags.edit', compact('assetTag', 'assets', 'organizations')); } public function update(UpdateAssetTagRequest $request, AssetTag $assetTag) { $assetTag->update($request->all()); return redirect()->route('admin.asset-tags.index'); } public function show(AssetTag $assetTag) { abort_if(Gate::denies('asset_tag_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $assetTag->load('organization', 'asset'); return view('admin.assetTags.show', compact('assetTag')); } public function destroy(AssetTag $assetTag) { abort_if(Gate::denies('asset_tag_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $assetTag->delete(); return back(); } public function massDestroy(MassDestroyAssetTagRequest $request) { $assetTags = AssetTag::find(request('ids')); foreach ($assetTags as $assetTag) { $assetTag->delete(); } return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Admin/OrganizationController.php 0000644 00000013362 15021222772 0016247 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroyOrganizationRequest; use App\Http\Requests\StoreOrganizationRequest; use App\Http\Requests\UpdateOrganizationRequest; use App\Models\Organization; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class OrganizationController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('organization_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Organization::query()->select(sprintf('%s.*', (new Organization)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'organization_show'; $editGate = 'organization_edit'; $deleteGate = 'organization_delete'; $crudRoutePart = 'organizations'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->editColumn('email', function ($row) { return $row->email ? $row->email : ''; }); $table->editColumn('contact_number', function ($row) { return $row->contact_number ? $row->contact_number : ''; }); $table->editColumn('logo', function ($row) { if ($photo = $row->logo) { return sprintf( '<a href="%s" target="_blank"><img src="%s" width="50px" height="50px"></a>', $photo->url, $photo->thumbnail ); } return ''; }); $table->editColumn('status', function ($row) { return $row->status ? Organization::STATUS_RADIO[$row->status] : ''; }); $table->rawColumns(['actions', 'placeholder', 'logo']); return $table->make(true); } return view('admin.organizations.index'); } public function create() { abort_if(Gate::denies('organization_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.organizations.create'); } public function store(StoreOrganizationRequest $request) { $organization = Organization::create($request->all()); if ($request->input('logo', false)) { $organization->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $organization->id]); } return redirect()->route('admin.organizations.index'); } public function edit(Organization $organization) { abort_if(Gate::denies('organization_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('admin.organizations.edit', compact('organization')); } public function update(UpdateOrganizationRequest $request, Organization $organization) { $organization->update($request->all()); if ($request->input('logo', false)) { if (! $organization->logo || $request->input('logo') !== $organization->logo->file_name) { if ($organization->logo) { $organization->logo->delete(); } $organization->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } } elseif ($organization->logo) { $organization->logo->delete(); } return redirect()->route('admin.organizations.index'); } public function show(Organization $organization) { abort_if(Gate::denies('organization_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organization->load('organizationRoles'); return view('admin.organizations.show', compact('organization')); } public function destroy(Organization $organization) { abort_if(Gate::denies('organization_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organization->delete(); return back(); } public function massDestroy(MassDestroyOrganizationRequest $request) { $organizations = Organization::find(request('ids')); foreach ($organizations as $organization) { $organization->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('organization_create') && Gate::denies('organization_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new Organization(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } } Http/Controllers/Admin/RolesController.php 0000644 00000010630 15021222772 0014662 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\MassDestroyRoleRequest; use App\Http\Requests\StoreRoleRequest; use App\Http\Requests\UpdateRoleRequest; use App\Models\Organization; use App\Models\Permission; use App\Models\Role; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class RolesController extends Controller { public function index(Request $request) { abort_if(Gate::denies('role_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Role::with(['organization', 'permissions'])->select(sprintf('%s.*', (new Role)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'role_show'; $editGate = 'role_edit'; $deleteGate = 'role_delete'; $crudRoutePart = 'roles'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('title', function ($row) { return $row->title ? $row->title : ''; }); $table->editColumn('permissions', function ($row) { $labels = []; foreach ($row->permissions as $permission) { $labels[] = sprintf('<span class="label label-info label-many">%s</span>', $permission->title); } return implode(' ', $labels); }); $table->rawColumns(['actions', 'placeholder', 'organization', 'permissions']); return $table->make(true); } $organizations = Organization::get(); $permissions = Permission::get(); return view('admin.roles.index', compact('organizations', 'permissions')); } public function create() { abort_if(Gate::denies('role_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $permissions = Permission::pluck('title', 'id'); return view('admin.roles.create', compact('organizations', 'permissions')); } public function store(StoreRoleRequest $request) { $role = Role::create($request->all()); $role->permissions()->sync($request->input('permissions', [])); return redirect()->route('admin.roles.index'); } public function edit(Role $role) { abort_if(Gate::denies('role_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $permissions = Permission::pluck('title', 'id'); $role->load('organization', 'permissions'); return view('admin.roles.edit', compact('organizations', 'permissions', 'role')); } public function update(UpdateRoleRequest $request, Role $role) { $role->update($request->all()); $role->permissions()->sync($request->input('permissions', [])); return redirect()->route('admin.roles.index'); } public function show(Role $role) { abort_if(Gate::denies('role_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $role->load('organization', 'permissions'); return view('admin.roles.show', compact('role')); } public function destroy(Role $role) { abort_if(Gate::denies('role_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $role->delete(); return back(); } public function massDestroy(MassDestroyRoleRequest $request) { $roles = Role::find(request('ids')); foreach ($roles as $role) { $role->delete(); } return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Admin/DepartmentsController.php 0000644 00000011744 15021222772 0016073 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\MassDestroyDepartmentRequest; use App\Http\Requests\StoreDepartmentRequest; use App\Http\Requests\UpdateDepartmentRequest; use App\Models\Company; use App\Models\Department; use App\Models\Organization; use App\Models\User; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class DepartmentsController extends Controller { public function index(Request $request) { abort_if(Gate::denies('department_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Department::with(['organization', 'company', 'manager'])->select(sprintf('%s.*', (new Department)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'department_show'; $editGate = 'department_edit'; $deleteGate = 'department_delete'; $crudRoutePart = 'departments'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->addColumn('company_name', function ($row) { return $row->company ? $row->company->name : ''; }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->editColumn('contact_number', function ($row) { return $row->contact_number ? $row->contact_number : ''; }); $table->addColumn('manager_name', function ($row) { return $row->manager ? $row->manager->name : ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'company', 'manager']); return $table->make(true); } $organizations = Organization::get(); $companies = Company::get(); $users = User::get(); return view('admin.departments.index', compact('organizations', 'companies', 'users')); } public function create() { abort_if(Gate::denies('department_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $managers = User::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.departments.create', compact('companies', 'managers', 'organizations')); } public function store(StoreDepartmentRequest $request) { $department = Department::create($request->all()); return redirect()->route('admin.departments.index'); } public function edit(Department $department) { abort_if(Gate::denies('department_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $managers = User::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $department->load('organization', 'company', 'manager'); return view('admin.departments.edit', compact('companies', 'department', 'managers', 'organizations')); } public function update(UpdateDepartmentRequest $request, Department $department) { $department->update($request->all()); return redirect()->route('admin.departments.index'); } public function show(Department $department) { abort_if(Gate::denies('department_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $department->load('organization', 'company', 'manager'); return view('admin.departments.show', compact('department')); } public function destroy(Department $department) { abort_if(Gate::denies('department_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $department->delete(); return back(); } public function massDestroy(MassDestroyDepartmentRequest $request) { $departments = Department::find(request('ids')); foreach ($departments as $department) { $department->delete(); } return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Admin/BranchesController.php 0000644 00000011157 15021222772 0015330 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\MassDestroyBranchRequest; use App\Http\Requests\StoreBranchRequest; use App\Http\Requests\UpdateBranchRequest; use App\Models\Branch; use App\Models\Company; use App\Models\Organization; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class BranchesController extends Controller { public function index(Request $request) { abort_if(Gate::denies('branch_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Branch::with(['organization', 'company'])->select(sprintf('%s.*', (new Branch)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'branch_show'; $editGate = 'branch_edit'; $deleteGate = 'branch_delete'; $crudRoutePart = 'branches'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->addColumn('company_name', function ($row) { return $row->company ? $row->company->name : ''; }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->editColumn('email', function ($row) { return $row->email ? $row->email : ''; }); $table->editColumn('contact_number', function ($row) { return $row->contact_number ? $row->contact_number : ''; }); $table->editColumn('address', function ($row) { return $row->address ? $row->address : ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'company']); return $table->make(true); } $organizations = Organization::get(); $companies = Company::get(); return view('admin.branches.index', compact('organizations', 'companies')); } public function create() { abort_if(Gate::denies('branch_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.branches.create', compact('companies', 'organizations')); } public function store(StoreBranchRequest $request) { $branch = Branch::create($request->all()); return redirect()->route('admin.branches.index'); } public function edit(Branch $branch) { abort_if(Gate::denies('branch_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $branch->load('organization', 'company'); return view('admin.branches.edit', compact('branch', 'companies', 'organizations')); } public function update(UpdateBranchRequest $request, Branch $branch) { $branch->update($request->all()); return redirect()->route('admin.branches.index'); } public function show(Branch $branch) { abort_if(Gate::denies('branch_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $branch->load('organization', 'company'); return view('admin.branches.show', compact('branch')); } public function destroy(Branch $branch) { abort_if(Gate::denies('branch_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $branch->delete(); return back(); } public function massDestroy(MassDestroyBranchRequest $request) { $branches = Branch::find(request('ids')); foreach ($branches as $branch) { $branch->delete(); } return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Admin/PermissionsController.php 0000644 00000000764 15021222772 0016120 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Permission; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; class PermissionsController extends Controller { public function index() { abort_if(Gate::denies('permission_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $permissions = Permission::all(); return view('admin.permissions.index', compact('permissions')); } } Http/Controllers/Admin/ManufacturersController.php 0000644 00000015253 15021222772 0016423 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroyManufacturerRequest; use App\Http\Requests\StoreManufacturerRequest; use App\Http\Requests\UpdateManufacturerRequest; use App\Models\Manufacturer; use App\Models\Organization; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class ManufacturersController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('manufacturer_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Manufacturer::with(['organization'])->select(sprintf('%s.*', (new Manufacturer)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'manufacturer_show'; $editGate = 'manufacturer_edit'; $deleteGate = 'manufacturer_delete'; $crudRoutePart = 'manufacturers'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->editColumn('support_url', function ($row) { return $row->support_url ? $row->support_url : ''; }); $table->editColumn('support_contact_number', function ($row) { return $row->support_contact_number ? $row->support_contact_number : ''; }); $table->editColumn('support_email', function ($row) { return $row->support_email ? $row->support_email : ''; }); $table->editColumn('warranty_lookup_url', function ($row) { return $row->warranty_lookup_url ? $row->warranty_lookup_url : ''; }); $table->editColumn('status', function ($row) { return $row->status ? Manufacturer::STATUS_RADIO[$row->status] : ''; }); $table->editColumn('logo', function ($row) { if ($photo = $row->logo) { return sprintf( '<a href="%s" target="_blank"><img src="%s" width="50px" height="50px"></a>', $photo->url, $photo->thumbnail ); } return ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'logo']); return $table->make(true); } $organizations = Organization::get(); return view('admin.manufacturers.index', compact('organizations')); } public function create() { abort_if(Gate::denies('manufacturer_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.manufacturers.create', compact('organizations')); } public function store(StoreManufacturerRequest $request) { $manufacturer = Manufacturer::create($request->all()); if ($request->input('logo', false)) { $manufacturer->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $manufacturer->id]); } return redirect()->route('admin.manufacturers.index'); } public function edit(Manufacturer $manufacturer) { abort_if(Gate::denies('manufacturer_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $manufacturer->load('organization'); return view('admin.manufacturers.edit', compact('manufacturer', 'organizations')); } public function update(UpdateManufacturerRequest $request, Manufacturer $manufacturer) { $manufacturer->update($request->all()); if ($request->input('logo', false)) { if (! $manufacturer->logo || $request->input('logo') !== $manufacturer->logo->file_name) { if ($manufacturer->logo) { $manufacturer->logo->delete(); } $manufacturer->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } } elseif ($manufacturer->logo) { $manufacturer->logo->delete(); } return redirect()->route('admin.manufacturers.index'); } public function show(Manufacturer $manufacturer) { abort_if(Gate::denies('manufacturer_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $manufacturer->load('organization'); return view('admin.manufacturers.show', compact('manufacturer')); } public function destroy(Manufacturer $manufacturer) { abort_if(Gate::denies('manufacturer_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $manufacturer->delete(); return back(); } public function massDestroy(MassDestroyManufacturerRequest $request) { $manufacturers = Manufacturer::find(request('ids')); foreach ($manufacturers as $manufacturer) { $manufacturer->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('manufacturer_create') && Gate::denies('manufacturer_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new Manufacturer(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } } Http/Controllers/Admin/StatusesController.php 0000644 00000007347 15021222772 0015424 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\MassDestroyStatusRequest; use App\Http\Requests\StoreStatusRequest; use App\Http\Requests\UpdateStatusRequest; use App\Models\Organization; use App\Models\Status; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class StatusesController extends Controller { public function index(Request $request) { abort_if(Gate::denies('status_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Status::with(['organization'])->select(sprintf('%s.*', (new Status)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'status_show'; $editGate = 'status_edit'; $deleteGate = 'status_delete'; $crudRoutePart = 'statuses'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->rawColumns(['actions', 'placeholder', 'organization']); return $table->make(true); } $organizations = Organization::get(); return view('admin.statuses.index', compact('organizations')); } public function create() { abort_if(Gate::denies('status_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.statuses.create', compact('organizations')); } public function store(StoreStatusRequest $request) { $status = Status::create($request->all()); return redirect()->route('admin.statuses.index'); } public function edit(Status $status) { abort_if(Gate::denies('status_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $status->load('organization'); return view('admin.statuses.edit', compact('organizations', 'status')); } public function update(UpdateStatusRequest $request, Status $status) { $status->update($request->all()); return redirect()->route('admin.statuses.index'); } public function show(Status $status) { abort_if(Gate::denies('status_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $status->load('organization'); return view('admin.statuses.show', compact('status')); } public function destroy(Status $status) { abort_if(Gate::denies('status_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $status->delete(); return back(); } public function massDestroy(MassDestroyStatusRequest $request) { $statuses = Status::find(request('ids')); foreach ($statuses as $status) { $status->delete(); } return response(null, Response::HTTP_NO_CONTENT); } } Http/Controllers/Admin/CategoryController.php 0000644 00000013503 15021222772 0015355 0 ustar 00 <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroyCategoryRequest; use App\Http\Requests\StoreCategoryRequest; use App\Http\Requests\UpdateCategoryRequest; use App\Models\Category; use App\Models\Organization; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class CategoryController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('category_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Category::with(['organization'])->select(sprintf('%s.*', (new Category)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'category_show'; $editGate = 'category_edit'; $deleteGate = 'category_delete'; $crudRoutePart = 'categories'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('name', function ($row) { return $row->name ? $row->name : ''; }); $table->editColumn('description', function ($row) { return $row->description ? $row->description : ''; }); $table->editColumn('image', function ($row) { if ($photo = $row->image) { return sprintf( '<a href="%s" target="_blank"><img src="%s" width="50px" height="50px"></a>', $photo->url, $photo->thumbnail ); } return ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'image']); return $table->make(true); } $organizations = Organization::get(); return view('admin.categories.index', compact('organizations')); } public function create() { abort_if(Gate::denies('category_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.categories.create', compact('organizations')); } public function store(StoreCategoryRequest $request) { $category = Category::create($request->all()); if ($request->input('image', false)) { $category->addMedia(storage_path('tmp/uploads/' . basename($request->input('image'))))->toMediaCollection('image'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $category->id]); } return redirect()->route('admin.categories.index'); } public function edit(Category $category) { abort_if(Gate::denies('category_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $category->load('organization'); return view('admin.categories.edit', compact('category', 'organizations')); } public function update(UpdateCategoryRequest $request, Category $category) { $category->update($request->all()); if ($request->input('image', false)) { if (! $category->image || $request->input('image') !== $category->image->file_name) { if ($category->image) { $category->image->delete(); } $category->addMedia(storage_path('tmp/uploads/' . basename($request->input('image'))))->toMediaCollection('image'); } } elseif ($category->image) { $category->image->delete(); } return redirect()->route('admin.categories.index'); } public function show(Category $category) { abort_if(Gate::denies('category_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $category->load('organization'); return view('admin.categories.show', compact('category')); } public function destroy(Category $category) { abort_if(Gate::denies('category_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $category->delete(); return back(); } public function massDestroy(MassDestroyCategoryRequest $request) { $categories = Category::find(request('ids')); foreach ($categories as $category) { $category->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('category_create') && Gate::denies('category_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new Category(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } } Http/Controllers/Auth/VerificationController.php 0000644 00000002152 15021222772 0016071 0 ustar 00 <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Providers\RouteServiceProvider; use Illuminate\Foundation\Auth\VerifiesEmails; class VerificationController extends Controller { /* |-------------------------------------------------------------------------- | Email Verification Controller |-------------------------------------------------------------------------- | | This controller is responsible for handling email verification for any | user that recently registered with the application. Emails may also | be re-sent if the user didn't receive the original email message. | */ use VerifiesEmails; /** * Where to redirect users after verification. * * @var string */ protected $redirectTo = RouteServiceProvider::HOME; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); $this->middleware('signed')->only('verify'); $this->middleware('throttle:6,1')->only('verify', 'resend'); } } Http/Controllers/Auth/LoginController.php 0000644 00000001752 15021222772 0014524 0 ustar 00 <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Providers\RouteServiceProvider; use Illuminate\Foundation\Auth\AuthenticatesUsers; class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; /** * Where to redirect users after login. * * @var string */ protected $redirectTo = RouteServiceProvider::HOME; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest')->except('logout'); } } Http/Controllers/Auth/ForgotPasswordController.php 0000644 00000001233 15021222772 0016431 0 ustar 00 <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\SendsPasswordResetEmails; class ForgotPasswordController extends Controller { /* |-------------------------------------------------------------------------- | Password Reset Controller |-------------------------------------------------------------------------- | | This controller is responsible for handling password reset emails and | includes a trait which assists in sending these notifications from | your application to your users. Feel free to explore this trait. | */ use SendsPasswordResetEmails; } Http/Controllers/Auth/ConfirmPasswordController.php 0000644 00000002000 15021222772 0016557 0 ustar 00 <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Providers\RouteServiceProvider; use Illuminate\Foundation\Auth\ConfirmsPasswords; class ConfirmPasswordController extends Controller { /* |-------------------------------------------------------------------------- | Confirm Password Controller |-------------------------------------------------------------------------- | | This controller is responsible for handling password confirmations and | uses a simple trait to include the behavior. You're free to explore | this trait and override any functions that require customization. | */ use ConfirmsPasswords; /** * Where to redirect users when the intended url fails. * * @var string */ protected $redirectTo = RouteServiceProvider::HOME; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); } } Http/Controllers/Auth/ChangePasswordController.php 0000644 00000002421 15021222772 0016356 0 ustar 00 <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Http\Requests\UpdatePasswordRequest; use App\Http\Requests\UpdateProfileRequest; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; class ChangePasswordController extends Controller { public function edit() { abort_if(Gate::denies('profile_password_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return view('auth.passwords.edit'); } public function update(UpdatePasswordRequest $request) { auth()->user()->update($request->validated()); return redirect()->route('profile.password.edit')->with('message', __('global.change_password_success')); } public function updateProfile(UpdateProfileRequest $request) { $user = auth()->user(); $user->update($request->validated()); return redirect()->route('profile.password.edit')->with('message', __('global.update_profile_success')); } public function destroy() { $user = auth()->user(); $user->update([ 'email' => time() . '_' . $user->email, ]); $user->delete(); return redirect()->route('login')->with('message', __('global.delete_account_success')); } } Http/Controllers/Auth/ResetPasswordController.php 0000644 00000001514 15021222772 0016255 0 ustar 00 <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Providers\RouteServiceProvider; use Illuminate\Foundation\Auth\ResetsPasswords; class ResetPasswordController extends Controller { /* |-------------------------------------------------------------------------- | Password Reset Controller |-------------------------------------------------------------------------- | | This controller is responsible for handling password reset requests | and uses a simple trait to include this behavior. You're free to | explore this trait and override any methods you wish to tweak. | */ use ResetsPasswords; /** * Where to redirect users after resetting their password. * * @var string */ protected $redirectTo = RouteServiceProvider::HOME; } Http/Controllers/Auth/RegisterController.php 0000644 00000003771 15021222772 0015243 0 ustar 00 <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Models\User; use App\Providers\RouteServiceProvider; use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; class RegisterController extends Controller { /* |-------------------------------------------------------------------------- | Register Controller |-------------------------------------------------------------------------- | | This controller handles the registration of new users as well as their | validation and creation. By default this controller uses a trait to | provide this functionality without requiring any additional code. | */ use RegistersUsers; /** * Where to redirect users after registration. * * @var string */ protected $redirectTo = RouteServiceProvider::HOME; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest'); } /** * Get a validator for an incoming registration request. * * @param array $data * @return \Illuminate\Contracts\Validation\Validator */ protected function validator(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); } /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\User */ protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); } } Http/Kernel.php 0000644 00000004574 15021222772 0007426 0 ustar 00 <?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { protected $middleware = [ // \App\Http\Middleware\TrustHosts::class, \App\Http\Middleware\TrustProxies::class, \Illuminate\Http\Middleware\HandleCors::class, \App\Http\Middleware\PreventRequestsDuringMaintenance::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, \App\Http\Middleware\IncludeOrganizationId::class, ]; protected $middlewareAliases = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 'signed' => \App\Http\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'org.id' => \App\Http\Middleware\IncludeOrganizationId::class, ]; protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\AuthGates::class, \App\Http\Middleware\SetLocale::class, ], 'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, // \Illuminate\Routing\Middleware\ThrottleRequests::class . ':api', 'throttle:60,1', \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\AuthGates::class, ], ]; } Http/Middleware/AuthGates.php 0000644 00000001536 15021222772 0012143 0 ustar 00 <?php namespace App\Http\Middleware; use App\Models\Role; use Closure; use Illuminate\Support\Facades\Gate; class AuthGates { public function handle($request, Closure $next) { $user = auth()->user(); if (! $user) { return $next($request); } $roles = Role::with('permissions')->get(); $permissionsArray = []; foreach ($roles as $role) { foreach ($role->permissions as $permissions) { $permissionsArray[$permissions->title][] = $role->id; } } foreach ($permissionsArray as $title => $roles) { Gate::define($title, function ($user) use ($roles) { return count(array_intersect($user->roles->pluck('id')->toArray(), $roles)) > 0; }); } return $next($request); } } Http/Middleware/TrustHosts.php 0000644 00000000573 15021222772 0012420 0 ustar 00 <?php namespace App\Http\Middleware; use Illuminate\Http\Middleware\TrustHosts as Middleware; class TrustHosts extends Middleware { /** * Get the host patterns that should be trusted. * * @return array<int, string|null> */ public function hosts(): array { return [ $this->allSubdomainsOfApplicationUrl(), ]; } } Http/Middleware/ValidateSignature.php 0000644 00000000714 15021222772 0013666 0 ustar 00 <?php namespace App\Http\Middleware; use Illuminate\Routing\Middleware\ValidateSignature as Middleware; class ValidateSignature extends Middleware { /** * The names of the query string parameters that should be ignored. * * @var array<int, string> */ protected $except = [ // 'fbclid', // 'utm_campaign', // 'utm_content', // 'utm_medium', // 'utm_source', // 'utm_term', ]; } Http/Middleware/IncludeOrganizationId.php 0000644 00000001437 15021222772 0014503 0 ustar 00 <?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Illuminate\Support\Facades\Auth; class IncludeOrganizationId { /** * Handle an incoming request. * * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next */ public function handle(Request $request, Closure $next): Response { // Get the authenticated user $user = Auth::user(); // Check if the user is authenticated and has an organization_id if ($user && $user->organization_id) { // Add organization_id to the request $request->merge(['organization_id' => $user->organization_id]); } return $next($request); } } Http/Middleware/SetLocale.php 0000644 00000001160 15021222772 0012122 0 ustar 00 <?php namespace App\Http\Middleware; use Closure; class SetLocale { public function handle($request, Closure $next) { if (request('change_language')) { session()->put('language', request('change_language')); $language = request('change_language'); } elseif (session('language')) { $language = session('language'); } elseif (config('panel.primary_language')) { $language = config('panel.primary_language'); } if (isset($language)) { app()->setLocale($language); } return $next($request); } } Http/Middleware/RedirectIfAuthenticated.php 0000644 00000001370 15021222772 0014775 0 ustar 00 <?php namespace App\Http\Middleware; use App\Providers\RouteServiceProvider; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Symfony\Component\HttpFoundation\Response; class RedirectIfAuthenticated { /** * Handle an incoming request. * * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next */ public function handle(Request $request, Closure $next, string ...$guards): Response { $guards = empty($guards) ? [null] : $guards; foreach ($guards as $guard) { if (Auth::guard($guard)->check()) { return redirect(RouteServiceProvider::HOME); } } return $next($request); } } Http/Middleware/TrimStrings.php 0000644 00000000575 15021222772 0012545 0 ustar 00 <?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware; class TrimStrings extends Middleware { /** * The names of the attributes that should not be trimmed. * * @var array<int, string> */ protected $except = [ 'current_password', 'password', 'password_confirmation', ]; } Http/Middleware/PreventRequestsDuringMaintenance.php 0000644 00000000556 15021222772 0016752 0 ustar 00 <?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware; class PreventRequestsDuringMaintenance extends Middleware { /** * The URIs that should be reachable while maintenance mode is enabled. * * @var array<int, string> */ protected $except = [ // ]; } Http/Middleware/EncryptCookies.php 0000644 00000000463 15021222772 0013215 0 ustar 00 <?php namespace App\Http\Middleware; use Illuminate\Cookie\Middleware\EncryptCookies as Middleware; class EncryptCookies extends Middleware { /** * The names of the cookies that should not be encrypted. * * @var array<int, string> */ protected $except = [ // ]; } Http/Middleware/TrustProxies.php 0000644 00000001211 15021222772 0012737 0 ustar 00 <?php namespace App\Http\Middleware; use Illuminate\Http\Middleware\TrustProxies as Middleware; use Illuminate\Http\Request; class TrustProxies extends Middleware { /** * The trusted proxies for this application. * * @var array<int, string>|string|null */ protected $proxies; /** * The headers that should be used to detect proxies. * * @var int */ protected $headers = Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB; } Http/Middleware/Authenticate.php 0000644 00000000631 15021222772 0012667 0 ustar 00 <?php namespace App\Http\Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware; use Illuminate\Http\Request; class Authenticate extends Middleware { /** * Get the path the user should be redirected to when they are not authenticated. */ protected function redirectTo(Request $request): ?string { return $request->expectsJson() ? null : route('login'); } } Http/Middleware/VerifyCsrfToken.php 0000644 00000000506 15021222772 0013335 0 ustar 00 <?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array<int, string> */ protected $except = [ 'api/*', ]; } Http/.DS_Store 0000644 00000014004 15021222772 0007145 0 ustar 00 Bud1 r o l l e r C o n t r o l l e r sIlocblob A .������ K e r n e l . p h pIlocblob � .������ M i d d l e w a r eIlocblob � .������ R e q u e s t sIlocblob .������ R e q u e s t sbwspblob �bplist00�]ShowStatusBar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar _{{300, 102}, {960, 741}} #/;R_klmno� � R e q u e s t svSrnlong R e s o u r c e sIlocblob � .������ R e s o u r c e sbwspblob �bplist00�]ShowStatusBar[ShowToolbar[ShowTabView_ContainerShowSidebar\WindowBounds[ShowSidebar _{{300, 102}, {960, 741}} #/;R_klmno� � R e s o u r c e svSrnlong @ � @ � @ � @ E DSDB ` � @ � @ � @ Http/Requests/UpdateMaintenanceScheduleRequest.php 0000644 00000003407 15021222772 0016426 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; class UpdateMaintenanceScheduleRequest extends FormRequest { public function authorize() { return Gate::allows('maintenance_schedule_edit'); } public function rules() { return [ 'asset_id' => [ 'required', 'integer', 'exists:assets,id,organization_id,' . auth()->user()->organization_id, ], 'maintenance_type' => [ 'required', 'integer', 'in:1,2,3', ], 'scheduled_date' => [ 'required', 'date_format:' . config('panel.date_format'), ], 'completion_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'status' => [ 'required', 'integer', 'in:1,2,3', ], 'frequency' => [ 'required', 'integer', 'in:1,2,3,4,5,6', ], 'interval' => [ 'nullable', 'integer', ], 'cost' => [ 'required', 'number', ], 'assigned_to' => [ 'required', 'integer', 'exists:users,id,organization_id,' . auth()->user()->organization_id, ], 'next_scheduled_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'notes' => [ 'nullable', 'max:2048', ], ]; } } Http/Requests/MassDestroyDepartmentRequest.php 0000644 00000001124 15021222772 0015657 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Department; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyDepartmentRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('department_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:departments,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/StoreManufacturerRequest.php 0000644 00000002031 15021222772 0015025 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Manufacturer; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StoreManufacturerRequest extends FormRequest { public function authorize() { return Gate::allows('manufacturer_create'); } public function rules() { return [ 'name' => [ 'required', 'string', 'min:1', 'max:50', ], 'support_url' => [ 'nullable', 'string', 'max:255', ], 'support_contact_number' => [ 'nullable', 'string', 'min:10', 'max:12', ], 'warranty_lookup_url' => [ 'nullable', 'string', 'max:255', ], 'logo' => [ 'nullable', 'mimes:jpeg,png,jpg,gif', ], ]; } } Http/Requests/UpdateRoleRequest.php 0000644 00000001063 15021222772 0013424 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; class UpdateRoleRequest extends FormRequest { public function authorize() { return Gate::allows('role_edit'); } public function rules() { return [ 'title' => [ 'string', 'required', ], 'permissions.*' => [ 'integer', ], 'permissions' => [ 'required', 'array', ], ]; } } Http/Requests/UpdateSupplierRequest.php 0000644 00000003410 15021222772 0014324 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Supplier; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateSupplierRequest extends FormRequest { public function authorize() { return Gate::allows('supplier_edit'); } public function rules() { return [ 'contact_name' => [ 'required', 'string', 'min:1', 'max:30', ], 'contact_email' => [ 'nullable', 'email', ], 'contact_number' => [ 'nullable', 'string', 'min:10', 'max:12', ], 'address_line_1' => [ 'nullable', 'string', ], 'address_line_2' => [ 'nullable', 'string', ], 'city' => [ 'nullable', 'string', 'min:1', 'max:30', ], 'state' => [ 'nullable', 'string', 'min:1', 'max:30', ], 'zip_code' => [ 'string', 'min:1', 'max:15', 'nullable', ], 'country_id' => [ 'required', 'integer', 'exists:countries,id', ], 'url' => [ 'nullable', 'string', 'max:255', ], 'logo' => [ 'nullable', 'mimes:png,jpg,jpeg', 'max:2048', ], ]; } } Http/Requests/MassDestroyPermissionRequest.php 0000644 00000001041 15021222772 0015702 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Permission; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyPermissionRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('permission_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:permissions,id', ]; } } Http/Requests/StoreUserRequest.php 0000644 00000002723 15021222772 0013317 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\User; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StoreUserRequest extends FormRequest { public function authorize() { return Gate::allows('user_create'); } public function rules() { return [ 'companies' => [ 'required', 'array', ], 'companies.*.company_id' => [ 'integer', 'exists:companies,id,organization_id,' . auth()->user()->organization_id, ], 'companies.*.branch_id' => [ 'required', 'integer', 'exists:branches,id,organization_id,' . auth()->user()->organization_id, ], 'first_name' => [ 'string', 'required', ], 'email' => [ 'required', 'unique:users', ], 'password' => [ 'required', ], 'contact_number' => [ 'string', 'min:10', 'max:12', 'nullable', ], 'roles' => [ 'required', 'array', ], 'roles.*' => [ 'integer', 'exists:roles,id,organization_id,' . auth()->user()->organization_id, ], ]; } } Http/Requests/StoreDepartmentRequest.php 0000644 00000002020 15021222772 0014472 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Department; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StoreDepartmentRequest extends FormRequest { public function authorize() { return Gate::allows('department_create'); } public function rules() { return [ 'company_id' => [ 'required', 'integer', 'exists:companies,id,organization_id,' . auth()->user()->organization_id, ], 'name' => [ 'required', 'string', 'min:1', 'max:30', ], 'contact_number' => [ 'nullable', 'string', 'min:10', 'max:12', ], 'manager_id' => [ 'required', 'integer', 'exists:users,id,organization_id,' . auth()->user()->organization_id, ], ]; } } Http/Requests/StoreCompanyRequest.php 0000644 00000001252 15021222772 0014003 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; class StoreCompanyRequest extends FormRequest { public function authorize() { return Gate::allows('company_create'); } public function rules() { return [ 'name' => [ 'required', 'min:1', 'max:30', ], 'contact_number' => [ 'nullable', 'min:10', 'max:12', ], 'logo' => [ 'nullable', 'mimes:png,jpg,jpeg', 'max:2048', ], ]; } } Http/Requests/OrganizationSignupRequest.php 0000644 00000003102 15021222772 0015206 0 ustar 00 <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class OrganizationSignupRequest extends FormRequest { /** * Determine if the user is authorized to make this request. */ public function authorize(): bool { return true; } /** * Get the validation rules that apply to the request. * * @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> */ public function rules(): array { return [ 'organization_name' => [ 'required', 'min:1', 'max:50', ], 'organization_email' => [ 'required', 'unique:organizations,email', ], 'organization_contact_number' => [ 'nullable', 'min:11', 'max:15' ], 'logo' => [ 'nullable', 'mimes:png,jpg,jpeg', 'max:2048', ], 'user_first_name' => [ 'required', 'min:1', 'max:30', ], 'user_last_name' => [ 'nullable', 'min:1', 'max:30', ], 'user_email' => [ 'required', 'unique:users,email', ], 'user_password' => [ 'required', 'min:8', 'max:20', 'confirmed', ], ]; } } Http/Requests/StoreOrganizationRequest.php 0000644 00000002060 15021222772 0015037 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Organization; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StoreOrganizationRequest extends FormRequest { public function authorize() { return Gate::allows('organization_create'); } public function rules() { return [ 'name' => [ 'string', 'min:1', 'max:50', 'required', ], 'email' => [ 'required', 'unique:organizations', ], 'contact_number' => [ 'string', 'nullable', ], 'address_line_1' => [ 'string', 'nullable', ], 'address_line_2' => [ 'string', 'nullable', ], 'date_expiration' => [ 'required', 'date_format:' . config('panel.date_format'), ], ]; } } Http/Requests/UpdateOrganizationRequest.php 0000644 00000002135 15021222772 0015170 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Organization; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateOrganizationRequest extends FormRequest { public function authorize() { return Gate::allows('organization_edit'); } public function rules() { return [ 'name' => [ 'string', 'min:1', 'max:50', 'required', ], 'email' => [ 'required', 'unique:organizations,email,' . request()->route('organization')->id, ], 'contact_number' => [ 'string', 'nullable', ], 'address_line_1' => [ 'string', 'nullable', ], 'address_line_2' => [ 'string', 'nullable', ], 'date_expiration' => [ 'required', 'date_format:' . config('panel.date_format'), ], ]; } } Http/Requests/UpdateDepartmentRequest.php 0000644 00000001525 15021222772 0014631 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Department; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateDepartmentRequest extends FormRequest { public function authorize() { return Gate::allows('department_edit'); } public function rules() { return [ 'company_id' => [ 'required', 'integer', 'exists:companies,id,organization_id,' . auth()->user()->organization_id, ], 'name' => [ 'required', 'string', 'min:1', 'max:30', ], 'contact_number' => [ 'nullable', 'string', 'min:10', 'max:12', ], ]; } } Http/Requests/MassDestroyCountryRequest.php 0000644 00000001111 15021222772 0015213 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Country; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyCountryRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('country_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:countries,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/StoreMaintenanceScheduleRequest.php 0000644 00000003410 15021222772 0016272 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; class StoreMaintenanceScheduleRequest extends FormRequest { public function authorize() { return Gate::allows('maintenance_schedule_create'); } public function rules() { return [ 'asset_id' => [ 'required', 'integer', 'exists:assets,id,organization_id,' . auth()->user()->organization_id, ], 'maintenance_type' => [ 'required', 'integer', 'in:1,2,3', ], 'scheduled_date' => [ 'required', 'date_format:' . config('panel.date_format'), ], 'completion_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'status' => [ 'required', 'integer', 'in:1,2,3', ], 'frequency' => [ 'required', 'integer', 'in:1,2,3,4,5,6', ], 'interval' => [ 'nullable', 'integer', ], 'cost' => [ 'required', 'number', ], 'assigned_to' => [ 'required', 'integer', 'exists:users,id,organization_id,' . auth()->user()->organization_id, ], 'next_scheduled_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'notes' => [ 'nullable', 'max:2048', ], ]; } } Http/Requests/UpdateAssetRequest.php 0000644 00000005146 15021222772 0013610 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; class UpdateAssetRequest extends FormRequest { public function authorize() { return Gate::allows('asset_edit'); } public function rules() { return [ 'asset_name' => [ 'required', 'string', 'min:1', 'max:50', ], 'asset_status_id' => [ 'required', 'integer', 'exists:statuses,id,organization_id,' . auth()->user()->organization_id, ], 'category_id' => [ 'required', 'integer', 'exists:categories,id,organization_id,' . auth()->user()->organization_id, ], 'company_id' => [ 'required', 'integer', 'exists:companies,id,organization_id,' . auth()->user()->organization_id, ], 'branch_id' => [ 'required', 'integer', 'exists:branches,id,organization_id,' . auth()->user()->organization_id, ], 'manufacturer_id' => [ 'required', 'integer', 'exists:manufacturers,id,organization_id,' . auth()->user()->organization_id, ], 'supplier_id' => [ 'required', 'integer', 'exists:suppliers,id,organization_id,' . auth()->user()->organization_id, ], 'qty' => [ 'nullable', 'integer', ], 'purchase_cost' => [ 'nullable', 'numeric', ], 'currency_id' => [ 'nullable', 'integer', 'exists:currencies,id,organization_id,' . auth()->user()->organization_id, ], 'asset_expiration_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'next_audit_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'purchase_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'eol_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'asset_image' => [ 'nullable', 'mimes:png,jpg,jpeg,gif', ], ]; } } Http/Requests/MassDestroySupplierRequest.php 0000644 00000001114 15021222772 0015356 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Supplier; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroySupplierRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('supplier_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:suppliers,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/UpdateAssetTagRequest.php 0000644 00000001726 15021222772 0014244 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\AssetTag; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateAssetTagRequest extends FormRequest { public function authorize() { return Gate::allows('asset_tag_edit'); } public function rules() { return [ 'asset_id' => [ 'required', 'integer', 'exists:assets,id,organization_id,' . auth()->user()->organization_id, ], 'tag_name' => [ 'string', 'min:1', 'max:30', 'required', ], 'code' => [ 'string', 'min:1', 'max:15', 'required', ], 'serial' => [ 'string', 'min:1', 'max:30', 'required', ], ]; } } Http/Requests/MassDestroyCurrencyRequest.php 0000644 00000001115 15021222772 0015346 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Currency; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyCurrencyRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('currency_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:currencies,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/UpdateUserRequest.php 0000644 00000002770 15021222772 0013447 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\User; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateUserRequest extends FormRequest { public function authorize() { return Gate::allows('user_edit'); } public function rules() { return [ 'companies' => [ 'required', 'array', ], 'companies.*.company_id' => [ 'integer', 'exists:companies,id,organization_id,' . auth()->user()->organization_id, ], 'companies.*.branch_id' => [ 'required', 'integer', 'exists:branches,id,organization_id,' . auth()->user()->organization_id, ], 'first_name' => [ 'string', 'required', ], 'email' => [ 'required', 'unique:users,email,' . request()->route('user')->id, ], 'password' => [ 'required', ], 'contact_number' => [ 'string', 'min:10', 'max:12', 'nullable', ], 'roles' => [ 'required', 'array', ], 'roles.*' => [ 'integer', 'exists:roles,id,organization_id,' . auth()->user()->organization_id, ], ]; } } Http/Requests/StoreAssetRequest.php 0000644 00000005147 15021222772 0013463 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; class StoreAssetRequest extends FormRequest { public function authorize() { return Gate::allows('asset_create'); } public function rules() { return [ 'asset_name' => [ 'required', 'string', 'min:1', 'max:50', ], 'asset_status_id' => [ 'required', 'integer', 'exists:statuses,id,organization_id,' . auth()->user()->organization_id, ], 'category_id' => [ 'required', 'integer', 'exists:categories,id,organization_id,' . auth()->user()->organization_id, ], 'company_id' => [ 'required', 'integer', 'exists:companies,id,organization_id,' . auth()->user()->organization_id, ], 'branch_id' => [ 'required', 'integer', 'exists:branches,id,organization_id,' . auth()->user()->organization_id, ], 'manufacturer_id' => [ 'required', 'integer', 'exists:manufacturers,id,organization_id,' . auth()->user()->organization_id, ], 'supplier_id' => [ 'required', 'integer', 'exists:suppliers,id,organization_id,' . auth()->user()->organization_id, ], 'qty' => [ 'nullable', 'integer', ], 'purchase_cost' => [ 'nullable', 'numeric', ], 'currency_id' => [ 'nullable', 'integer', 'exists:currencies,id,organization_id,' . auth()->user()->organization_id, ], 'asset_expiration_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'next_audit_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'purchase_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'eol_date' => [ 'nullable', 'date_format:' . config('panel.date_format'), ], 'asset_image' => [ 'nullable', 'mimes:png,jpg,jpeg,gif', ], ]; } } Http/Requests/MassDestroyStatusRequest.php 0000644 00000001105 15021222772 0015036 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Status; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyStatusRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('status_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:statuses,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/MassDestroyAssetRequest.php 0000644 00000001100 15021222772 0014625 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Asset; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyAssetRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('asset_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:assets,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/StoreCurrencyRequest.php 0000644 00000001517 15021222772 0014173 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; class StoreCurrencyRequest extends FormRequest { public function authorize() { return Gate::allows('currency_create'); } public function rules() { return [ 'name' => [ 'required', 'string', 'min:1', 'max:20', 'unique:currencies', ], 'code' => [ 'required', 'string', 'min:1', 'max:3', 'unique:currencies', ], 'symbol' => [ 'required', 'string', 'min:1', 'max:3', 'unique:currencies', ], ]; } } Http/Requests/StoreCategoryRequest.php 0000644 00000001062 15021222772 0014151 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Category; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StoreCategoryRequest extends FormRequest { public function authorize() { return Gate::allows('category_create'); } public function rules() { return [ 'name' => [ 'string', 'required', ], 'image' => [ 'nullable', 'mimes:jpeg,png,jpg,gif', ], ]; } } Http/Requests/UpdateProfileRequest.php 0000644 00000001456 15021222772 0014131 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; use Illuminate\Validation\Rule; class UpdateProfileRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { abort_if(Gate::denies('profile_password_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,' . auth()->id()], ]; } } Http/Requests/ForgotPasswordRequest.php 0000644 00000000677 15021222772 0014355 0 ustar 00 <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class ForgotPasswordRequest extends FormRequest { public function rules() { return [ 'email' => [ 'required', 'email', 'exists:users,email' ], ]; } public function attributes() { return [ 'email' => 'Email Address', ]; } } Http/Requests/MassDestroyAssetTagRequest.php 0000644 00000001116 15021222772 0015270 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\AssetTag; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyAssetTagRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('asset_tag_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:asset_tags,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/StoreBranchRequest.php 0000644 00000002042 15021222772 0013570 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; class StoreBranchRequest extends FormRequest { public function authorize() { return Gate::allows('branch_create'); } public function rules() { return [ 'company_id' => [ 'required', 'integer', 'exists:companies,id,organization_id,' . auth()->user()->organization_id, ], 'name' => [ 'required', 'string', 'min:1', 'max:50', ], 'email' => [ 'nullable', 'string', 'max:255', ], 'contact_number' => [ 'nullable', 'string', 'min:10', 'max:12', ], 'address' => [ 'nullable', 'string', 'min:1', 'max:255', ], ]; } } Http/Requests/StoreRoleRequest.php 0000644 00000001135 15021222772 0013276 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; class StoreRoleRequest extends FormRequest { public function authorize() { return Gate::allows('role_create'); } public function rules() { return [ 'title' => [ 'required', 'string', ], 'permissions' => [ 'required', 'array', ], 'permissions.*' => [ 'integer', 'exists:permissions,id', ], ]; } } Http/Requests/MassDestroyUserRequest.php 0000644 00000001074 15021222772 0014476 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\User; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyUserRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('user_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:users,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/UpdateCurrencyRequest.php 0000644 00000002002 15021222772 0014307 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Currency; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateCurrencyRequest extends FormRequest { public function authorize() { return Gate::allows('currency_edit'); } public function rules() { return [ 'name' => [ 'string', 'min:1', 'max:20', 'required', 'unique:currencies,name,' . request()->route('currency')->id, ], 'code' => [ 'string', 'min:1', 'max:3', 'required', 'unique:currencies,code,' . request()->route('currency')->id, ], 'symbol' => [ 'string', 'min:1', 'max:3', 'required', 'unique:currencies,symbol,' . request()->route('currency')->id, ], ]; } } Http/Requests/UpdateManufacturerRequest.php 0000644 00000002030 15021222772 0015152 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Manufacturer; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateManufacturerRequest extends FormRequest { public function authorize() { return Gate::allows('manufacturer_edit'); } public function rules() { return [ 'name' => [ 'required', 'string', 'min:1', 'max:50', ], 'support_url' => [ 'nullable', 'string', 'max:255', ], 'support_contact_number' => [ 'nullable', 'string', 'min:10', 'max:12', ], 'warranty_lookup_url' => [ 'nullable', 'string', 'max:255', ], 'logo' => [ 'nullable', 'mimes:jpeg,png,jpg,gif', ], ]; } } Http/Requests/StoreSupplierRequest.php 0000644 00000003411 15021222772 0014177 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Supplier; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StoreSupplierRequest extends FormRequest { public function authorize() { return Gate::allows('supplier_create'); } public function rules() { return [ 'contact_name' => [ 'required', 'string', 'min:1', 'max:30', ], 'contact_email' => [ 'nullable', 'email', ], 'contact_number' => [ 'nullable', 'string', 'min:10', 'max:12', ], 'address_line_1' => [ 'nullable', 'string', ], 'address_line_2' => [ 'nullable', 'string', ], 'city' => [ 'nullable', 'string', 'min:1', 'max:30', ], 'state' => [ 'nullable', 'string', 'min:1', 'max:30', ], 'zip_code' => [ 'string', 'min:1', 'max:15', 'nullable', ], 'country_id' => [ 'required', 'integer', 'exists:countries,id', ], 'url' => [ 'nullable', 'string', 'max:255', ], 'logo' => [ 'nullable', 'mimes:png,jpg,jpeg', 'max:2048', ], ]; } } Http/Requests/StoreAssetTagRequest.php 0000644 00000001727 15021222772 0014117 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\AssetTag; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StoreAssetTagRequest extends FormRequest { public function authorize() { return Gate::allows('asset_tag_create'); } public function rules() { return [ 'asset_id' => [ 'required', 'integer', 'exists:assets,id,organization_id,' . auth()->user()->organization_id, ], 'tag_name' => [ 'string', 'min:1', 'max:30', 'required', ], 'code' => [ 'string', 'min:1', 'max:15', 'required', ], 'serial' => [ 'string', 'min:1', 'max:30', 'required', ], ]; } } Http/Requests/UpdateStatusRequest.php 0000644 00000000760 15021222772 0014011 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Status; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateStatusRequest extends FormRequest { public function authorize() { return Gate::allows('status_edit'); } public function rules() { return [ 'name' => [ 'required', 'string', 'min:1', 'max:30', ], ]; } } Http/Requests/MassDestroyCategoryRequest.php 0000644 00000001115 15021222772 0015331 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Category; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyCategoryRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('category_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:categories,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/StoreStatusRequest.php 0000644 00000000761 15021222772 0013664 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Status; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StoreStatusRequest extends FormRequest { public function authorize() { return Gate::allows('status_create'); } public function rules() { return [ 'name' => [ 'required', 'string', 'min:1', 'max:30', ], ]; } } Http/Requests/MassDestroyOrganizationRequest.php 0000644 00000001134 15021222772 0016221 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Organization; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyOrganizationRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('organization_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:organizations,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/StorePermissionRequest.php 0000644 00000000713 15021222772 0014526 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Permission; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StorePermissionRequest extends FormRequest { public function authorize() { return Gate::allows('permission_create'); } public function rules() { return [ 'title' => [ 'string', 'required', ], ]; } } Http/Requests/UpdateBranchRequest.php 0000644 00000002126 15021222772 0013721 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Branch; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateBranchRequest extends FormRequest { public function authorize() { return Gate::allows('branch_edit'); } public function rules() { return [ 'company_id' => [ 'required', 'integer', 'exists:companies,id,organization_id,' . auth()->user()->organization_id, ], 'name' => [ 'string', 'min:1', 'max:50', 'required', ], 'email' => [ 'string', 'max:255', 'nullable', ], 'contact_number' => [ 'string', 'min:10', 'max:12', 'nullable', ], 'address' => [ 'string', 'min:1', 'max:255', 'nullable', ], ]; } } Http/Requests/MassDestroyRoleRequest.php 0000644 00000001074 15021222772 0014461 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Role; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyRoleRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('role_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:roles,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/MassDestroyCompanyRequest.php 0000644 00000001111 15021222772 0015156 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Company; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyCompanyRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('company_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:companies,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/UpdatePasswordRequest.php 0000644 00000001324 15021222772 0014325 0 ustar 00 <?php namespace App\Http\Requests; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; use Illuminate\Validation\Rule; class UpdatePasswordRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { abort_if(Gate::denies('profile_password_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'password' => ['required', 'string', 'min:8', 'confirmed'], ]; } } Http/Requests/MassDestroyManufacturerRequest.php 0000644 00000001134 15021222772 0016211 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Manufacturer; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyManufacturerRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('manufacturer_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:manufacturers,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/StoreCountryRequest.php 0000644 00000001044 15021222772 0014037 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Country; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class StoreCountryRequest extends FormRequest { public function authorize() { return Gate::allows('country_create'); } public function rules() { return [ 'name' => [ 'string', 'required', ], 'short_code' => [ 'string', 'required', ], ]; } } Http/Requests/UpdateCategoryRequest.php 0000644 00000000703 15021222772 0014300 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Category; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateCategoryRequest extends FormRequest { public function authorize() { return Gate::allows('category_edit'); } public function rules() { return [ 'name' => [ 'string', 'required', ], ]; } } Http/Requests/UpdateCompanyRequest.php 0000644 00000001216 15021222772 0014131 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Company; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateCompanyRequest extends FormRequest { public function authorize() { return Gate::allows('company_edit'); } public function rules() { return [ 'name' => [ 'string', 'min:1', 'max:30', 'required', ], 'contact_number' => [ 'string', 'min:10', 'max:12', 'nullable', ], ]; } } Http/Requests/MassDestroyBranchRequest.php 0000644 00000001105 15021222772 0014750 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Branch; use Gate; use Illuminate\Foundation\Http\FormRequest; use Symfony\Component\HttpFoundation\Response; class MassDestroyBranchRequest extends FormRequest { public function authorize() { abort_if(Gate::denies('branch_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); return true; } public function rules() { return [ 'ids' => 'required|array', 'ids.*' => 'exists:branches,id,organization_id,' . auth()->user()->organization_id, ]; } } Http/Requests/UpdateCountryRequest.php 0000644 00000001043 15021222772 0014164 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Country; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdateCountryRequest extends FormRequest { public function authorize() { return Gate::allows('country_edit'); } public function rules() { return [ 'name' => [ 'string', 'required', ], 'short_code' => [ 'string', 'required', ], ]; } } Http/Requests/UpdatePermissionRequest.php 0000644 00000000712 15021222772 0014653 0 ustar 00 <?php namespace App\Http\Requests; use App\Models\Permission; use Gate; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Response; class UpdatePermissionRequest extends FormRequest { public function authorize() { return Gate::allows('permission_edit'); } public function rules() { return [ 'title' => [ 'string', 'required', ], ]; } } Http/Requests/ResetPasswordRequest.php 0000644 00000001445 15021222772 0014171 0 ustar 00 <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class ResetPasswordRequest extends FormRequest { public function rules() { return [ 'password_reset_code' => [ 'required', 'integer', ], 'email' => [ 'required', 'email', 'exists:users,email', ], 'password' => [ 'required', 'confirmed', 'min:8', 'max:20', ], ]; } public function attributes() { return [ 'email' => 'Email Address', 'password_reset_code' => 'Password Reset Code', 'password' => 'Password', ]; } } Http/Resources/Admin/CompanyResource.php 0000644 00000001407 15021222772 0014316 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class CompanyResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, "contact_number" => $this->contact_number, "logo" => [ "thumbnail" => $this->logo?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), "url" => $this->logo?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), ], "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/CurrencyResource.php 0000644 00000000352 15021222772 0014500 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class CurrencyResource extends JsonResource { public function toArray($request) { return parent::toArray($request); } } Http/Resources/Admin/SupplierResource.php 0000644 00000002246 15021222772 0014515 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class SupplierResource extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'name' => $this->contact_name, 'contact_email' => $this->contact_email, 'contact_number' => $this->contact_number, 'address_line_1' => $this->address_line_1, 'address_line_2' => $this->address_line_2, 'country' => [ "id" => $this->country->id, "name" => $this->country->name, ], "city" => $this->city, "state" => $this->state, "zip_code" => $this->zip_code, "url" => $this->url, "status" => $this->status, "logo" => [ "thumbnail" => $this->logo?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->contact_name, 0, 2)), "url" => $this->logo?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->contact_name, 0, 2)), ], ]; } } Http/Resources/Admin/PermissionDropDownResource.php 0000644 00000000364 15021222772 0016516 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class PermissionDropDownResource extends JsonResource { public function toArray($request) { return parent::toArray($request); } } Http/Resources/Admin/RoleResource.php 0000644 00000000572 15021222772 0013613 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class RoleResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "title" => $this->title, "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/BranchResource.php 0000644 00000001206 15021222772 0014102 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class BranchResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, "email" => $this->email, "contact_number" => $this->contact_number, "address" => $this->address, "company" => [ "id" => $this->company?->id, "name" => $this->company?->name ], "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/ManufacturerDropDownResource.php 0000644 00000000452 15021222772 0017020 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class ManufacturerDropDownResource extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'name' => $this->name, ]; } } Http/Resources/Admin/StatusResource.php 0000644 00000000572 15021222772 0014175 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class StatusResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/AssetTagResource.php 0000644 00000000352 15021222772 0014421 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class AssetTagResource extends JsonResource { public function toArray($request) { return parent::toArray($request); } } Http/Resources/Admin/RoleDropDownResource.php 0000644 00000000356 15021222772 0015270 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class RoleDropDownResource extends JsonResource { public function toArray($request) { return parent::toArray($request); } } Http/Resources/Admin/BranchDropDownResource.php 0000644 00000000444 15021222772 0015562 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class BranchDropDownResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, ]; } } Http/Resources/Admin/CategoryResource.php 0000644 00000001324 15021222772 0014463 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class CategoryResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, "image" => [ "thumbnail" => $this->image?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), "url" => $this->image?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), ], "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/UserShowResource.php 0000644 00000003302 15021222772 0014463 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class UserShowResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "first_name" => $this->first_name, "last_name" => $this->last_name, "name" => $this->full_name, "email" => $this->email, "contact_number" => $this->contact_number, "status" => $this->status, "email_verified" => $this->is_email_verified, "avatar" => [ "thumbnail" => $this->avatar?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->full_name, 0, 2)), "url" => $this->avatar?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->full_name, 0, 2)), ], "organization" => [ "id" => $this->organization->id, "name" => $this->organization->name, "logo" => [ "thumbnail" => $this->organization->logo?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . substr($this->organization->name, 0, 2), "url" => $this->organization->logo?->url ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . substr($this->organization->name, 0, 2), ] ], "companies" => CompanyResource::collection($this->companies), "roles" => RoleResource::collection($this->roles), "permissions" => [], "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/DepartmentResource.php 0000644 00000001306 15021222772 0015011 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class DepartmentResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, "contact_number" => $this->contact_number, "company" => [ "id" => $this->company->id, "name" => $this->company->name, ], "manager" => [ "id" => $this->manager->id, "name" => $this->manager->full_name, ], "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/StatusDropDownResource.php 0000644 00000000444 15021222772 0015650 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class StatusDropDownResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, ]; } } Http/Resources/Admin/MaintenanceScheduleResource.php 0000644 00000000544 15021222772 0016610 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class MaintenanceScheduleResource extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]; } } Http/Resources/Admin/CurrencyDropDownResource.php 0000644 00000000560 15021222772 0016156 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class CurrencyDropDownResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, "code" => $this->code, "symbol" => $this->symbol, ]; } } Http/Resources/Admin/OrganizationResource.php 0000644 00000000356 15021222772 0015356 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class OrganizationResource extends JsonResource { public function toArray($request) { return parent::toArray($request); } } Http/Resources/Admin/UserDropDownResource.php 0000644 00000000454 15021222772 0015304 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class UserDropDownResource extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'full_name' => $this->full_name, ]; } } Http/Resources/Admin/CountryResource.php 0000644 00000000351 15021222772 0014350 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class CountryResource extends JsonResource { public function toArray($request) { return parent::toArray($request); } } Http/Resources/Admin/UserResource.php 0000644 00000002671 15021222772 0013632 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class UserResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->full_name, "email" => $this->email, "contact_number" => $this->contact_number, "status" => $this->status, "email_verified" => $this->hasVerifiedEmail(), "avatar" => [ "thumbnail" => $this->avatar?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->full_name, 0, 2)), "url" => $this->avatar?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->full_name, 0, 2)), ], "organization" => [ "id" => $this->organization->id, "name" => $this->organization->name, "logo" => [ "thumbnail" => $this->organization->logo?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . substr($this->organization->name, 0, 2), "url" => $this->organization->logo?->url ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . substr($this->organization->name, 0, 2), ] ], "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/CategoryDropDownResource.php 0000644 00000000446 15021222772 0016144 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class CategoryDropDownResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, ]; } } Http/Resources/Admin/CompanyDropDownResource.php 0000644 00000000445 15021222772 0015774 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class CompanyDropDownResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, ]; } } Http/Resources/Admin/CategoryShowResource.php 0000644 00000001411 15021222772 0015321 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class CategoryShowResource extends JsonResource { public function toArray($request) { return [ "id" => $this->id, "name" => $this->name, "description" => $this->description, "image" => [ "thumbnail" => $this->image?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), "url" => $this->image?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), ], "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/AssetResource.php 0000644 00000003630 15021222772 0013767 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class AssetResource extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'asset_name' => $this->asset_name, 'qty' => $this->qty, "asset_image" => [ "thumbnail" => $this->asset_image?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->asset_name, 0, 2)), "url" => $this->asset_image?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->asset_name, 0, 2)), ], 'asset_expiration_date' => $this->asset_expiration_date, 'category' => [ "id" => $this->category->id, "name" => $this->category->name ], 'company' => [ "id" => $this->company->id, "name" => $this->company->name, ], 'branch' => [ "id" => $this->branch->id, "name" => $this->branch->name, ], 'status' => [ "id" => $this->asset_status->id, "name" => $this->asset_status->name, ], 'manufacturer' => [ "id" => $this->manufacturer->id, "name" => $this->manufacturer->name, ], 'supplier' => [ "id" => $this->supplier->id, "name" => $this->supplier->name, ], 'purchase_cost' => $this->purchase_cost, 'currency' => $this->currency, 'next_audit_date' => $this->next_audit_date, 'purchase_date' => $this->purchase_date, 'eol_date' => $this->eol_date, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]; } } Http/Resources/Admin/AssetDetailResource.php 0000644 00000003703 15021222772 0015113 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class AssetDetailResource extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'asset_name' => $this->asset_name, 'qty' => $this->qty, 'notes' => $this->notes, 'asset_expiration_date' => $this->asset_expiration_date, 'next_audit_date' => $this->next_audit_date, 'purchase_date' => $this->purchase_date, 'eol_date' => $this->eol_date, 'purchase_cost' => $this->purchase_cost, 'status' => [ "id" => $this->asset_status->id, "name" => $this->asset_status->name, ], 'category' => [ "id" => $this->category->id, "name" => $this->category->name ], 'manufacturer' => [ "id" => $this->manufacturer->id, "name" => $this->manufacturer->name, ], 'supplier' => [ "id" => $this->supplier->id, "name" => $this->supplier->name, ], 'company' => [ "id" => $this->company->id, "name" => $this->company->name, ], 'branch' => [ "id" => $this->branch->id, "name" => $this->branch->name, ], 'currency' => $this->currency, "asset_image" => [ "thumbnail" => $this->asset_image?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->asset_name, 0, 2)), "url" => $this->asset_image?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->asset_name, 0, 2)), ], 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]; } } Http/Resources/Admin/SupplierDropDownResource.php 0000644 00000000456 15021222772 0016173 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class SupplierDropDownResource extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'name' => $this->contact_name, ]; } } Http/Resources/Admin/CompanyShowResource.php 0000644 00000002221 15021222772 0015152 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class CompanyShowResource extends JsonResource { public function toArray($request) { $branches = []; foreach ($this->branches as $branch) { $branches[] = [ "id" => $branch->id, "name" => $branch->name, "email" => $branch->email, "contact_number" => $branch->contact_number, "address" => $branch->address, ]; } return [ "id" => $this->id, "name" => $this->name, "contact_number" => $this->contact_number, "logo" => [ "thumbnail" => $this->logo?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), "url" => $this->logo?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), ], "branches" => $branches, "created_at" => $this->created_at, "updated_at" => $this->updated_at, ]; } } Http/Resources/Admin/ManufacturerResource.php 0000644 00000001752 15021222772 0015347 0 ustar 00 <?php namespace App\Http\Resources\Admin; use Illuminate\Http\Resources\Json\JsonResource; class ManufacturerResource extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'name' => $this->name, 'support_url' => $this->support_url, 'support_contact_number' => $this->support_contact_number, 'support_email' => $this->support_email, 'warranty_lookup_url' => $this->warranty_lookup_url, 'status' => $this->status, "logo" => [ "thumbnail" => $this->logo?->thumbnail ?? "https://placehold.co/100x100/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), "url" => $this->logo?->url ?? "https://placehold.co/200x200/EEE/31343C?font-Lato&text=" . strtoupper(substr($this->name, 0, 2)), ], 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]; } } Notifications/ForgotPasswordNotification.php 0000644 00000002522 15021222772 0015421 0 ustar 00 <?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; class ForgotPasswordNotification extends Notification implements ShouldQueue { use Queueable; protected $resetCode; /** * Create a new notification instance. * * @return void */ public function __construct($resetCode) { $this->resetCode = $resetCode; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return ['mail']; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable) { return (new MailMessage)->view('emails.forgot-passwod', ['email' => $notifiable->email, 'resetCode' => $this->resetCode])->subject(env("APP_NAME") . " - Password Reset Code."); } /** * Get the array representation of the notification. * * @param mixed $notifiable * @return array */ public function toArray($notifiable) { return [ // ]; } } Notifications/WelcomeNotification.php 0000644 00000002317 15021222772 0014033 0 ustar 00 <?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; class WelcomeNotification extends Notification implements ShouldQueue { use Queueable; /** * Create a new notification instance. * * @return void */ public function __construct() { // } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return ['mail']; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable) { return (new MailMessage) ->view('emails.welcome') ->subject("Welcome to " . env("APP_NAME")); } /** * Get the array representation of the notification. * * @param mixed $notifiable * @return array */ public function toArray($notifiable) { return [ // ]; } } Notifications/OrganizationRegisterNotification.php 0000644 00000002152 15021222772 0016606 0 ustar 00 <?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; class OrganizationRegisterNotification extends Notification implements ShouldQueue { use Queueable; /** * Create a new notification instance. */ public function __construct() { // } /** * Get the notification's delivery channels. * * @return array<int, string> */ public function via(object $notifiable): array { return ['mail']; } /** * Get the mail representation of the notification. */ public function toMail(object $notifiable): MailMessage { return (new MailMessage)->view('emails.register', ['email' => $notifiable->email])->subject("Welcome to " . env("APP_NAME")); } /** * Get the array representation of the notification. * * @return array<string, mixed> */ public function toArray(object $notifiable): array { return [ // ]; } } Providers/BroadcastServiceProvider.php 0000644 00000000547 15021222772 0014176 0 ustar 00 <?php namespace App\Providers; use Illuminate\Support\Facades\Broadcast; use Illuminate\Support\ServiceProvider; class BroadcastServiceProvider extends ServiceProvider { /** * Bootstrap any application services. */ public function boot(): void { Broadcast::routes(); require base_path('routes/channels.php'); } } Providers/AppServiceProvider.php 0000644 00000000551 15021222772 0013007 0 ustar 00 <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Register any application services. */ public function register(): void { // } /** * Bootstrap any application services. */ public function boot(): void { // } } Providers/RouteServiceProvider.php 0000644 00000003143 15021222772 0013365 0 ustar 00 <?php namespace App\Providers; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Illuminate\Http\Request; use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\Facades\Route; class RouteServiceProvider extends ServiceProvider { /** * The path to the "home" route for your application. * * This is used by Laravel authentication to redirect users after login. * * @var string */ public const HOME = '/home'; /** * The controller namespace for the application. * * When present, controller route declarations will automatically be prefixed with this namespace. * * @var string|null */ protected $namespace = 'App\\Http\\Controllers'; /** * Define your route model bindings, pattern filters, etc. */ public function boot(): void { $this->configureRateLimiting(); $this->routes(function () { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); }); } /** * Configure the rate limiters for the application. */ protected function configureRateLimiting(): void { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); }); } } Providers/EventServiceProvider.php 0000644 00000001564 15021222772 0013355 0 ustar 00 <?php namespace App\Providers; use Illuminate\Auth\Events\Registered; use Illuminate\Auth\Listeners\SendEmailVerificationNotification; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use Illuminate\Support\Facades\Event; class EventServiceProvider extends ServiceProvider { /** * The event to listener mappings for the application. * * @var array<class-string, array<int, class-string>> */ protected $listen = [ Registered::class => [ SendEmailVerificationNotification::class, ], ]; /** * Register any events for your application. */ public function boot(): void { // } /** * Determine if events and listeners should be automatically discovered. */ public function shouldDiscoverEvents(): bool { return false; } } Providers/AuthServiceProvider.php 0000644 00000001131 15021222772 0013163 0 ustar 00 <?php namespace App\Providers; use Illuminate\Support\Facades\Gate; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; class AuthServiceProvider extends ServiceProvider { /** * The model to policy mappings for the application. * * @var array<class-string, class-string> */ protected $policies = [ // 'App\Models\Model' => 'App\Policies\ModelPolicy', ]; /** * Register any authentication / authorization services. */ public function boot(): void { $this->registerPolicies(); // } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0.32 |
proxy
|
phpinfo
|
Настройка