Test Setup Failed
Push — master ( e98e25...a896f1 )
by
unknown
03:45
created

line-items-view.js ➔ ... ➔ _.bind   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
nop 0
1
define(function(require) {
2
    'use strict';
3
4
    var _ = require('underscore');
5
    var BaseView = require('oroui/js/app/views/base/view');
6
    var mediator = require('oroui/js/mediator');
7
    var LineItemView = require('oroshoppinglist/js/app/views/line-item-view');
8
9
    var LineItemsView;
10
11
    LineItemsView = BaseView.extend({
12
        lineItems: [],
13
14
        initialize: function() {
15
            this.initLayout().done(_.bind(this.handleLayoutInit, this));
16
17
            mediator.setHandler('get-line-items', _.bind(function() {
18
                return this.lineItems;
19
            }, this));
20
        },
21
22
        /**
23
         * Doing something after loading child components
24
         */
25
        handleLayoutInit: function(items) {
26
            this.lineItems = [];
27
            _.each(items, function(item) {
28
                if (item.view instanceof LineItemView) {
29
                    this.lineItems.push(item.view);
30
                    item.view.on('unit-changed', _.bind(this.unitChanged, this));
31
                }
32
            }, this);
33
34
            mediator.trigger('line-items-init', this.lineItems);
35
        },
36
37
        unitChanged: function(data) {
38
            _.each(this.lineItems, function(lineItem) {
39
                if (lineItem.lineItemId !== data.lineItemId &&
40
                    lineItem.model.get('id') === data.product &&
41
                    lineItem.model.get('unit') === data.unit
42
                ) {
43
                    mediator.execute('redirectTo', {url: window.location.href});
44
                }
45
            });
46
        }
47
    });
48
49
    return LineItemsView;
50
});
51