aldeed:autoform-bs-datepicker
An add-on Meteor package for aldeed:autoform. Provides a single custom input type, "bootstrap-datepicker", which renders an input using the bootstrap-datepicker plugin.
Prerequisites
Bootstrap and the plugin library must be installed separately.
In a Meteor app directory, enter:
$ meteor add twbs:bootstrap $ meteor add rajit:bootstrap3-datepicker $ meteor add aldeed:autoform
Installation
In a Meteor app directory, enter:
$ meteor add aldeed:autoform-bs-datepicker
Usage
Specify "bootstrap-datepicker" for the type
attribute of any input. This can be done in a number of ways:
In the schema, which will then work with a quickForm
or afQuickFields
:
1{ 2 date: { 3 type: Date, 4 autoform: { 5 type: "bootstrap-datepicker", 6 datePickerOptions: { 7 autoclose: true 8 } 9 } 10 } 11}
Options for the bs-datepicker plugin can be found here.
Or on the afFieldInput
component or any component that passes along attributes to afFieldInput
:
1{{> afQuickField name="typeTest" type="bootstrap-datepicker"}} 2 3{{> afFormGroup name="typeTest" type="bootstrap-datepicker"}} 4 5{{> afFieldInput name="typeTest" type="bootstrap-datepicker"}}
Automatic Type Conversions
This input type is intended to be used with type: Date
schema keys, but it also works with other schema types. Here's a list:
Date
: Value is stored as aDate
object representing midnight in the UTC timezone on the morning of the selected date.String
: Value is stored as a string representation of the selected date in ISO format, e.g., "2014-11-25".Number
: Value is stored as the result of callinggetTime()
on theDate
object (representing midnight in the UTC timezone on the morning of the selected date).Array
: If the schema expects an array ofDate
orString
orNumber
, the value is converted to a one-item array and stored.
To provide bootstrap-datepicker options, set a datePickerOptions
attribute equal to a helper that returns the options object. Most of the data-date
attributes that the plugin recognizes should also work.
Customizing Appearance
To easily add an input group add-on after the field, just provide the classes for the span in a buttonClasses
attribute:
1{{> afFieldInput name="typeTest" type="bootstrap-datepicker" buttonClasses="glyphicon glyphicon-calendar"}}
If you want to customize the appearance of the input more, for example to use input group add-ons both before and after the field, use the aldeed:template-extension package to replace the "afBootstrapDatepicker" template, like this:
1<template name="dpReplacement"> 2 <div class='input-group date'> 3 <input type="text" value="" {{atts}}/> 4 <span class="input-group-addon"> 5 <span class="glyphicon glyphicon-calendar"></span> 6 </span> 7 </div> 8</template>
1Template.dpReplacement.replaces("afBootstrapDatepicker");
Demo
Contributing
Anyone is welcome to contribute. Fork, make your changes, and then submit a pull request.