| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- var FC = $.fullCalendar = {
- version: "<%= version %>",
- // When introducing internal API incompatibilities (where fullcalendar plugins would break),
- // the minor version of the calendar should be upped (ex: 2.7.2 -> 2.8.0)
- // and the below integer should be incremented.
- internalApiVersion: 9
- };
- var fcViews = FC.views = {};
- $.fn.fullCalendar = function(options) {
- var args = Array.prototype.slice.call(arguments, 1); // for a possible method call
- var res = this; // what this function will return (this jQuery object by default)
- this.each(function(i, _element) { // loop each DOM element involved
- var element = $(_element);
- var calendar = element.data('fullCalendar'); // get the existing calendar object (if any)
- var singleRes; // the returned value of this single method call
- // a method call
- if (typeof options === 'string') {
- if (calendar && $.isFunction(calendar[options])) {
- singleRes = calendar[options].apply(calendar, args);
- if (!i) {
- res = singleRes; // record the first method call result
- }
- if (options === 'destroy') { // for the destroy method, must remove Calendar object data
- element.removeData('fullCalendar');
- }
- }
- }
- // a new calendar initialization
- else if (!calendar) { // don't initialize twice
- calendar = new Calendar(element, options);
- element.data('fullCalendar', calendar);
- calendar.render();
- }
- });
- return res;
- };
- var complexOptions = [ // names of options that are objects whose properties should be combined
- 'header',
- 'footer',
- 'buttonText',
- 'buttonIcons',
- 'themeButtonIcons'
- ];
- // Merges an array of option objects into a single object
- function mergeOptions(optionObjs) {
- return mergeProps(optionObjs, complexOptions);
- }
|