Example #1
0
    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
        });
    });
Example #2
0
 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);
 };
Example #3
0
 omitItem(item) {
     this.items.remove(item);
     if (_.isFunction(this.opts.omitItem)) {
         this.opts.omitItem(item);
     }
     mediator.emit('ui:omit', {
         targetGroup: this
     });
 }
Example #4
0
    pasteItem() {
        var sourceItem = copiedArticle.get(true);

        if (!sourceItem) { return; }

        mediator.emit('drop', {
            sourceItem: sourceItem.article.get(),
            sourceGroup: sourceItem.group
        }, this, this);
    }
Example #5
0
        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);
                }
            }
        };
Example #6
0
 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.');
             }
         }
     }
 });
Example #7
0
 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);
 };
Example #8
0
 ).then(() => mediator.emit('front:loaded', this));
Example #9
0
 setTimeout(() => mediator.emit('test:lastmodified'), 20);