Browse Source

Add label support for TURN service

turnservice-support
Simon Eisenmann 10 years ago
parent
commit
6db1a1300c
  1. 2
      dependencies.tsv
  2. 1
      static/js/app.js
  3. 40
      static/js/services/turndata.js
  4. 7
      static/partials/settings.html

2
dependencies.tsv

@ -10,4 +10,4 @@ github.com/strukturag/goacceptlanguageparser git 68066e68c2940059aadc6e19661610c
github.com/strukturag/httputils git afbf05c71ac03ee7989c96d033a9571ba4ded468 2014-07-02T01:35:33Z github.com/strukturag/httputils git afbf05c71ac03ee7989c96d033a9571ba4ded468 2014-07-02T01:35:33Z
github.com/strukturag/phoenix git 31b7f25f4815e6e0b8e7c4010f6e9a71c4165b19 2016-06-01T11:34:58Z github.com/strukturag/phoenix git 31b7f25f4815e6e0b8e7c4010f6e9a71c4165b19 2016-06-01T11:34:58Z
github.com/strukturag/sloth git 74a8bcf67368de59baafe5d3e17aee9875564cfc 2015-04-22T08:59:42Z github.com/strukturag/sloth git 74a8bcf67368de59baafe5d3e17aee9875564cfc 2015-04-22T08:59:42Z
github.com/strukturag/spreed-turnservicecli git 51f45889f0c6a4a7d406c29b9cc345b07a1a94ab 2016-08-26T13:54:01Z github.com/strukturag/spreed-turnservicecli git dcbf3f8eab1c36d4d0e4c6f9b6dce4f060543224 2016-08-29T09:55:47Z

1 github.com/dlintw/goconf git dcc070983490608a14480e3bf943bad464785df5 2012-02-28T08:26:10Z
10 github.com/strukturag/httputils git afbf05c71ac03ee7989c96d033a9571ba4ded468 2014-07-02T01:35:33Z
11 github.com/strukturag/phoenix git 31b7f25f4815e6e0b8e7c4010f6e9a71c4165b19 2016-06-01T11:34:58Z
12 github.com/strukturag/sloth git 74a8bcf67368de59baafe5d3e17aee9875564cfc 2015-04-22T08:59:42Z
13 github.com/strukturag/spreed-turnservicecli git 51f45889f0c6a4a7d406c29b9cc345b07a1a94ab dcbf3f8eab1c36d4d0e4c6f9b6dce4f060543224 2016-08-26T13:54:01Z 2016-08-29T09:55:47Z

1
static/js/app.js

@ -267,6 +267,7 @@ define([
}()); }());
console.info("Selected language: "+lang); console.info("Selected language: "+lang);
app.constant("translationLanguage", {lang: lang});
// Set language and load default translations. // Set language and load default translations.
launcher.translationData.lang = lang; launcher.translationData.lang = lang;

40
static/js/services/turndata.js

@ -26,7 +26,7 @@ define(["jquery"], function($) {
var refreshPercentile = 90; // Percent of the TTL when TURN credentials should be refreshed. var refreshPercentile = 90; // Percent of the TTL when TURN credentials should be refreshed.
// turnData // turnData
return ["$timeout", "$http", "api", "randomGen", "appData", function($timeout, $http, api, randomGen, appData) { return ["$timeout", "$http", "api", "randomGen", "appData", "translationLanguage", function($timeout, $http, api, randomGen, appData, translationLanguage) {
var ttlTimeout = null; var ttlTimeout = null;
var geoRefresh = null; var geoRefresh = null;
var geoPreferred = null; var geoPreferred = null;
@ -44,24 +44,52 @@ define(["jquery"], function($) {
}; };
if (turn && turn.servers) { if (turn && turn.servers) {
// Multiple options, need to sort and use settings. // Multiple options, need to sort and use settings.
var i;
if (!turn.serverMap) { if (!turn.serverMap) {
var servers = {}; var servers = {};
var serversSelectable = [];
// Sort for prio.
turn.servers.sort(function(a, b) { turn.servers.sort(function(a, b) {
servers[a.id] = a; servers[a.id] = a;
servers[b.id] = b; servers[b.id] = b;
return (a.prio > b.prio) ? 1 : ((a.prio < b.prio) ? -1 : 0); return (a.prio > b.prio) ? 1 : ((a.prio < b.prio) ? -1 : 0);
}); });
turn.first = turn.servers[0]; turn.first = turn.servers[0];
if (turn.geo_uri) { // Create selectable servers.
turn.servers.unshift({ var lang = translationLanguage.lang;
"id": "auto" for (i=0; i<turn.servers.length; i++) {
var label = turn.servers[i].label;
if (turn.servers[i].i18n && turn.servers[i].i18n[lang]) {
label = turn.servers[i].label = turn.servers[i].i18n[lang];
}
if (label === "hidden") {
continue;
}
if (!label) {
// Use id as label.
label = turn.servers[i].label = turn.servers[i].id;
}
if (!label) {
// Use index as label.
label = turn.servers[i].label = ''+i;
}
serversSelectable.push(turn.servers[i]);
}
// Add auto zone if geo URI and available zones.
if (turn.geo_uri && turn.servers.length > 0) {
serversSelectable.unshift({
"id": "auto",
"label": "auto"
}) })
} }
// Make created data available.
turn.serverMap = servers; turn.serverMap = servers;
turn.serversSelectable = serversSelectable;
} }
var urls; var urls;
if (turn.preferred) { if (turn.preferred) {
for (var i=0; i<turn.preferred.length; i++) { for (i=0; i<turn.preferred.length; i++) {
if (turn.serverMap.hasOwnProperty(turn.preferred[i])) { if (turn.serverMap.hasOwnProperty(turn.preferred[i])) {
urls = turn.serverMap[turn.preferred[i]].urns; urls = turn.serverMap[turn.preferred[i]].urns;
break; break;
@ -79,7 +107,7 @@ define(["jquery"], function($) {
// Unknown data. // Unknown data.
turnData.urls = []; turnData.urls = [];
} }
console.log("TURN servers selected: ", turnData.urls, turn.preferred || null); console.log("TURN servers selected: ", turnData.urls, turnData.ttl, turn.preferred || null);
service.e.triggerHandler("apply", [turnData]); service.e.triggerHandler("apply", [turnData]);
return turnData; return turnData;

7
static/partials/settings.html

@ -239,11 +239,10 @@
</div> </div>
</div> </div>
<div class="form-group" ng-show="turnData.data.servers"> <div class="form-group" ng-show="turnData.data.serversSelectable">
<label class="col-xs-4 control-label">{{_('TURN region')}}</label> <label class="col-xs-4 control-label">{{_('TURN')}}</label>
<div class="col-xs-8"> <div class="col-xs-8">
<select class="form-control" ng-model="user.settings.turn.selectedRegion" ng-options="region.id as region.id for region in turnData.data.servers"></select> <select class="form-control" ng-model="user.settings.turn.selectedRegion" ng-options="region.id as region.label for region in turnData.data.serversSelectable"></select>
<span class="help-block">{{_('Geographic region for TURN service.')}}</span>
</div> </div>
</div> </div>

Loading…
Cancel
Save