Файловый менеджер - Редактировать - /home/c7lekhnath/silverray.com.au/Modules/Language/database/seeders/68334/Career.zip
Назад
PK 2��Z lang/.gitkeepnu �[��� PK 2��Z\nE�� � module.jsonnu �[��� { "name": "Career", "alias": "career", "description": "", "keywords": [], "priority": 0, "providers": [ "Modules\\Career\\app\\Providers\\CareerServiceProvider" ], "files": [] } PK 2��Z tests/Unit/.gitkeepnu �[��� PK 2��Z tests/Feature/.gitkeepnu �[��� PK 2��Z�0��� � vite.config.jsnu �[��� import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ build: { outDir: '../../public/build-career', emptyOutDir: true, manifest: true, }, plugins: [ laravel({ publicDirectory: '../../public', buildDirectory: 'build-career', input: [ __dirname + '/resources/assets/sass/app.scss', __dirname + '/resources/assets/js/app.js' ], refresh: true, }), ], }); //export const paths = [ // 'Modules/$STUDLY_NAME$/resources/assets/sass/app.scss', // 'Modules/$STUDLY_NAME$/resources/assets/js/app.js', //];PK 2��Z routes/.gitkeepnu �[��� PK 2��Z��0�@ @ routes/error_lognu �[��� [12-May-2025 06:03:03 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Support\Facades\Route" not found in /home/lekhnath/silverray.com.au/Modules/Career/routes/api.php:17 Stack trace: #0 {main} thrown in /home/lekhnath/silverray.com.au/Modules/Career/routes/api.php on line 17 [12-May-2025 06:49:39 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Support\Facades\Route" not found in /home/lekhnath/silverray.com.au/Modules/Career/routes/web.php:18 Stack trace: #0 {main} thrown in /home/lekhnath/silverray.com.au/Modules/Career/routes/web.php on line 18 PK 2��Z8��/� � routes/web.phpnu �[��� <?php use Illuminate\Support\Facades\Route; use Modules\Career\app\Http\Controllers\CareerController; use Modules\Career\app\Http\Controllers\CareerRequestController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::middleware(['auth:admin', 'translation']) ->name('admin.') ->prefix('admin') ->group( function () { Route::resource('career', CareerController::class)->names('career'); Route::put('/career/status-update/{id}', [CareerController::class, 'statusUpdate'])->name('career.status-update'); Route::get('career-request/{id}', [CareerRequestController::class, 'careerRequest'])->name('career-request'); Route::get('show-career-request/{id}', [CareerRequestController::class, 'showCareerRequest'])->name('show-career-request'); } ); PK 2��Z� � � routes/api.phpnu �[��� <?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | API Routes |-------------------------------------------------------------------------- | | Here is where you can register API routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | is assigned the "api" middleware group. Enjoy building your API! | */ Route::middleware(['auth:sanctum'])->prefix('v1')->name('api.')->group(function () { Route::get('career', fn (Request $request) => $request->user())->name('career'); }); PK 2��Z�QE÷ � composer.jsonnu �[��� { "name": "nwidart/career", "description": "", "authors": [ { "name": "Nicolas Widart", "email": "n.widart@gmail.com" } ], "extra": { "laravel": { "providers": [], "aliases": { } } }, "autoload": { "psr-4": { "Modules\\Career\\": "", "Modules\\Career\\App\\": "app/", "Modules\\Career\\Database\\Factories\\": "database/factories/", "Modules\\Career\\Database\\Seeders\\": "database/seeders/" } }, "autoload-dev": { "psr-4": { "Modules\\Career\\Tests\\": "tests/" } } } PK 2��Z�$z+ + config/config.phpnu �[��� <?php return [ 'name' => 'Career', ]; PK 2��Z config/.gitkeepnu �[��� PK 2��Z��8� package.jsonnu �[��� { "private": true, "type": "module", "scripts": { "dev": "vite", "build": "vite build" }, "devDependencies": { "axios": "^1.1.2", "laravel-vite-plugin": "^0.7.5", "sass": "^1.69.5", "postcss": "^8.3.7", "vite": "^4.0.0" } } PK 2��Z app/Http/Controllers/.gitkeepnu �[��� PK 2��ZJ֍R R ) app/Http/Controllers/CareerController.phpnu �[��� <?php namespace Modules\Career\app\Http\Controllers; use App\Enums\RedirectType; use Illuminate\Http\Request; use Illuminate\Http\Response; use App\Traits\RedirectHelperTrait; use App\Http\Controllers\Controller; use Illuminate\Pagination\Paginator; use Illuminate\Support\Facades\File; use Illuminate\Http\RedirectResponse; use Modules\Career\app\Models\Career; use Modules\Language\app\Models\Language; use Modules\Career\app\Http\Requests\CareerRequest; use Modules\Career\app\Models\CareerRequest as CareerRequestTable; use Modules\Language\app\Enums\TranslationModels; use Modules\Language\app\Traits\GenerateTranslationTrait; class CareerController extends Controller { use GenerateTranslationTrait, RedirectHelperTrait; public function index(Request $request) { checkAdminHasPermissionAndThrowException('career.view'); Paginator::useBootstrap(); $query = Career::query(); $query->when($request->filled('keyword'), function ($qa) use ($request) { $qa->whereHas('translations', function ($q) use ($request) { $q->where('title', 'like', '%'.$request->keyword.'%'); }); }); $query->when($request->filled('status'), function ($q) use ($request) { $q->where('status', $request->status); }); $orderBy = $request->filled( 'order_by' ) && $request->order_by == 1 ? 'asc' : 'desc'; if ($request->filled('par-page')) { $careers = $request->get('par-page') == 'all' ? $query->orderBy( 'id', $orderBy )->get() : $query->orderBy( 'id', $orderBy )->paginate($request->get('par-page'))->withQueryString(); } else { $careers = $query->orderBy( 'id', $orderBy )->paginate()->withQueryString(); } return view('career::index', compact('careers')); } public function create() { checkAdminHasPermissionAndThrowException('career.create'); return view('career::create'); } public function store(CareerRequest $request) { checkAdminHasPermissionAndThrowException('career.store'); $career = Career::create($request->validated()); if ($career && $request->hasFile('image')) { $file_name = file_upload($request->image, 'uploads/custom-images/', $oldPath = null); $career->image = $file_name; $career->save(); } $languages = allLanguages(); $this->generateTranslations( TranslationModels::Career, $career, 'career_id', $request, ); return $this->redirectWithMessage(RedirectType::CREATE->value, 'admin.career.edit', ['career' => $career->id, 'code' => $languages->first()->code]); } public function show($id) { checkAdminHasPermissionAndThrowException('career.view'); return view('career::show'); } public function edit($id) { checkAdminHasPermissionAndThrowException('career.edit'); $code = request('code') ?? getSessionLanguage(); abort_unless(Language::where('code', $code)->exists(), 404); $career = career::with('translation')->findOrFail($id); $languages = allLanguages(); return view('career::edit', compact('career', 'code', 'languages')); } public function update(CareerRequest $request, $id) { checkAdminHasPermissionAndThrowException('career.update'); $career = career::findOrFail($id); $validatedData = $request->validated(); if ($career && $request->hasFile('image')) { $file_name = file_upload($request->image, 'uploads/custom-images/', $oldFile = $career->image); $validatedData['image'] = $file_name; } $career->update($validatedData); $this->updateTranslations( $career, $request, $validatedData, ); return $this->redirectWithMessage(RedirectType::UPDATE->value, 'admin.career.edit', ['career' => $career->id, 'code' => $request->code]); } public function destroy($id) { checkAdminHasPermissionAndThrowException('career.delete'); $career = Career::findOrFail($id); if ($career->image) { if (File::exists(public_path($career->image))) { unlink(public_path($career->image)); } } $career->translations()->each(function ($translation) { $translation->delete(); }); $career_requests = CareerRequestTable::where('career_id', $career->id)->get(); foreach($career_requests as $career_request){ if ($career_request->cv) { if (File::exists(public_path($career_request->cv))) { unlink(public_path($career_request->cv)); } } $career_request->delete(); } $career->delete(); return $this->redirectWithMessage(RedirectType::DELETE->value, 'admin.career.index'); } public function statusUpdate($id) { checkAdminHasPermissionAndThrowException('career.update'); $career = Career::find($id); $status = $career->status == 1 ? 0 : 1; $career->update(['status' => $status]); $notification = __('Updated Successfully'); return response()->json([ 'success' => true, 'message' => $notification, ]); } } PK 2��Z�b�_� � 0 app/Http/Controllers/CareerRequestController.phpnu �[��� <?php namespace Modules\Career\app\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; use App\Http\Controllers\Controller; use Illuminate\Pagination\Paginator; use Illuminate\Http\RedirectResponse; use Modules\Career\app\Models\Career; use Modules\Career\app\Models\CareerRequest; class CareerRequestController extends Controller { public function careerRequest(Request $request, $id){ checkAdminHasPermissionAndThrowException('career.request.view'); Paginator::useBootstrap(); $query = CareerRequest::query()->where('career_id', $id); $query->when($request->filled('keyword'), function ($qa) use ($request) { $keyword = '%' . $request->keyword . '%'; $qa->where(function($subQuery) use ($keyword) { $subQuery->where('name', 'like', $keyword) ->orWhere('email', 'like', $keyword) ->orWhere('phone', 'like', $keyword) ->orWhere('subject', 'like', $keyword); }); }); $orderBy = $request->filled( 'order_by' ) && $request->order_by == 1 ? 'asc' : 'desc'; if ($request->filled('par-page')) { $careerRequests = $request->get('par-page') == 'all' ? $query->orderBy( 'id', $orderBy )->get() : $query->orderBy( 'id', $orderBy )->paginate($request->get('par-page'))->withQueryString(); } else { $careerRequests = $query->orderBy( 'id', $orderBy )->paginate()->withQueryString(); } $career = Career::find($id); return view('career::career_request')->with([ 'careerRequests' => $careerRequests, 'career' => $career, ]); } public function showCareerRequest($id){ checkAdminHasPermissionAndThrowException('career.request.view'); $careerRequest = CareerRequest::find($id); return view('career::show_career_request')->with([ 'careerRequest' => $careerRequest, ]); } } PK 2��Z��Zy� � # app/Http/Requests/CareerRequest.phpnu �[��� <?php namespace Modules\Career\app\Http\Requests; use Illuminate\Support\Facades\Auth; use Illuminate\Foundation\Http\FormRequest; class CareerRequest extends FormRequest { public function authorize(): bool { return Auth::guard('admin')->check() ? true : false; } public function rules(): array { $languages = allLanguages(); $rules = [ 'title' => 'required|string|max:255', 'address' => 'required', 'job_nature' => 'required', 'office_time' => 'required', 'description' => 'required', ]; if ($this->isMethod('put')) { $rules['slug'] = $this->code == $languages->first()->code ? 'required|unique:careers,slug,'.$this->career : ''; $rules['image'] = 'image|max:2048'; $rules['salary_range'] = $this->code == $languages->first()->code ? 'required':''; $rules['deadline'] = $this->code == $languages->first()->code ? 'required':''; $rules['status'] = $this->code == $languages->first()->code ? 'required':''; } if ($this->isMethod('post')) { $rules['slug'] = 'required|unique:careers,slug'; $rules['image'] = 'required|image|max:2048'; $rules['salary_range'] = 'required'; $rules['deadline'] = 'required'; $rules['status'] = 'required'; } return $rules; } public function messages(): array { return [ 'title.required' => __('Title is required.'), 'title.max' => __('Title must be string with a maximum length of 255 characters.'), 'slug.required' => __('Slug is required.'), 'slug.unique' => __('Slug already exist.'), 'image.required' => trans('Image is required'), 'image.image' => trans('Image must be a valid image file'), 'image.max' => trans('Image can only be up to 2 megabytes in size'), 'address.required' => __('Address is required.'), 'job_nature.required' => __('Job nature is required.'), 'office_time.required' => __('Office time is required.'), 'description.required' => __('Description is required.'), 'salary_range.required' => __('Salary range is required.'), 'deadline.required' => __('Deadline is required.'), 'status.required' => __('Status is required.'), ]; } } PK 2��Z app/Http/Requests/.gitkeepnu �[��� PK 2��Zi��hR R app/Http/Requests/error_lognu �[��� [16-May-2025 14:19:30 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Http/Requests/CareerRequest.php:8 Stack trace: #0 {main} thrown in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Http/Requests/CareerRequest.php on line 8 PK 2��Z app/Http/Middleware/.gitkeepnu �[��� PK 2��Z�@4� � app/Models/CareerRequest.phpnu �[��� <?php namespace Modules\Career\app\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Factories\HasFactory; use Modules\Career\Database\factories\CareerRequestFactory; class CareerRequest extends Model { use HasFactory; /** * The attributes that are mass assignable. */ protected $fillable = []; protected static function newFactory(): CareerRequestFactory { //return CareerRequestFactory::new(); } } PK 2��Z app/Models/.gitkeepnu �[��� PK 2��Z8��u, , app/Models/CareerTranslation.phpnu �[��� <?php namespace Modules\Career\app\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Factories\HasFactory; use Modules\Career\Database\factories\CareerTranslationFactory; class CareerTranslation extends Model { use HasFactory; /** * The attributes that are mass assignable. */ protected $fillable = ['title','address','job_nature','office_time','description']; protected static function newFactory(): CareerTranslationFactory { //return CareerTranslationFactory::new(); } } PK 2��Z\�{_� � app/Models/Career.phpnu �[��� <?php namespace Modules\Career\app\Models; use Illuminate\Database\Eloquent\Model; use Modules\Career\app\Models\CareerTranslation; use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\Relations\HasMany; use Modules\Career\Database\factories\CareerFactory; use Illuminate\Database\Eloquent\Factories\HasFactory; class Career extends Model { use HasFactory; /** * The attributes that are mass assignable. */ protected $fillable = ['slug','salary_range','image','deadline','status']; protected static function newFactory(): CareerFactory { //return CareerFactory::new(); } public function getTitleAttribute(): ?string { return $this->translation->title; } public function translation(): ?HasOne { return $this->hasOne(CareerTranslation::class, 'career_id')->where('lang_code', getSessionLanguage()); } public function getTranslation($code): ?CareerTranslation { return $this->hasOne(CareerTranslation::class, 'career_id')->where('lang_code', $code)->first(); } public function translations(): ?HasMany { return $this->hasMany(CareerTranslation::class, 'career_id'); } protected $appends = ['totalApplication']; public function getTotalApplicationAttribute() { return $this->totalRequest()->count(); } public function totalRequest(){ return $this->hasMany(CareerRequest::class); } } PK 2��Z����| | app/Models/error_lognu �[��� [14-May-2025 17:22:03 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Database\Eloquent\Model" not found in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Models/Career.php:12 Stack trace: #0 {main} thrown in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Models/Career.php on line 12 [14-May-2025 17:31:36 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Database\Eloquent\Model" not found in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Models/CareerTranslation.php:9 Stack trace: #0 {main} thrown in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Models/CareerTranslation.php on line 9 PK 2��Z0�?� � &