From 2fe27c82daa04aa5ddb36c4b51ab55491081e4ac Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 1 Jan 2016 14:38:55 -0500 Subject: [PATCH] update components --- .../emby-apiclient/.bower.json | 8 +- .../emby-apiclient/connectionmanager.js | 9 +- .../emby-webcomponents/.bower.json | 8 +- .../browserdeviceprofile.js | 2 +- .../emby-webcomponents/fetchhelper.js | 129 ++++++++++++++++++ .../iron-selector/.bower.json | 4 +- .../bower_components/paper-input/.bower.json | 6 +- 7 files changed, 149 insertions(+), 17 deletions(-) create mode 100644 dashboard-ui/bower_components/emby-webcomponents/fetchhelper.js diff --git a/dashboard-ui/bower_components/emby-apiclient/.bower.json b/dashboard-ui/bower_components/emby-apiclient/.bower.json index 74eb3354f5..257ccdae1e 100644 --- a/dashboard-ui/bower_components/emby-apiclient/.bower.json +++ b/dashboard-ui/bower_components/emby-apiclient/.bower.json @@ -16,12 +16,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.0.20", - "_release": "1.0.20", + "version": "1.0.21", + "_release": "1.0.21", "_resolution": { "type": "version", - "tag": "1.0.20", - "commit": "55cf67710a438d3eea15f58587b2c2fcd731bf29" + "tag": "1.0.21", + "commit": "e341b097c05c31ec012e04dfbd0455ae9dfc4929" }, "_source": "git://github.com/MediaBrowser/Emby.ApiClient.Javascript.git", "_target": "~1.0.3", diff --git a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js index a20bcae8bf..7f2e84ecaf 100644 --- a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js +++ b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js @@ -422,7 +422,7 @@ afterConnected(apiClient, options); - onLocalUserSignIn(result.User); + onLocalUserSignIn(server, server.LastConnectionMode, result.User); } function saveUserInfoIntoCredentials(server, user) { @@ -452,7 +452,10 @@ } } - function onLocalUserSignIn(user) { + function onLocalUserSignIn(server, connectionMode, user) { + + // Ensure this is created so that listeners of the event can get the apiClient instance + getOrAddApiClient(server, connectionMode); Events.trigger(self, 'localusersignedin', [user]); } @@ -575,7 +578,7 @@ }).then(function (user) { - onLocalUserSignIn(user); + onLocalUserSignIn(server, connectionMode, user); resolve(); }, function () { diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index d65901fb8d..073f7d2d25 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -15,12 +15,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.0.6", - "_release": "1.0.6", + "version": "1.0.11", + "_release": "1.0.11", "_resolution": { "type": "version", - "tag": "1.0.6", - "commit": "4d04f0ed205e94c00160c48dc131b9d8dbed995f" + "tag": "1.0.11", + "commit": "8838a06a04887893b4a0e165764067409f4f3518" }, "_source": "git://github.com/MediaBrowser/emby-webcomponents.git", "_target": "~1.0.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js index 92dcb9cda4..205d0e5261 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -113,7 +113,7 @@ }); } - if (browser.chrome) { + if (canPlayMkv) { profile.DirectPlayProfiles.push({ Container: 'mkv,mov', Type: 'Video', diff --git a/dashboard-ui/bower_components/emby-webcomponents/fetchhelper.js b/dashboard-ui/bower_components/emby-webcomponents/fetchhelper.js new file mode 100644 index 0000000000..79b0eb05b2 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/fetchhelper.js @@ -0,0 +1,129 @@ +define([], function () { + + function getFetchPromise(request) { + + var headers = request.headers || {}; + + if (request.dataType == 'json') { + headers.accept = 'application/json'; + } + + var fetchRequest = { + headers: headers, + method: request.type, + credentials: 'same-origin' + }; + + var contentType = request.contentType; + + if (request.data) { + + if (typeof request.data === 'string') { + fetchRequest.body = request.data; + } else { + fetchRequest.body = paramsToString(request.data); + + contentType = contentType || 'application/x-www-form-urlencoded; charset=UTF-8'; + } + } + + if (contentType) { + + headers['Content-Type'] = contentType; + } + + var url = request.url; + + if (request.query) { + var paramString = paramsToString(request.query); + if (paramString) { + url += '?' + paramString; + } + } + + if (!request.timeout) { + return fetch(url, fetchRequest); + } + + return fetchWithTimeout(url, fetchRequest, request.timeout); + } + + function fetchWithTimeout(url, options, timeoutMs) { + + console.log('fetchWithTimeout: timeoutMs: ' + timeoutMs + ', url: ' + url); + + return new Promise(function (resolve, reject) { + + var timeout = setTimeout(reject, timeoutMs); + + options = options || {}; + options.credentials = 'same-origin'; + + fetch(url, options).then(function (response) { + clearTimeout(timeout); + + console.log('fetchWithTimeout: succeeded connecting to url: ' + url); + + resolve(response); + }, function (error) { + + clearTimeout(timeout); + + console.log('fetchWithTimeout: timed out connecting to url: ' + url); + + reject(); + }); + }); + } + + function paramsToString(params) { + + var values = []; + + for (var key in params) { + + var value = params[key]; + + if (value !== null && value !== undefined && value !== '') { + values.push(encodeURIComponent(key) + "=" + encodeURIComponent(value)); + } + } + return values.join('&'); + } + + function ajax(request) { + + if (!request) { + throw new Error("Request cannot be null"); + } + + request.headers = request.headers || {}; + + console.log('requesting url: ' + request.url); + + return getFetchPromise(request).then(function (response) { + + console.log('response status: ' + response.status + ', url: ' + request.url); + + if (response.status < 400) { + + if (request.dataType == 'json' || request.headers.accept == 'application/json') { + return response.json(); + } else { + return response; + } + } else { + return Promise.reject(response); + } + + }, function (err) { + + console.log('request failed to url: ' + request.url); + throw err; + }); + } + return { + getFetchPromise: getFetchPromise, + ajax: ajax + }; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-selector/.bower.json b/dashboard-ui/bower_components/iron-selector/.bower.json index ebb18c5b7b..52d44c1907 100644 --- a/dashboard-ui/bower_components/iron-selector/.bower.json +++ b/dashboard-ui/bower_components/iron-selector/.bower.json @@ -36,7 +36,7 @@ "tag": "v1.0.8", "commit": "e9a66727f3da0446f04956d4e4f1dcd51cdec2ff" }, - "_source": "git://github.com/polymerelements/iron-selector.git", + "_source": "git://github.com/PolymerElements/iron-selector.git", "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-selector" + "_originalSource": "PolymerElements/iron-selector" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/paper-input/.bower.json b/dashboard-ui/bower_components/paper-input/.bower.json index 8d106232c1..b59e0b67c3 100644 --- a/dashboard-ui/bower_components/paper-input/.bower.json +++ b/dashboard-ui/bower_components/paper-input/.bower.json @@ -52,7 +52,7 @@ "tag": "v1.1.3", "commit": "f070288446f9e78fbe16b032ddb429a8e8015ee7" }, - "_source": "git://github.com/polymerelements/paper-input.git", - "_target": "^1.0.9", - "_originalSource": "polymerelements/paper-input" + "_source": "git://github.com/PolymerElements/paper-input.git", + "_target": "^1.0.0", + "_originalSource": "PolymerElements/paper-input" } \ No newline at end of file