HEX
Server: nginx/1.28.3
System: Linux lightweb-s1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User: drdrivek-71 (1047)
PHP: 8.3.30
Disabled: NONE
Upload Files
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');
    }
}