Skip to content

fractaslabs/silverware-calendar

 
 

Repository files navigation

SilverWare Calendar Module

Latest Stable Version Latest Unstable Version License

A date and time picker module for SilverStripe v4 which adds flatpickr to standard SilverStripe DateField, DatetimeField and TimeField instances.

Datepicker

Contents

Requirements

Installation

Installation is via Composer:

$ composer require silverware/calendar

Note: forms on the website will automatically make use of the datepicker if the app is using SilverWare. If you are using a vanilla SilverStripe project, you'll need to load the module script and styles in your app bundle (jQuery is required):

  • silverware/calendar: client/dist/js/bundle.js
  • silverware/calendar: client/dist/styles/bundle.css

Configuration

As with all SilverStripe modules, configuration is via YAML. Extensions to LeftAndMain and ContentController are applied via config.yml.

Highlight Color

The module supports a custom highlight color for both the CMS and forms on the website. To define the highlight color, use the following YAML configuration:

# Custom highlight color for CMS:

SilverStripe\Admin\LeftAndMain:
  calendar_highlight_color: '#abc'

# Custom highlight color for website forms:

SilverStripe\CMS\Controllers\ContentController:
  calendar_highlight_color: '#cba'

Datepicker Class

SilverStripe will not apply it's own JavaScript to form fields which have a certain datepicker class. To prevent conflicts, use the following configuration to define the class which SilverStripe will detect:

SilverStripe\Forms\FormField:
  calendar_datepicker_class: 'hasDatepicker'

Disabling via Configuration

If you need to disable the datepicker for all instances of a certain form field, use the following configuration:

# Disable for all date fields:

SilverStripe\Forms\DateField:
  calendar_disabled: true

Usage

Out of the box, the module will automatically add a flatpickr to all DateField, DatetimeField and TimeField instances. Each field will be configured automatically with default settings for each use case.

If you need to apply additional options supported by flatpickr, you can do so by using the setCalendarConfig() method:

use SilverStripe\Forms\DateField;

$field = DateField::create('Date', 'Date');

$field->setCalendarConfig([
  'minDate' => date('Y-m-d'),
  'shorthandCurrentMonth' => true
]);

In addition to accepting an array, the setCalendarConfig() method also supports the setting of individual config settings:

$field->setCalendarConfig('weekNumbers', true);

To see a full list of the supported options, please refer to the flatpickr documentation.

Disabling by Instance

If you need to disable the datepicker for a particular field instance, as opposed to all instances, you may call the setCalendarDisabled() method on the field:

$field->setCalendarDisabled(true);

Issues

Please use the GitHub issue tracker for bug reports and feature requests.

Contribution

Your contributions are gladly welcomed to help make this project better. Please see contributing for more information.

Attribution

Maintainers

Colin Tucker Praxis Interactive
Colin Tucker Praxis Interactive

License

BSD-3-Clause © Praxis Interactive

Releases

No releases published

Packages

No packages published

Languages

  • SCSS 36.7%
  • JavaScript 36.6%
  • PHP 20.8%
  • Scheme 5.9%