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

line-items-view.js ➔ define   A

Complexity

Conditions 1
Paths 3

Size

Total Lines 50

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 3
dl 0
loc 50
rs 9.3333
c 0
b 0
f 0
nop 1

3 Functions

Rating   Name   Duplication   Size   Complexity  
A line-items-view.js ➔ ... ➔ BaseView.extend.handleLayoutInit 0 11 1
A line-items-view.js ➔ ... ➔ BaseView.extend.unitChanged 0 10 1
A line-items-view.js ➔ ... ➔ BaseView.extend.initialize 0 7 1
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