initialize: function(options) { if (!options) { options = {}; } if (options.eventsOptions) { _.defaults(options.eventsOptions, this.options.eventsOptions); } this.options = _.defaults(options || {}, this.options); // init event collection this.collection = this.collection || new EventCollection(); this.collection.setCalendar(this.options.calendar); this.collection.subordinate = this.options.eventsOptions.subordinate; // set options for new events this.options.newEventEditable = this.options.eventsOptions.editable; this.options.newEventRemovable = this.options.eventsOptions.removable; if (this.options.eventsOptions.recoverView) { // try to retrieve the last view for this calendar var viewKey = this.getStorageKey('defaultView'); var dateKey = this.getStorageKey('defaultDate'); var defaultView = persistentStorage.getItem(viewKey); var defaultDate = persistentStorage.getItem(dateKey); if (defaultView) { this.options.eventsOptions.defaultView = defaultView; } if (defaultDate && !isNaN(defaultDate)) { this.options.eventsOptions.defaultDate = moment.unix(defaultDate); } } // subscribe to event collection events this.listenTo(this.collection, 'add', this.onEventAdded); this.listenTo(this.collection, 'change', this.onEventChanged); this.listenTo(this.collection, 'destroy', this.onEventDeleted); this.colorManager = new ColorManager(this.options.colorManagerOptions); this.pluginManager = new PluginManager(this); this.pluginManager.enable(GuestsPlugin); },
initialize: function(options) { _.extend(this, _.pick(options, 'addButtonHint', 'multiselectResetButtonLabel', 'stateViewElement')); this.template = this.getTemplateFunction(); this.filters = _.extend({}, options.filters); this.storageKey = options.filtersStateStorageKey || config.filtersStateStorageKey || DEFAULT_STORAGE_KEY; if (options.forcedViewMode) { this.viewMode = options.forceViewMode; } else if (this.renderMode === 'toggle-mode') { this.viewMode = FiltersManager.STATE_VIEW_MODE; } else { this.viewMode = persistentStorage.getItem(this.storageKey); if (this.viewMode === null) { this.viewMode = options.defaultFiltersViewMode || FiltersManager.STATE_VIEW_MODE; } } var filterListeners = { update: this._onFilterUpdated, change: this._onFilterChanged, disable: this._onFilterDisabled, showCriteria: this._onFilterShowCriteria }; if (tools.isMobile()) { var outsideActionEvents = 'click.' + this.cid + ' shown.bs.dropdown.' + this.cid; filterListeners.updateCriteriaClick = this._onUpdateCriteriaClick; $('body').on(outsideActionEvents, this._onOutsideActionEvent.bind(this)); } _.each(this.filters, function(filter) { if (filter.wrappable) { _.extend(filter, filterWrapper); } this.listenTo(filter, filterListeners); }, this); if (this.isFiltersStateViewNeeded(options)) { var filtersStateView = new FiltersStateView({ el: options.filtersStateElement, filters: options.filters, useAnimationOnInit: options.useFiltersStateAnimationOnInit }); this.subview('filters-state', filtersStateView); this.listenTo(filtersStateView, 'clicked', function() { this.setViewMode(FiltersManager.MANAGE_VIEW_MODE); }); } FiltersManager.__super__.initialize.apply(this, arguments); },