diff --git a/data/interfaces/default/js/script.js b/data/interfaces/default/js/script.js index 020cbcdd..91b9bb2e 100644 --- a/data/interfaces/default/js/script.js +++ b/data/interfaces/default/js/script.js @@ -470,3 +470,23 @@ function openPlexXML(endpoint, plextv, params) { window.open(xml_url, '_blank'); }); } + +function PopupCenter(url, title, w, h) { + // Fixes dual-screen position Most browsers Firefox + var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screenX; + var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screenY; + + var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; + var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; + + var left = ((width / 2) - (w / 2)) + dualScreenLeft; + var top = ((height / 2) - (h / 2)) + dualScreenTop; + var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); + + // Puts focus on the newWindow + if (window.focus) { + newWindow.focus(); + } + + return newWindow; +} \ No newline at end of file diff --git a/data/interfaces/default/login.html b/data/interfaces/default/login.html index 641e54f9..354ac624 100644 --- a/data/interfaces/default/login.html +++ b/data/interfaces/default/login.html @@ -163,7 +163,9 @@ const code = data.code; var keep_polling = true; - window.open('https://app.plex.tv/auth/#!?clientID=' + x_plex_headers['X-Plex-Client-Identifier'] + '&code=' + code); + var plex_oauth_window = PopupCenter( + 'https://app.plex.tv/auth/#!?clientID=' + x_plex_headers['X-Plex-Client-Identifier'] + '&code=' + code, + 'Plex-OAuth', 600, 700); (function poll() { polling = setTimeout(function () { @@ -174,6 +176,9 @@ success: function (data) { if (data.authToken){ keep_polling = false; + if (plex_oauth_window) { + plex_oauth_window.close(); + } signIn(true, data.authToken); } },