Giter Site home page Giter Site logo

ember-calendar-builder's Introduction

Ember-calendar-builder

This is still very much a work in progress!

This README outlines the details of collaborating on this Ember addon.

Installation

  • git clone this repository
  • npm install
  • bower install

Running

Running Tests

  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit http://www.ember-cli.com/.

Usage

  • To use the events functionality each event must be an Ember object with a beginTime and endTime, each as date attributes.

  • To get started create a controller

import Ember from 'ember';
import CalendarMixin from 'ember-calendar-builder/mixins/calendar-mixin';

export default Ember.Controller.extend(CalendarMixin, {
  calendarDate: '2000-01-01',
  someOptions: { hasNewEventButton: true },

  actions: {
    newEvent: function (day) {
      var event = this.store.createRecord('event', {
        beginTime: day.date.toDate(),
        endTime: day.date.toDate(),
        name: "example event"
      });
      this.get('events').pushObject(event);
    }
  }

});
  • There is lots of important specifics in this controller!

  • Not crazy about requiring that mixin.

  • The component you make will look a little something like this.

{{calendar-builder 
  calendar=calendar
  options=someOptions 
  newEvent="newEvent"
}}
  • You must pass in calendar. The calendar object is initialized in the mixin, so it lives in the controller. Therefor you need to give the component access this way.

  • The date ?

  • The route leading to your controller might look something like this.

import Ember from 'ember';

export default Ember.Route.extend({

  queryParams: {
    currentMonth: {
      refreshModel: true
    }
  },

  model: function () {
    return this.store.find('event');
  },

  setupController: function (controller, model) {
    // the name of this paramter is important
    controller.set('calendarEvents', model);
  }
});

ember-calendar-builder's People

Contributors

ember-tomster avatar pdougall1 avatar

Watchers

 avatar

Forkers

kategengler

ember-calendar-builder's Issues

guard against duplicate events being added

Currently there is no way to stop calendar from adding repeat event values. This should take either a string representing an attribute on the event being added to the calendar, or a function that will return a value that must be unique on every event. The function would take the event as its only parameter.

This should happen in Calendar. The object should keep a collection of values that must be unique by. Each item being added to the calendar should have the "unique by" value added to the collection. If an event being added to the collection has a matching "unique by" value in the collection the event should not be added. Each item that gets removed from the calendar should have the "unique by" value removed.

Potentially the unique by collection should be an object to facilitate quick lookup.

Must use Ember object for the Day

Ember 1.8 introduces a resetriction that you can only change properties of an object using "set" if it is being observed. This introduces a bug because the day is bound often in the templates.

Make Day an ember object

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.