|
1 | 1 | # Resource Calendar |
2 | | -## Objective |
3 | 2 |
|
| 3 | +## Status |
| 4 | +Working framework in place, currently ~75% feature-complete for the first calendar view (view one week for each |
| 5 | +resource associated with a calendar, time slots arranged vertically). At this point you can: |
| 6 | +* Drag one of the predefined meeting types onto any of the resource calendars |
| 7 | +* Drag meetings within and between resources |
| 8 | +* Click on meetings to open an event-editing box |
| 9 | +* drag the bottom edge of a meeting to change its overall duration |
| 10 | + |
| 11 | +## Objective |
4 | 12 | To create an alternative to the FullCalendar jquery plugin. Improvements over FullCalendar include: |
5 | 13 | * Tableless layout |
6 | 14 | * Overridable rendering functions |
7 | 15 | * Events become independent objects that can be transferred between Calendars |
8 | 16 | * A new Resource container class, giving a hierarchy of Calendar -> one or more Resources -> zero or more Events |
9 | 17 | * Extensible Policies - locked events, nudge later events on insert, inter-event gaps |
| 18 | + |
| 19 | +## Implementation Notes |
| 20 | +Some existing code will be refactored to group customizable functionality in easy to find locations. To a large extent |
| 21 | +in the code that has been implemented so far, anything that is application-specific has been abstracted out, but |
| 22 | +this is a work in progress. |
| 23 | + |
| 24 | +There is a dependency on "moment.js", a javascript Date extension. Since this project is heavily dependent on date |
| 25 | +manipulation it has been included at this point in order to simplify these operations; if it turns out to be under-utilized, |
| 26 | +it shall be eliminated. |
| 27 | + |
| 28 | +Examples of customizability include: |
| 29 | +* Rendering of calendars and events is carried out by doT javascript template functions. These can be found |
| 30 | +in the templates directory; the raw doT template code is shown in comments. These are compiled into js functions using the |
| 31 | +cut and paste compiler on http://olado.github.io/doT/. |
| 32 | +* The functions used to render the calendars and events are defined in the rc_calendar default settings at the |
| 33 | +top of rc_calendar.js, but can be overridden by options passed into the rc_calendar constructor |
| 34 | +* The resources associated with the calendar are defined in <resource> tags in the html code (see test.html). I'm not |
| 35 | +sure this is good practice, so may replace it with an alternative method |
| 36 | +* The resource definitions include a reference to a js validation function, and a set of parameters that is passed to the |
| 37 | +validator when an event is dropped onto the resource. The example function in test.html shows how the data parameters can |
| 38 | +be used to perform bounds checking on event attributes, without writing additional code |
| 39 | +* The test system uses Pine Notifications to provide system notifications and for editing the event attributes. |
| 40 | +This is abstracted through functions in rc_utitlies.js, allowing another notification system to be used if prefered |
0 commit comments