Файловый менеджер - Редактировать - /home/c7lekhnath/silverray.com.au/Modules/Language/database/seeders/68334/Career.tar
Назад
lang/.gitkeep 0000644 00000000000 15012231144 0007075 0 ustar 00 module.json 0000644 00000000332 15012231144 0006713 0 ustar 00 { "name": "Career", "alias": "career", "description": "", "keywords": [], "priority": 0, "providers": [ "Modules\\Career\\app\\Providers\\CareerServiceProvider" ], "files": [] } tests/Unit/.gitkeep 0000644 00000000000 15012231144 0010235 0 ustar 00 tests/Feature/.gitkeep 0000644 00000000000 15012231144 0010711 0 ustar 00 vite.config.js 0000644 00000001302 15012231144 0007302 0 ustar 00 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', //]; routes/.gitkeep 0000644 00000000000 15012231144 0007475 0 ustar 00 routes/error_log 0000644 00000001100 15012231144 0007763 0 ustar 00 [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 routes/web.php 0000644 00000002213 15012231144 0007342 0 ustar 00 <?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'); } ); routes/api.php 0000644 00000001231 15012231144 0007335 0 ustar 00 <?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'); }); composer.json 0000644 00000001267 15012231144 0007265 0 ustar 00 { "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/" } } } config/config.php 0000644 00000000053 15012231144 0007756 0 ustar 00 <?php return [ 'name' => 'Career', ]; config/.gitkeep 0000644 00000000000 15012231144 0007421 0 ustar 00 package.json 0000644 00000000410 15012231144 0007016 0 ustar 00 { "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" } } app/Http/Controllers/.gitkeep 0000644 00000000000 15012231144 0012161 0 ustar 00 app/Http/Controllers/CareerController.php 0000644 00000012522 15012231144 0014522 0 ustar 00 <?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, ]); } } app/Http/Controllers/CareerRequestController.php 0000644 00000003725 15012231144 0016100 0 ustar 00 <?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, ]); } } app/Http/Requests/CareerRequest.php 0000644 00000004643 15012231144 0013341 0 ustar 00 <?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.'), ]; } } app/Http/Requests/.gitkeep 0000644 00000000000 15012231144 0011466 0 ustar 00 app/Http/Requests/error_log 0000644 00000000522 15012231144 0011763 0 ustar 00 [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 app/Http/Middleware/.gitkeep 0000644 00000000000 15012231144 0011730 0 ustar 00 app/Models/CareerRequest.php 0000644 00000000742 15012231144 0012026 0 ustar 00 <?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(); } } app/Models/.gitkeep 0000644 00000000000 15012231144 0010157 0 ustar 00 app/Models/CareerTranslation.php 0000644 00000001054 15012231144 0012671 0 ustar 00 <?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(); } } app/Models/Career.php 0000644 00000002740 15012231144 0010455 0 ustar 00 <?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); } } app/Models/error_log 0000644 00000001174 15012231144 0010460 0 ustar 00 [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 app/Providers/RouteServiceProvider.php 0000644 00000002657 15012231144 0014147 0 ustar 00 <?php namespace Modules\Career\app\Providers; use Illuminate\Support\Facades\Route; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; class RouteServiceProvider extends ServiceProvider { /** * The module namespace to assume when generating URLs to actions. */ protected string $moduleNamespace = 'Modules\Career\app\Http\Controllers'; /** * Called before routes are registered. * * Register any model bindings or pattern based filters. */ public function boot(): void { parent::boot(); } /** * Define the routes for the application. */ public function map(): void { $this->mapApiRoutes(); $this->mapWebRoutes(); } /** * Define the "web" routes for the application. * * These routes all receive session state, CSRF protection, etc. */ protected function mapWebRoutes(): void { Route::middleware('web') ->namespace($this->moduleNamespace) ->group(module_path('Career', '/routes/web.php')); } /** * Define the "api" routes for the application. * * These routes are typically stateless. */ protected function mapApiRoutes(): void { Route::prefix('api') ->middleware('api') ->namespace($this->moduleNamespace) ->group(module_path('Career', '/routes/api.php')); } } app/Providers/.gitkeep 0000644 00000000000 15012231144 0010711 0 ustar 00 app/Providers/CareerServiceProvider.php 0000644 00000006436 15012231144 0014251 0 ustar 00 <?php namespace Modules\Career\app\Providers; use Illuminate\Support\Facades\Blade; use Illuminate\Support\ServiceProvider; class CareerServiceProvider extends ServiceProvider { protected string $moduleName = 'Career'; protected string $moduleNameLower = 'career'; /** * Boot the application events. */ public function boot(): void { $this->registerCommands(); $this->registerCommandSchedules(); $this->registerTranslations(); $this->registerConfig(); $this->registerViews(); $this->loadMigrationsFrom(module_path($this->moduleName, 'database/migrations')); } /** * Register the service provider. */ public function register(): void { $this->app->register(RouteServiceProvider::class); } /** * Register commands in the format of Command::class */ protected function registerCommands(): void { // $this->commands([]); } /** * Register command Schedules. */ protected function registerCommandSchedules(): void { // $this->app->booted(function () { // $schedule = $this->app->make(Schedule::class); // $schedule->command('inspire')->hourly(); // }); } /** * Register translations. */ public function registerTranslations(): void { $langPath = resource_path('lang/modules/'.$this->moduleNameLower); if (is_dir($langPath)) { $this->loadTranslationsFrom($langPath, $this->moduleNameLower); $this->loadJsonTranslationsFrom($langPath); } else { $this->loadTranslationsFrom(module_path($this->moduleName, 'lang'), $this->moduleNameLower); $this->loadJsonTranslationsFrom(module_path($this->moduleName, 'lang')); } } /** * Register config. */ protected function registerConfig(): void { $this->publishes([module_path($this->moduleName, 'config/config.php') => config_path($this->moduleNameLower.'.php')], 'config'); $this->mergeConfigFrom(module_path($this->moduleName, 'config/config.php'), $this->moduleNameLower); } /** * Register views. */ public function registerViews(): void { $viewPath = resource_path('views/modules/'.$this->moduleNameLower); $sourcePath = module_path($this->moduleName, 'resources/views'); $this->publishes([$sourcePath => $viewPath], ['views', $this->moduleNameLower.'-module-views']); $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower); $componentNamespace = str_replace('/', '\\', config('modules.namespace').'\\'.$this->moduleName.'\\'.config('modules.paths.generator.component-class.path')); Blade::componentNamespace($componentNamespace, $this->moduleNameLower); } /** * Get the services provided by the provider. */ public function provides(): array { return []; } private function getPublishableViewPaths(): array { $paths = []; foreach (config('view.paths') as $path) { if (is_dir($path.'/modules/'.$this->moduleNameLower)) { $paths[] = $path.'/modules/'.$this->moduleNameLower; } } return $paths; } } app/Providers/error_log 0000644 00000001304 15012231144 0011205 0 ustar 00 [14-May-2025 17:18:42 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Support\Providers\RouteServiceProvider" not found in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Providers/RouteServiceProvider.php:8 Stack trace: #0 {main} thrown in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Providers/RouteServiceProvider.php on line 8 [14-May-2025 18:16:03 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Support\ServiceProvider" not found in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Providers/CareerServiceProvider.php:8 Stack trace: #0 {main} thrown in /home/c7lekhnath/silverray.com.au/Modules/Career/app/Providers/CareerServiceProvider.php on line 8 database/factories/.gitkeep 0000644 00000000000 15012231144 0011677 0 ustar 00 database/migrations/.gitkeep 0000644 00000000000 15012231144 0012074 0 ustar 00 database/migrations/2024_08_29_094821_create_career_requests_table.php 0000644 00000001565 15012231144 0021202 0 ustar 00 <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('career_requests', function (Blueprint $table) { $table->id(); $table->integer('career_id'); $table->string('email')->nullable(); $table->string('name')->nullable(); $table->string('phone')->nullable(); $table->text('description')->nullable(); $table->string('cv')->nullable(); $table->string('subject')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('career_requests'); } }; database/migrations/2024_08_29_093943_create_career_translations_table.php 0000644 00000001604 15012231144 0022046 0 ustar 00 <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('career_translations', function (Blueprint $table) { $table->id(); $table->integer('career_id'); $table->string('lang_code'); $table->string('title')->nullable(); $table->string('address')->nullable(); $table->string('job_nature')->nullable(); $table->string('office_time')->nullable(); $table->text('description')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('career_translations'); } }; database/migrations/2024_08_29_093756_create_careers_table.php 0000644 00000001423 15012231144 0017431 0 ustar 00 <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('careers', function (Blueprint $table) { $table->id(); $table->string('slug')->nullable(); $table->string('salary_range')->nullable(); $table->string('image')->nullable(); $table->string('deadline')->nullable(); $table->boolean('status')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('careers'); } }; database/migrations/error_log 0000644 00000002306 15012231144 0012373 0 ustar 00 [16-May-2025 09:56:21 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Database\Migrations\Migration" not found in /home/c7lekhnath/silverray.com.au/Modules/Career/database/migrations/2024_08_29_094821_create_career_requests_table.php:7 Stack trace: #0 {main} thrown in /home/c7lekhnath/silverray.com.au/Modules/Career/database/migrations/2024_08_29_094821_create_career_requests_table.php on line 7 [16-May-2025 10:21:43 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Database\Migrations\Migration" not found in /home/c7lekhnath/silverray.com.au/Modules/Career/database/migrations/2024_08_29_093756_create_careers_table.php:7 Stack trace: #0 {main} thrown in /home/c7lekhnath/silverray.com.au/Modules/Career/database/migrations/2024_08_29_093756_create_careers_table.php on line 7 [16-May-2025 10:25:04 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Database\Migrations\Migration" not found in /home/c7lekhnath/silverray.com.au/Modules/Career/database/migrations/2024_08_29_093943_create_career_translations_table.php:7 Stack trace: #0 {main} thrown in /home/c7lekhnath/silverray.com.au/Modules/Career/database/migrations/2024_08_29_093943_create_career_translations_table.php on line 7 database/seeders/CareerDatabaseSeeder.php 0000644 00000000371 15012231144 0014423 0 ustar 00 <?php namespace Modules\Career\database\seeders; use Illuminate\Database\Seeder; class CareerDatabaseSeeder extends Seeder { /** * Run the database seeds. */ public function run(): void { // $this->call([]); } } database/seeders/.gitkeep 0000644 00000000000 15012231144 0011352 0 ustar 00 resources/assets/.gitkeep 0000644 00000000000 15012231144 0011470 0 ustar 00 resources/assets/js/app.js 0000644 00000000000 15012231144 0011571 0 ustar 00 resources/assets/sass/app.scss 0000644 00000000000 15012231144 0012465 0 ustar 00 resources/views/sidebar.blade.php 0000644 00000001304 15012231144 0013072 0 ustar 00 @if (Module::isEnabled('Career') && Route::has('admin.career.index')) <li class="nav-item dropdown {{ isRoute(['admin.career.*', 'admin.career-request', 'admin.show-career-request'], 'active') }}"> <a href="javascript:void()" class="nav-link has-dropdown"><i class="fas fa-newspaper"></i><span>{{ __('Career') }}</span></a> <ul class="dropdown-menu"> <li class="{{ isRoute(['admin.career.*', 'admin.career-request', 'admin.show-career-request'], 'active') }}"> <a class="nav-link" href="{{ route('admin.career.index') }}"> {{ __('Job Offer') }} </a> </li> </ul> </li> @endif resources/views/edit.blade.php 0000644 00000042231 15012231144 0012412 0 ustar 00 @extends('admin.master_layout') @section('title') <title>{{ __('Edit Career') }}</title> @endsection @section('admin-content') <div class="main-content"> <section class="section"> <x-admin.breadcrumb title="{{ __('Edit Career') }}" :list="[ __('Dashboard') => route('admin.dashboard'), __('Career') => route('admin.career.index'), __('Edit Career') => '#', ]" /> <div class="section-body row"> <div class="col-12"> <div class="card"> <div class="card-header gap-3 justify-content-between align-items-center"> <h5 class="m-0">{{ __('Available Translations') }}</h5> @adminCan('career.translate') @if ($code !== $languages->first()->code) <x-admin.button onclick="translateAll()" id="translate-btn" :text="__('Translate')" /> @endif @endadminCan </div> <div class="card-body"> <div class="lang_list_top"> <ul class="lang_list"> @foreach ($languages as $language) <li><a id="{{ request('code') == $language->code ? 'selected-language' : '' }}" href="{{ route('admin.career.edit', ['career' => $career->id, 'code' => $language->code]) }}"><i class="fas {{ request('code') == $language->code ? 'fa-eye' : 'fa-edit' }}"></i>{{ $language->name }}</a></li> @endforeach </ul> </div> <div class="mt-2 alert alert-danger" role="alert"> @php $current_language = $languages->where('code', request()->get('code'))->first(); @endphp <p>{{ __('Your editing mode') }} : <b>{{ $current_language?->name }}</b> </p> </div> </div> </div> </div> </div> <div class="section-body"> <div class="mt-4 row"> <div class="col-12"> <div class="card"> <div class="card-header d-flex justify-content-between"> <h4>{{ __('Edit Career') }}</h4> <div> <a href="{{ route('admin.career.index') }}" class="btn btn-primary"><i class="fa fa-arrow-left"></i>{{ __('Back') }}</a> </div> </div> <div class="card-body"> <form action="{{ route('admin.career.update', ['career' => $career->id, 'code' => $code]) }}" method="post" enctype="multipart/form-data"> @csrf @method('PUT') <div class="row"> @if ($code == $languages->first()->code) <div class="col-md-8 offset-md-2"> <div class="form-group"> <label>{{ __('Image') }}</label> <div id="image-preview" class="image-preview" @if ($career->image ?? false) style="background-image: url({{ asset($career->image) }}); background-size: cover; background-position: center center;" @endif> <label for="image-upload" id="image-label">{{ __('Image') }}</label> <input type="file" name="image" id="image-upload"> </div> @error('image') <span class="text-danger">{{ $message }}</span> @enderror </div> </div> @endif <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input data-translate="true" id="title" name="title" label="{{ __('Title') }}" placeholder="{{ __('Enter Title') }}" value="{{ old('title', $career->getTranslation($code)->title) }}" placeholder="{{ __('Enter Title') }}" required="true"/> </div> </div> @if ($code == $languages->first()->code) <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="slug" name="slug" label="{{ __('Slug') }}" placeholder="{{ __('Enter Slug') }}" value="{{ old('slug', $career->slug) }}" required="true"/> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="salary_range" name="salary_range" label="{{ __('Salary Range') }}" placeholder="{{ __('Enter Salary Range') }}" value="{{ old('salary_range', $career->salary_range) }}" required="true"/> </div> </div> @endif <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="address" data-translate="true" name="address" label="{{ __('Job Location') }}" placeholder="{{ __('Enter Job Location') }}" value="{{ old('address', $career->getTranslation($code)->address) }}" required="true"/> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="job_nature" data-translate="true" name="job_nature" label="{{ __('Job Nature') }}" placeholder="{{ __('Enter Job Nature') }}" value="{{ old('job_nature', $career->getTranslation($code)->job_nature) }}" required="true"/> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="office_time" name="office_time" label="{{ __('Office Time') }}" data-translate="true" placeholder="{{ __('Enter Office Time') }}" value="{{ old('office_time', $career->getTranslation($code)->office_time) }}" required="true"/> </div> </div> @if ($code == $languages->first()->code) <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input class="datepicker" id="deadline" name="deadline" label="{{ __('Deadline') }}" placeholder="{{ __('Enter Deadlinee') }}" data-translate="true" value="{{ old('deadline', $career->deadline) }}" required="true"/> </div> </div> @endif <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-editor data-translate="true" id="description" name="description" label="{{ __('Description') }}" value="{!! old('description', $career->getTranslation($code)->description) !!}" required="true"/> </div> </div> @if ($code == $languages->first()->code) <div class="col-md-8 offset-md-2"> <div class="form-group"> <label> <input type="hidden" value="0" name="status" class="custom-switch-input"> <input {{ $career->status == 1 ? 'checked' : '' }} type="checkbox" value="1" name="status" class="custom-switch-input"> <span class="custom-switch-indicator"></span> <span class="custom-switch-description">{{ __('Status') }}</span> </label> </div> </div> @endif @adminCan('career.update') <div class="text-center offset-md-2 col-md-8"> <x-admin.update-button :text="__('Update')"> </x-admin.update-button> </div> @endadminCan </div> </form> </div> </div> </div> </div> </div> </section> </div> @endsection @if ($code == $languages->first()->code) @push('js') <script src="{{ asset('backend/js/jquery.uploadPreview.min.js') }}"></script> <script> $.uploadPreview({ input_field: "#image-upload", preview_box: "#image-preview", label_field: "#image-label", label_default: "{{ __('Choose Image') }}", label_selected: "{{ __('Change Image') }}", no_label: false, success_callback: null }); </script> <script> (function($) { "use strict"; $(document).ready(function() { $("#title").on("keyup", function(e) { $("#slug").val(convertToSlug($(this).val())); }) }); })(jQuery); function convertToSlug(Text) { return Text .toLowerCase() .replace(/[^\w ]+/g, '') .replace(/ +/g, '-'); } </script> @endpush @else @push('js') <script> var isTranslatingInputs = true; function translateOneByOne(inputs, index = 0) { if (index >= inputs.length) { if (isTranslatingInputs) { isTranslatingInputs = false; translateAllTextarea(); } $('#translate-btn').prop('disabled', false); $('#update-btn').prop('disabled', false); return; } var $input = $(inputs[index]); var inputValue = $input.val(); if (inputValue) { $.ajax({ url: "{{ route('admin.languages.update.single') }}", type: "POST", data: { lang: '{{ $code }}', text: inputValue, _token: '{{ csrf_token() }}' }, dataType: 'json', beforeSend: function() { $input.prop('disabled', true); iziToast.show({ timeout: false, close: true, theme: 'dark', icon: 'loader', iconUrl: 'https://hub.izmirnic.com/Files/Images/loading.gif', title: "{{ __('Translation Processing, please wait...') }}", position: 'center', }); }, success: function(response) { $input.val(response); if ($input.hasClass('summernote')) { console.log($input); var inputId = $input.attr('id'); tinymce.get(inputId).setContent(response); } $input.prop('disabled', false); iziToast.destroy(); toastr.success("{{ __('Translated Successfully!') }}"); translateOneByOne(inputs, index + 1); }, error: function(jqXHR, textStatus, errorThrown) { console.error(textStatus, errorThrown); iziToast.destroy(); toastr.error('Error', 'Error'); } }); } else { translateOneByOne(inputs, index + 1); } } function translateAll() { iziToast.question({ timeout: 20000, close: false, overlay: true, displayMode: 'once', id: 'question', zindex: 999, title: "{{ __('This will take a while!') }}", message: "{{ __('Are you sure?') }}", position: 'center', buttons: [ ["<button><b>{{ __('YES') }}</b></button>", function(instance, toast) { var isDemo = "{{ env('APP_MODE') ?? 'LIVE' }}"; if (isDemo == 'DEMO') { instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); toastr.error("{{ __('This Is Demo Version. You Can Not Change Anything') }}"); return; } $('#translate-btn').prop('disabled', true); $('#update-btn').prop('disabled', true); instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); var inputs = $('input[data-translate="true"]').toArray(); translateOneByOne(inputs); }, true], ["<button>{{ __('NO') }}</button>", function(instance, toast) { instance.hide({ transitionOut: 'fadeOut' }, toast, 'button'); }], ], onClosing: function(instance, toast, closedBy) {}, onClosed: function(instance, toast, closedBy) {} }); }; function translateAllTextarea() { var inputs = $('textarea[data-translate="true"]').toArray(); if (inputs.length === 0) { return; } translateOneByOne(inputs); } $(document).ready(function() { var selectedTranslation = $('#selected-language').text(); var btnText = "{{ __('Translate to ') }}" + selectedTranslation; $('#translate-btn').text(btnText); }); </script> @endpush @endif resources/views/layouts/master.blade.php 0000644 00000001737 15012231144 0014466 0 ustar 00 <!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="csrf-token" content="{{ csrf_token() }}"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Career Module - {{ config('app.name', 'Laravel') }}</title> <meta name="description" content="{{ $description ?? '' }}"> <meta name="keywords" content="{{ $keywords ?? '' }}"> <meta name="author" content="{{ $author ?? '' }}"> <!-- Fonts --> <link rel="preconnect" href="https://fonts.bunny.net"> <link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" /> {{-- Vite CSS --}} {{-- {{ module_vite('build-career', 'resources/assets/sass/app.scss') }} --}} </head> <body> @yield('content') {{-- Vite JS --}} {{-- {{ module_vite('build-career', 'resources/assets/js/app.js') }} --}} </body> resources/views/.gitkeep 0000644 00000000000 15012231144 0011323 0 ustar 00 resources/views/create.blade.php 0000644 00000020650 15012231144 0012731 0 ustar 00 @extends('admin.master_layout') @section('title') <title>{{ __('Create Career') }}</title> @endsection @section('admin-content') <div class="main-content"> <section class="section"> <x-admin.breadcrumb title="{{ __('Create Career') }}" :list="[ __('Dashboard') => route('admin.dashboard'), __('Career') => route('admin.career.index'), __('Create Career') => '#', ]" /> <div class="section-body"> <div class="mt-4 row"> <div class="col-12"> <div class="card"> <div class="card-header d-flex justify-content-between"> <x-admin.form-title :text="__('Create Career')" /> <div> <x-admin.back-button :href="route('admin.career.index')" /> </div> </div> <div class="card-body"> <form action="{{ route('admin.career.store') }}" method="post" enctype="multipart/form-data"> @csrf <div class="row"> <div class="col-md-8 offset-md-2"> <div class="form-group"> <label>{{ __('Image') }}<span class="text-danger">*</span></label> <div id="image-preview" class="image-preview"> <label for="image-upload" id="image-label">{{ __('Image') }}</label> <input type="file" name="image" id="image-upload"> </div> @error('image') <span class="text-danger">{{ $message }}</span> @enderror </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="title" name="title" label="{{ __('Title') }}" placeholder="{{ __('Enter Title') }}" value="{{ old('title') }}" required="true"/> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="slug" name="slug" label="{{ __('Slug') }}" placeholder="{{ __('Enter Slug') }}" value="{{ old('slug') }}" required="true" /> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="salary_range" name="salary_range" label="{{ __('Salary Range') }}" placeholder="{{ __('Enter Salary Range') }}" value="{{ old('salary_range') }}" required="true"/> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="address" name="address" label="{{ __('Job Location') }}" placeholder="{{ __('Enter Job Location') }}" value="{{ old('address') }}" required="true"/> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="job_nature" name="job_nature" label="{{ __('Job Nature') }}" placeholder="{{ __('Enter Job Nature') }}" value="{{ old('job_nature') }}" required="true"/> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input id="office_time" name="office_time" label="{{ __('Office Time') }}" placeholder="{{ __('Enter Office Time') }}" value="{{ old('office_time') }}" required="true"/> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-input class="datepicker" id="deadline" name="deadline" label="{{ __('Deadline') }}" placeholder="{{ __('Enter Deadlinee') }}" value="{{ old('deadline') }}" required="true"/> </div> </div> <div class="col-md-8 offset-md-2"> <div class="form-group"> <x-admin.form-editor id="description" name="description" label="{{ __('Description') }}" value="{!! old('description') !!}" required="true"/> </div> </div> <div class="form-group col-md-8 offset-md-2"> <div class="form-group"> <label> <input type="hidden" value="0" name="status" class="custom-switch-input"> <input type="checkbox" value="1" name="status" class="custom-switch-input" {{ old('status') == 1 ? 'checked' : '' }}> <span class="custom-switch-indicator"></span> <span class="custom-switch-description">{{ __('Status') }}</span> </label> </div> </div> @adminCan('career.store') <div class="text-center offset-md-2 col-md-8"> <x-admin.save-button :text="__('Save')"> </x-admin.save-button> </div> @endadminCan </div> </form> </div> </div> </div> </div> </div> </section> </div> @endsection @push('js') <script src="{{ asset('backend/js/jquery.uploadPreview.min.js') }}"></script> <script> $.uploadPreview({ input_field: "#image-upload", preview_box: "#image-preview", label_field: "#image-label", label_default: "{{ __('Choose Image') }}", label_selected: "{{ __('Change Image') }}", no_label: false, success_callback: null }); </script> <script> (function($) { "use strict"; $(document).ready(function() { $("#title").on("keyup", function(e) { $("#slug").val(convertToSlug($(this).val())); }) }); })(jQuery); function convertToSlug(Text) { return Text .toLowerCase() .replace(/[^\w ]+/g, '') .replace(/ +/g, '-'); } </script> @endpush resources/views/career_request.blade.php 0000644 00000020734 15012231144 0014502 0 ustar 00 @extends('admin.master_layout') @section('title') <title>{{ $career->title }}</title> @endsection @section('admin-content') <div class="main-content"> <section class="section"> <x-admin.breadcrumb title="{{ __('Career Request') }}" :list="[ __('Dashboard') => route('admin.dashboard'), __('Career Request') => '#', ]" /> <div class="section-body"> <div class="mt-4 row"> {{-- Search filter --}} <div class="col-12"> <div class="card"> <div class="card-body"> <form action="{{ route('admin.career-request', $career->id) }}" method="GET" onchange="$(this).trigger('submit')" class="card-body"> <div class="row"> <div class="col-md-4 form-group mb-3 mb-md-0"> <x-admin.form-input name="keyword" placeholder="{{ __('Search') }}" value="{{ request()->get('keyword') }}" /> </div> <div class="col-md-4 form-group mb-3 mb-md-0"> <x-admin.form-select name="order_by" id="order_by" class="form-select"> <x-admin.select-option value="" text="{{ __('Order By') }}" /> <x-admin.select-option :selected="request('order_by') == '1'" value="1" text="{{ __('ASC') }}" /> <x-admin.select-option :selected="request('order_by') == '0'" value="0" text="{{ __('DESC') }}" /> </x-admin.form-select> </div> <div class="col-md-4 form-group mb-3 mb-md-0"> <x-admin.form-select name="par-page" id="par-page" class="form-select"> <x-admin.select-option value="" text="{{ __('Per Page') }}" /> <x-admin.select-option :selected="request('par-page') == '5'" value="5" text="{{ __('5') }}" /> <x-admin.select-option :selected="request('par-page') == '10'" value="10" text="{{ __('10') }}" /> <x-admin.select-option :selected="request('par-page') == '25'" value="25" text="{{ __('25') }}" /> <x-admin.select-option :selected="request('par-page') == '50'" value="50" text="{{ __('50') }}" /> <x-admin.select-option :selected="request('par-page') == '100'" value="100" text="{{ __('100') }}" /> <x-admin.select-option :selected="request('par-page') == 'all'" value="all" text="{{ __('All') }}" /> </x-admin.form-select> </div> </div> </form> </div> </div> </div> <div class="col-12"> <div class="card"> <div class="card-header d-flex justify-content-between"> <x-admin.form-title :text="__('Career Request')" /> </div> <div class="card-body"> <div class="table-responsive max-h-400"> <table class="table table-striped"> <thead> <tr> <th width="10%">{{ __('SN') }}</th> <th width="20%">{{ __('Name') }}</th> <th width="20%">{{ __('Phone') }}</th> <th width="20%">{{ __('Email') }}</th> <th width="20%">{{ __('Subject') }}</th> <th width="20%">{{ __('Action') }}</th> </tr> </thead> <tbody> @forelse ($careerRequests as $careerRequest) <tr> <td>{{ $loop->index + 1 }}</td> <td>{{ $careerRequest->name }}</td> <td>{{ $careerRequest->phone }}</td> <td>{{ $careerRequest->email }}</td> <td>{{ $careerRequest->subject }}</td> <td> @adminCan('career.request.view') <x-admin.show-button :href="route('admin.show-career-request', $careerRequest->id)" /> @endadminCan </td> </tr> @empty <x-empty-table :name="__('Career')" route="admin.career.create" create="No" :message="__('No data found!')" colspan="5"> </x-empty-table> @endforelse </tbody> </table> </div> @if (request()->get('par-page') !== 'all') <div class="float-right"> {{ $careerRequests->onEachSide(3)->onEachSide(3)->links() }} </div> @endif </div> </div> </div> </div> </div> </section> </div> <x-admin.delete-modal /> @endsection @push('js') <script> "use strict"; function deleteData(id) { $("#deleteForm").attr("action", "{{ url('/admin/career/') }}" + "/" + id) } function changeStatus(id) { var isDemo = "{{ env('APP_MODE') ?? 'LIVE' }}"; if (isDemo == 'DEMO') { toastr.error("{{ __('This Is Demo Version. You Can Not Change Anything') }}"); return; } $.ajax({ type: "put", data: { _token: '{{ csrf_token() }}', }, url: "{{ url('/admin/career/status-update') }}" + "/" + id, success: function(response) { if (response.success) { toastr.success(response.message); } else { toastr.warning(response.message); } }, error: function(err) { handleFetchError(err); } }) } </script> @endpush @push('css') <style> .dd-custom-css { position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(0px, -131px, 0px); } .max-h-400 { min-height: 400px; } </style> @endpush resources/views/show_career_request.blade.php 0000644 00000005630 15012231144 0015540 0 ustar 00 @extends('admin.master_layout') @section('title') <title>{{ __('Career Request') }}</title> @endsection @section('admin-content') <div class="main-content"> <section class="section"> <x-admin.breadcrumb title="{{ __('Career Request') }}" :list="[ __('Dashboard') => route('admin.dashboard'), __('Career Request') => '#', ]" /> <div class="section-body"> <div class="mt-4 row"> <div class="col-12"> <div class="card"> <div class="card-header d-flex justify-content-between"> <x-admin.form-title :text="__('Career Request')" /> </div> <div class="card-body"> <div class="table-responsive max-h-400"> <table class="table table-striped"> <tr> <td>{{ __('Name') }}</td> <td>{{ $careerRequest->name }}</td> </tr> <tr> <td>{{ __('Phone') }}</td> <td>{{ $careerRequest->phone }}</td> </tr> <tr> <td>{{ __('Email') }}</td> <td>{{ $careerRequest->email }}</td> </tr> <tr> <td>{{ __('Subject') }}</td> <td>{{ $careerRequest->subject }}</td> </tr> <tr> <td>{{ __('Description') }}</td> <td>{{ $careerRequest->description }}</td> </tr> <tr> <td>{{ __('View Document') }}</td> <td> <a target="_blank" href="https://drive.google.com/viewerng/viewer?url={{ asset($careerRequest->cv) }}" class="btn btn-primary btn-sm">{{ __('Click Here') }}</a> </td> </tr> </table> </div> </div> </div> </div> </div> </div> </section> </div> @endsection resources/views/index.blade.php 0000644 00000025363 15012231144 0012603 0 ustar 00 @extends('admin.master_layout') @section('title') <title>{{ __('Career') }}</title> @endsection @section('admin-content') <div class="main-content"> <section class="section"> <x-admin.breadcrumb title="{{ __('Career') }}" :list="[ __('Dashboard') => route('admin.dashboard'), __('Career') => '#', ]" /> <div class="section-body"> <div class="mt-4 row"> {{-- Search filter --}} <div class="col-12"> <div class="card"> <div class="card-body p-0"> <form action="{{ route('admin.career.index') }}" method="GET" onchange="$(this).trigger('submit')" class="card-body"> <div class="row"> <div class="col-md-3 form-group mb-3 mb-md-0"> <x-admin.form-input name="keyword" placeholder="{{ __('Search') }}" value="{{ request()->get('keyword') }}" /> </div> <div class="col-md-3 form-group mb-3 mb-md-0"> <x-admin.form-select name="status" id="status" class="form-select"> <x-admin.select-option value="" text="{{ __('Select Status') }}" /> <x-admin.select-option :selected="request('status') == '1'" value="1" text="{{ __('Yes') }}" /> <x-admin.select-option :selected="request('status') == '0'" value="0" text="{{ __('No') }}" /> </x-admin.form-select> </div> <div class="col-md-3 form-group mb-3 mb-md-0"> <x-admin.form-select name="order_by" id="order_by" class="form-select"> <x-admin.select-option value="" text="{{ __('Order By') }}" /> <x-admin.select-option :selected="request('order_by') == '1'" value="1" text="{{ __('ASC') }}" /> <x-admin.select-option :selected="request('order_by') == '0'" value="0" text="{{ __('DESC') }}" /> </x-admin.form-select> </div> <div class="col-md-3 form-group mb-3 mb-md-0"> <x-admin.form-select name="par-page" id="par-page" class="form-select"> <x-admin.select-option value="" text="{{ __('Per Page') }}" /> <x-admin.select-option :selected="request('par-page') == '5'" value="5" text="{{ __('5') }}" /> <x-admin.select-option :selected="request('par-page') == '10'" value="10" text="{{ __('10') }}" /> <x-admin.select-option :selected="request('par-page') == '25'" value="25" text="{{ __('25') }}" /> <x-admin.select-option :selected="request('par-page') == '50'" value="50" text="{{ __('50') }}" /> <x-admin.select-option :selected="request('par-page') == '100'" value="100" text="{{ __('100') }}" /> <x-admin.select-option :selected="request('par-page') == 'all'" value="all" text="{{ __('All') }}" /> </x-admin.form-select> </div> </div> </form> </div> </div> </div> <div class="col-12"> <div class="card"> <div class="card-header d-flex justify-content-between"> <x-admin.form-title :text="__('Career')" /> <div> @adminCan('career.create') <x-admin.add-button :href="route('admin.career.create')" /> @endadminCan </div> </div> <div class="card-body"> <div class="table-responsive max-h-400"> <table class="table table-striped"> <thead> <tr> <th width="10%">{{ __('SN') }}</th> <th width="20%">{{ __('Title') }}</th> <th width="30%">{{ __('Deadline') }}</th> <th width="20%">{{ __('Status') }}</th> <th width="20%">{{ __('Action') }}</th> </tr> </thead> <tbody> @forelse ($careers as $career) <tr> <td>{{ $loop->index + 1 }}</td> <td>{{ $career->title }}</td> <td>{{ $career->deadline }}</td> <td> <input onchange="changeStatus({{ $career->id }})" id="status_toggle" type="checkbox" {{ $career->status ? 'checked' : '' }} data-toggle="toggle" data-on="{{ __('Active') }}" data-off="{{ __('Inactive') }}" data-onstyle="success" data-offstyle="danger"> </td> <td> @adminCan('career.edit') <x-admin.edit-button :href="route('admin.career.edit', [ 'career' => $career->id, 'code' => getSessionLanguage(), ])" /> @endadminCan @adminCan('career.delete') <x-admin.delete-button :id="$career->id" onclick="deleteData" /> @endadminCan @adminCan('career.request.view') <a href="{{ route('admin.career-request', $career->id) }}" class="btn btn-success btn-sm">{{ __('Request') }}({{ $career->total_application }})</a> @endadminCan </td> </tr> @empty <x-empty-table :name="__('Career')" route="admin.career.create" create="yes" :message="__('No data found!')" colspan="5"> </x-empty-table> @endforelse </tbody> </table> </div> @if (request()->get('par-page') !== 'all') <div class="float-right"> {{ $careers->onEachSide(3)->onEachSide(3)->links() }} </div> @endif </div> </div> </div> </div> </div> </section> </div> <x-admin.delete-modal /> @endsection @push('js') <script> "use strict"; function deleteData(id) { $("#deleteForm").attr("action", "{{ url('/admin/career/') }}" + "/" + id) } function changeStatus(id) { var isDemo = "{{ env('APP_MODE') ?? 'LIVE' }}"; if (isDemo == 'DEMO') { toastr.error("{{ __('This Is Demo Version. You Can Not Change Anything') }}"); return; } $.ajax({ type: "put", data: { _token: '{{ csrf_token() }}', }, url: "{{ url('/admin/career/status-update') }}" + "/" + id, success: function(response) { if (response.success) { toastr.success(response.message); } else { toastr.warning(response.message); } }, error: function(err) { handleFetchError(err); } }) } </script> @endpush @push('css') <style> .dd-custom-css { position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(0px, -131px, 0px); } .max-h-400 { min-height: 400px; } </style> @endpush
| ver. 1.4 |
Github
|
.
| PHP 8.3.20 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка