Skip to content

AGoodId/ember-cli-full-calendar

 
 

Repository files navigation

Ember CLI Full Calendar

Build Status Code Climate

This is a Ember wrapper for jQuery FullCalendar plugin.

Some of the common properties, methods have been hooked up. The rest will be added as required.

Installation

First, install the npm package:

npm install --save-dev ember-cli-full-calendar

Next, setup the component:

ember g full-calendar

Usage

Use the full-calendar component -

{{full-calendar events=events}}

Supported Options

Sending Actions to calendar

For the actions to work we need to register a property that will allow us to access FullCalendar element from our controller.

// app/templates/application.hbs
{{full-calendar
events=events
defaultView="agendaWeek"
allDaySlot=false
register-as="accessToFullCalendar"
nowIndicator=true}}

Sending actions from controller to FullCalendar:

// app/controllers/application.js
export default Ember.Controller.extend({
  
  accessToFullCalendar: null,
  
  actions: {
    prev: function() {
      this.get('accessToFullCalendar').send('prev');
    }
  }
});

Timezone

Agenda Options

Current Date

Current Date Actions

  • prev
    this.get('accessToFullCalendar').send('prev')

  • next
    this.get('accessToFullCalendar').send('next')

  • prevYear
    this.get('accessToFullCalendar').send('prevYear')

  • nextYear
    this.get('accessToFullCalendar').send('nextYear')

  • gotoDate
    this.get('accessToFullCalendar').send('gotoDate', new Date(2014, 1, 1))

  • incrementDate
    this.get('accessToFullCalendar').send('incrementDate', {months:1})

Please check dummy app in tests for usage example.

Event Rendering

Event Rendering Actions

Supported Callbacks

Setting Up Callbacks

All supported callbacks can be captured using Ember actions.

Add the component to your template file.

// app/templates/application.hbs
{{full-calendar events=model.events eventClick=(action "clicked") }}

Create the events.

// app/routes/application.js
import Ember from 'ember';

export default Ember.Route.extend({
	model: function() {
		return {
			events: Ember.A([{
				title: "Hackathon", start: Date.now()
			}])
		};
	}
});

Register for the action in your controller.

// app/controllers/application.js
import Ember from 'ember';

export default Ember.Controller.extend({
	actions: {
		clicked(event, jsEvent, view){
			console.log(`${event.title} was clicked!`)
			// Prints: Hackathon was clicked!
		}
	}
});

I18n

Include the language file.

// ember-cli-build.js
module.exports = function(defaults) {
  var app = ...

  // Include fullcalendar language file
  // Full list of available languages: https://github.com/fullcalendar/fullcalendar/tree/master/dist/lang
  app.import('bower_components/fullcalendar/dist/lang/es.js');
};

Set fullcalendar language

// app/templates/application.hbs
{{full-calendar events=model.events lang="es"}}

License

Available under the MIT License.

About

An Ember wrapper for jQuery FullCalendar

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 84.4%
  • HTML 15.6%