Skip to content

Commit 75ae4af

Browse files
committed
Merged mick into master
2 parents 3bae15d + 6c0cb7e commit 75ae4af

1 file changed

Lines changed: 76 additions & 48 deletions

File tree

static/js/networks.js

Lines changed: 76 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,25 @@ $(function() {
1515
});
1616

1717
function makeConnectButton() {
18-
return '<p data-placement="top" data-toggle="tooltip" title="Connect">' +
19-
'<button class="btn btn-danger btn-xs pull-right connect-encoder-button">' +
20-
'<span class="glyphicon glyphicon-ok-circle"></span>' +
21-
'</button>' +
22-
'</p>';
18+
var wrapper = $('<p data-placement="top" data-toggle="tooltip" title="Connect">' +
19+
'<button class="btn btn-danger btn-xs pull-right connect-encoder-button">' +
20+
'<span class="glyphicon glyphicon-ok-circle"></span>' +
21+
'</button>' +
22+
'</p>');
23+
24+
addConnectListener(wrapper.find('.connect-encoder-button'));
25+
return wrapper;
2326
};
2427

2528
function makeDisconnectButton() {
26-
return '<p data-placement="top" data-toggle="tooltip" title="Disconnect">' +
27-
'<button class="btn btn-danger btn-xs pull-right disconnect-encoder-button">' +
28-
'<span class="glyphicon glyphicon-ban-circle"></span>' +
29-
'</button>' +
30-
'</p>';
29+
var wrapper = $('<p data-placement="top" data-toggle="tooltip" title="Disconnect">' +
30+
'<button class="btn btn-danger btn-xs pull-right disconnect-encoder-button">' +
31+
'<span class="glyphicon glyphicon-ban-circle"></span>' +
32+
'</button>' +
33+
'</p>');
34+
35+
addDisconnectListener(wrapper.find('.disconnect-encoder-button'));
36+
return wrapper;
3137
};
3238

3339
function setEncoderRowState(encoderRow, encoderState) {
@@ -37,24 +43,24 @@ function setEncoderRowState(encoderRow, encoderState) {
3743

3844
// connected = 0, connecting = 1, auth failure = 2, faulted = 3, disconnected = 4
3945
function changeEncoderState(encoder, encoderState) {
40-
46+
console.log('Encoder state = ' + encoderState);
4147
var row = $('.encoder-row[data-encoder-id=\'' + encoder.ID + '\']');
42-
4348
if (row == null) {
49+
console.log('ROW WAS NULL');
4450
return;
4551
}
4652

4753
setEncoderRowState(row, encoderState);
4854
var connectColumn = row.children('.encoder-connect-row');
4955

5056
if (encoderState === 0) {
51-
connectColumn.html(makeDisconnectButton());
52-
addDisconnectEncoderHandler();
57+
var disconnectButton = makeDisconnectButton();
58+
connectColumn.html(disconnectButton);
5359
} else if (encoderState === 1) {
5460
connectColumn.html('');
5561
} else {
56-
connectColumn.html(makeConnectButton());
57-
addConnectEncoderHandler();
62+
var connectButton = $(makeConnectButton());
63+
connectColumn.html(connectButton);
5864
}
5965
};
6066

@@ -95,49 +101,58 @@ function captionerStateToString(state) {
95101
};
96102

97103
function makeMuteButton() {
98-
return '<p data-placement="top" data-toggle="tooltip" title="Mute">' +
99-
'<button class="btn btn-danger btn-xs mute-captioner-button">' +
100-
'<span class="glyphicon glyphicon-volume-off"></span>' +
101-
'</button>' +
102-
'</p>';
104+
var wrapper = $('<p data-placement="top" data-toggle="tooltip" title="Mute">' +
105+
'<button class="btn btn-danger btn-xs mute-captioner-button">' +
106+
'<span class="glyphicon glyphicon-volume-off"></span>' +
107+
'</button>' +
108+
'</p>');
109+
110+
addMuteCaptionerHandler(wrapper.find('.mute-captioner-button'));
111+
return wrapper;
103112
};
104113

105114
function makeUnmuteButton() {
106-
return '<p data-placement="top" data-toggle="tooltip" title="Unmute">' +
107-
'<button class="btn btn-danger btn-xs unmute-captioner-button">' +
108-
'<span class="glyphicon glyphicon-volume-up"></span>' +
109-
'</button>' +
110-
'</p>';
115+
var wrapper = $('<p data-placement="top" data-toggle="tooltip" title="Unmute">' +
116+
'<button class="btn btn-danger btn-xs unmute-captioner-button">' +
117+
'<span class="glyphicon glyphicon-volume-up"></span>' +
118+
'</button>' +
119+
'</p>');
120+
121+
addUnmuteCaptionerHandler(wrapper.find('.unmute-captioner-button'));
122+
return wrapper;
111123
};
112124

113125
function addCaptioner(captioner, tableId, state) {
114-
var openRow = '<tr class="captioner-row" id="' + tableId + '" ' +
126+
var row = $('<tr class="captioner-row" id="' + tableId + '" ' +
115127
'data-captioner-ip="' + captioner.IPAddr + '" ' +
116128
'data-captioner-num-conn="' + captioner.NumConn + '" ' +
117-
'data-captioner-network-id="' + captioner.NetworkID + '">';
129+
'data-captioner-network-id="' + captioner.NetworkID + '"></tr>');
118130

119131
var headers = '<th class="col-xl-1 col-lg-1 col-md-1 row-number" scope=row>0</th>' +
120132
'<td class="col-xl-2 col-lg-2 col-md-3">' + captioner.IPAddr + '</td>' +
121133
'<td class="col-xl-2 col-lg-2 col-md-3">' + captioner.NumConn + '</td>' +
122134
'<td class="col-xl-2 col-lg-2 col-md-3 state-row">' + captionerStateToString(state) + '</td>';
123135
// state will always be 0 here. Default to disconnectable/mutable
124-
125-
var muteColumn = '<td class="col-xl-1 col-lg-1 col-md-1 mute-row">' + makeMuteButton() + '</td>';
126-
var disconnect = '<td class="col-xl-1 col-lg-1 col-md-1 disconnect-row">' +
136+
row.append($(headers));
137+
138+
var muteColumn = $('<td class="col-xl-1 col-lg-1 col-md-1 mute-row"></td>');
139+
muteColumn.append(makeMuteButton());
140+
row.append(muteColumn);
141+
142+
var disconnect = $('<td class="col-xl-1 col-lg-1 col-md-1 disconnect-row">' +
127143
'<p data-placement="top" data-toggle="tooltip" title="Disconnect">' +
128144
'<button class="btn btn-danger btn-xs disconnect-captioner-button">' +
129145
'<span class="glyphicon glyphicon-ban-circle"></span>' +
130146
'</button>' +
131147
'</p>' +
132-
'</td>';
133-
134-
var endRow = '</tr>';
135-
var row = $(openRow + headers + muteColumn + disconnect + endRow);
136-
$('#captioner-selection-table > tbody').prepend(row);
148+
'</td>');
149+
150+
addCaptionerDisconnectListener(disconnect.find('.disconnect-captioner-button'));
151+
row.append(disconnect);
152+
153+
$('#captioner-selection-table > tbody').append(row);
137154

138155
recountCaptioners();
139-
addDisconnectCaptionerListeners();
140-
addMuteCaptionerListners();
141156

142157
var wrapper = $('#captioner-list-wrapper');
143158
if (wrapper.is(':hidden')) {
@@ -166,14 +181,12 @@ function changeCaptionerState(captioner, state) {
166181

167182
row.children('.state-row').text(captionerStateToString(state));
168183
row.children('.mute-row').children().replaceWith(makeUnmuteButton());
169-
addUnmuteCaptionerListners();
170184

171185
} else if (state === 3) { // unmuted
172186
var row = $(document.getElementById(tableId));
173187

174188
row.children('.state-row').text(captionerStateToString(state));
175189
row.children('.mute-row').children().replaceWith(makeMuteButton());
176-
addMuteCaptionerListners();
177190
} else {
178191
// NOOP
179192
}
@@ -182,6 +195,9 @@ function changeCaptionerState(captioner, state) {
182195
function startWebSocket() {
183196
socketRocket.start(socketURL).then(function(webSocket) {
184197
webSocket.onNewMessage = function(message) {
198+
console.log('+++++++++++ new ws message +++++++++++');
199+
console.log(message);
200+
console.log('++++++++++++++++++++++++++++++++++++++');
185201
var encoderState = message['encoderState'];
186202
var captionerState = message['captionerState'];
187203

@@ -234,13 +250,15 @@ function addEncoder(encoder) {
234250
}
235251

236252
var body = $('#encoder-selection-table > tbody');
237-
var deleteItem = '<td class="encoder-delete-row">' +
253+
var deleteItem = $('<td class="encoder-delete-row">' +
238254
'<p data-placement="top" data-toggle="tooltip" title="Delete">' +
239255
'<button class="btn btn-danger btn-xs pull-right delete-encoder-button">' +
240256
'<span class="glyphicon glyphicon-trash"></span>' +
241257
'</button>' +
242258
'</p>' +
243-
'</td>';
259+
'</td>');
260+
261+
var disconnectItem = $('<td class="encoder-connect-row">' + makeDisconnectButton() + '</td>');
244262

245263
var count = body.children().length;
246264

@@ -252,10 +270,12 @@ function addEncoder(encoder) {
252270
row.append('<td class="editable" data-name="port" name="port">' + encoder.Port + '</td>');
253271
row.append('<td class="editable" data-name="handle" name="handle">' + encoder.Handle + '</td>');
254272
row.append('<td class="editable" data-name="password" name="password">' + encoder.Password + '</td>');
255-
row.append('<td>' + encoderStateToString(encoder.Status) + '</td>');
256-
row.append('<td class="encoder-connect-row">' + makeConnectButton() + '</td>');
273+
row.append('<td class="encoder-status-row">' + encoderStateToString(1) + '</td>');
274+
row.append(disconnectItem);
257275
row.append(deleteItem);
258276

277+
addDeleteHandler(deleteItem.find('.delete-encoder-button'));
278+
259279
body.append(row);
260280

261281
return true;
@@ -368,8 +388,6 @@ function addAddEncoderHandler() {
368388
data: $.param(data),
369389
}).done(function(encoder) {
370390
if (addEncoder(encoder)) {
371-
addDeleteEncoderHandler();
372-
addDisconnectEncoderHandler();
373391
configureEditing();
374392
recountEncoders();
375393
form.find('input.form-control').val('');
@@ -458,14 +476,20 @@ function addDisconnectListener(object) {
458476
function getCaptionerData(button) {
459477
var row = $(button).closest('tr');
460478
var data = $('#toggle-captioner-mute-form').serializeArray();
479+
461480
data.push({name: 'ipAddress', value: row.attr('data-captioner-ip')});
462481
data.push({name: 'numConn', value: row.attr('data-captioner-num-conn')});
463482
data.push({name: 'networkId', value: row.attr('data-captioner-network-id')});
483+
464484
return data;
465485
};
466486

467487
function addMuteCaptionerListners() {
468-
$('.mute-captioner-button').click(function(event) {
488+
addMuteCaptionerHandler($('.mute-captioner-button'));
489+
};
490+
491+
function addMuteCaptionerHandler(object) {
492+
object.click(function(event) {
469493
event.preventDefault();
470494

471495
$.ajax({
@@ -477,7 +501,11 @@ function addMuteCaptionerListners() {
477501
};
478502

479503
function addUnmuteCaptionerListners() {
480-
$('.unmute-captioner-button').click(function(event) {
504+
$('.unmute-captioner-button')
505+
};
506+
507+
function addUnmuteCaptionerHandler(object) {
508+
object.click(function(event) {
481509
event.preventDefault();
482510

483511
$.ajax({

0 commit comments

Comments
 (0)