<?php
namespace App\Nova;
use Acme\MultilangLongtext\MultilangLongtext;
use Acme\MultilangText\MultilangText;
use Acme\MultilangTextarea\MultilangTextarea;
use App\Models\Country;
use App\Models\Language;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Laravel\Nova\Fields\Boolean;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Image;
use Laravel\Nova\Fields\Slug;
use Laravel\Nova\Fields\Tag;
use Laravel\Nova\Http\Requests\NovaRequest;
use Oneduo\NovaFileManager\FileManager;
class Vacancy extends Resource
{
/**
* The model the resource corresponds to.
*
* @var class-string<\App\Models\Vacancy>
*/
public static $model = \App\Models\Vacancy::class;
/**
* The single value that should be used to represent the resource when being displayed.
*
* @var string
*/
public static $title = 'id';
/**
* The columns that should be searched.
*
* @var array
*/
public static $search = [
'id',
];
public static $trafficCop = false;
/**
* Get the fields displayed by the resource.
*
* @param NovaRequest $request
* @return array
*/
public function fields(NovaRequest $request): array
{
$countries = Country::query()->get();
$languages = Language::query()->get();
$uploadLink = route('nova.fields.upload.image');
return [
ID::make()->sortable()->hide(),
Boolean::make(__('Visibility'), 'is_enabled'),
Slug::make(__('Slug'),'slug')
->placeholder('chief_accountant'),
MultilangText::make(__('Title'), 'title')
->required()
->placeholder('Chief accountant')
->slice(25)
->fullWidth()
->languages($languages)
->countries($countries)
->uploadLink($uploadLink),
FileManager::make(__('Title Image'), 'title_image')
->hideFromIndex(),
MultilangText::make(__('Locations'), 'locations')
->slice(25)
->fullWidth()
->languages($languages)
->countries($countries)
->uploadLink($uploadLink),
MultilangText::make(__('Experience'), 'experience')
->slice(25)
->fullWidth()
->languages($languages)
->countries($countries)
->uploadLink($uploadLink),
MultilangText::make(__('Work_type'), 'work_type')
->slice(25)
->fullWidth()
->languages($languages)
->countries($countries)
->uploadLink($uploadLink),
MultilangText::make(__('Button text'), 'fs_button')
->fullWidth()
->languages($languages)
->countries($countries)
->hideFromIndex(),
MultilangLongtext::make(__('Preview description'), 'preview_description')
->fullWidth()
->hideFromIndex()
->languages($languages)
->countries($countries)
->uploadLink($uploadLink),
MultilangTextarea::make(__('Content'), 'data')
->fullWidth()
->hideFromIndex()
->languages($languages)
->countries($countries)
->uploadLink($uploadLink),
];
}
/**
* Get the cards available for the request.
*
* @param NovaRequest $request
* @return array
*/
public function cards(NovaRequest $request)
{
return [];
}
/**
* Get the filters available for the resource.
*
* @param NovaRequest $request
* @return array
*/
public function filters(NovaRequest $request)
{
return [];
}
/**
* Get the lenses available for the resource.
*
* @param NovaRequest $request
* @return array
*/
public function lenses(NovaRequest $request)
{
return [];
}
/**
* Get the actions available for the resource.
*
* @param NovaRequest $request
* @return array
*/
public function actions(NovaRequest $request)
{
return [];
}
}