mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
manage cities added, edit venue images
This commit is contained in:
@@ -11,36 +11,37 @@ class CountryController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
return Country::query()
|
||||
->select('id', 'name', 'code')
|
||||
->orderBy('name')
|
||||
->when(
|
||||
$request->search,
|
||||
fn (Builder $query) => $query
|
||||
->where('name', 'ilike', "%{$request->search}%")
|
||||
->orWhere('code', 'ilike', "%{$request->search}%")
|
||||
)
|
||||
->when(
|
||||
$request->exists('selected'),
|
||||
fn (Builder $query) => $query->whereIn('code', $request->input('selected', [])),
|
||||
fn (Builder $query) => $query->limit(10)
|
||||
)
|
||||
->get()
|
||||
->map(function (Country $country) {
|
||||
$country->flag = asset('vendor/blade-country-flags/4x3-'.$country->code.'.svg');
|
||||
->select('id', 'name', 'code')
|
||||
->orderBy('name')
|
||||
->when(
|
||||
$request->search,
|
||||
fn(Builder $query) => $query
|
||||
->where('name', 'ilike', "%{$request->search}%")
|
||||
->orWhere('code', 'ilike', "%{$request->search}%")
|
||||
)
|
||||
->when(
|
||||
$request->exists('selected'),
|
||||
fn(Builder $query) => $query
|
||||
->whereIn('code', $request->input('selected', []))
|
||||
->orWhereIn('id',
|
||||
$request->input('selected', [])),
|
||||
fn(Builder $query) => $query->limit(10)
|
||||
)
|
||||
->get()
|
||||
->map(function (Country $country) {
|
||||
$country->flag = asset('vendor/blade-country-flags/4x3-'.$country->code.'.svg');
|
||||
|
||||
return $country;
|
||||
});
|
||||
return $country;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
@@ -50,7 +51,6 @@ class CountryController extends Controller
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Country $country)
|
||||
@@ -60,7 +60,6 @@ class CountryController extends Controller
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Country $country)
|
||||
@@ -70,7 +69,6 @@ class CountryController extends Controller
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Country $country)
|
||||
|
||||
@@ -10,6 +10,14 @@ class CityTable extends Component
|
||||
{
|
||||
public Country $country;
|
||||
|
||||
public bool $manage = false;
|
||||
|
||||
protected $queryString = [
|
||||
'manage' => [
|
||||
'except' => false,
|
||||
],
|
||||
];
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.book-case.city-table')->layout('layouts.app', [
|
||||
|
||||
@@ -10,6 +10,10 @@ class VenueTable extends Component
|
||||
{
|
||||
public Country $country;
|
||||
|
||||
public bool $manage = false;
|
||||
|
||||
protected $queryString = ['manage' => ['except' => false]];
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.school.venue-table')->layout('layouts.app', [
|
||||
|
||||
@@ -17,12 +17,14 @@ class CityTable extends DataTableComponent
|
||||
|
||||
public string $type;
|
||||
|
||||
public bool $manage = false;
|
||||
|
||||
public string $tableName = 'cities';
|
||||
|
||||
public function configure(): void
|
||||
{
|
||||
$this->setPrimaryKey('id')
|
||||
->setAdditionalSelects(['id'])
|
||||
->setAdditionalSelects(['cities.id', 'cities.created_by'])
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
@@ -74,6 +76,7 @@ class CityTable extends DataTableComponent
|
||||
fn ($row, Column $column) => view('columns.cities.action')
|
||||
->withRow($row)
|
||||
->withType($this->type)
|
||||
->withManage($this->manage)
|
||||
),
|
||||
])
|
||||
->toArray();
|
||||
|
||||
@@ -12,6 +12,8 @@ class VenueTable extends DataTableComponent
|
||||
{
|
||||
public string $country;
|
||||
|
||||
public bool $manage = false;
|
||||
|
||||
public string $tableName = 'venues';
|
||||
|
||||
public function configure(): void
|
||||
@@ -66,7 +68,7 @@ class VenueTable extends DataTableComponent
|
||||
->collapseOnMobile(),
|
||||
Column::make('')
|
||||
->label(
|
||||
fn ($row, Column $column) => view('columns.venues.action')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.venues.action')->withRow($row)->withManage($this->manage)
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ use App\Models\Venue;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Livewire\Component;
|
||||
use Livewire\WithFileUploads;
|
||||
use Spatie\MediaLibrary\MediaCollections\Models\Media;
|
||||
use WireUi\Traits\Actions;
|
||||
|
||||
class VenueForm extends Component
|
||||
@@ -23,6 +24,8 @@ class VenueForm extends Component
|
||||
|
||||
protected $queryString = ['fromUrl' => ['except' => '']];
|
||||
|
||||
protected $listeners = ['refresh' => '$refresh'];
|
||||
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
@@ -49,6 +52,16 @@ class VenueForm extends Component
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteMedia($id)
|
||||
{
|
||||
Media::query()
|
||||
->find($id)
|
||||
->delete();
|
||||
$this->notification()
|
||||
->success(__('Image deleted!'));
|
||||
$this->emit('refresh');
|
||||
}
|
||||
|
||||
public function submit()
|
||||
{
|
||||
$this->validate();
|
||||
|
||||
Reference in New Issue
Block a user