Example #1
0
        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);
        },
Example #2
0
        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);
        },