Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce the methods to fetch resources from the livewire component … #216

Open
wants to merge 1 commit into
base: 3.x
Choose a base branch
from

Conversation

felahdab
Copy link

Hi,

Since PR #66 , the resource time line plugin is readily available.
However, there is no way to make the calendar load the resources from the Livewire component while it seems like a logical way of using this.

This PR introduces slight changes to allow that.

First, the javascript part introduces the resources method which calls the livewire backend to retrieve the resources.
It also sets the refetchResourcesOnNavigate to true to make sure that the calendar gets an updated list of resources to display when the user navigates the calendar.
An it also make sure that a filament-fullcalendar--refresh event will refresh both the events and the resources.

Then, it introduces the fetchResources method in the livewire part. This method is called by the resources method, and must return an array of resources. An empty array is returned by default.

The config method can be used to pass some aditionnal settings for the resource timeline like so:

public function config(): array
    {
        return [
            'initialView' => 'resourceTimelineMonth',

            'headerToolbar' => [
                'left' => 'resourceTimelineMonth,resourceTimelineYear',
                'center' => 'title',
                'right' => 'prev,next today',
            ],
            'resourceAreaHeaderContent' => 'Resource Header',
            'resourceAreaWidth' => '10%'
        ];
    }

I suppose this PR requires some non regression tests to be sure that the other plugins are not affected by those changes.

Hope that helps.

Regards.
Florian.

@felahdab
Copy link
Author

felahdab commented Sep 8, 2024

@saade any comment on this ?

Regards.
Florian

@felahdab
Copy link
Author

@saade Hi again. No news from you since one month. Can you have a look at my PR ?
Regards.

@oxyac
Copy link

oxyac commented Oct 3, 2024

@saade This pull request makes the resource timeline usable. It contains only a few lines of code, please check it out.

@saade
Copy link
Owner

saade commented Oct 3, 2024

@felahdab @oxyac
I'm not familiar with Resources or the Resource Timeline plugin. Could one of you explain to me like I'm five what a Resource is and how it differs from a regular Event?

@oxyac
Copy link

oxyac commented Oct 3, 2024

Based on the docs, to display events in the calendar in Resource timeline mode, we need to use a different parameter in the JS object:

resources: [
    // your resource list
  ]

When switching to resourceTimeline, possible only after #66 PR, we can see resource tab but it cannot be filled with data until we merge this.

@saade Hope this makes sense

FullCalendar docs

@felahdab
Copy link
Author

felahdab commented Oct 3, 2024

@saade

Ressources are a way to group events in the resourcetimeline view. The fullcalendar component can load ressources either statically or thru a dynamic method.

This pull request makes it possible to load the resources from the livewire backend.

@saade
Copy link
Owner

saade commented Oct 3, 2024

A group of events, got it. Ty guys

@felahdab
Copy link
Author

felahdab commented Oct 5, 2024

@saade Can you give us your sentiment about this ? Do you intend to merge ? Do you need something more from us before merging ?

Regards.

@saade
Copy link
Owner

saade commented Oct 7, 2024

@felahdab I understand the needing for this and i'll review and merge as soon as i can. Right now i'm unable to do so.

If you really need this and can't wait, you may update your project to reference this branch.

To do so, temporarily add this PR's branch to the repositories property of your composer.json:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/saade/filament-fullcalendar.git"
        }
    ]
}

Then update your dependency constraint to reference this branch:

{
    "require": {
        "saade/filament-fullcalendar": "felahdab:florianthecoder-introduce-methods-to-use-resources",
    }
}

Finally, run: composer update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants