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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
define([
'backbone.marionette',
'templates/source-viewer',
'source-viewer/more-actions',
'source-viewer/measures-overlay'
], function (Marionette, Templates, MoreActionsView, MeasuresOverlay) {
var $ = jQuery,
API_FAVORITE = baseUrl + '/api/favourites';
return Marionette.ItemView.extend({
template: Templates['source-viewer-header'],
events: function () {
return {
'click .js-favorite': 'toggleFavorite',
'click .js-actions': 'showMoreActions',
'click .js-permalink': 'getPermalink'
};
},
toggleFavorite: function () {
var that = this;
if (this.model.get('fav')) {
$.ajax({
url: API_FAVORITE + '/' + this.model.get('key'),
type: 'DELETE'
}).done(function () {
that.model.set('fav', false);
that.render();
});
}
else {
$.ajax({
url: API_FAVORITE,
type: 'POST',
data: {
key: this.model.get('key')
}
}).done(function () {
that.model.set('fav', true);
that.render();
});
}
},
showMoreActions: function (e) {
e.stopPropagation();
$('body').click();
var view = new MoreActionsView({ parent: this });
view.render().$el.appendTo(this.$el);
},
getPermalink: function () {
var query = 'id=' + encodeURIComponent(this.model.get('key')),
windowParams = 'resizable=1,scrollbars=1,status=1';
console.log(this.options.viewer);
if (this.options.viewer.highlightedLine) {
query = query + '&line=' + this.options.viewer.highlightedLine;
}
window.open(baseUrl + '/component/index?' + query, this.model.get('name'), windowParams);
},
showRawSources: function () {
var url = baseUrl + '/api/sources/raw?key=' + encodeURIComponent(this.model.get('key')),
windowParams = 'resizable=1,scrollbars=1,status=1';
window.open(url, this.model.get('name'), windowParams);
},
showMeasures: function () {
new MeasuresOverlay({
model: this.model,
large: true
}).render();
}
});
});
|