Laravel-Backpack / community-forum

A workspace to discuss improvement and feature ideas, before they're actually implemented.
28 stars 0 forks source link

[Bug] Issue related backpack/calendar-operation , one hour behind in database upon visual time slot selection #1027

Closed NeguinhoAdmin closed 3 months ago

NeguinhoAdmin commented 3 months ago

Hi,

ISSUE RELATED: backpack/calendar-operation Issue with selection time from day calendar, The visually slot I am clicking on it, the datetime input showing one hour difference.

image

image

namespace App\Http\Controllers\Admin;

use App\Http\Requests\MOTBookingRequest;
use App\Models\Branch;
use Backpack\CRUD\app\Http\Controllers\CrudController;
use Backpack\CRUD\app\Library\CrudPanel\CrudPanelFacade as CRUD;
use App\Models\MOTBooking;
use Carbon\Carbon;

class MOTBookingCrudController extends CrudController
{
    use \Backpack\CRUD\app\Http\Controllers\Operations\ListOperation;
    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
    use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
    use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
    use \Backpack\CRUD\app\Http\Controllers\Operations\ShowOperation;
    use \Backpack\CalendarOperation\CalendarOperation;

    public function setup()
    {
        CRUD::setModel(\App\Models\MOTBooking::class);
        CRUD::setRoute(config('backpack.base.route_prefix') . '/mot-booking');
        CRUD::setEntityNameStrings('MOT Booking', 'MOT Bookings');
    }

    public function setupCalendarOperation()
    {
        CRUD::setOperationSetting('initial-view', 'dayGridMonth');
        CRUD::setOperationSetting('views', ['dayGridMonth', 'timeGridWeek', 'timeGridDay']);
        CRUD::setOperationSetting('editable', true);
        CRUD::setOperationSetting('background_color', fn ($event) => $event->active ? 'green' : 'red');
        CRUD::setOperationSetting('text_color', fn ($event) => $event->active ? 'white' : 'black');
        CRUD::setOperationSetting('with-javascript-widget', true);
    }

    protected function getCalendarFieldsMap()
    {
        return [
            'title' => 'title',
            'start' => 'start',
            'end' => 'end',
            'background_color' => 'background_color',
            'text_color' => 'text_color',
            'all_day' => 'all_day',
        ];

        return [
            'title' => 'vehicle_registration',
            'start' => 'start',
        ];
    }

    protected function setupListOperation()
    {
        CRUD::setFromDb();
    }

    protected function setupCreateOperation()
    {

        CRUD::setValidation(MOTBookingRequest::class);

        $start = request()->has('start') ? Carbon::parse(request('start')) : null;
        $end = request()->has('end') ? Carbon::parse(request('end')) : null;

        CRUD::field('start')
            ->type('datetime')
            ->wrapper(['class' => 'form-group col-md-6'])
            ->value($start);

        CRUD::field('end')
            ->type('datetime')
            ->wrapper(['class' => 'form-group col-md-6'])
            ->value($end);

        CRUD::addField([
            'name' => 'status',
            'label' => 'Status',
            'type' => 'enum',
            'options' => ['pending', 'available', 'completed', 'cancelled'],
            'default' => 'pending',

            'tab' => 'General',
        ]);

        CRUD::setFromDb();

        CRUD::field('background_color')
            ->type('color')
            ->wrapper(['class' => 'form-group col-md-6'])
            ->default('#3788d8');

        CRUD::field('text_color')
            ->type('color')
            ->wrapper(['class' => 'form-group col-md-6'])
            ->default('#ffffff');

        CRUD::addField([
            'name' => 'branch_id',
            'label' => 'Branch',
            'type' => 'select2',
            'entity' => 'branch',
            'attribute' => 'name',
            'model' => Branch::class,
            'tab' => 'General',
        ]);
    }

    protected function setupUpdateOperation()
    {
        $this->setupCreateOperation();
    }
}
jcastroa87 commented 3 months ago

I will close this issue because is duplicate here

Cheers.