|
|
@@ -10,36 +10,35 @@ const FilmStrip = {
|
|
10
|
10
|
* emit/fire {UIEvents} (such as {UIEvents.TOGGLED_FILM_STRIP}).
|
|
11
|
11
|
*/
|
|
12
|
12
|
init (eventEmitter) {
|
|
|
13
|
+ this.iconMenuDownClassName = 'icon-menu-down';
|
|
|
14
|
+ this.iconMenuUpClassName = 'icon-menu-up';
|
|
13
|
15
|
this.filmStrip = $('#remoteVideos');
|
|
14
|
16
|
this.eventEmitter = eventEmitter;
|
|
15
|
17
|
this.filmStripIsVisible = true;
|
|
16
|
|
- this.renderFilmstripToolbar();
|
|
17
|
|
- this.activateHideButton();
|
|
|
18
|
+ this._initFilmStripToolbar();
|
|
|
19
|
+ this.registerListeners();
|
|
18
|
20
|
},
|
|
19
|
21
|
|
|
20
|
22
|
/**
|
|
21
|
|
- * Attach 'click' listener to "hide filmstrip" button
|
|
|
23
|
+ * Initializes the filmstrip toolbar
|
|
22
|
24
|
*/
|
|
23
|
|
- activateHideButton () {
|
|
24
|
|
- $('#videospace').on('click', '#hideVideoToolbar', () => {
|
|
25
|
|
- var icon = document.querySelector('#hideVideoToolbar i');
|
|
|
25
|
+ _initFilmStripToolbar() {
|
|
|
26
|
+ let toolbar = this._generateFilmStripToolbar();
|
|
26
|
27
|
|
|
27
|
|
- this.filmStripIsVisible = !this.filmStripIsVisible;
|
|
28
|
|
- this.toggleFilmStrip(this.filmStripIsVisible);
|
|
|
28
|
+ document.querySelector('#videospace')
|
|
|
29
|
+ .insertBefore(toolbar, document.querySelector('#remoteVideos'));
|
|
29
|
30
|
|
|
30
|
|
- icon.classList.remove(
|
|
31
|
|
- this.filmStripIsVisible ? 'icon-menu-up' : 'icon-menu-down');
|
|
32
|
|
- icon.classList.add(
|
|
33
|
|
- this.filmStripIsVisible ? 'icon-menu-down' : 'icon-menu-up');
|
|
34
|
|
- });
|
|
|
31
|
+ let iconSelector = '#hideVideoToolbar i';
|
|
|
32
|
+ this.toggleFilmStripIcon = document.querySelector(iconSelector);
|
|
35
|
33
|
},
|
|
36
|
34
|
|
|
37
|
35
|
/**
|
|
38
|
|
- * Shows toolbar on the right of the filmstrip
|
|
|
36
|
+ * Generates HTML layout for filmstrip toolbar
|
|
|
37
|
+ * @returns {HTMLElement}
|
|
|
38
|
+ * @private
|
|
39
|
39
|
*/
|
|
40
|
|
- renderFilmstripToolbar () {
|
|
41
|
|
- // create toolbar
|
|
42
|
|
- var container = document.createElement('div');
|
|
|
40
|
+ _generateFilmStripToolbar() {
|
|
|
41
|
+ let container = document.createElement('div');
|
|
43
|
42
|
container.className = 'filmstripToolbar';
|
|
44
|
43
|
|
|
45
|
44
|
container.innerHTML = `
|
|
|
@@ -49,9 +48,42 @@ const FilmStrip = {
|
|
49
|
48
|
</button>
|
|
50
|
49
|
`;
|
|
51
|
50
|
|
|
52
|
|
- // show toolbar
|
|
53
|
|
- document.querySelector('#videospace')
|
|
54
|
|
- .insertBefore(container, document.querySelector('#remoteVideos'));
|
|
|
51
|
+ return container;
|
|
|
52
|
+ },
|
|
|
53
|
+
|
|
|
54
|
+ /**
|
|
|
55
|
+ * Attach 'click' listener to "hide filmstrip" button
|
|
|
56
|
+ */
|
|
|
57
|
+ registerListeners() {
|
|
|
58
|
+ $('#videospace').on('click', '#hideVideoToolbar', () => {
|
|
|
59
|
+
|
|
|
60
|
+ this.filmStripIsVisible = !this.filmStripIsVisible;
|
|
|
61
|
+ this.toggleFilmStrip(this.filmStripIsVisible);
|
|
|
62
|
+
|
|
|
63
|
+ if (this.filmStripIsVisible) {
|
|
|
64
|
+ this.showMenuDownIcon();
|
|
|
65
|
+ } else {
|
|
|
66
|
+ this.showMenuUpIcon();
|
|
|
67
|
+ }
|
|
|
68
|
+ });
|
|
|
69
|
+ },
|
|
|
70
|
+
|
|
|
71
|
+ /**
|
|
|
72
|
+ * Changes classes of icon for showing down state
|
|
|
73
|
+ */
|
|
|
74
|
+ showMenuDownIcon() {
|
|
|
75
|
+ let icon = this.toggleFilmStripIcon;
|
|
|
76
|
+ icon.classList.add(this.iconMenuDownClassName);
|
|
|
77
|
+ icon.classList.remove(this.iconMenuUpClassName);
|
|
|
78
|
+ },
|
|
|
79
|
+
|
|
|
80
|
+ /**
|
|
|
81
|
+ * Changes classes of icon for showing up state
|
|
|
82
|
+ */
|
|
|
83
|
+ showMenuUpIcon() {
|
|
|
84
|
+ let icon = this.toggleFilmStripIcon;
|
|
|
85
|
+ icon.classList.add(this.iconMenuUpClassName);
|
|
|
86
|
+ icon.classList.remove(this.iconMenuDownClassName);
|
|
55
|
87
|
},
|
|
56
|
88
|
|
|
57
|
89
|
/**
|
|
|
@@ -62,7 +94,7 @@ const FilmStrip = {
|
|
62
|
94
|
* (i.e. toggled); otherwise, the visibility will be set to the specified
|
|
63
|
95
|
* value.
|
|
64
|
96
|
*/
|
|
65
|
|
- toggleFilmStrip (visible) {
|
|
|
97
|
+ toggleFilmStrip(visible) {
|
|
66
|
98
|
if (typeof visible === 'boolean'
|
|
67
|
99
|
&& this.isFilmStripVisible() == visible) {
|
|
68
|
100
|
return;
|
|
|
@@ -79,18 +111,18 @@ const FilmStrip = {
|
|
79
|
111
|
}
|
|
80
|
112
|
},
|
|
81
|
113
|
|
|
82
|
|
- isFilmStripVisible () {
|
|
|
114
|
+ isFilmStripVisible() {
|
|
83
|
115
|
return !this.filmStrip.hasClass('hidden');
|
|
84
|
116
|
},
|
|
85
|
117
|
|
|
86
|
|
- setupFilmStripOnly () {
|
|
|
118
|
+ setupFilmStripOnly() {
|
|
87
|
119
|
this.filmStrip.css({
|
|
88
|
120
|
padding: "0px 0px 18px 0px",
|
|
89
|
121
|
right: 0
|
|
90
|
122
|
});
|
|
91
|
123
|
},
|
|
92
|
124
|
|
|
93
|
|
- getFilmStripHeight () {
|
|
|
125
|
+ getFilmStripHeight() {
|
|
94
|
126
|
if (this.isFilmStripVisible()) {
|
|
95
|
127
|
return this.filmStrip.outerHeight();
|
|
96
|
128
|
} else {
|
|
|
@@ -98,7 +130,7 @@ const FilmStrip = {
|
|
98
|
130
|
}
|
|
99
|
131
|
},
|
|
100
|
132
|
|
|
101
|
|
- getFilmStripWidth () {
|
|
|
133
|
+ getFilmStripWidth() {
|
|
102
|
134
|
return this.filmStrip.innerWidth()
|
|
103
|
135
|
- parseInt(this.filmStrip.css('paddingLeft'), 10)
|
|
104
|
136
|
- parseInt(this.filmStrip.css('paddingRight'), 10);
|
|
|
@@ -115,7 +147,7 @@ const FilmStrip = {
|
|
115
|
147
|
/**
|
|
116
|
148
|
* Normalizes local and remote thumbnail ratios
|
|
117
|
149
|
*/
|
|
118
|
|
- normalizeThumbnailRatio () {
|
|
|
150
|
+ normalizeThumbnailRatio() {
|
|
119
|
151
|
let remoteHeightRatio = interfaceConfig.REMOTE_THUMBNAIL_RATIO_HEIGHT;
|
|
120
|
152
|
let remoteWidthRatio = interfaceConfig.REMOTE_THUMBNAIL_RATIO_WIDTH;
|
|
121
|
153
|
|
|
|
@@ -251,7 +283,7 @@ const FilmStrip = {
|
|
251
|
283
|
};
|
|
252
|
284
|
},
|
|
253
|
285
|
|
|
254
|
|
- resizeThumbnails (local, remote,
|
|
|
286
|
+ resizeThumbnails(local, remote,
|
|
255
|
287
|
animate = false, forceUpdate = false) {
|
|
256
|
288
|
|
|
257
|
289
|
return new Promise(resolve => {
|
|
|
@@ -289,7 +321,7 @@ const FilmStrip = {
|
|
289
|
321
|
});
|
|
290
|
322
|
},
|
|
291
|
323
|
|
|
292
|
|
- getThumbs (only_visible = false) {
|
|
|
324
|
+ getThumbs(only_visible = false) {
|
|
293
|
325
|
let selector = 'span';
|
|
294
|
326
|
if (only_visible) {
|
|
295
|
327
|
selector += ':visible';
|