The Most Popular JavaScript Calendar as a Filament Widget 💛

Overview

The Most Popular JavaScript Calendar as a Filament Widget 💛

Monthly Calendar

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Features

  • Accepts all configurations from FullCalendar
  • Event click and drop events

Upcoming

  • Modal view when clicking on an event
  • Tailwindcss theme 💙

Support Filament

filament-logo

Installation

You can install the package via composer:

composer require saade/filament-fullcalendar

You can publish the config file with:

php artisan vendor:publish --tag="filament-fullcalendar-config"

This is the contents of the published config file:



/**
 * Consider this file the root configuration object for FullCalendar.
 * Any configuration added here, will be added to the calendar.
 * @see https://fullcalendar.io/docs#toc
 */

return [
    'timeZone' => config('app.timezone'),

    'locale' => config('app.locale'),

    'headerToolbar' => [
        'left'   => 'prev,next today',
        'center' => 'title',
        'right'  => 'dayGridMonth,dayGridWeek,dayGridDay'
    ],

    'navLinks' => true,

    'editable' => true,

    'dayMaxEvents' => true
];

Usage

Since the package does not automatically add the FullCalendarWidget widget to your Filament panel, you are free to extend the widget and customise it yourself.

  1. First, create a Filament Widget:
php artisan make:filament-widget CalendarWidget

This will create a new App\Filament\Widgets\CalendarWidget class in your project.


  1. Your newly created widget should extends the Saade\FilamentFullCalendar\Widgets\FullCalendarWidget class of this package


namespace App\Filament\Widgets;

use App\Models\Meeting;
use App\Filament\Resources\MeetingResource;
use Saade\FilamentFullCalendar\Widgets\FullCalendarWidget;

class CalendarWidget extends FullCalendarWidget
{

    public function getViewData(): array
    {
        return [
            [
                'id' => 1,
                'title' => 'Breakfast!',
                'start' => now()
            ],
            [
                'id' => 2,
                'title' => 'Meeting with Pamela',
                'start' => now()->addDay(),
                'url' => MeetingResource::getUrl('view', ['record' => 2])
            ]
        ];
    }
}

You should return an array of FullCalendar EventObject.


Configuration

This is the contents of the default config file.

You can use any property that FullCalendar uses on its root object. Please refer to: FullCalendar Docs to see the available options. It supports all of them, really.



/**
 * Consider this file the root configuration object for FullCalendar.
 * Any configuration added here, will be added to the calendar.
 * @see https://fullcalendar.io/docs#toc
 */

return [
    'timeZone' => config('app.timezone'),

    'locale' => config('app.locale'),

    'headerToolbar' => [
        'left'   => 'prev,next today',
        'center' => 'title',
        'right'  => 'dayGridMonth,dayGridWeek,dayGridDay'
    ],

    'navLinks' => true,

    'editable' => true,

    'dayMaxEvents' => true
];

Listening for events

The only events supported right now are: EventClick and EventDrop

They're commented out by default so livewire does not spam requests without they being used. You are free to paste them in your CalendarWidget class. See: FiresEvents

/**
 * Triggered when the user clicks an event.
 *
 * Commented out so we can save some requests :) Feel free to extend it.
 * @see https://fullcalendar.io/docs/eventClick
 */
public function onEventClick($event): void
{
    //
}

/**
 * Triggered when dragging stops and the event has moved to a different day/time.
 *
 * Commented out so we can save some requests :) Feel free to extend it.
 * @see https://fullcalendar.io/docs/eventDrop
 */
public function onEventDrop($oldEvent, $newEvent, $relatedEvents): void
{
    //
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Comments
  • Using this widget in a resource's page

    Using this widget in a resource's page

    I have different plannings and I would like to add this widget in a resource. but there is a conflict in using $this->record as this property is used in Filament widget's resource to refer to the record edited or viewed.

    bug 
    opened by invaders-xx 8
  • Timezone

    Timezone

    My event's dates (start and end) are stored in database in UTC. But I want to display those dates using user's timezone.

    So I have a resource's view showing events table : as you can see the dates in table are displayed using the right timezone. In the FullCalendar, we see that event are displayed using UTC event if i set :

    public function getConfig(): array
        {
            return array_merge(parent::getConfig(), [
                'timeZone' => auth()->user()->timezone,
                'locale' => app()->getLocale(),
            ]);
        }
    
    image
    opened by invaders-xx 7
  • Using event form with relations

    Using event form with relations

    I am not able to make it working with an event form using relations : a select or repeater. Simple form :

    protected static function getCreateEventFormSchema(): array
        {
            return [
                Forms\Components\Select::make('planning_id')
                    ->label(__('Planning'))
                    ->validationAttribute(__('Planning'))
                    ->searchable()
                    ->relationship('planning', 'name')
                    ->preload()
                    ->required(),
                Forms\Components\DatePicker::make('start_at')
                    ->required(),
                Forms\Components\DatePicker::make('end_at')
                    ->default(null),
            ];
        }
    

    I got : Call to a member function planning() on null Event if the relation exists

    opened by invaders-xx 6
  • Fix/store record id for edit

    Fix/store record id for edit

    currently there is no way to retrieve the id or record, with this PR, you can do this

    
        public function resolveEventRecord(array $data): Model
        {
            return Appointment::find($data['id']);  // or slug return Appointment::where('slug', $data['extendedProps']['slug']); <- the $data structure not tested
        }
    
        public function editEvent(array $data): void
        {
            $this->record->update($data);
            $this->refreshEvents();
        }
    
    
    opened by wychoong 6
  • Problem with  `cachedEventIds` in the `fetchEvents` function

    Problem with `cachedEventIds` in the `fetchEvents` function

    I am getting events disappearing when I use the fetchEvents() method to load calendar events.

    If I comment out the line the caches the event ids in the fullcalendar.blade.php file, it works as expected.

    const fetchEvents = function ({ start, end }, successCallback, failureCallback) {
        @if( $this::canFetchEvents() )
            return $wire.fetchEvents({ start, end }, cachedEventIds)
                .then(events => {
                    // Cache fetched events
                    //cachedEventIds.push(...events.map(event => event.id)); <--- comment out this line fixes the issue
    
                    return successCallback(events);
                })
                .catch( failureCallback );
        @else
            return successCallback([]);
        @endif
    }
    

    I think this is due to the way Fullcalendar calls Event Sources that are a function.

    From the Fullcalendar docs:

    events (as a function) ... FullCalendar will call this function whenever it needs new event data. This is triggered when the user clicks prev/next or switches views.

    Is this line needed? I am not getting any duplication of events if it is commented out.

    bug unconfirmed 
    opened by ashleyhood 4
  • feat: lazy loading the events data

    feat: lazy loading the events data

    this PR allows lazy loading of calendar events data by implementing LazyLoading interface to calendar widget

    use Saade\FilamentFullCalendar\Widgets\Contracts\LazyLoading;
    
    class SchedulingCalendarWidget extends FullCalendarWidget implements LazyLoading
    {
    
        // implement `lazyLoadViewData` instead of `getViewData`
        public function lazyLoadViewData($fetchInfo = null): array
        {
            $schedules = Appointment::query()
                ->when($fetchInfo, function (Builder $query) use ($fetchInfo) {
                    $startDate = Carbon::parse($fetchInfo['start']);
                    $endDate = Carbon::parse($fetchInfo['end']);
    
                    $query->where([
                        ['start_at', '>=', $startDate],
                        ['end_at', '<', $endDate],
                    ]);
                }, function (Builder $query) {
                    $query->where( .... );
                })
                ->get();
    
            $data = $schedules->map( ... );
    
            return $data;
        }
     }
    
    opened by wychoong 3
  • fix: stop event flash when using `fetchEvents` method

    fix: stop event flash when using `fetchEvents` method

    Since it is recommended to only use one of the methods fetchEvents or getViewData, we only need to remove all events when using getViewData as the Fullcalendar method calendar.refetchEvents will fetch the events and rerender them in the background without causing the events to flash.

    Fullcalendar refetchEvents docs

    bug 
    opened by ashleyhood 2
  • feat: add calendar select event

    feat: add calendar select event

    This adds the Fullcalendar select event so that when a date is selected it will fire the event.

    This will also use the create event modal and will populate the start and end date in the form.

    opened by ashleyhood 2
  • Fix missing syntax error

    Fix missing syntax error

    Hi Saade!

    I was looking around on the docs when using this package and i spot a syntax error on the comment section. Hence to fix my OCD (and maybe others in future), i created this PR to fix it 😉

    Good job on this package tho

    opened by chengkangzai 1
  • Bump dependabot/fetch-metadata from 1.3.4 to 1.3.5

    Bump dependabot/fetch-metadata from 1.3.4 to 1.3.5

    Bumps dependabot/fetch-metadata from 1.3.4 to 1.3.5.

    Release notes

    Sourced from dependabot/fetch-metadata's releases.

    v1.3.5

    What's Changed

    New Contributors

    Full Changelog: https://github.com/dependabot/fetch-metadata/compare/v1...v1.3.5

    Commits
    • 5ef0018 Merge pull request #282 from dependabot/v1.3.5-release-notes
    • a9380d2 v1.3.5
    • 404ba25 Merge pull request #280 from dependabot/drop-readme-from-bump-script
    • f40d4c7 Don't bump pin versions in README.md
    • 7db64c3 Merge pull request #252 from dependabot/document-release-steps
    • daa85e7 Add mention of npm run build if dev deps need updating.
    • b768c40 Document steps for cutting a new release
    • 9833f74 Merge pull request #273 from dependabot/dependabot/npm_and_yarn/yargs-and-typ...
    • 32b7ed3 Bump yargs and @​types/yargs
    • 7942397 Merge pull request #271 from dependabot/dependabot/npm_and_yarn/actions/githu...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump dependabot/fetch-metadata from 1.3.3 to 1.3.4

    Bump dependabot/fetch-metadata from 1.3.3 to 1.3.4

    Bumps dependabot/fetch-metadata from 1.3.3 to 1.3.4.

    Release notes

    Sourced from dependabot/fetch-metadata's releases.

    v1.3.4

    What's Changed

    New Contributors

    Full Changelog: https://github.com/dependabot/fetch-metadata/compare/v1.3.3...v1.3.4

    Commits
    • bfc19f4 v1.3.4
    • 4367f58 Merge pull request #258 from dependabot/dependabot/npm_and_yarn/yaml-2.1.1
    • 00ab600 Manually bump dist/
    • bdbe81d Bump yaml from 2.0.1 to 2.1.1
    • 5fc325a Merge pull request #257 from dependabot/dependabot/npm_and_yarn/typescript-4.8.3
    • c91309c Bump typescript from 4.6.3 to 4.8.3
    • 264d039 Merge pull request #266 from dependabot/dependabot/npm_and_yarn/ts-node-10.9.1
    • d1cd6ed Bump ts-node from 10.7.0 to 10.9.1
    • e3cb77e Merge pull request #265 from dependabot/dependabot/npm_and_yarn/actions/githu...
    • e462341 [dependabot skip] Update dist/ with build changes
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • refreshEvents not working

    refreshEvents not working

    Hi, I'm using the last version. The $this->refreshEvents(); method doesn't do anything. as example :

        public function editEvent(array $data): void
        {
           $this->event->start_date = $data['start'];
           $this->event->end_date = $data['end'];
           $this->event->requested_resources = $data['extendedProps']['requested_resources'];
           $participants = Human::whereIn('name',$data['extendedProps']['participants'])->get();
           $this->event->participants()->syncWithoutDetaching($participants);
           $this->event->save();
           $this->refreshEvents();
        }
    

    after the function, the page isn't refreshed. thx

    opened by alucard29 0
  • Bump ramsey/composer-install from 1 to 2

    Bump ramsey/composer-install from 1 to 2

    Bumps ramsey/composer-install from 1 to 2.

    Release notes

    Sourced from ramsey/composer-install's releases.

    2.0.0

    Added

    • Use --prefer-stable with lowest dependencies (#178)
    • Allow use of a custom cache key (#167)
    • Allow ability to ignore the cache

    Changed

    Fixed

    • Fix case where working-directory did not run composer install in the correct working directory (#187)
    • Fix problems with retrieving cache with parallel builds (#161, #152)
    • Fix problems restoring from cache on Windows (#79)

    1.3.0

    • Support passing --working-dir as part of composer-options

    1.2.0

    • Support Composer working-directory option for when composer.json is in a non-standard location.
    • Add operating system name to the cache key.

    1.1.0

    Display Composer output with ANSI colors.

    1.0.3

    Patch release for dependency updates.

    1.0.2

    • Use the GitHub cache action directly to avoid duplication of code/effort.
    • Turn on output of Composer command to provide feedback in the job log
    • Use Composer cache-dir instead of cache-files-dir

    1.0.1

    Rewrite and refactor as a JavaScript action.

    Commits
    • 83af392 :sparkles: Add new custom-cache-suffix option (#239)
    • 7f9021e Fix use of deprecated set-output command (#238)
    • 4617231 Tests: update the included composer.phar from v 2.2.2 to 2.2.18 (#237)
    • 72896eb Add dependabot configuration file (#227)
    • 69e970d GH Actions: version update for codecov action runner (#226)
    • e3612f6 GH Actions: version update for actions/cache (#224)
    • d515102 GH Actions: version update for various predefined actions (#222)
    • 6085843 GH Actions: re-work the integration tests (#221)
    • f680dac test: add PHP path back to command, as well as debug message
    • 3c51967 test: ensure we use the alternate composer location
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
Releases(v1.6.0)
  • v1.6.0(Sep 25, 2022)

    What's Changed

    • v1.6.0 by @saade in https://github.com/saade/filament-fullcalendar/pull/55

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v1.5.1...v1.6.0

    Source code(tar.gz)
    Source code(zip)
  • v1.5.1(Sep 18, 2022)

    What's Changed

    • Revert "Allow event's model to have relationship" by @saade in https://github.com/saade/filament-fullcalendar/pull/53

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v1.5.0...v1.5.1

    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Sep 18, 2022)

    What's Changed

    • Add View Modal and corresponding canView authorization. by @tiagof in https://github.com/saade/filament-fullcalendar/pull/46
    • Avoids error when full-calendar timezone is 'local' by @tiagof in https://github.com/saade/filament-fullcalendar/pull/48
    • Add ability for custom modal titles and button labels by @flord22 in https://github.com/saade/filament-fullcalendar/pull/52
    • Fixes wrong permissions check. by @tiagof in https://github.com/saade/filament-fullcalendar/pull/51
    • feat: save state by @fauzie811 in https://github.com/saade/filament-fullcalendar/pull/50
    • Allow event's model to have relationship by @tiagof in https://github.com/saade/filament-fullcalendar/pull/47

    New Contributors

    • @tiagof made their first contribution in https://github.com/saade/filament-fullcalendar/pull/46
    • @flord22 made their first contribution in https://github.com/saade/filament-fullcalendar/pull/52
    • @fauzie811 made their first contribution in https://github.com/saade/filament-fullcalendar/pull/50

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v1.4.0...v1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Aug 4, 2022)

    What's Changed

    • eventResize by @invaders-xx in https://github.com/saade/filament-fullcalendar/pull/40
    • BREAKING CHANGE: Rename $record and $record_id to $event and $event_id by @invaders-xx in https://github.com/saade/filament-fullcalendar/pull/41
    • feat: Livewire event triggered for cancelled modal by @ashleyhood in https://github.com/saade/filament-fullcalendar/pull/30

    New Contributors

    • @invaders-xx made their first contribution in https://github.com/saade/filament-fullcalendar/pull/40

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v1.3.1...v1.4.0

    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Jul 20, 2022)

    What's Changed

    • fix: use array_merge instead of spread to support php versions < 8.1 by @saade in https://github.com/saade/filament-fullcalendar/pull/31
    • refactor: property type hints by @ashleyhood in https://github.com/saade/filament-fullcalendar/pull/29

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v1.3.0...v1.3.1

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Jul 13, 2022)

    What's Changed

    • feat: change modal label by @ashleyhood in https://github.com/saade/filament-fullcalendar/pull/28

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v1.2.1...v1.2.2

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Jul 5, 2022)

    What's Changed

    • Bump dependabot/fetch-metadata from 1.3.1 to 1.3.3 by @dependabot in https://github.com/saade/filament-fullcalendar/pull/26
    • fix: stop event flash when using fetchEvents method by @ashleyhood in https://github.com/saade/filament-fullcalendar/pull/27

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v1.2.0...v1.2.1

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Jul 3, 2022)

    What's Changed

    • fix: correct onEventDrop parameter order by @ashleyhood in https://github.com/saade/filament-fullcalendar/pull/20
    • feat: change modal size by @ashleyhood in https://github.com/saade/filament-fullcalendar/pull/19
    • Fix/fetch events cache by @wychoong in https://github.com/saade/filament-fullcalendar/pull/25
    • Fix/store record id for edit by @wychoong in https://github.com/saade/filament-fullcalendar/pull/18

    New Contributors

    • @ashleyhood made their first contribution in https://github.com/saade/filament-fullcalendar/pull/20

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v1.1.0...v1.2.0

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Jul 1, 2022)

    What's Changed

    • feat: open modal on calendar click by @wychoong in https://github.com/saade/filament-fullcalendar/pull/16
    • feat: lazy loading the events data by @wychoong in https://github.com/saade/filament-fullcalendar/pull/17

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v1.0.0...v1.1.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Jun 27, 2022)

    What's Changed

    • feature: Modals for creating / editing events by @saade in https://github.com/saade/filament-fullcalendar/pull/11

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v0.3.0...v1.0.0

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Jun 27, 2022)

    What's Changed

    • Update FiresEvents.php by @wychoong in https://github.com/saade/filament-fullcalendar/pull/8
    • feat: allow opening or not events in a new tab by @saade in https://github.com/saade/filament-fullcalendar/pull/12
    • feat: refresh calendar events by @saade in https://github.com/saade/filament-fullcalendar/pull/13
    • fix: convert laravel locale to fullcalendar compatible locale by @saade in https://github.com/saade/filament-fullcalendar/pull/14

    New Contributors

    • @wychoong made their first contribution in https://github.com/saade/filament-fullcalendar/pull/8

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v0.2.1...v0.3.0

    Source code(tar.gz)
    Source code(zip)
  • v0.2.1(Feb 21, 2022)

    What's Changed

    • fix: calender disappearing on livewire update by @saade in https://github.com/saade/filament-fullcalendar/pull/3

    New Contributors

    • @saade made their first contribution in https://github.com/saade/filament-fullcalendar/pull/3

    Full Changelog: https://github.com/saade/filament-fullcalendar/compare/v0.2.0...v0.2.1

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Feb 9, 2022)

  • v0.1.0(Jan 27, 2022)

Owner
Guilherme Saade
Backend engineer. In ❤️ with TALL stack
Guilherme Saade
PlayZ is an esport event organization and management website allowing the creation of tournaments on the most popular video games of the esport scene.

PlayZ the playz to play Table of Contents Description "What is Playz?" In one sentence PlayZ is "an esport event organization and management website a

Antoine Saunier 2 Dec 7, 2021
Filament-spatie-laravel-activitylog - View your activity logs inside of Filament. ⚡️

View your activity logs inside of Filament. This package provides a Filament resource that shows you all of the activity logs created using the spatie

Ryan Chandler 45 Dec 26, 2022
Add The Events Calendar support to Sage 10.

The Events Calendar support for Sage 10 Add The Events Calendar support to Sage 10. For the time being there can only be a blade view, the default-tem

Supermundano 10 Nov 5, 2022
Laravel Livewire component to show Events in a good looking monthly calendar

Livewire Calendar This package allows you to build a Livewire monthly calendar grid to show events for each day. Events can be loaded from within the

Andrés Santibáñez 680 Jan 4, 2023
A minimalistic event calendar Tool for Laravel's Nova 4

Event calendar for Laravel Nova 4 An event calendar that displays Nova resources or other time-related data in your Nova 4 project on a monthly calend

wdelfuego 44 Jan 1, 2023
Adds a widget and REST endpoint for the purpose of displaying post revisions inline on the frontend.

Post History This widget allows visitors to easily diff posts against their earlier revisions, displaying diffs of HTML inline. It should be plug and

Human Made 4 Dec 12, 2022
A simple profile management page for Filament. ✨

A simple profile page for Filament. This package provides a very simple Profile page that allows the current user to manage their name, email address

Ryan Chandler 65 Jan 5, 2023
Add a general-purpose tools page to your Filament project. 🛠

Add a general-purpose tools page to your Filament project. Installation You can install the package via Composer: composer require ryangjchandler/fila

Ryan Chandler 24 Dec 6, 2022
A single-field repeater for Filament. ⚡️

A single-field repeater for Filament. This is where your description should go. Limit it to a paragraph or two. Consider adding a small example. Insta

Ryan Chandler 3 Mar 5, 2022
A convenient helper for using the laravel-seo package with Filament Admin and Forms

Combine the power of Laravel SEO and Filament PHP. This package is a convenient helper for using the laravel-seo package with Filament Admin and Forms

Ralph J. Smit 39 Dec 21, 2022
Easily interact and control your feature flags from Filament

Easily interact and control your feature flags from Filament

Ryan Chandler 32 Nov 29, 2022
Admin user, role and permission management for Laravel Filament

Filament Access Control Opinionated setup for managing admin users, roles and permissions within Laravel Filament Features Separate database table for

Elisha Witte 69 Jan 4, 2023
Build structured navigation menus in Filament.

Build structured navigation menus in Filament. This plugin for Filament provides a Navigation resource that allows to build structural navigation menu

Ryan Chandler 61 Dec 30, 2022
Access laravel log through Filament admin panel

Access laravel log through Filament admin panel Features Syntax highlighting Quickly jump between start and end of the file Refresh log contents Clear

Guilherme Saade 20 Nov 22, 2022
A collection of reusable components for Filament.

A collection of reusable components for Filament. This package is a collection of handy components for you to use in all your Filament projects. It pr

Ralph J. Smit 35 Nov 16, 2022
Social login for Filament through Laravel Socialite

Social login for Filament through Laravel Socialite Add OAuth login through Laravel Socialite to Filament. Installation You can install the package vi

Dutch Coding Company 44 Dec 26, 2022
Provides the missing range field for the Filament forms.

The missing range field for the Filament forms. Installation You can install the package via composer: composer require yepsua/filament-range-field Pu

null 11 Sep 10, 2022
Configurable activity logger for filament.

Activity logger for filament Configurable activity logger for filament. Powered by spatie/laravel-activitylog Features You can choose what you want to

Ziyaan 58 Dec 30, 2022
Add a progress bar column to your Filament tables.

Add a progress bar column to your Filament tables. This package provides a ProgessColumn that can be used to display a progress bar in a Filament tabl

Ryan Chandler 22 Nov 12, 2022