File: /home/dnlightw-124/dn.lightweb.kr/stubs/settings/screen.entity.edit.stub
<?php
namespace DummyNamespace;
use Orchid\Screen\Screen;
use Orchid\Screen\Actions\Button;
use App\Settings\Extends\OrbitLayout;
use Orchid\Support\Facades\Toast;
use Orchid\Support\Color;
use App\Settings\Entities\User\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use App\Settings\Entities\DummyEntityName\Layouts\DummyEntityNameEditLayout;
use App\Settings\Entities\DummyEntityName\DummyEntityName;
class DummyClass extends Screen
{
/**
* @var DummyEntityName
*/
public $dummyEntityLowerCamel;
/**
* Fetch data to be displayed on the screen.
*
* @return array
*/
public function query(DummyEntityName $dummyEntityLowerCamel): iterable
{
return [
'dummyEntityLowerCamel' => $dummyEntityLowerCamel,
];
}
/**
* The name of the screen displayed in the header.
*
* @return string|null
*/
public function name(): ?string
{
return $this->dummyEntityLowerCamel->exists ? 'Edit DummyEntityName' : 'Create DummyEntityName';
}
/**
* The screen's action buttons.
*
* @return \Orchid\Screen\Action[]
*/
public function commandBar(): iterable
{
$commands = [];
if($this->dummyEntityLowerCamel->exists) {
/** @var User $user */
$user = Auth::user();
if($user->hasAccess('settings.entities.dummy_entity_plural_name.delete')) {
$commands[] = Button::make(__('Remove'))
->icon('trash')
->method('remove');
}
}
$commands[] = Button::make(__('Save'))
->icon('check')
->method('save');
return $commands;
}
/**
* The screen's layout elements.
*
* @return \Orchid\Screen\Layout[]|string[]
*/
public function layout(): iterable
{
return [
OrbitLayout::block(DummyEntityNameEditLayout::class)
->title(__('DummyEntityName Details'))
->description(__('Edit the details of the dummy entity name.'))
->commands(
Button::make(__('Save'))
->type(Color::BASIC)
->icon('bs.check-circle')
->canSee($this->dummyEntityLowerCamel->exists)
->method('save')
),
];
}
/**
* Define the permissions required to view this screen.
*
* @return iterable|null
*/
public function permission(): ?iterable
{
return [
'settings.entities.dummy_entity_plural_name.create',
'settings.entities.dummy_entity_plural_name.edit',
];
}
/**
* Save the DummyEntityName.
*
* @param \Illuminate\Http\Request $request
*/
public function save(Request $request, DummyEntityName $dummyEntityLowerCamel)
{
$dummyEntityLowerCamel->fill($request->input('dummyEntityLowerCamel'));
$dummyEntityLowerCamel->save();
Toast::info(__('DummyEntityName was saved.'));
return redirect()->route('settings.entities.dummy_entity_plural_name');
}
/**
* Remove the DummyEntityName.
*
* @param \App\Settings\Entities\DummyEntityName\DummyEntityName $dummyEntityLowerCamel
*/
public function remove(DummyEntityName $dummyEntityLowerCamel)
{
/** @var User $user */
$user = Auth::user();
if($user->hasAccess('settings.entities.dummy_entity_plural_name.delete')) {
$dummyEntityLowerCamel->delete();
Toast::info(__('DummyEntityName was removed.'));
}else{
Toast::error(__('You do not have permission to delete this DummyEntityName.'));
}
return redirect()->route('settings.entities.dummy_entity_plural_name');
}
}