it('handles scopes', function () { var counters = { one: 0, two: 0 }; mediator.on('one', function () { counters.one += 1; }); var scope1 = mediator.scope(); scope1.on('one', function () { counters.one += 1; }); scope1.on('two', function () { counters.two += 1; }); var scope2 = mediator.scope(); scope2.on('one', function () { counters.one += 1; }); scope2.on('two', function () { counters.two += 1; }); mediator.emit('one'); expect(counters).toEqual({ one: 3, two: 0 }); mediator.emit('two'); expect(counters).toEqual({ one: 3, two: 2 }); scope1.dispose(); mediator.emit('one'); expect(counters).toEqual({ one: 5, two: 2 }); mediator.emit('two'); expect(counters).toEqual({ one: 5, two: 3 }); scope2.dispose(); mediator.emit('one'); expect(counters).toEqual({ one: 6, two: 3 }); });
front._resolveCollection = function (id) { var collection = allCollections[id]; collection.eachArticle(function (article) { article.props.webUrl(article._description.article); }); deferreds[id].deferred.resolve(); mediator.emit('collection:populate', deferreds[id].collection); };
omitItem(item) { this.items.remove(item); if (_.isFunction(this.opts.omitItem)) { this.opts.omitItem(item); } mediator.emit('ui:omit', { targetGroup: this }); }
pasteItem() { var sourceItem = copiedArticle.get(true); if (!sourceItem) { return; } mediator.emit('drop', { sourceItem: sourceItem.article.get(), sourceGroup: sourceItem.group }, this, this); }
parseResponse = function(resp) { var lastPressed; if (detectPressFailureCount === count && resp.status === 200) { lastPressed = new Date(resp.responseText); if (_.isDate(lastPressed)) { mediator.emit('presser:lastupdate', front, lastPressed); } } };
this.listenOn(mediator, 'presser:lastupdate', (front, date) => { if (front === this.front()) { this.frontAge(humanTime(date)); if (this.baseModel.state().defaults.env !== 'dev') { var stale = _.some(this.collections(), collection => { let update = new Date(collection.state.lastUpdated()); return _.isDate(update) ? update > date : false; }); if (stale) { mediator.emit('presser:stale', 'Sorry, the latest edit to the front \'' + front + '\' hasn\'t gone live.'); } } } });
front._addArticle = function (id, article) { var collection = allCollections[id]; appendArticles(collection._items, [article], front, true); deferreds[id].deferred = new $.Deferred(); mediator.emit('collection:populate', collection); };
).then(() => mediator.emit('front:loaded', this));
setTimeout(() => mediator.emit('test:lastmodified'), 20);