1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
define([
'components/common/modal-form',
'apps/metrics/metrics',
'./templates'
], function (ModalForm, Metrics) {
return ModalForm.extend({
template: Templates['custom-measures-form'],
initialize: function () {
this.metrics = new Metrics();
this.listenTo(this.metrics, 'reset', this.render);
this.metrics.fetch({ reset: true });
},
onRender: function () {
this._super();
this.$('[data-toggle="tooltip"]').tooltip({ container: 'body', placement: 'bottom' });
this.$('#create-custom-measure-metric').select2({
width: '250px',
minimumResultsForSearch: 20
});
},
onDestroy: function () {
this._super();
this.$('[data-toggle="tooltip"]').tooltip('destroy');
},
onFormSubmit: function (e) {
this._super(e);
this.sendRequest();
},
getAvailableMetrics: function () {
var takenMetrics = this.collection.getTakenMetrics();
return this.metrics.toJSON().filter(function (metric) {
return takenMetrics.indexOf(metric.id) === -1;
});
},
serializeData: function () {
var metrics = this.getAvailableMetrics(),
isNew = !this.model;
return _.extend(this._super(), {
metrics: metrics,
canCreateMetric: !isNew || (isNew && metrics.length > 0)
});
}
});
});
|