diff options
author | Joachim Bauch <bauch@struktur.de> | 2017-07-21 10:22:28 +0300 |
---|---|---|
committer | Joachim Bauch <bauch@struktur.de> | 2017-11-02 13:23:10 +0300 |
commit | e083e7225670443f06bc4bfb7f84b86f98c0fb39 (patch) | |
tree | 6fbb32467003a2914d376d09743255b78a8bd81e | |
parent | 0f3d5926604fad18aeaacd7fa35e0b9c20a8078a (diff) |
Pass all signaling-related settings as JSON object to frontend.
Signed-off-by: Joachim Bauch <bauch@struktur.de>
-rw-r--r-- | js/signaling.js | 22 | ||||
-rw-r--r-- | lib/Controller/PageController.php | 12 | ||||
-rw-r--r-- | templates/index-public.php | 5 | ||||
-rw-r--r-- | templates/index.php | 5 |
4 files changed, 30 insertions, 14 deletions
diff --git a/js/signaling.js b/js/signaling.js index cb598dc98..efaf86762 100644 --- a/js/signaling.js +++ b/js/signaling.js @@ -3,7 +3,8 @@ OCA.SpreedMe = OCA.SpreedMe || {}; - function SignalingBase() { + function SignalingBase(settings) { + this.settings = settings; this.sessionId = ''; this.currentCallToken = null; this.handlers = {}; @@ -110,7 +111,7 @@ }; // Connection to the internal signaling server provided by the app. - function InternalSignaling() { + function InternalSignaling(/*settings*/) { SignalingBase.prototype.constructor.apply(this, arguments); this.spreedArrayConnection = []; @@ -431,7 +432,7 @@ }.bind(this)); }; - function StandaloneSignaling(url) { + function StandaloneSignaling(settings, url) { SignalingBase.prototype.constructor.apply(this, arguments); // Make sure we are using websocket urls. if (url.indexOf("https://") === 0) { @@ -601,7 +602,6 @@ } else { var user = OC.getCurrentUser(); var url = OC.generateUrl("/apps/spreed/signalling/backend"); - var ticket = $("#app").attr("data-signalingticket"); msg = { "type": "hello", "hello": { @@ -610,7 +610,7 @@ "url": OC.getProtocol() + "://" + OC.getHost() + url, "params": { "userid": user.uid, - "ticket": ticket, + "ticket": this.settings.ticket } } } @@ -753,11 +753,17 @@ }; OCA.SpreedMe.createSignalingConnection = function() { - var url = $("#app").attr("data-signalingserver"); + var settings = $("#app #signaling-settings").text(); + if (settings) { + settings = JSON.parse(settings); + } else { + settings = {}; + } + var url = settings['server']; if (url) { - return new StandaloneSignaling(url); + return new StandaloneSignaling(settings, url); } else { - return new InternalSignaling(); + return new InternalSignaling(settings); } }; diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index bcb972f64..c24be0bad 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -162,8 +162,10 @@ class PageController extends Controller { $params = [ 'token' => $token, - 'signaling-server' => $this->config->getSignalingServer(), - 'signaling-ticket' => $this->config->getSignalingTicket($this->userId), + 'signaling-settings' => [ + 'server' => $this->config->getSignalingServer(), + 'ticket' => $this->config->getSignalingTicket($this->userId), + ], ]; $response = new TemplateResponse($this->appName, 'index', $params); $csp = new ContentSecurityPolicy(); @@ -202,8 +204,10 @@ class PageController extends Controller { $params = [ 'token' => $token, - 'signaling-server' => $this->config->getSignalingServer(), - 'signaling-ticket' => $this->config->getSignalingTicket($this->userId), + 'signaling-settings' => [ + 'server' => $this->config->getSignalingServer(), + 'ticket' => $this->config->getSignalingTicket($this->userId), + ], ]; $response = new TemplateResponse($this->appName, 'index-public', $params, 'base'); $csp = new ContentSecurityPolicy(); diff --git a/templates/index-public.php b/templates/index-public.php index 2b909976c..44dc370d3 100644 --- a/templates/index-public.php +++ b/templates/index-public.php @@ -33,7 +33,10 @@ script( <div id="notification-container"> <div id="notification" style="display: none;"></div> </div> -<div id="app" class="nc-enable-screensharing-extension" data-token="<?php p($_['token']) ?>" data-signalingServer="<?php p($_['signaling-server']) ?>" data-signalingTicket="<?php p($_['signaling-ticket']) ?>"> +<div id="app" class="nc-enable-screensharing-extension" data-token="<?php p($_['token']) ?>"> + <script type="text/json" id="signaling-settings"> + <?php echo json_encode($_['signaling-settings']) ?> + </script> <div id="app-content" class="participants-1"> <header> diff --git a/templates/index.php b/templates/index.php index b53d2cba6..b392cd01c 100644 --- a/templates/index.php +++ b/templates/index.php @@ -33,7 +33,10 @@ script( ); ?> -<div id="app" class="nc-enable-screensharing-extension" data-token="<?php p($_['token']) ?>" data-signalingServer="<?php p($_['signaling-server']) ?>" data-signalingTicket="<?php p($_['signaling-ticket']) ?>"> +<div id="app" class="nc-enable-screensharing-extension" data-token="<?php p($_['token']) ?>"> + <script type="text/json" id="signaling-settings"> + <?php echo json_encode($_['signaling-settings']) ?> + </script> <div id="app-navigation" class="icon-loading"> <form id="oca-spreedme-add-room"> <input id="select-participants" class="select2-offscreen" type="text" placeholder="<?php p($l->t('Choose person …')) ?>"/> |