aldeed:autoform-bs-datepicker

v1.2.0Published 5 years ago

This package has not had recent updates. Please investigate it's current state before committing to using it in your project.

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 a Date 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 calling getTime() on the Date object (representing midnight in the UTC timezone on the morning of the selected date).
  • Array: If the schema expects an array of Date or String or Number, 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

Live

Contributing

Anyone is welcome to contribute. Fork, make your changes, and then submit a pull request.

Support via Gittip