From 3a6cc1b003d70699da8f5110aa45af26d5010288 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 11:12:47 -0500 Subject: [PATCH 01/58] add download button to context menu --- dashboard-ui/scripts/librarylist.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index 231db5dd16..4159bfa7ed 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -260,6 +260,16 @@ }); } + if (user.Policy.EnableContentDownloading) { + if (mediaType) { + items.push({ + name: Globalize.translate('ButtonDownload'), + id: 'download', + ironIcon: 'file-download' + }); + } + } + if (commands.indexOf('delete') != -1) { items.push({ name: Globalize.translate('ButtonDelete'), From 0c9e8c99e8ffbdc10d524f199791c8ff31791a5d Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 11:13:31 -0500 Subject: [PATCH 02/58] adjust video audio channels for safari --- dashboard-ui/scripts/mediaplayer.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index a554a616c7..234073a530 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -316,6 +316,8 @@ } else { + var videoAudioChannels = browserInfo.safari ? '2' : '6'; + profile.CodecProfiles.push({ Type: 'VideoAudio', Codec: 'aac', @@ -335,7 +337,7 @@ { Condition: 'LessThanEqual', Property: 'AudioChannels', - Value: '6' + Value: videoAudioChannels } // Disabling this is going to require us to learn why it was disabled in the first place //, @@ -359,7 +361,7 @@ { Condition: 'LessThanEqual', Property: 'AudioChannels', - Value: '6' + Value: videoAudioChannels } ] }); From 78caa79e1eda6c879a7529647c6c38ded186da01 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 11:22:30 -0500 Subject: [PATCH 03/58] update channels --- dashboard-ui/mypreferenceshome.html | 6 ------ dashboard-ui/scripts/mypreferenceshome.js | 3 --- 2 files changed, 9 deletions(-) diff --git a/dashboard-ui/mypreferenceshome.html b/dashboard-ui/mypreferenceshome.html index 4dd34ad13a..735a111c16 100644 --- a/dashboard-ui/mypreferenceshome.html +++ b/dashboard-ui/mypreferenceshome.html @@ -88,12 +88,6 @@
${LabelSelectFolderGroupsHelp}
- -
-
- ${OptionDisplayChannelsInline} -
${OptionDisplayChannelsInlineHelp}
-

diff --git a/dashboard-ui/scripts/mypreferenceshome.js b/dashboard-ui/scripts/mypreferenceshome.js index b2528efad2..e0e7eed34f 100644 --- a/dashboard-ui/scripts/mypreferenceshome.js +++ b/dashboard-ui/scripts/mypreferenceshome.js @@ -129,7 +129,6 @@ page.querySelector('.chkDisplayCollectionView').checked = user.Configuration.DisplayCollectionsView || false; page.querySelector('.chkHidePlayedFromLatest').checked = user.Configuration.HidePlayedInLatest || false; - page.querySelector('.chkDisplayChannelsInline').checked = user.Configuration.DisplayChannelsInline || false; $('#selectHomeSection1', page).val(displayPreferences.CustomPrefs.home0 || ''); $('#selectHomeSection2', page).val(displayPreferences.CustomPrefs.home1 || ''); @@ -159,8 +158,6 @@ user.Configuration.DisplayCollectionsView = page.querySelector('.chkDisplayCollectionView').checked; user.Configuration.HidePlayedInLatest = page.querySelector('.chkHidePlayedFromLatest').checked; - user.Configuration.DisplayChannelsInline = page.querySelector('.chkDisplayChannelsInline').checked; - user.Configuration.LatestItemsExcludes = $(".chkIncludeInLatest", page).get().filter(function (i) { return !i.checked; From 5ca18644c63461c0551b1b696959c3aba2734c98 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 12:10:21 -0500 Subject: [PATCH 04/58] use shared components for quality options --- .../emby-webcomponents/.bower.json | 8 +- .../browserdeviceprofile.js | 26 +- .../emby-webcomponents/qualityoptions.js | 81 ++ .../iron-behaviors/.bower.json | 6 +- .../iron-selector/.bower.json | 4 +- dashboard-ui/scripts/mediaplayer-video.js | 53 +- dashboard-ui/scripts/mediaplayer.js | 881 ++++++++---------- .../scripts/mypreferenceslanguages.js | 27 +- dashboard-ui/scripts/site.js | 1 + 9 files changed, 565 insertions(+), 522 deletions(-) create mode 100644 dashboard-ui/bower_components/emby-webcomponents/qualityoptions.js diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index d62e0f8ed6..8200afb011 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.2", - "_release": "1.0.2", + "version": "1.0.5", + "_release": "1.0.5", "_resolution": { "type": "version", - "tag": "1.0.2", - "commit": "a4909b1637879d7e52ce9eaba8247ad98b690de9" + "tag": "1.0.5", + "commit": "ff6d4ba01de70b907dfa51b36aee6c63f64685c9" }, "_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 17ab704e3d..92dcb9cda4 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -225,6 +225,8 @@ }] }); + var videoAudioChannels = browser.safari ? '2' : '6'; + profile.CodecProfiles.push({ Type: 'VideoAudio', Codec: 'aac', @@ -234,6 +236,17 @@ Condition: 'NotEquals', Property: 'AudioProfile', Value: 'HE-AAC' + }, + { + Condition: 'LessThanEqual', + Property: 'AudioChannels', + Value: videoAudioChannels + }, + { + Condition: 'Equals', + Property: 'IsSecondaryAudio', + Value: 'false', + IsRequired: 'false' } // Disabling this is going to require us to learn why it was disabled in the first place //, @@ -252,7 +265,13 @@ { Condition: 'LessThanEqual', Property: 'AudioChannels', - Value: '6' + Value: videoAudioChannels + }, + { + Condition: 'Equals', + Property: 'IsSecondaryAudio', + Value: 'false', + IsRequired: 'false' } ] }); @@ -260,6 +279,11 @@ profile.CodecProfiles.push({ Type: 'VideoAudio', Conditions: [ + { + Condition: 'LessThanEqual', + Property: 'AudioChannels', + Value: videoAudioChannels + }, { Condition: 'Equals', Property: 'IsSecondaryAudio', diff --git a/dashboard-ui/bower_components/emby-webcomponents/qualityoptions.js b/dashboard-ui/bower_components/emby-webcomponents/qualityoptions.js new file mode 100644 index 0000000000..5b628053d7 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/qualityoptions.js @@ -0,0 +1,81 @@ +define([], function () { + + function getVideoQualityOptions(maxStreamingBitrate, videoWidth) { + + var maxAllowedWidth = videoWidth || 4096; + //var maxAllowedHeight = videoHeight || 2304; + + var options = []; + + // Some 1080- videos are reported as 1912? + if (maxAllowedWidth >= 1900) { + + options.push({ name: '1080p - 40Mbps', maxHeight: 1080, bitrate: 40000000 }); + options.push({ name: '1080p - 35Mbps', maxHeight: 1080, bitrate: 35000000 }); + options.push({ name: '1080p - 30Mbps', maxHeight: 1080, bitrate: 30000000 }); + options.push({ name: '1080p - 25Mbps', maxHeight: 1080, bitrate: 25000000 }); + options.push({ name: '1080p - 20Mbps', maxHeight: 1080, bitrate: 20000000 }); + options.push({ name: '1080p - 15Mbps', maxHeight: 1080, bitrate: 15000000 }); + options.push({ name: '1080p - 10Mbps', maxHeight: 1080, bitrate: 10000001 }); + options.push({ name: '1080p - 8Mbps', maxHeight: 1080, bitrate: 8000001 }); + options.push({ name: '1080p - 6Mbps', maxHeight: 1080, bitrate: 6000001 }); + options.push({ name: '1080p - 5Mbps', maxHeight: 1080, bitrate: 5000001 }); + options.push({ name: '1080p - 4Mbps', maxHeight: 1080, bitrate: 4000002 }); + + } else if (maxAllowedWidth >= 1260) { + options.push({ name: '720p - 10Mbps', maxHeight: 720, bitrate: 10000000 }); + options.push({ name: '720p - 8Mbps', maxHeight: 720, bitrate: 8000000 }); + options.push({ name: '720p - 6Mbps', maxHeight: 720, bitrate: 6000000 }); + options.push({ name: '720p - 5Mbps', maxHeight: 720, bitrate: 5000000 }); + + } else if (maxAllowedWidth >= 700) { + options.push({ name: '480p - 4Mbps', maxHeight: 480, bitrate: 4000001 }); + options.push({ name: '480p - 3Mbps', maxHeight: 480, bitrate: 3000001 }); + options.push({ name: '480p - 2.5Mbps', maxHeight: 480, bitrate: 2500000 }); + options.push({ name: '480p - 2Mbps', maxHeight: 480, bitrate: 2000001 }); + options.push({ name: '480p - 1.5Mbps', maxHeight: 480, bitrate: 1500001 }); + } + + if (maxAllowedWidth >= 1260) { + options.push({ name: '720p - 4Mbps', maxHeight: 720, bitrate: 4000000 }); + options.push({ name: '720p - 3Mbps', maxHeight: 720, bitrate: 3000000 }); + options.push({ name: '720p - 2Mbps', maxHeight: 720, bitrate: 2000000 }); + + // The extra 1 is because they're keyed off the bitrate value + options.push({ name: '720p - 1.5Mbps', maxHeight: 720, bitrate: 1500000 }); + options.push({ name: '720p - 1Mbps', maxHeight: 720, bitrate: 1000001 }); + } + + options.push({ name: '480p - 1.0Mbps', maxHeight: 480, bitrate: 1000000 }); + options.push({ name: '480p - 720kbps', maxHeight: 480, bitrate: 720000 }); + options.push({ name: '480p - 420kbps', maxHeight: 480, bitrate: 420000 }); + options.push({ name: '360p', maxHeight: 360, bitrate: 400000 }); + options.push({ name: '240p', maxHeight: 240, bitrate: 320000 }); + options.push({ name: '144p', maxHeight: 144, bitrate: 192000 }); + + if (maxStreamingBitrate) { + var selectedIndex = -1; + for (var i = 0, length = options.length; i < length; i++) { + + var option = options[i]; + + if (selectedIndex == -1 && option.bitrate <= maxStreamingBitrate) { + selectedIndex = i; + } + } + + if (selectedIndex == -1) { + + selectedIndex = options.length - 1; + } + + options[selectedIndex].selected = true; + } + + return options; + }; + + return { + getVideoQualityOptions: getVideoQualityOptions + }; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-behaviors/.bower.json b/dashboard-ui/bower_components/iron-behaviors/.bower.json index db08f2170c..17f68b3351 100644 --- a/dashboard-ui/bower_components/iron-behaviors/.bower.json +++ b/dashboard-ui/bower_components/iron-behaviors/.bower.json @@ -29,14 +29,14 @@ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "ignore": [], - "homepage": "https://github.com/PolymerElements/iron-behaviors", + "homepage": "https://github.com/polymerelements/iron-behaviors", "_release": "1.0.12", "_resolution": { "type": "version", "tag": "v1.0.12", "commit": "657f526a2382a659cdf4e13be87ecc89261588a3" }, - "_source": "git://github.com/PolymerElements/iron-behaviors.git", + "_source": "git://github.com/polymerelements/iron-behaviors.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-behaviors" + "_originalSource": "polymerelements/iron-behaviors" } \ 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 52d44c1907..ebb18c5b7b 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/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js index 435c64ae54..5077d4e93b 100644 --- a/dashboard-ui/scripts/mediaplayer-video.js +++ b/dashboard-ui/scripts/mediaplayer-video.js @@ -140,41 +140,40 @@ self.showQualityFlyout = function () { - var currentSrc = self.getCurrentSrc(self.currentMediaRenderer).toLowerCase(); - var isStatic = currentSrc.indexOf('static=true') != -1; + require(['qualityoptions', 'actionsheet'], function (qualityoptions) { - var videoStream = self.currentMediaSource.MediaStreams.filter(function (stream) { - return stream.Type == "Video"; - })[0]; - var videoWidth = videoStream ? videoStream.Width : null; - var videoHeight = videoStream ? videoStream.Height : null; + var currentSrc = self.getCurrentSrc(self.currentMediaRenderer).toLowerCase(); + var isStatic = currentSrc.indexOf('static=true') != -1; - var options = self.getVideoQualityOptions(videoWidth, videoHeight); + var videoStream = self.currentMediaSource.MediaStreams.filter(function (stream) { + return stream.Type == "Video"; + })[0]; + var videoWidth = videoStream ? videoStream.Width : null; - if (isStatic) { - options[0].name = "Direct"; - } + var options = qualityoptions.getVideoQualityOptions(AppSettings.maxStreamingBitrate(), videoWidth); - var menuItems = options.map(function (o) { - - var opt = { - name: o.name, - id: o.bitrate - }; - - if (o.selected) { - opt.ironIcon = "check"; + if (isStatic) { + options[0].name = "Direct"; } - return opt; - }); + var menuItems = options.map(function (o) { - var selectedId = options.filter(function (o) { - return o.selected; - }); - selectedId = selectedId.length ? selectedId[0].bitrate : null; - require(['actionsheet'], function () { + var opt = { + name: o.name, + id: o.bitrate + }; + if (o.selected) { + opt.ironIcon = "check"; + } + + return opt; + }); + + var selectedId = options.filter(function (o) { + return o.selected; + }); + selectedId = selectedId.length ? selectedId[0].bitrate : null; ActionSheetElement.show({ items: menuItems, positionTo: $('.videoQualityButton')[0], diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index 234073a530..295ac35a1a 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -36,479 +36,410 @@ return targets; }; - self.getVideoQualityOptions = function (videoWidth, videoHeight) { - - var bitrateSetting = AppSettings.maxStreamingBitrate(); - - var maxAllowedWidth = videoWidth || 4096; - var maxAllowedHeight = videoHeight || 2304; - - var options = []; - - // Some 1080- videos are reported as 1912? - if (maxAllowedWidth >= 1900) { - - options.push({ name: '1080p - 40Mbps', maxHeight: 1080, bitrate: 40000000 }); - options.push({ name: '1080p - 35Mbps', maxHeight: 1080, bitrate: 35000000 }); - options.push({ name: '1080p - 30Mbps', maxHeight: 1080, bitrate: 30000000 }); - options.push({ name: '1080p - 25Mbps', maxHeight: 1080, bitrate: 25000000 }); - options.push({ name: '1080p - 20Mbps', maxHeight: 1080, bitrate: 20000000 }); - options.push({ name: '1080p - 15Mbps', maxHeight: 1080, bitrate: 15000000 }); - options.push({ name: '1080p - 10Mbps', maxHeight: 1080, bitrate: 10000001 }); - options.push({ name: '1080p - 8Mbps', maxHeight: 1080, bitrate: 8000001 }); - options.push({ name: '1080p - 6Mbps', maxHeight: 1080, bitrate: 6000001 }); - options.push({ name: '1080p - 5Mbps', maxHeight: 1080, bitrate: 5000001 }); - options.push({ name: '1080p - 4Mbps', maxHeight: 1080, bitrate: 4000002 }); - - } else if (maxAllowedWidth >= 1260) { - options.push({ name: '720p - 10Mbps', maxHeight: 720, bitrate: 10000000 }); - options.push({ name: '720p - 8Mbps', maxHeight: 720, bitrate: 8000000 }); - options.push({ name: '720p - 6Mbps', maxHeight: 720, bitrate: 6000000 }); - options.push({ name: '720p - 5Mbps', maxHeight: 720, bitrate: 5000000 }); - - } else if (maxAllowedWidth >= 700) { - options.push({ name: '480p - 4Mbps', maxHeight: 480, bitrate: 4000001 }); - options.push({ name: '480p - 3Mbps', maxHeight: 480, bitrate: 3000001 }); - options.push({ name: '480p - 2.5Mbps', maxHeight: 480, bitrate: 2500000 }); - options.push({ name: '480p - 2Mbps', maxHeight: 480, bitrate: 2000001 }); - options.push({ name: '480p - 1.5Mbps', maxHeight: 480, bitrate: 1500001 }); - } - - if (maxAllowedWidth >= 1260) { - options.push({ name: '720p - 4Mbps', maxHeight: 720, bitrate: 4000000 }); - options.push({ name: '720p - 3Mbps', maxHeight: 720, bitrate: 3000000 }); - options.push({ name: '720p - 2Mbps', maxHeight: 720, bitrate: 2000000 }); - - // The extra 1 is because they're keyed off the bitrate value - options.push({ name: '720p - 1.5Mbps', maxHeight: 720, bitrate: 1500000 }); - options.push({ name: '720p - 1Mbps', maxHeight: 720, bitrate: 1000001 }); - } - - options.push({ name: '480p - 1.0Mbps', maxHeight: 480, bitrate: 1000000 }); - options.push({ name: '480p - 720kbps', maxHeight: 480, bitrate: 720000 }); - options.push({ name: '480p - 420kbps', maxHeight: 480, bitrate: 420000 }); - options.push({ name: '360p', maxHeight: 360, bitrate: 400000 }); - options.push({ name: '240p', maxHeight: 240, bitrate: 320000 }); - options.push({ name: '144p', maxHeight: 144, bitrate: 192000 }); - - var i, length, option; - var selectedIndex = -1; - for (i = 0, length = options.length; i < length; i++) { - - option = options[i]; - - if (selectedIndex == -1 && option.bitrate <= bitrateSetting) { - selectedIndex = i; - } - } - - if (selectedIndex == -1) { - - selectedIndex = options.length - 1; - } - - options[selectedIndex].selected = true; - - return options; - }; - self.getDeviceProfile = function (maxHeight) { - if (!maxHeight) { - maxHeight = self.getVideoQualityOptions().filter(function (q) { - return q.selected; - })[0].maxHeight; - } + return new Promise(function (resolve, reject) { - var isVlc = AppInfo.isNativeApp && browserInfo.android; - var bitrateSetting = AppSettings.maxStreamingBitrate(); + require(['qualityoptions'], function (qualityoptions) { - var supportedFormats = getSupportedFormats(); + var bitrateSetting = AppSettings.maxStreamingBitrate(); - var canPlayWebm = supportedFormats.indexOf('webm') != -1; - var canPlayAc3 = supportedFormats.indexOf('ac3') != -1; - var canPlayAac = supportedFormats.indexOf('aac') != -1; - var canPlayMp3 = supportedFormats.indexOf('mp3') != -1; - var canPlayMkv = supportedFormats.indexOf('mkv') != -1; + if (!maxHeight) { + maxHeight = qualityoptions.getVideoQualityOptions(bitrateSetting).filter(function (q) { + return q.selected; + })[0].maxHeight; + } - var profile = {}; + var isVlc = AppInfo.isNativeApp && browserInfo.android; - profile.MaxStreamingBitrate = bitrateSetting; - profile.MaxStaticBitrate = 8000000; - profile.MusicStreamingTranscodingBitrate = Math.min(bitrateSetting, 192000); + var supportedFormats = getSupportedFormats(); - profile.DirectPlayProfiles = []; + var canPlayWebm = supportedFormats.indexOf('webm') != -1; + var canPlayAc3 = supportedFormats.indexOf('ac3') != -1; + var canPlayAac = supportedFormats.indexOf('aac') != -1; + var canPlayMp3 = supportedFormats.indexOf('mp3') != -1; + var canPlayMkv = supportedFormats.indexOf('mkv') != -1; - if (supportedFormats.indexOf('h264') != -1) { - profile.DirectPlayProfiles.push({ - Container: 'mp4,m4v', - Type: 'Video', - VideoCodec: 'h264', - AudioCodec: 'aac' + (canPlayMp3 ? ',mp3' : '') + (canPlayAc3 ? ',ac3' : '') - }); - } + var profile = {}; - if (canPlayMkv) { - profile.DirectPlayProfiles.push({ - Container: 'mkv,mov', - Type: 'Video', - VideoCodec: 'h264', - AudioCodec: 'aac' + (canPlayMp3 ? ',mp3' : '') + (canPlayAc3 ? ',ac3' : '') - }); - } + profile.MaxStreamingBitrate = bitrateSetting; + profile.MaxStaticBitrate = 8000000; + profile.MusicStreamingTranscodingBitrate = Math.min(bitrateSetting, 192000); - var directPlayVideoContainers = AppInfo.directPlayVideoContainers; + profile.DirectPlayProfiles = []; - if (directPlayVideoContainers && directPlayVideoContainers.length) { - profile.DirectPlayProfiles.push({ - Container: directPlayVideoContainers.join(','), - Type: 'Video' - }); - } + if (supportedFormats.indexOf('h264') != -1) { + profile.DirectPlayProfiles.push({ + Container: 'mp4,m4v', + Type: 'Video', + VideoCodec: 'h264', + AudioCodec: 'aac' + (canPlayMp3 ? ',mp3' : '') + (canPlayAc3 ? ',ac3' : '') + }); + } - ['opus', 'mp3', 'aac', 'webma'].forEach(function(audioFormat){ + if (canPlayMkv) { + profile.DirectPlayProfiles.push({ + Container: 'mkv,mov', + Type: 'Video', + VideoCodec: 'h264', + AudioCodec: 'aac' + (canPlayMp3 ? ',mp3' : '') + (canPlayAc3 ? ',ac3' : '') + }); + } - if (supportedFormats.indexOf(audioFormat) != -1) { - profile.DirectPlayProfiles.push({ - Container: audioFormat == 'webma' ? 'webma,webm' : audioFormat, - Type: 'Audio' - }); - } - }); + var directPlayVideoContainers = AppInfo.directPlayVideoContainers; - var directPlayAudioContainers = AppInfo.directPlayAudioContainers; + if (directPlayVideoContainers && directPlayVideoContainers.length) { + profile.DirectPlayProfiles.push({ + Container: directPlayVideoContainers.join(','), + Type: 'Video' + }); + } - if (directPlayAudioContainers && directPlayAudioContainers.length) { - profile.DirectPlayProfiles.push({ - Container: directPlayAudioContainers.join(','), - Type: 'Audio' - }); - } + ['opus', 'mp3', 'aac', 'webma'].forEach(function (audioFormat) { - if (canPlayWebm) { - profile.DirectPlayProfiles.push({ - Container: 'webm', - Type: 'Video' - }); - } + if (supportedFormats.indexOf(audioFormat) != -1) { + profile.DirectPlayProfiles.push({ + Container: audioFormat == 'webma' ? 'webma,webm' : audioFormat, + Type: 'Audio' + }); + } + }); - profile.TranscodingProfiles = []; + var directPlayAudioContainers = AppInfo.directPlayAudioContainers; - // Can't use mkv on mobile because we have to use the native player controls and they won't be able to seek it - if (canPlayMkv && !isVlc && !browserInfo.mobile) { - profile.TranscodingProfiles.push({ - Container: 'mkv', - Type: 'Video', - AudioCodec: 'aac' + (canPlayAc3 ? ',ac3' : '') + (canPlayMp3 ? ',mp3' : ''), - VideoCodec: 'h264', - Context: 'Streaming' - }); - } + if (directPlayAudioContainers && directPlayAudioContainers.length) { + profile.DirectPlayProfiles.push({ + Container: directPlayAudioContainers.join(','), + Type: 'Audio' + }); + } - if (self.canPlayHls()) { - profile.TranscodingProfiles.push({ - Container: 'ts', - Type: 'Video', - AudioCodec: 'aac' + (canPlayAc3 ? ',ac3' : ''), - VideoCodec: 'h264', - Context: 'Streaming', - Protocol: 'hls' - }); + if (canPlayWebm) { + profile.DirectPlayProfiles.push({ + Container: 'webm', + Type: 'Video' + }); + } + + profile.TranscodingProfiles = []; + + // Can't use mkv on mobile because we have to use the native player controls and they won't be able to seek it + if (canPlayMkv && !isVlc && !browserInfo.mobile) { + profile.TranscodingProfiles.push({ + Container: 'mkv', + Type: 'Video', + AudioCodec: 'aac' + (canPlayAc3 ? ',ac3' : '') + (canPlayMp3 ? ',mp3' : ''), + VideoCodec: 'h264', + Context: 'Streaming' + }); + } + + if (self.canPlayHls()) { + profile.TranscodingProfiles.push({ + Container: 'ts', + Type: 'Video', + AudioCodec: 'aac' + (canPlayAc3 ? ',ac3' : ''), + VideoCodec: 'h264', + Context: 'Streaming', + Protocol: 'hls' + }); + + if (canPlayAac && browserInfo.safari && !AppInfo.isNativeApp) { + profile.TranscodingProfiles.push({ + Container: 'ts', + Type: 'Audio', + AudioCodec: 'aac', + Context: 'Streaming', + Protocol: 'hls' + }); + } + } + + if (canPlayWebm) { + + profile.TranscodingProfiles.push({ + Container: 'webm', + Type: 'Video', + AudioCodec: 'vorbis', + VideoCodec: 'vpx', + Context: 'Streaming', + Protocol: 'http' + }); + } - if (canPlayAac && browserInfo.safari && !AppInfo.isNativeApp) { profile.TranscodingProfiles.push({ - Container: 'ts', - Type: 'Audio', + Container: 'mp4', + Type: 'Video', AudioCodec: 'aac', + VideoCodec: 'h264', Context: 'Streaming', - Protocol: 'hls' + Protocol: 'http' }); - } - } - if (canPlayWebm) { + profile.TranscodingProfiles.push({ + Container: 'mp4', + Type: 'Video', + AudioCodec: 'aac', + VideoCodec: 'h264', + Context: 'Static', + Protocol: 'http' + }); - profile.TranscodingProfiles.push({ - Container: 'webm', - Type: 'Video', - AudioCodec: 'vorbis', - VideoCodec: 'vpx', - Context: 'Streaming', - Protocol: 'http' - }); - } + ['opus', 'mp3', 'aac'].forEach(function (audioFormat) { - profile.TranscodingProfiles.push({ - Container: 'mp4', - Type: 'Video', - AudioCodec: 'aac', - VideoCodec: 'h264', - Context: 'Streaming', - Protocol: 'http' - }); + if (supportedFormats.indexOf(audioFormat) != -1) { + profile.TranscodingProfiles.push({ + Container: audioFormat, + Type: 'Audio', + AudioCodec: audioFormat, + Context: 'Streaming', + Protocol: 'http' + }); + profile.TranscodingProfiles.push({ + Container: audioFormat, + Type: 'Audio', + AudioCodec: audioFormat, + Context: 'Static', + Protocol: 'http' + }); + } + }); - profile.TranscodingProfiles.push({ - Container: 'mp4', - Type: 'Video', - AudioCodec: 'aac', - VideoCodec: 'h264', - Context: 'Static', - Protocol: 'http' - }); + profile.ContainerProfiles = []; - ['opus', 'mp3', 'aac'].forEach(function(audioFormat){ - - if (supportedFormats.indexOf(audioFormat) != -1) { - profile.TranscodingProfiles.push({ - Container: audioFormat, - Type: 'Audio', - AudioCodec: audioFormat, - Context: 'Streaming', - Protocol: 'http' - }); - profile.TranscodingProfiles.push({ - Container: audioFormat, - Type: 'Audio', - AudioCodec: audioFormat, - Context: 'Static', - Protocol: 'http' - }); - } - }); - - profile.ContainerProfiles = []; - - profile.CodecProfiles = []; - profile.CodecProfiles.push({ - Type: 'Audio', - Conditions: [{ - Condition: 'LessThanEqual', - Property: 'AudioChannels', - Value: '2' - }] - }); - - // These don't play very well - if (isVlc) { - profile.CodecProfiles.push({ - Type: 'VideoAudio', - Codec: 'dca', - Conditions: [ - { + profile.CodecProfiles = []; + profile.CodecProfiles.push({ + Type: 'Audio', + Conditions: [{ Condition: 'LessThanEqual', Property: 'AudioChannels', - Value: 6 + Value: '2' + }] + }); + + // These don't play very well + if (isVlc) { + profile.CodecProfiles.push({ + Type: 'VideoAudio', + Codec: 'dca', + Conditions: [ + { + Condition: 'LessThanEqual', + Property: 'AudioChannels', + Value: 6 + } + ] + }); + + profile.CodecProfiles.push({ + Type: 'VideoAudio', + Codec: 'aac,mp3', + Conditions: [ + { + Condition: 'LessThanEqual', + Property: 'AudioChannels', + Value: '6' + } + ] + }); + + } else { + + var videoAudioChannels = browserInfo.safari ? '2' : '6'; + + profile.CodecProfiles.push({ + Type: 'VideoAudio', + Codec: 'aac', + Container: 'mkv,mov', + Conditions: [ + { + Condition: 'NotEquals', + Property: 'AudioProfile', + Value: 'HE-AAC' + }, + { + Condition: 'Equals', + Property: 'IsSecondaryAudio', + Value: 'false', + IsRequired: 'false' + }, + { + Condition: 'LessThanEqual', + Property: 'AudioChannels', + Value: videoAudioChannels + } + // Disabling this is going to require us to learn why it was disabled in the first place + //, + //{ + // Condition: 'NotEquals', + // Property: 'AudioProfile', + // Value: 'LC' + //} + ] + }); + + profile.CodecProfiles.push({ + Type: 'VideoAudio', + Conditions: [ + { + Condition: 'Equals', + Property: 'IsSecondaryAudio', + Value: 'false', + IsRequired: 'false' + }, + { + Condition: 'LessThanEqual', + Property: 'AudioChannels', + Value: videoAudioChannels + } + ] + }); + + } + + if (isVlc) { + profile.CodecProfiles.push({ + Type: 'Video', + Codec: 'h264', + Conditions: [ + { + Condition: 'EqualsAny', + Property: 'VideoProfile', + Value: 'high|main|baseline|constrained baseline' + }, + { + Condition: 'LessThanEqual', + Property: 'VideoLevel', + Value: '41' + }] + }); + } else { + profile.CodecProfiles.push({ + Type: 'Video', + Codec: 'h264', + Conditions: [ + { + Condition: 'NotEquals', + Property: 'IsAnamorphic', + Value: 'true', + IsRequired: false + }, + { + Condition: 'EqualsAny', + Property: 'VideoProfile', + Value: 'high|main|baseline|constrained baseline' + }, + { + Condition: 'LessThanEqual', + Property: 'VideoLevel', + Value: '41' + }, + { + Condition: 'LessThanEqual', + Property: 'Height', + Value: maxHeight + }] + }); + } + + if (!isVlc) { + profile.CodecProfiles.push({ + Type: 'Video', + Codec: 'vpx', + Conditions: [ + { + Condition: 'NotEquals', + Property: 'IsAnamorphic', + Value: 'true', + IsRequired: false + }, + { + Condition: 'LessThanEqual', + Property: 'Height', + Value: maxHeight + }] + }); + } + + // Subtitle profiles + // External vtt or burn in + profile.SubtitleProfiles = []; + if (self.supportsTextTracks()) { + + if (isVlc) { + profile.SubtitleProfiles.push({ + Format: 'srt', + Method: 'External' + }); + profile.SubtitleProfiles.push({ + Format: 'srt', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'subrip', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'ass', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'ssa', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'pgs', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'pgssub', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'dvdsub', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'vtt', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'sub', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'idx', + Method: 'Embed' + }); + profile.SubtitleProfiles.push({ + Format: 'smi', + Method: 'Embed' + }); + } else { + profile.SubtitleProfiles.push({ + Format: 'vtt', + Method: 'External' + }); } - ] + } + + profile.ResponseProfiles = []; + + profile.ResponseProfiles.push({ + Type: 'Video', + Container: 'm4v', + MimeType: 'video/mp4' + }); + + profile.ResponseProfiles.push({ + Type: 'Video', + Container: 'mov', + MimeType: 'video/webm' + }); + + resolve(profile); }); - - profile.CodecProfiles.push({ - Type: 'VideoAudio', - Codec: 'aac,mp3', - Conditions: [ - { - Condition: 'LessThanEqual', - Property: 'AudioChannels', - Value: '6' - } - ] - }); - - } else { - - var videoAudioChannels = browserInfo.safari ? '2' : '6'; - - profile.CodecProfiles.push({ - Type: 'VideoAudio', - Codec: 'aac', - Container: 'mkv,mov', - Conditions: [ - { - Condition: 'NotEquals', - Property: 'AudioProfile', - Value: 'HE-AAC' - }, - { - Condition: 'Equals', - Property: 'IsSecondaryAudio', - Value: 'false', - IsRequired: 'false' - }, - { - Condition: 'LessThanEqual', - Property: 'AudioChannels', - Value: videoAudioChannels - } - // Disabling this is going to require us to learn why it was disabled in the first place - //, - //{ - // Condition: 'NotEquals', - // Property: 'AudioProfile', - // Value: 'LC' - //} - ] - }); - - profile.CodecProfiles.push({ - Type: 'VideoAudio', - Conditions: [ - { - Condition: 'Equals', - Property: 'IsSecondaryAudio', - Value: 'false', - IsRequired: 'false' - }, - { - Condition: 'LessThanEqual', - Property: 'AudioChannels', - Value: videoAudioChannels - } - ] - }); - - } - - if (isVlc) { - profile.CodecProfiles.push({ - Type: 'Video', - Codec: 'h264', - Conditions: [ - { - Condition: 'EqualsAny', - Property: 'VideoProfile', - Value: 'high|main|baseline|constrained baseline' - }, - { - Condition: 'LessThanEqual', - Property: 'VideoLevel', - Value: '41' - }] - }); - } else { - profile.CodecProfiles.push({ - Type: 'Video', - Codec: 'h264', - Conditions: [ - { - Condition: 'NotEquals', - Property: 'IsAnamorphic', - Value: 'true', - IsRequired: false - }, - { - Condition: 'EqualsAny', - Property: 'VideoProfile', - Value: 'high|main|baseline|constrained baseline' - }, - { - Condition: 'LessThanEqual', - Property: 'VideoLevel', - Value: '41' - }, - { - Condition: 'LessThanEqual', - Property: 'Height', - Value: maxHeight - }] - }); - } - - if (!isVlc) { - profile.CodecProfiles.push({ - Type: 'Video', - Codec: 'vpx', - Conditions: [ - { - Condition: 'NotEquals', - Property: 'IsAnamorphic', - Value: 'true', - IsRequired: false - }, - { - Condition: 'LessThanEqual', - Property: 'Height', - Value: maxHeight - }] - }); - } - - // Subtitle profiles - // External vtt or burn in - profile.SubtitleProfiles = []; - if (self.supportsTextTracks()) { - - if (isVlc) { - profile.SubtitleProfiles.push({ - Format: 'srt', - Method: 'External' - }); - profile.SubtitleProfiles.push({ - Format: 'srt', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'subrip', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'ass', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'ssa', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'pgs', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'pgssub', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'dvdsub', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'vtt', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'sub', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'idx', - Method: 'Embed' - }); - profile.SubtitleProfiles.push({ - Format: 'smi', - Method: 'Embed' - }); - } else { - profile.SubtitleProfiles.push({ - Format: 'vtt', - Method: 'External' - }); - } - } - - profile.ResponseProfiles = []; - - profile.ResponseProfiles.push({ - Type: 'Video', - Container: 'm4v', - MimeType: 'video/mp4' }); - - profile.ResponseProfiles.push({ - Type: 'Video', - Container: 'mov', - MimeType: 'video/webm' - }); - - return profile; }; var supportsTextTracks; @@ -633,36 +564,37 @@ var playSessionId = getParameterByName('PlaySessionId', currentSrc); var liveStreamId = getParameterByName('LiveStreamId', currentSrc); - var deviceProfile = self.getDeviceProfile(); - - var audioStreamIndex = params.AudioStreamIndex == null ? (getParameterByName('AudioStreamIndex', currentSrc) || null) : params.AudioStreamIndex; - if (typeof (audioStreamIndex) == 'string') { - audioStreamIndex = parseInt(audioStreamIndex); - } - - var subtitleStreamIndex = params.SubtitleStreamIndex == null ? (getParameterByName('SubtitleStreamIndex', currentSrc) || null) : params.SubtitleStreamIndex; - if (typeof (subtitleStreamIndex) == 'string') { - subtitleStreamIndex = parseInt(subtitleStreamIndex); - } - - MediaController.getPlaybackInfo(self.currentItem.Id, deviceProfile, ticks, self.currentMediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId).then(function (result) { - - if (validatePlaybackInfoResult(result)) { - - self.currentMediaSource = result.MediaSources[0]; - self.createStreamInfo(self.currentItem.MediaType, self.currentItem, self.currentMediaSource, ticks).then(function (streamInfo) { - - if (!streamInfo.url) { - MediaController.showPlaybackInfoErrorMessage('NoCompatibleStream'); - self.stop(); - return; - } - - self.currentSubtitleStreamIndex = subtitleStreamIndex; - - changeStreamToUrl(mediaRenderer, playSessionId, streamInfo); - }); + self.getDeviceProfile().then(function (deviceProfile) { + + var audioStreamIndex = params.AudioStreamIndex == null ? (getParameterByName('AudioStreamIndex', currentSrc) || null) : params.AudioStreamIndex; + if (typeof (audioStreamIndex) == 'string') { + audioStreamIndex = parseInt(audioStreamIndex); } + + var subtitleStreamIndex = params.SubtitleStreamIndex == null ? (getParameterByName('SubtitleStreamIndex', currentSrc) || null) : params.SubtitleStreamIndex; + if (typeof (subtitleStreamIndex) == 'string') { + subtitleStreamIndex = parseInt(subtitleStreamIndex); + } + + MediaController.getPlaybackInfo(self.currentItem.Id, deviceProfile, ticks, self.currentMediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId).then(function (result) { + + if (validatePlaybackInfoResult(result)) { + + self.currentMediaSource = result.MediaSources[0]; + self.createStreamInfo(self.currentItem.MediaType, self.currentItem, self.currentMediaSource, ticks).then(function (streamInfo) { + + if (!streamInfo.url) { + MediaController.showPlaybackInfoErrorMessage('NoCompatibleStream'); + self.stop(); + return; + } + + self.currentSubtitleStreamIndex = subtitleStreamIndex; + + changeStreamToUrl(mediaRenderer, playSessionId, streamInfo); + }); + } + }); }); }; @@ -1089,6 +1021,12 @@ return; } + var onBitrateDetected = function() { + self.getDeviceProfile().then(function(deviceProfile) { + playOnDeviceProfileCreated(deviceProfile, item, startPosition, callback); + }); + }; + var bitrateDetectionKey = ApiClient.serverAddress(); if (item.MediaType == 'Video' && AppSettings.enableAutomaticBitrateDetection() && (new Date().getTime() - (self.lastBitrateDetections[bitrateDetectionKey] || 0)) > 300000) { @@ -1100,15 +1038,12 @@ self.lastBitrateDetections[bitrateDetectionKey] = new Date().getTime(); AppSettings.maxStreamingBitrate(bitrate); - playOnDeviceProfileCreated(self.getDeviceProfile(), item, startPosition, callback); + onBitrateDetected(); - }, function () { - - playOnDeviceProfileCreated(self.getDeviceProfile(), item, startPosition, callback); - }); + }, onBitrateDetected); } else { - playOnDeviceProfileCreated(self.getDeviceProfile(), item, startPosition, callback); + onBitrateDetected(); } }; diff --git a/dashboard-ui/scripts/mypreferenceslanguages.js b/dashboard-ui/scripts/mypreferenceslanguages.js index a74c54f685..aad219ad4f 100644 --- a/dashboard-ui/scripts/mypreferenceslanguages.js +++ b/dashboard-ui/scripts/mypreferenceslanguages.js @@ -34,25 +34,28 @@ page.querySelector('.chkEnableChromecastAc3').checked = AppSettings.enableChromecastAc3(); page.querySelector('.chkExternalVideoPlayer').checked = AppSettings.enableExternalPlayers(); - var bitrateOptions = MediaPlayer.getVideoQualityOptions().map(function (i) { + require(['qualityoptions'], function (qualityoptions) { - return ''; + var bitrateOptions = qualityoptions.getVideoQualityOptions(AppSettings.maxStreamingBitrate()).map(function (i) { - }).join(''); + return ''; - bitrateOptions = '' + bitrateOptions; + }).join(''); - $('#selectMaxBitrate', page).html(bitrateOptions); + bitrateOptions = '' + bitrateOptions; - if (AppSettings.enableAutomaticBitrateDetection()) { - $('#selectMaxBitrate', page).val(''); - } else { - $('#selectMaxBitrate', page).val(AppSettings.maxStreamingBitrate()); - } + $('#selectMaxBitrate', page).html(bitrateOptions); - $('#selectMaxChromecastBitrate', page).val(AppSettings.maxChromecastBitrate()); + if (AppSettings.enableAutomaticBitrateDetection()) { + $('#selectMaxBitrate', page).val(''); + } else { + $('#selectMaxBitrate', page).val(AppSettings.maxStreamingBitrate()); + } - Dashboard.hideLoadingMsg(); + $('#selectMaxChromecastBitrate', page).val(AppSettings.maxChromecastBitrate()); + + Dashboard.hideLoadingMsg(); + }); } function loadPage(page) { diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 2ce8557eb7..1243e5bcf4 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1804,6 +1804,7 @@ var AppInfo = {}; connectionmanagerfactory: apiClientBowerPath + '/connectionmanager', browserdeviceprofile: embyWebComponentsBowerPath + "/browserdeviceprofile", browser: embyWebComponentsBowerPath + "/browser", + qualityoptions: embyWebComponentsBowerPath + "/qualityoptions", connectservice: apiClientBowerPath + '/connectservice' }; From dc1dc6d111d0123be8409a70c6a53ac8cb378b85 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 13:11:29 -0500 Subject: [PATCH 05/58] update downloading --- dashboard-ui/scripts/librarylist.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index 4159bfa7ed..d55214233d 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -260,7 +260,7 @@ }); } - if (user.Policy.EnableContentDownloading) { + if (user.Policy.EnableContentDownloading && AppInfo.supportsDownloading) { if (mediaType) { items.push({ name: Globalize.translate('ButtonDownload'), @@ -1101,6 +1101,14 @@ ironIcon: 'playlist-add' }); + if (user.Policy.EnableContentDownloading && AppInfo.supportsDownloading) { + //items.push({ + // name: Globalize.translate('ButtonDownload'), + // id: 'download', + // ironIcon: 'file-download' + //}); + } + items.push({ name: Globalize.translate('HeaderGroupVersions'), id: 'groupvideos', From 982b1fe96572d689c6368aabcb12adc565f71efd Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 13:47:00 -0500 Subject: [PATCH 06/58] update startup resource loading Conflicts: MediaBrowser.WebDashboard/dashboard-ui/scripts/site.js --- dashboard-ui/scripts/site.js | 189 ++++++++++++++++++++--------------- 1 file changed, 107 insertions(+), 82 deletions(-) diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 1243e5bcf4..de51a00fa8 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -14,7 +14,7 @@ // Compatibility window.Logger = { - log: function(msg) { + log: function (msg) { console.log(msg); } }; @@ -310,6 +310,10 @@ var Dashboard = { showServerRestartWarning: function (systemInfo) { + if (AppInfo.isNativeApp) { + return; + } + var html = '' + Globalize.translate('MessagePleaseRestart') + ''; if (systemInfo.CanSelfRestart) { @@ -329,6 +333,10 @@ var Dashboard = { showDashboardRefreshNotification: function () { + if (AppInfo.isNativeApp) { + return; + } + var html = '' + Globalize.translate('MessagePleaseRefreshPage') + ''; html += '' + Globalize.translate('ButtonRefresh') + ''; @@ -364,10 +372,6 @@ var Dashboard = { showFooterNotification: function (options) { - if (!AppInfo.enableFooterNotifications) { - return; - } - var removeOnHide = !options.id; options.id = options.id || "notification" + new Date().getTime() + parseInt(Math.random()); @@ -1039,8 +1043,32 @@ var Dashboard = { { var args = cmd.Arguments; - if (args.TimeoutMs) { - Dashboard.showFooterNotification({ html: "
" + args.Header + "
" + args.Text, timeout: args.TimeoutMs }); + if (args.TimeoutMs && window.Notification && Notification.permission === "granted") { + + var notification = { + title: args.Header, + body: args.Text, + vibrate: true, + timeout: args.TimeoutMs + }; + + var notif = new Notification(notification.title, notification); + + if (notif.show) { + notif.show(); + } + + if (notification.timeout) { + setTimeout(function () { + + if (notif.close) { + notif.close(); + } + else if (notif.cancel) { + notif.cancel(); + } + }, notification.timeout); + } } else { Dashboard.alert({ title: args.Header, message: args.Text }); @@ -1168,6 +1196,10 @@ var Dashboard = { showPackageInstallNotification: function (installation, status) { + if (AppInfo.isNativeApp) { + return; + } + var html = ''; if (status == 'completed') { @@ -1229,7 +1261,7 @@ var Dashboard = { var newItems = data.ItemsAdded; - if (!newItems.length || AppInfo.isNativeApp || !window.Notification) { + if (!newItems.length || AppInfo.isNativeApp || !window.Notification || Notification.permission !== "granted") { return; } @@ -1254,8 +1286,14 @@ var Dashboard = { var notification = { title: "New " + item.Type, body: item.Name, - timeout: 5000, - vibrate: true + timeout: 15000, + vibrate: true, + + data: { + options: { + url: LibraryBrowser.getHref(item) + } + } }; var imageTags = item.ImageTags || {}; @@ -1269,25 +1307,22 @@ var Dashboard = { }); } - if (Notification.permission === "granted") { + var notif = new Notification(notification.title, notification); - var notif = new Notification(notification.title, notification); + if (notif.show) { + notif.show(); + } - if (notif.show) { - notif.show(); - } + if (notification.timeout) { + setTimeout(function () { - if (notification.timeout) { - setTimeout(function () { - - if (notif.close) { - notif.close(); - } - else if (notif.cancel) { - notif.cancel(); - } - }, notification.timeout); - } + if (notif.close) { + notif.close(); + } + else if (notif.cancel) { + notif.cancel(); + } + }, notification.timeout); } } }); @@ -1572,7 +1607,6 @@ var AppInfo = {}; } } else { - AppInfo.enableFooterNotifications = true; AppInfo.enableSupporterMembership = true; if (!isAndroid && !isIOS) { @@ -1618,24 +1652,34 @@ var AppInfo = {}; Events.on(apiClient, 'requestfail', Dashboard.onRequestFail); } + function getSyncProfile() { + + return getRequirePromise(['scripts/mediaplayer']).then(function () { + return MediaPlayer.getDeviceProfile(Math.max(screen.height, screen.width)); + }); + } + + function onApiClientCreated(e, newApiClient) { + initializeApiClient(newApiClient); + } + //localStorage.clear(); function createConnectionManager(credentialProviderFactory, capabilities) { var credentialKey = Dashboard.isConnectMode() ? null : 'servercredentials4'; var credentialProvider = new credentialProviderFactory(credentialKey); - window.ConnectionManager = new MediaBrowser.ConnectionManager(credentialProvider, AppInfo.appName, AppInfo.appVersion, AppInfo.deviceName, AppInfo.deviceId, capabilities, window.devicePixelRatio); + return getSyncProfile().then(function (deviceProfile) { - if (window.location.href.toLowerCase().indexOf('wizardstart.html') != -1) { - window.ConnectionManager.clearData(); - } + capabilities.DeviceProfile = deviceProfile; - Events.on(ConnectionManager, 'apiclientcreated', function (e, newApiClient) { + window.ConnectionManager = new MediaBrowser.ConnectionManager(credentialProvider, AppInfo.appName, AppInfo.appVersion, AppInfo.deviceName, AppInfo.deviceId, capabilities, window.devicePixelRatio); - initializeApiClient(newApiClient); - }); + if (window.location.href.toLowerCase().indexOf('wizardstart.html') != -1) { + window.ConnectionManager.clearData(); + } - return new Promise(function (resolve, reject) { + Events.on(ConnectionManager, 'apiclientcreated', onApiClientCreated); if (Dashboard.isConnectMode()) { @@ -1646,28 +1690,23 @@ var AppInfo = {}; if (server && server.UserId && server.AccessToken) { Dashboard.showLoadingMsg(); - ConnectionManager.connectToServer(server).then(function (result) { + return ConnectionManager.connectToServer(server).then(function (result) { Dashboard.showLoadingMsg(); if (result.State == MediaBrowser.ConnectionState.SignedIn) { window.ApiClient = result.ApiClient; } - resolve(); }); - return; } } - resolve(); } else { - - require(['apiclient'], function(apiClientFactory) { + return getRequirePromise(['apiclient']).then(function (apiClientFactory) { var apiClient = new apiClientFactory(Dashboard.serverAddress(), AppInfo.appName, AppInfo.appVersion, AppInfo.deviceName, AppInfo.deviceId, window.devicePixelRatio); apiClient.enableAutomaticNetworking = false; ConnectionManager.addApiClient(apiClient); Dashboard.importCss(apiClient.getUrl('Branding/Css')); window.ApiClient = apiClient; - resolve(); }); } }); @@ -2059,8 +2098,8 @@ var AppInfo = {}; deps.push('credentialprovider'); deps.push('appstorage'); - deps.push('scripts/mediaplayer'); deps.push('scripts/appsettings'); + deps.push('scripts/extensions'); require(deps, function (connectionManagerExports, credentialProviderFactory) { @@ -2102,12 +2141,9 @@ var AppInfo = {}; } } - var capabilities = Dashboard.capabilities(); - - capabilities.DeviceProfile = MediaPlayer.getDeviceProfile(Math.max(screen.height, screen.width)); - var promises = []; deps = []; + deps.push('scripts/mediaplayer'); deps.push('thirdparty/jquery.unveil-custom.js'); deps.push('emby-icons'); deps.push('paper-icon-button'); @@ -2117,7 +2153,7 @@ var AppInfo = {}; promises.push(getRequirePromise(deps)); promises.push(Globalize.ensure()); - promises.push(createConnectionManager(credentialProviderFactory, capabilities)); + promises.push(createConnectionManager(credentialProviderFactory, Dashboard.capabilities())); Promise.all(promises).then(function () { @@ -2213,7 +2249,6 @@ var AppInfo = {}; deps.push('scripts/sync'); deps.push('scripts/backdrops'); deps.push('scripts/librarymenu'); - deps.push('apiclient-deferred'); deps.push('css!css/card.css'); @@ -2236,6 +2271,7 @@ var AppInfo = {}; postInitDependencies.push('scripts/remotecontrol'); postInitDependencies.push('css!css/notifications.css'); postInitDependencies.push('css!css/chromecast.css'); + postInitDependencies.push('apiclient-deferred'); if (Dashboard.isRunningInCordova()) { @@ -2376,47 +2412,36 @@ var AppInfo = {}; initRequire(); - var initialDependencies = []; + function onWebComponentsReady() { - initialDependencies.push('browser'); - initialDependencies.push('apiclient-store'); - initialDependencies.push('scripts/extensions'); + var initialDependencies = []; - var supportsNativeWebComponents = 'registerElement' in document && 'content' in document.createElement('template'); + initialDependencies.push('browser'); + initialDependencies.push('apiclient-store'); - if (!supportsNativeWebComponents) { - initialDependencies.push('webcomponentsjs'); - } + if (!window.Promise) { + initialDependencies.push('native-promise-only'); + } - if (!window.Promise) { - initialDependencies.push('native-promise-only'); - } + require(initialDependencies, function (browser) { - require(initialDependencies, function (browser) { + window.browserInfo = browser; + setAppInfo(); + setDocumentClasses(); - window.browserInfo = browser; - - function onWebComponentsReady() { - - var polymerDependencies = []; - - require(polymerDependencies, function () { - - getHostingAppInfo().then(function (hostingAppInfo) { - init(hostingAppInfo); - }); + getHostingAppInfo().then(function (hostingAppInfo) { + init(hostingAppInfo); }); - } + }); + } - setAppInfo(); - setDocumentClasses(); - - if (supportsNativeWebComponents) { - onWebComponentsReady(); - } else { - document.addEventListener('WebComponentsReady', onWebComponentsReady); - } - }); + if ('registerElement' in document && 'content' in document.createElement('template')) { + // Native web components support + onWebComponentsReady(); + } else { + document.addEventListener('WebComponentsReady', onWebComponentsReady); + require(['webcomponentsjs']); + } })(); From a96023074d3b378e82ad029852271f574798949d Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 15:53:42 -0500 Subject: [PATCH 07/58] fix channel item display --- dashboard-ui/scripts/sections.js | 1 - 1 file changed, 1 deletion(-) diff --git a/dashboard-ui/scripts/sections.js b/dashboard-ui/scripts/sections.js index f016b73f10..5559f1aafe 100644 --- a/dashboard-ui/scripts/sections.js +++ b/dashboard-ui/scripts/sections.js @@ -336,7 +336,6 @@ html += '
'; html += LibraryBrowser.getPosterViewHtml({ items: result.Items, - preferThumb: true, shape: 'auto', showTitle: true, centerText: true, From f5eca1ee7f8238d4e25babc04a29075f314eeb38 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 21:32:54 -0500 Subject: [PATCH 08/58] update music buttons --- dashboard-ui/css/card.css | 7 +++++-- dashboard-ui/scripts/favorites.js | 4 ++-- dashboard-ui/scripts/librarybrowser.js | 4 ++-- dashboard-ui/scripts/musicrecommended.js | 6 ++---- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/dashboard-ui/css/card.css b/dashboard-ui/css/card.css index dab8cb7deb..4643361534 100644 --- a/dashboard-ui/css/card.css +++ b/dashboard-ui/css/card.css @@ -70,14 +70,17 @@ border-radius: 2px; } -.cardOverlayMoreButton, .cardOverlayPlayButton { +.cardOverlayButtonContainer { position: absolute; bottom: 0; right: 0; + padding: 1em .5em .5em 1em; +} + +.cardOverlayMoreButton, .cardOverlayPlayButton { color: #333; background-color: rgba(210,210,210,.9); border-radius: 500px; - margin: 0 .3em .3em 0; padding: 5px; width: 36px; height: 36px; diff --git a/dashboard-ui/scripts/favorites.js b/dashboard-ui/scripts/favorites.js index 2f4dc43bc1..422675cab0 100644 --- a/dashboard-ui/scripts/favorites.js +++ b/dashboard-ui/scripts/favorites.js @@ -23,8 +23,8 @@ { name: 'HeaderFavoriteShows', types: "Series", id: "favoriteShows", shape: getPosterShape(), showTitle: false }, { name: 'HeaderFavoriteEpisodes', types: "Episode", id: "favoriteEpisode", shape: getThumbShape(), preferThumb: false, showTitle: true, showParentTitle: true }, { name: 'HeaderFavoriteGames', types: "Game", id: "favoriteGames", shape: getSquareShape(), preferThumb: false, showTitle: true }, - { name: 'HeaderFavoriteArtists', types: "MusicArtist", id: "favoriteArtists", shape: getSquareShape(), preferThumb: false, showTitle: true, overlayText: false, showParentTitle: true, centerText: true, overlayMoreButton: true, defaultAction: 'play' }, - { name: 'HeaderFavoriteAlbums', types: "MusicAlbum", id: "favoriteAlbums", shape: getSquareShape(), preferThumb: false, showTitle: true, overlayText: false, showParentTitle: true, centerText: true, overlayMoreButton: true, defaultAction: 'play' }, + { name: 'HeaderFavoriteArtists', types: "MusicArtist", id: "favoriteArtists", shape: getSquareShape(), preferThumb: false, showTitle: true, overlayText: false, showParentTitle: true, centerText: true, overlayPlayButton: true }, + { name: 'HeaderFavoriteAlbums', types: "MusicAlbum", id: "favoriteAlbums", shape: getSquareShape(), preferThumb: false, showTitle: true, overlayText: false, showParentTitle: true, centerText: true, overlayPlayButton: true }, { name: 'HeaderFavoriteSongs', types: "Audio", id: "favoriteSongs", shape: getSquareShape(), preferThumb: false, showTitle: true, overlayText: false, showParentTitle: true, centerText: true, overlayMoreButton: true, defaultAction: 'instantmix' } ]; } diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 9b8becd238..4d965e439f 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -2171,10 +2171,10 @@ html += ''; if (options.overlayPlayButton && !item.IsPlaceHolder && (item.LocationType != 'Virtual' || !item.MediaType || item.Type == 'Program')) { - html += ''; + html += '
'; } if (options.overlayMoreButton) { - html += ''; + html += '
'; } // cardScalable diff --git a/dashboard-ui/scripts/musicrecommended.js b/dashboard-ui/scripts/musicrecommended.js index 24a9c96109..0802386390 100644 --- a/dashboard-ui/scripts/musicrecommended.js +++ b/dashboard-ui/scripts/musicrecommended.js @@ -39,11 +39,10 @@ showLatestItemsPopup: false, shape: getSquareShape(), showTitle: true, - defaultAction: 'play', showParentTitle: true, lazy: true, centerText: true, - overlayMoreButton: true + overlayPlayButton: true }); ImageLoader.lazyChildren(elem); @@ -174,11 +173,10 @@ shape: getSquareShape(), showTitle: true, lazy: true, - defaultAction: 'play', coverImage: true, showItemCounts: true, centerText: true, - overlayMoreButton: true + overlayPlayButton: true }); ImageLoader.lazyChildren(itemsContainer); From 4e2fad92dde326c6062da8857c5ed25c1fadfa4f Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 21:52:29 -0500 Subject: [PATCH 09/58] update translations --- dashboard-ui/strings/javascript/ar.json | 4 ++-- dashboard-ui/strings/javascript/bg-BG.json | 4 ++-- dashboard-ui/strings/javascript/ca.json | 4 ++-- dashboard-ui/strings/javascript/da.json | 2 +- dashboard-ui/strings/javascript/el.json | 4 ++-- dashboard-ui/strings/javascript/en-GB.json | 8 ++++---- dashboard-ui/strings/javascript/en-US.json | 4 ++-- dashboard-ui/strings/javascript/es-AR.json | 4 ++-- dashboard-ui/strings/javascript/es.json | 4 ++-- dashboard-ui/strings/javascript/fi.json | 4 ++-- dashboard-ui/strings/javascript/gsw.json | 4 ++-- dashboard-ui/strings/javascript/he.json | 4 ++-- dashboard-ui/strings/javascript/hr.json | 4 ++-- dashboard-ui/strings/javascript/ko.json | 4 ++-- dashboard-ui/strings/javascript/ms.json | 4 ++-- dashboard-ui/strings/javascript/nb.json | 2 +- dashboard-ui/strings/javascript/nl.json | 2 +- dashboard-ui/strings/javascript/pt-PT.json | 4 ++-- dashboard-ui/strings/javascript/ro.json | 4 ++-- dashboard-ui/strings/javascript/ru.json | 6 +++--- dashboard-ui/strings/javascript/sl-SI.json | 4 ++-- dashboard-ui/strings/javascript/sv.json | 2 +- dashboard-ui/strings/javascript/tr.json | 4 ++-- dashboard-ui/strings/javascript/uk.json | 4 ++-- dashboard-ui/strings/javascript/vi.json | 4 ++-- dashboard-ui/strings/javascript/zh-CN.json | 2 +- dashboard-ui/strings/javascript/zh-HK.json | 4 ++-- dashboard-ui/strings/javascript/zh-TW.json | 4 ++-- 28 files changed, 54 insertions(+), 54 deletions(-) diff --git a/dashboard-ui/strings/javascript/ar.json b/dashboard-ui/strings/javascript/ar.json index ca44b3b605..ee22ebf3d0 100644 --- a/dashboard-ui/strings/javascript/ar.json +++ b/dashboard-ui/strings/javascript/ar.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/bg-BG.json b/dashboard-ui/strings/javascript/bg-BG.json index a05926d5cf..37c7e16e21 100644 --- a/dashboard-ui/strings/javascript/bg-BG.json +++ b/dashboard-ui/strings/javascript/bg-BG.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/ca.json b/dashboard-ui/strings/javascript/ca.json index 0ae7aabfec..668ae6a61a 100644 --- a/dashboard-ui/strings/javascript/ca.json +++ b/dashboard-ui/strings/javascript/ca.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Si et plau, reinicia per finalitzar l'actualitzaci\u00f3.", "ButtonRestart": "Reinicia", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Prefer\u00e8ncies desades.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Artistes preferits", "HeaderFavoriteSongs": "Can\u00e7ons Preferides", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/da.json b/dashboard-ui/strings/javascript/da.json index 5e03510e32..80b339f0ac 100644 --- a/dashboard-ui/strings/javascript/da.json +++ b/dashboard-ui/strings/javascript/da.json @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/el.json b/dashboard-ui/strings/javascript/el.json index b502b7c85f..8d43dfc7a1 100644 --- a/dashboard-ui/strings/javascript/el.json +++ b/dashboard-ui/strings/javascript/el.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/en-GB.json b/dashboard-ui/strings/javascript/en-GB.json index 05ba367f3a..0d79238265 100644 --- a/dashboard-ui/strings/javascript/en-GB.json +++ b/dashboard-ui/strings/javascript/en-GB.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,18 +918,18 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", - "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing and decreased system stability.", "ButtonPlayOneMinute": "Play one minute", "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", "HeaderTryPlayback": "Try Playback", "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", "MobileSyncFeatureDescription": "Sync your media to your smart phones and tablets for easy offline access.", - "CoverArtFeatureDescription": "Cover Art creates fun covers and other treatments to help you personalize your media images.", + "CoverArtFeatureDescription": "Cover Art creates fun covers and other treatments to help you personalise your media images.", "HeaderMobileSync": "Mobile Sync", "HeaderCloudSync": "Cloud Sync", "CloudSyncFeatureDescription": "Sync your media to the cloud for easy backup, archiving, and converting.", diff --git a/dashboard-ui/strings/javascript/en-US.json b/dashboard-ui/strings/javascript/en-US.json index 5ad12f00f5..bb07107964 100644 --- a/dashboard-ui/strings/javascript/en-US.json +++ b/dashboard-ui/strings/javascript/en-US.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/es-AR.json b/dashboard-ui/strings/javascript/es-AR.json index 06fd4ae363..5fb44d1276 100644 --- a/dashboard-ui/strings/javascript/es-AR.json +++ b/dashboard-ui/strings/javascript/es-AR.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/es.json b/dashboard-ui/strings/javascript/es.json index 3eaa0a4238..ae0f4761f6 100644 --- a/dashboard-ui/strings/javascript/es.json +++ b/dashboard-ui/strings/javascript/es.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Reiniciar", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/fi.json b/dashboard-ui/strings/javascript/fi.json index 8b0fb2d027..c7f1183cc7 100644 --- a/dashboard-ui/strings/javascript/fi.json +++ b/dashboard-ui/strings/javascript/fi.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/gsw.json b/dashboard-ui/strings/javascript/gsw.json index 8a96f0b327..442f4aa053 100644 --- a/dashboard-ui/strings/javascript/gsw.json +++ b/dashboard-ui/strings/javascript/gsw.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/he.json b/dashboard-ui/strings/javascript/he.json index d4151023d0..ed8eb5d2bf 100644 --- a/dashboard-ui/strings/javascript/he.json +++ b/dashboard-ui/strings/javascript/he.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "\u05d4\u05ea\u05d7\u05e8 \u05de\u05d7\u05d3\u05e9", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "\u05d0\u05de\u05e0\u05d9\u05dd \u05de\u05d5\u05e2\u05d3\u05e4\u05d9\u05dd", "HeaderFavoriteSongs": "\u05e9\u05d9\u05e8\u05d9\u05dd \u05de\u05d5\u05e2\u05d3\u05e4\u05d9\u05dd", "HeaderConfirmPluginInstallation": "\u05d0\u05e9\u05e8 \u05d4\u05ea\u05e7\u05e0\u05ea \u05ea\u05d5\u05e1\u05e3", diff --git a/dashboard-ui/strings/javascript/hr.json b/dashboard-ui/strings/javascript/hr.json index 5951853023..5377b7307d 100644 --- a/dashboard-ui/strings/javascript/hr.json +++ b/dashboard-ui/strings/javascript/hr.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Ponovo pokreni", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/ko.json b/dashboard-ui/strings/javascript/ko.json index f8f638d1e3..225d65120b 100644 --- a/dashboard-ui/strings/javascript/ko.json +++ b/dashboard-ui/strings/javascript/ko.json @@ -396,7 +396,7 @@ "HeaderAlert": "\uacbd\uace0", "MessagePleaseRestart": "\uc5c5\ub370\uc774\ud2b8\ub97c \ub9c8\uce58\ub824\uba74 \ub2e4\uc2dc \uc2dc\uc791\ud558\uc138\uc694.", "ButtonRestart": "\ub2e4\uc2dc \uc2dc\uc791", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "\uc228\uae40", "MessageSettingsSaved": "\uc124\uc815\uc774 \uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.", "ButtonSignOut": "\ub85c\uadf8\uc544\uc6c3", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/ms.json b/dashboard-ui/strings/javascript/ms.json index e1a3edcc11..bea6c48fdb 100644 --- a/dashboard-ui/strings/javascript/ms.json +++ b/dashboard-ui/strings/javascript/ms.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/nb.json b/dashboard-ui/strings/javascript/nb.json index 1592706c86..0fa434d4c0 100644 --- a/dashboard-ui/strings/javascript/nb.json +++ b/dashboard-ui/strings/javascript/nb.json @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/nl.json b/dashboard-ui/strings/javascript/nl.json index 25dfa02be0..e8349e5f39 100644 --- a/dashboard-ui/strings/javascript/nl.json +++ b/dashboard-ui/strings/javascript/nl.json @@ -938,5 +938,5 @@ "HeaderCinemaMode": "Cinema Mode", "CinemaModeFeatureDescription": "Cinema Mode geeft je de ware bioscoopervaring met trailers en aangepaste intro voor de weergave van uw keuze.", "CoverArt": "Cover Art", - "ButtonOff": "Off" + "ButtonOff": "Uit" } \ No newline at end of file diff --git a/dashboard-ui/strings/javascript/pt-PT.json b/dashboard-ui/strings/javascript/pt-PT.json index c1b906385d..05fd0dfee5 100644 --- a/dashboard-ui/strings/javascript/pt-PT.json +++ b/dashboard-ui/strings/javascript/pt-PT.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Reiniciar", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/ro.json b/dashboard-ui/strings/javascript/ro.json index 6373f99403..69859e7623 100644 --- a/dashboard-ui/strings/javascript/ro.json +++ b/dashboard-ui/strings/javascript/ro.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/ru.json b/dashboard-ui/strings/javascript/ru.json index 831d040d57..bcf356cf58 100644 --- a/dashboard-ui/strings/javascript/ru.json +++ b/dashboard-ui/strings/javascript/ru.json @@ -290,7 +290,7 @@ "HeaderLatestTvRecordings": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438", "ButtonOk": "\u041e\u041a", "ButtonCancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c", - "ButtonRefresh": "\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c", + "ButtonRefresh": "\u041f\u043e\u0434\u043d\u043e\u0432\u0438\u0442\u044c", "LabelCurrentPath": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0443\u0442\u044c:", "HeaderSelectMediaPath": "\u0412\u044b\u0431\u043e\u0440 \u043f\u0443\u0442\u0438 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445", "HeaderSelectPath": "\u0412\u044b\u0431\u043e\u0440 \u043f\u0443\u0442\u0438", @@ -818,7 +818,7 @@ "ButtonShareHelp": "\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u043e \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u043c\u0438 \u043e \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445. \u041c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0431\u0449\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435.", "ButtonShare": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f", "HeaderConfirm": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435", - "ButtonAdvancedRefresh": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435", + "ButtonAdvancedRefresh": "\u041f\u043e\u0434\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e", "MessageConfirmDeleteTunerDevice": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e?", "MessageConfirmDeleteGuideProvider": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u0434\u043b\u044f \u0442\u0435\u043b\u0435\u0433\u0438\u0434\u0430?", "HeaderDeleteProvider": "\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430", @@ -868,7 +868,7 @@ "OptionAlbumArtist": "\u0418\u0441\u043f. \u0430\u043b\u044c\u0431\u043e\u043c\u0430", "OptionArtist": "\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c", "OptionAlbum": "\u0410\u043b\u044c\u0431\u043e\u043c", - "OptionTrackName": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u043a\u0430", + "OptionTrackName": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u0440\u043e\u0436\u043a\u0438", "OptionCommunityRating": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0435\u0439\u0442\u0438\u043d\u0433", "ButtonSort": "\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c", "ButtonMenu": "\u041c\u0435\u043d\u044e", diff --git a/dashboard-ui/strings/javascript/sl-SI.json b/dashboard-ui/strings/javascript/sl-SI.json index 57b555c4b0..331fe82065 100644 --- a/dashboard-ui/strings/javascript/sl-SI.json +++ b/dashboard-ui/strings/javascript/sl-SI.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/sv.json b/dashboard-ui/strings/javascript/sv.json index 23b5d92af6..a72a1db891 100644 --- a/dashboard-ui/strings/javascript/sv.json +++ b/dashboard-ui/strings/javascript/sv.json @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/tr.json b/dashboard-ui/strings/javascript/tr.json index 9e74d856e1..18dca2e7c0 100644 --- a/dashboard-ui/strings/javascript/tr.json +++ b/dashboard-ui/strings/javascript/tr.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/uk.json b/dashboard-ui/strings/javascript/uk.json index e92dea3323..6e3c126037 100644 --- a/dashboard-ui/strings/javascript/uk.json +++ b/dashboard-ui/strings/javascript/uk.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/vi.json b/dashboard-ui/strings/javascript/vi.json index 7e2a51f3bd..68508b4685 100644 --- a/dashboard-ui/strings/javascript/vi.json +++ b/dashboard-ui/strings/javascript/vi.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/zh-CN.json b/dashboard-ui/strings/javascript/zh-CN.json index a9626291b5..7ab6fe65ee 100644 --- a/dashboard-ui/strings/javascript/zh-CN.json +++ b/dashboard-ui/strings/javascript/zh-CN.json @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/zh-HK.json b/dashboard-ui/strings/javascript/zh-HK.json index b2a6c387bc..9164872f8b 100644 --- a/dashboard-ui/strings/javascript/zh-HK.json +++ b/dashboard-ui/strings/javascript/zh-HK.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "\u8acb\u91cd\u65b0\u555f\u52d5\u4f86\u5b8c\u6210\u66f4\u65b0", "ButtonRestart": "\u91cd\u65b0\u555f\u52d5", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "\u767b\u51fa", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/zh-TW.json b/dashboard-ui/strings/javascript/zh-TW.json index c782e81ab0..57959ff2ef 100644 --- a/dashboard-ui/strings/javascript/zh-TW.json +++ b/dashboard-ui/strings/javascript/zh-TW.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -918,7 +918,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", From a27fab2c31dcda9455f510c778c58aa5ec5402d8 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Dec 2015 21:55:12 -0500 Subject: [PATCH 10/58] merge from dev --- dashboard-ui/scripts/chromecast.js | 9 +++++---- dashboard-ui/scripts/indexpage.js | 7 ++++--- dashboard-ui/scripts/useredit.js | 2 +- dashboard-ui/strings/javascript/javascript.json | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/dashboard-ui/scripts/chromecast.js b/dashboard-ui/scripts/chromecast.js index 375888bfe8..1256e769f3 100644 --- a/dashboard-ui/scripts/chromecast.js +++ b/dashboard-ui/scripts/chromecast.js @@ -34,7 +34,7 @@ 'IDLE': 0, 'ACTIVE': 1, 'WARNING': 2, - 'ERROR': 3, + 'ERROR': 3 }; /** @@ -52,10 +52,11 @@ }; var applicationID = "2D4B1DA3"; - var messageNamespace = 'urn:x-cast:com.connectsdk'; - //var applicationID = "F4EB2E8E"; - //var messageNamespace = 'urn:x-cast:com.google.cast.mediabrowser.v3'; + // This is the beta version used for testing new changes + //applicationID = '27C4EB5B'; + + var messageNamespace = 'urn:x-cast:com.connectsdk'; var CastPlayer = function () { diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js index 31af33a6dd..5377fef4d5 100644 --- a/dashboard-ui/scripts/indexpage.js +++ b/dashboard-ui/scripts/indexpage.js @@ -95,9 +95,10 @@ elem.innerHTML = ''; - var deferred = DeferredBuilder.Deferred(); - deferred.resolve(); - return deferred.promise(); + return new Promise(function (resolve, reject) { + + resolve(); + }); } } diff --git a/dashboard-ui/scripts/useredit.js b/dashboard-ui/scripts/useredit.js index 76dff622e2..4848388f2e 100644 --- a/dashboard-ui/scripts/useredit.js +++ b/dashboard-ui/scripts/useredit.js @@ -115,7 +115,7 @@ Dashboard.alert({ - message: Globalize.translate('ErrorAddingEmbyConnectAccount') + message: Globalize.translate('ErrorAddingEmbyConnectAccount', 'apps@emby.media') }); }); diff --git a/dashboard-ui/strings/javascript/javascript.json b/dashboard-ui/strings/javascript/javascript.json index 9789586b81..24fbf61ec0 100644 --- a/dashboard-ui/strings/javascript/javascript.json +++ b/dashboard-ui/strings/javascript/javascript.json @@ -402,7 +402,7 @@ "MessagePleaseRestart": "Please restart to finish updating.", "ButtonRestart": "Restart", "ButtonRefresh": "Refresh", - "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Hide", "MessageSettingsSaved": "Settings saved.", "ButtonSignOut": "Sign Out", @@ -928,7 +928,7 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If this email was not received please send an email to apps@emby.media from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", From 20dfd8dd24f192ea52d440708f3a5b5fb1bd9a34 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 30 Dec 2015 11:59:27 -0500 Subject: [PATCH 11/58] fix guide paging --- dashboard-ui/components/tvguide/tvguide.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dashboard-ui/components/tvguide/tvguide.js b/dashboard-ui/components/tvguide/tvguide.js index e66cd32137..70b56b927c 100644 --- a/dashboard-ui/components/tvguide/tvguide.js +++ b/dashboard-ui/components/tvguide/tvguide.js @@ -104,17 +104,17 @@ $(channelPaging); } - Events.on(page.querySelector('.btnNextPage'), 'click', function () { + page.querySelector('.btnNextPage').addEventListener('click', function () { channelQuery.StartIndex += channelQuery.Limit; reloadChannels(page); }); - Events.on(page.querySelector('.btnPreviousPage'), 'click', function () { + page.querySelector('.btnPreviousPage').addEventListener('click', function () { channelQuery.StartIndex -= channelQuery.Limit; reloadChannels(page); }); - Events.on(page.querySelector('#selectPageSize'), 'change', function () { + page.querySelector('#selectPageSize').addEventListener('change', function () { channelQuery.Limit = parseInt(this.value); channelQuery.StartIndex = 0; reloadChannels(page); From 958c6e2d76f1c3ebeefffb9a6b1dd1caa7774da5 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 30 Dec 2015 13:02:44 -0500 Subject: [PATCH 12/58] fix video playlist playback --- dashboard-ui/scripts/mediaplayer-video.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js index 5077d4e93b..15489b1fda 100644 --- a/dashboard-ui/scripts/mediaplayer-video.js +++ b/dashboard-ui/scripts/mediaplayer-video.js @@ -972,14 +972,15 @@ if (browserInfo.safari && !mediaSource.RunTimeTicks) { Dashboard.showLoadingMsg(); - + var hlsPlaylistUrl = streamInfo.url.replace('master.m3u8', 'live.m3u8'); ApiClient.ajax({ type: 'GET', - url: streamInfo.url.replace('master.m3u8', 'live.m3u8') + url: hlsPlaylistUrl }).then(function () { Dashboard.hideLoadingMsg(); + streamInfo.url = hlsPlaylistUrl; self.playVideoInternal(item, mediaSource, startPosition, streamInfo, callback); }, function () { Dashboard.hideLoadingMsg(); @@ -1002,10 +1003,10 @@ elem.classList.add('hide'); }; - if (!browserInfo.animate) { + //if (!browserInfo.animate) { onfinish(); return; - } + //} requestAnimationFrame(function () { var keyframes = [ From a67f62c0798a90ff74d4d708f1efeab3650bf1f9 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 30 Dec 2015 13:48:14 -0500 Subject: [PATCH 13/58] resolve nfo page error --- dashboard-ui/scripts/metadatanfo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard-ui/scripts/metadatanfo.js b/dashboard-ui/scripts/metadatanfo.js index 2c2c2a3e3f..839c002ce1 100644 --- a/dashboard-ui/scripts/metadatanfo.js +++ b/dashboard-ui/scripts/metadatanfo.js @@ -54,7 +54,7 @@ Promise.all([promise1, promise2]).then(function (responses) { - loadPage(page, responses[0], responses[0]); + loadPage(page, responses[1], responses[0]); }); }); From ddb9a7cdc4881ddcebf667a6db65ce74cced5daa Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 30 Dec 2015 15:25:17 -0500 Subject: [PATCH 14/58] update promises --- dashboard-ui/scripts/chromecast.js | 12 +- dashboard-ui/scripts/librarybrowser.js | 8 +- dashboard-ui/scripts/librarymenu.js | 8 +- dashboard-ui/scripts/mediacontroller.js | 101 ++++++++--------- dashboard-ui/scripts/mediaplayer-video.js | 6 +- dashboard-ui/scripts/mediaplayer.js | 41 +++---- dashboard-ui/scripts/registrationservices.js | 50 ++++----- dashboard-ui/scripts/remotecontrol.js | 109 +++++++++---------- dashboard-ui/scripts/sections.js | 8 +- 9 files changed, 164 insertions(+), 179 deletions(-) diff --git a/dashboard-ui/scripts/chromecast.js b/dashboard-ui/scripts/chromecast.js index 1256e769f3..94b6f73a96 100644 --- a/dashboard-ui/scripts/chromecast.js +++ b/dashboard-ui/scripts/chromecast.js @@ -675,14 +675,16 @@ self.getTargets = function () { - var targets = []; + return new Promise(function (resolve, reject) { - if (castPlayer.hasReceivers) { - targets.push(self.getCurrentTargetInfo()); - } + var targets = []; - return targets; + if (castPlayer.hasReceivers) { + targets.push(self.getCurrentTargetInfo()); + } + resolve(targets); + }); }; self.getCurrentTargetInfo = function () { diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 4d965e439f..f5181c06a0 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -107,11 +107,11 @@ getSavedViewSetting: function (key) { - var deferred = $.Deferred(); - var val = LibraryBrowser.getSavedView(key); + return new Promise(function (resolve, reject) { - deferred.resolveWith(null, [val]); - return deferred.promise(); + var val = LibraryBrowser.getSavedView(key); + resolve(val); + }); }, needsRefresh: function (elem) { diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index 40ac1ef3e0..5ce1658ee5 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -404,9 +404,7 @@ function getUserViews(apiClient, userId) { - var deferred = $.Deferred(); - - apiClient.getUserViews({}, userId).then(function (result) { + return apiClient.getUserViews({}, userId).then(function (result) { var items = result.Items; @@ -442,10 +440,8 @@ } } - deferred.resolveWith(null, [list]); + return list; }); - - return deferred.promise(); } function updateLibraryMenu(user) { diff --git a/dashboard-ui/scripts/mediacontroller.js b/dashboard-ui/scripts/mediacontroller.js index 709537c2df..387937003c 100644 --- a/dashboard-ui/scripts/mediacontroller.js +++ b/dashboard-ui/scripts/mediacontroller.js @@ -370,9 +370,11 @@ self.setDefaultPlayerActive = function () { var player = self.getDefaultPlayer(); - var target = player.getTargets()[0]; - self.setActivePlayer(player, target); + player.getTargets().then(function (targets) { + + self.setActivePlayer(player, targets[0]); + }); }; self.removeActivePlayer = function (name) { @@ -449,13 +451,11 @@ self.getTargets = function () { - var deferred = $.Deferred(); - var promises = players.map(function (p) { return p.getTargets(); }); - Promise.all(promises).then(function (responses) { + return Promise.all(promises).then(function (responses) { var targets = []; @@ -481,10 +481,8 @@ return aVal.localeCompare(bVal); }); - deferred.resolveWith(null, [targets]); + return targets; }); - - return deferred.promise(); }; function doWithPlaybackValidation(player, fn) { @@ -831,40 +829,35 @@ self.getPlaybackInfo = function (itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId) { - var deferred = DeferredBuilder.Deferred(); + return new Promise(function (resolve, reject) { - require(['localassetmanager'], function () { + require(['localassetmanager'], function () { - var serverInfo = ApiClient.serverInfo(); + var serverInfo = ApiClient.serverInfo(); - if (serverInfo.Id) { - LocalAssetManager.getLocalMediaSource(serverInfo.Id, itemId).then(function (localMediaSource) { - // Use the local media source if a specific one wasn't requested, or the smae one was requested - if (localMediaSource && (!mediaSource || mediaSource.Id == localMediaSource.Id)) { + if (serverInfo.Id) { + LocalAssetManager.getLocalMediaSource(serverInfo.Id, itemId).then(function (localMediaSource) { + // Use the local media source if a specific one wasn't requested, or the smae one was requested + if (localMediaSource && (!mediaSource || mediaSource.Id == localMediaSource.Id)) { - var playbackInfo = getPlaybackInfoFromLocalMediaSource(itemId, deviceProfile, startPosition, localMediaSource); + var playbackInfo = getPlaybackInfoFromLocalMediaSource(itemId, deviceProfile, startPosition, localMediaSource); - deferred.resolveWith(null, [playbackInfo]); - return; - } + resolve(playbackInfo); + return; + } - getPlaybackInfoWithoutLocalMediaSource(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId, deferred); - }); - return; - } + getPlaybackInfoWithoutLocalMediaSource(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId, resolve, reject); + }); + return; + } - getPlaybackInfoWithoutLocalMediaSource(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId, deferred); + getPlaybackInfoWithoutLocalMediaSource(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId, resolve, reject); + }); }); - - return deferred.promise(); } - function getPlaybackInfoWithoutLocalMediaSource(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId, deferred) { - self.getPlaybackInfoInternal(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId).then(function (result) { - deferred.resolveWith(null, [result]); - }, function () { - deferred.reject(); - }); + function getPlaybackInfoWithoutLocalMediaSource(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId, resolve, reject) { + self.getPlaybackInfoInternal(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId).then(resolve, reject); } self.getPlaybackInfoInternal = function (itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId) { @@ -934,36 +927,36 @@ self.supportsDirectPlay = function (mediaSource) { - var deferred = $.Deferred(); - if (mediaSource.SupportsDirectPlay) { + return new Promise(function (resolve, reject) { + if (mediaSource.SupportsDirectPlay) { - if (mediaSource.Protocol == 'Http' && !mediaSource.RequiredHttpHeaders.length) { + if (mediaSource.Protocol == 'Http' && !mediaSource.RequiredHttpHeaders.length) { - // If this is the only way it can be played, then allow it - if (!mediaSource.SupportsDirectStream && !mediaSource.SupportsTranscoding) { - deferred.resolveWith(null, [true]); + // If this is the only way it can be played, then allow it + if (!mediaSource.SupportsDirectStream && !mediaSource.SupportsTranscoding) { + resolve(true); + } + else { + var val = mediaSource.Path.toLowerCase().replace('https:', 'http').indexOf(ApiClient.serverAddress().toLowerCase().replace('https:', 'http').substring(0, 14)) == 0; + resolve(val); + } } - else { - var val = mediaSource.Path.toLowerCase().replace('https:', 'http').indexOf(ApiClient.serverAddress().toLowerCase().replace('https:', 'http').substring(0, 14)) == 0; - deferred.resolveWith(null, [val]); - } - } - if (mediaSource.Protocol == 'File') { + if (mediaSource.Protocol == 'File') { - require(['localassetmanager'], function () { + require(['localassetmanager'], function () { - LocalAssetManager.fileExists(mediaSource.Path).then(function (exists) { - console.log('LocalAssetManager.fileExists: path: ' + mediaSource.Path + ' result: ' + exists); - deferred.resolveWith(null, [exists]); + LocalAssetManager.fileExists(mediaSource.Path).then(function (exists) { + console.log('LocalAssetManager.fileExists: path: ' + mediaSource.Path + ' result: ' + exists); + resolve(exists); + }); }); - }); + } } - } - else { - deferred.resolveWith(null, [false]); - } - return deferred.promise(); + else { + resolve(false); + } + }); }; self.showPlayerSelection = showPlayerSelection; diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js index 15489b1fda..327e4858fc 100644 --- a/dashboard-ui/scripts/mediaplayer-video.js +++ b/dashboard-ui/scripts/mediaplayer-video.js @@ -1004,8 +1004,8 @@ }; //if (!browserInfo.animate) { - onfinish(); - return; + onfinish(); + return; //} requestAnimationFrame(function () { @@ -1025,7 +1025,7 @@ elem.classList.remove('hide'); - if (!browserInfo.animate) { + if (!browserInfo.animate || browserInfo.mobile) { return; } diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index 295ac35a1a..6af946a073 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -24,6 +24,14 @@ self.getTargets = function () { + return new Promise(function (resolve, reject) { + + resolve(self.getTargetsInternal()); + }); + }; + + self.getTargetsInternal = function () { + var targets = [{ name: Globalize.translate('MyDevice'), id: AppInfo.deviceId, @@ -565,7 +573,7 @@ var liveStreamId = getParameterByName('LiveStreamId', currentSrc); self.getDeviceProfile().then(function (deviceProfile) { - + var audioStreamIndex = params.AudioStreamIndex == null ? (getParameterByName('AudioStreamIndex', currentSrc) || null) : params.AudioStreamIndex; if (typeof (audioStreamIndex) == 'string') { audioStreamIndex = parseInt(audioStreamIndex); @@ -823,13 +831,11 @@ function getOptimalMediaSource(mediaType, versions) { - var deferred = $.Deferred(); - var promises = versions.map(function (v) { return MediaController.supportsDirectPlay(v); }); - Promise.all(promises).then(function (responses) { + return Promise.all(promises).then(function (responses) { for (var i = 0, length = versions.length; i < length; i++) { versions[i].enableDirectPlay = responses[i] || false; @@ -852,10 +858,8 @@ return s.SupportsTranscoding; })[0]; - deferred.resolveWith(null, [optimalVersion]); + return optimalVersion; }); - - return deferred.promise(); } self.createStreamInfo = function (type, item, mediaSource, startPosition) { @@ -1021,8 +1025,8 @@ return; } - var onBitrateDetected = function() { - self.getDeviceProfile().then(function(deviceProfile) { + var onBitrateDetected = function () { + self.getDeviceProfile().then(function (deviceProfile) { playOnDeviceProfileCreated(deviceProfile, item, startPosition, callback); }); }; @@ -1540,13 +1544,11 @@ self.getPlayerState = function () { - var deferred = $.Deferred(); + return new Promise(function (resolve, reject) { - var result = self.getPlayerStateInternal(self.currentMediaRenderer, self.currentItem, self.currentMediaSource); - - deferred.resolveWith(null, [result]); - - return deferred.promise(); + var result = self.getPlayerStateInternal(self.currentMediaRenderer, self.currentItem, self.currentMediaSource); + resolve(result); + }); }; self.getPlayerStateInternal = function (mediaRenderer, item, mediaSource) { @@ -1967,16 +1969,17 @@ self.tryPair = function (target) { - var deferred = $.Deferred(); - deferred.resolve(); - return deferred.promise(); + return new Promise(function (resolve, reject) { + + resolve(); + }); }; } window.MediaPlayer = new mediaPlayer(); window.MediaController.registerPlayer(window.MediaPlayer); - window.MediaController.setActivePlayer(window.MediaPlayer, window.MediaPlayer.getTargets()[0]); + window.MediaController.setActivePlayer(window.MediaPlayer, window.MediaPlayer.getTargetsInternal()[0]); })(document, setTimeout, clearTimeout, screen, setInterval, window); \ No newline at end of file diff --git a/dashboard-ui/scripts/registrationservices.js b/dashboard-ui/scripts/registrationservices.js index 8add335871..022b880986 100644 --- a/dashboard-ui/scripts/registrationservices.js +++ b/dashboard-ui/scripts/registrationservices.js @@ -2,12 +2,12 @@ var supporterPlaybackKey = 'lastSupporterPlaybackMessage4'; - function validatePlayback(deferred) { + function validatePlayback(resolve, reject) { Dashboard.getPluginSecurityInfo().then(function (pluginSecurityInfo) { if (pluginSecurityInfo.IsMBSupporter) { - deferred.resolve(); + resolve(); } else { var lastMessage = parseInt(appStorage.getItem(supporterPlaybackKey) || '0'); @@ -16,13 +16,13 @@ // Don't show on the very first playback attempt appStorage.setItem(supporterPlaybackKey, new Date().getTime()); - deferred.resolve(); + resolve(); } else if ((new Date().getTime() - lastMessage) > 345600000) { - showPlaybackOverlay(deferred); + showPlaybackOverlay(resolve, reject); } else { - deferred.resolve(); + resolve(); } } }); @@ -95,7 +95,7 @@ return html; } - function showPlaybackOverlay(deferred) { + function showPlaybackOverlay(resolve, reject) { require(['components/paperdialoghelper', 'paper-fab', 'paper-item-body', 'paper-icon-item'], function (paperDialogHelper) { @@ -135,7 +135,7 @@ dlg.addEventListener('iron-overlay-closed', function (e) { appStorage.setItem(supporterPlaybackKey, new Date().getTime()); dlg.parentNode.removeChild(dlg); - deferred.resolve(); + resolve(); }); paperDialogHelper.open(dlg); @@ -146,12 +146,12 @@ }); } - function validateSync(deferred) { + function validateSync(resolve, reject) { Dashboard.getPluginSecurityInfo().then(function (pluginSecurityInfo) { if (pluginSecurityInfo.IsMBSupporter) { - deferred.resolve(); + resolve(); return; } @@ -162,21 +162,19 @@ Dashboard.hideLoadingMsg(); if (registrationInfo.IsRegistered) { - deferred.resolve(); + resolve(); return; } Dashboard.alert({ message: Globalize.translate('HeaderSyncRequiresSupporterMembership') + '

' + Globalize.translate('ButtonLearnMore') + '

', title: Globalize.translate('HeaderSync'), - callback: function () { - deferred.reject(); - } + callback: reject }); }, function () { - deferred.reject(); + reject(); Dashboard.hideLoadingMsg(); Dashboard.alert({ @@ -279,19 +277,17 @@ validateFeature: function (name) { - var deferred = DeferredBuilder.Deferred(); - - if (name == 'playback') { - validatePlayback(deferred); - } else if (name == 'livetv') { - deferred.resolve(); - } else if (name == 'sync') { - validateSync(deferred); - } else { - deferred.resolve(); - } - - return deferred.promise(); + return new Promise(function (resolve, reject) { + if (name == 'playback') { + validatePlayback(resolve, reject); + } else if (name == 'livetv') { + resolve(); + } else if (name == 'sync') { + validateSync(resolve, reject); + } else { + resolve(); + } + }); } }; diff --git a/dashboard-ui/scripts/remotecontrol.js b/dashboard-ui/scripts/remotecontrol.js index 990feb8535..e74e83c294 100644 --- a/dashboard-ui/scripts/remotecontrol.js +++ b/dashboard-ui/scripts/remotecontrol.js @@ -167,32 +167,31 @@ self.getPlayerState = function () { - var deferred = $.Deferred(); + return new Promise(function (resolve, reject) { - var apiClient = window.ApiClient; + var apiClient = window.ApiClient; - if (apiClient) { - apiClient.getSessions().then(function (sessions) { + if (apiClient) { + apiClient.getSessions().then(function (sessions) { - var currentTargetId = MediaController.getPlayerInfo().id; + var currentTargetId = MediaController.getPlayerInfo().id; - // Update existing data - //updateSessionInfo(popup, msg.Data); - var session = sessions.filter(function (s) { - return s.Id == currentTargetId; - })[0]; + // Update existing data + //updateSessionInfo(popup, msg.Data); + var session = sessions.filter(function (s) { + return s.Id == currentTargetId; + })[0]; - if (session) { - session = getPlayerState(session); - } + if (session) { + session = getPlayerState(session); + } - deferred.resolveWith(null, [session]); - }); - } else { - deferred.resolveWith(null, [{}]); - } - - return deferred.promise(); + resolve(session); + }); + } else { + resolve({}); + } + }); }; var pollInterval; @@ -263,53 +262,53 @@ self.getTargets = function () { - var deferred = $.Deferred(); + return new Promise(function (resolve, reject) { - var sessionQuery = { - ControllableByUserId: Dashboard.getCurrentUserId() - }; + var sessionQuery = { + ControllableByUserId: Dashboard.getCurrentUserId() + }; - var apiClient = window.ApiClient; + var apiClient = window.ApiClient; - if (apiClient) { - apiClient.getSessions(sessionQuery).then(function (sessions) { + if (apiClient) { + apiClient.getSessions(sessionQuery).then(function (sessions) { - var targets = sessions.filter(function (s) { + var targets = sessions.filter(function (s) { - return s.DeviceId != apiClient.deviceId(); + return s.DeviceId != apiClient.deviceId(); - }).map(function (s) { - return { - name: s.DeviceName, - deviceName: s.DeviceName, - id: s.Id, - playerName: self.name, - appName: s.Client, - playableMediaTypes: s.PlayableMediaTypes, - isLocalPlayer: false, - supportedCommands: s.SupportedCommands - }; + }).map(function (s) { + return { + name: s.DeviceName, + deviceName: s.DeviceName, + id: s.Id, + playerName: self.name, + appName: s.Client, + playableMediaTypes: s.PlayableMediaTypes, + isLocalPlayer: false, + supportedCommands: s.SupportedCommands + }; + }); + + resolve(targets); + + }, function () { + + reject(); }); - deferred.resolveWith(null, [targets]); - - }, function () { - - deferred.reject(); - }); - - } else { - deferred.resolveWith(null, []); - } - - return deferred.promise(); + } else { + resolve([]); + } + }); }; self.tryPair = function(target) { - var deferred = $.Deferred(); - deferred.resolve(); - return deferred.promise(); + return new Promise(function (resolve, reject) { + + resolve(); + }); }; } diff --git a/dashboard-ui/scripts/sections.js b/dashboard-ui/scripts/sections.js index 5559f1aafe..67d0b9476c 100644 --- a/dashboard-ui/scripts/sections.js +++ b/dashboard-ui/scripts/sections.js @@ -2,9 +2,7 @@ function getUserViews(userId) { - var deferred = $.Deferred(); - - ApiClient.getUserViews({}, userId).then(function (result) { + return ApiClient.getUserViews({}, userId).then(function (result) { var items = result.Items; @@ -44,10 +42,8 @@ } } - deferred.resolveWith(null, [list]); + return list; }); - - return deferred.promise(); } function enableScrollX() { From 5e99fceeacf89a8aaacc13d2fcae33ad16b2dc95 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 30 Dec 2015 15:25:32 -0500 Subject: [PATCH 15/58] add play button to search results --- dashboard-ui/scripts/search.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dashboard-ui/scripts/search.js b/dashboard-ui/scripts/search.js index 5c3104252e..8a83174b18 100644 --- a/dashboard-ui/scripts/search.js +++ b/dashboard-ui/scripts/search.js @@ -92,7 +92,8 @@ showTitle: true, centerImage: true, centerText: true, - textLines: getAdditionalTextLines + textLines: getAdditionalTextLines, + overlayPlayButton: true }); var itemsContainer = elem.querySelector('.itemsContainer'); From 129ceb48329db68a4d2d498a96562d55db8da2bc Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 30 Dec 2015 17:07:36 -0500 Subject: [PATCH 16/58] update translations --- dashboard-ui/strings/javascript/ar.json | 6 +++++- dashboard-ui/strings/javascript/bg-BG.json | 6 +++++- dashboard-ui/strings/javascript/ca.json | 8 ++++++-- dashboard-ui/strings/javascript/cs.json | 10 +++++++--- dashboard-ui/strings/javascript/da.json | 8 ++++++-- dashboard-ui/strings/javascript/de.json | 8 ++++++-- dashboard-ui/strings/javascript/el.json | 6 +++++- dashboard-ui/strings/javascript/en-GB.json | 6 +++++- dashboard-ui/strings/javascript/en-US.json | 6 +++++- dashboard-ui/strings/javascript/es-AR.json | 6 +++++- dashboard-ui/strings/javascript/es-MX.json | 8 ++++++-- dashboard-ui/strings/javascript/es.json | 6 +++++- dashboard-ui/strings/javascript/fi.json | 6 +++++- dashboard-ui/strings/javascript/fr.json | 10 +++++++--- dashboard-ui/strings/javascript/gsw.json | 6 +++++- dashboard-ui/strings/javascript/he.json | 6 +++++- dashboard-ui/strings/javascript/hr.json | 6 +++++- dashboard-ui/strings/javascript/it.json | 10 +++++++--- dashboard-ui/strings/javascript/javascript.json | 6 +++++- dashboard-ui/strings/javascript/kk.json | 8 ++++++-- dashboard-ui/strings/javascript/ko.json | 6 +++++- dashboard-ui/strings/javascript/ms.json | 6 +++++- dashboard-ui/strings/javascript/nb.json | 8 ++++++-- dashboard-ui/strings/javascript/nl.json | 10 +++++++--- dashboard-ui/strings/javascript/pl.json | 10 +++++++--- dashboard-ui/strings/javascript/pt-BR.json | 8 ++++++-- dashboard-ui/strings/javascript/pt-PT.json | 6 +++++- dashboard-ui/strings/javascript/ro.json | 6 +++++- dashboard-ui/strings/javascript/ru.json | 8 ++++++-- dashboard-ui/strings/javascript/sl-SI.json | 6 +++++- dashboard-ui/strings/javascript/sv.json | 8 ++++++-- dashboard-ui/strings/javascript/tr.json | 6 +++++- dashboard-ui/strings/javascript/uk.json | 6 +++++- dashboard-ui/strings/javascript/vi.json | 6 +++++- dashboard-ui/strings/javascript/zh-CN.json | 8 ++++++-- dashboard-ui/strings/javascript/zh-HK.json | 6 +++++- dashboard-ui/strings/javascript/zh-TW.json | 6 +++++- 37 files changed, 205 insertions(+), 57 deletions(-) diff --git a/dashboard-ui/strings/javascript/ar.json b/dashboard-ui/strings/javascript/ar.json index ee22ebf3d0..0b64958fa8 100644 --- a/dashboard-ui/strings/javascript/ar.json +++ b/dashboard-ui/strings/javascript/ar.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/bg-BG.json b/dashboard-ui/strings/javascript/bg-BG.json index 37c7e16e21..e995c30d68 100644 --- a/dashboard-ui/strings/javascript/bg-BG.json +++ b/dashboard-ui/strings/javascript/bg-BG.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/ca.json b/dashboard-ui/strings/javascript/ca.json index 668ae6a61a..8e1228585e 100644 --- a/dashboard-ui/strings/javascript/ca.json +++ b/dashboard-ui/strings/javascript/ca.json @@ -48,7 +48,7 @@ "ButtonIdentify": "Identify", "HeaderIdentifyItem": "Identify Item", "LabelRecurringDonationCanBeCancelledHelp": "Recurring donations can be cancelled at any time from within your PayPal account.", - "HeaderMyMedia": "Els meus multim\u00e8dia", + "HeaderMyMedia": "Els Meus Multim\u00e8dia", "ButtonRemoveFromCollection": "Remove from Collection", "LabelAutomaticUpdateLevel": "Automatic update level:", "LabelAutomaticUpdateLevelForPlugins": "Automatic update level for plugins:", @@ -887,6 +887,9 @@ "ButtonYes": "S\u00ed", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restaurar la compra", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "Per a tu", "ButtonLibrary": "Biblioteca", "ButtonSearch": "Cercar", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Artistes preferits", "HeaderFavoriteSongs": "Can\u00e7ons Preferides", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/cs.json b/dashboard-ui/strings/javascript/cs.json index 86859d1758..99aed3abd0 100644 --- a/dashboard-ui/strings/javascript/cs.json +++ b/dashboard-ui/strings/javascript/cs.json @@ -396,7 +396,7 @@ "HeaderAlert": "Upozorn\u011bn\u00ed", "MessagePleaseRestart": "Pro dokon\u010den\u00ed aktualizac\u00ed, pros\u00edm, restartujte.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Obnovte tuto str\u00e1nku pro kontrolu nov\u00fdch aktualizac\u00ed ze serveru.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Skr\u00fdt", "MessageSettingsSaved": "Nastaven\u00ed ulo\u017eeno.", "ButtonSignOut": "Odhl\u00e1sit se", @@ -883,10 +883,13 @@ "ButtonGuide": "Pr\u016fvodce", "ButtonRecordedTv": "TV nahr\u00e1vky", "HeaderDisconnectFromPlayer": "Odpojeno od p\u0159ehr\u00e1va\u010de", - "ConfirmEndPlayerSession": "Chcete vypnout aplikaci na vzd\u00e1len\u00e9m za\u0159\u00edzen\u00ed?", + "ConfirmEndPlayerSession": "Would you like to close Emby on the device?", "ButtonYes": "Ano", "ButtonNo": "Ne", "ButtonRestorePreviousPurchase": "Obnovit n\u00e1kup", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "Pro v\u00e1s", "ButtonLibrary": "Knihovna", "ButtonSearch": "Hled\u00e1n\u00ed", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "P\u0159idejte pros\u00edm nejm\u00e9n\u011b jednu slo\u017eku do t\u00e9to knihovny pomoc\u00ed tla\u010d\u00edtka P\u0159idat.", "ErrorAddingMediaPathToVirtualFolder": "Nastala chyba p\u0159i p\u0159id\u00e1v\u00e1n\u00ed cesty k m\u00e9di\u00edm. Zkontrolujte zda zadan\u00e1 slo\u017eka je validn\u00ed a Emby Server m\u00e1 k t\u00e9to slo\u017ece p\u0159\u00edstup.", "ErrorRemovingEmbyConnectAccount": "Nastala chyba p\u0159i odebr\u00e1n\u00ed \u00fa\u010dtu Emby Connect. Zkontrolujte zda m\u00e1te aktivn\u00ed internetov\u00e9 p\u0159ipojen\u00ed a zkuste znovu.", - "ErrorAddingEmbyConnectAccount": "Nastala chyba p\u0159i p\u0159id\u00e1n\u00ed \u00fa\u010dtu Emby Connect. Ujist\u011bte se, \u017ee Emby \u00fa\u010det byl aktivov\u00e1n dle instrukc\u00ed odeslan\u00fdch na email p\u0159i vytv\u00e1\u0159en\u00ed Emby \u00fa\u010dtu. Jestli\u017ee jste email nedostali, pak zkuste odeslat email na apps@emby.media z va\u0161eho emailov\u00e9ho \u00fa\u010dtu, kter\u00fd byl pou\u017eit pro p\u0159ihl\u00e1\u0161en\u00ed k Emby.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Obl\u00edben\u00ed \u00fam\u011blci", "HeaderFavoriteSongs": "Obl\u00edben\u00e1 hudba", "HeaderConfirmPluginInstallation": "Potvrzen\u00ed instalace z\u00e1suvn\u00e9ho modulu", diff --git a/dashboard-ui/strings/javascript/da.json b/dashboard-ui/strings/javascript/da.json index 80b339f0ac..0b677ea203 100644 --- a/dashboard-ui/strings/javascript/da.json +++ b/dashboard-ui/strings/javascript/da.json @@ -396,7 +396,7 @@ "HeaderAlert": "Advarsel", "MessagePleaseRestart": "Genstart venligst for at afslutte opdateringen.", "ButtonRestart": "Genstart", - "MessagePleaseRefreshPage": "Genindl\u00e6s venligst denne side for at modtage nye opdateringer fra serveren.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Gem", "MessageSettingsSaved": "Indstillinger er gemt.", "ButtonSignOut": "Sign Out", @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "S\u00f8g", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/de.json b/dashboard-ui/strings/javascript/de.json index a3d53c4b63..0ae917dd28 100644 --- a/dashboard-ui/strings/javascript/de.json +++ b/dashboard-ui/strings/javascript/de.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alarm", "MessagePleaseRestart": "Dr\u00fccke auf Neustart um das Update abzuschlie\u00dfen", "ButtonRestart": "Neu starten", - "MessagePleaseRefreshPage": "Bitte aktualisiere diese Seite um neue Updates vom Server zu erhalten.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Verstecke", "MessageSettingsSaved": "Einstellungen gespeichert", "ButtonSignOut": "Abmelden", @@ -887,6 +887,9 @@ "ButtonYes": "Ja", "ButtonNo": "Nein", "ButtonRestorePreviousPurchase": "Kauf wiederherstellen", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "F\u00fcr Sie", "ButtonLibrary": "Biliothek", "ButtonSearch": "Suche", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Bitte f\u00fcgen Sie mindestens ein Verzeichniss zur Bibliothek durch Klicken der \"Hinzuf\u00fcgen\"-Schaltfl\u00e4che hinzu.", "ErrorAddingMediaPathToVirtualFolder": "Ein Fehler trat beim Hinzuf\u00fcgen eines Medienverzeichnisses auf. Bitte stellen Sie sicher, dass der Pfad g\u00fcltig ist und der Emby Server Prozess die notwendigen Zugriffsrechte besitzt.", "ErrorRemovingEmbyConnectAccount": "Ein Fehler trat beim entfernen des Empy Connect Kontos auf. Bitte stellen Sie sicher, dass Sie \u00fcber eine aktive Internetverbindung verf\u00fcgen und versuchen Sie es erneut.", - "ErrorAddingEmbyConnectAccount": "Ein Fehler trat beim hinzuf\u00fcgen des Emby Connect Kontos auf. Bitte stellen Sie sicher, dass das Emby Konto durch die in der Email genannten Instruktionen aktiviert wurde, welche Sie nach Erstellung des Kontos erhielten. Wenn Sie diese Email nicht empfangen haben, so senden Sie bitte eine Email an apps@emby.media von jener Email-Adresse, die Sie f\u00fcr die Erstellung des Kontos verwendet haben.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Lieblings K\u00fcnstler", "HeaderFavoriteSongs": "Lieblings Songs", "HeaderConfirmPluginInstallation": "Best\u00e4tige Plugin Installation", diff --git a/dashboard-ui/strings/javascript/el.json b/dashboard-ui/strings/javascript/el.json index 8d43dfc7a1..1d9bb5eb91 100644 --- a/dashboard-ui/strings/javascript/el.json +++ b/dashboard-ui/strings/javascript/el.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/en-GB.json b/dashboard-ui/strings/javascript/en-GB.json index 0d79238265..be57071dd9 100644 --- a/dashboard-ui/strings/javascript/en-GB.json +++ b/dashboard-ui/strings/javascript/en-GB.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/en-US.json b/dashboard-ui/strings/javascript/en-US.json index bb07107964..28f3b32b8d 100644 --- a/dashboard-ui/strings/javascript/en-US.json +++ b/dashboard-ui/strings/javascript/en-US.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/es-AR.json b/dashboard-ui/strings/javascript/es-AR.json index 5fb44d1276..0f9f09fb00 100644 --- a/dashboard-ui/strings/javascript/es-AR.json +++ b/dashboard-ui/strings/javascript/es-AR.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/es-MX.json b/dashboard-ui/strings/javascript/es-MX.json index 636692c74d..41e4ad9596 100644 --- a/dashboard-ui/strings/javascript/es-MX.json +++ b/dashboard-ui/strings/javascript/es-MX.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alerta", "MessagePleaseRestart": "Por favor reinicie para finalizar la actualizaci\u00f3n.", "ButtonRestart": "Reiniciar", - "MessagePleaseRefreshPage": "Por favor actualice esta p\u00e1gina para recibir nuevas actualizaciones desde el servidor.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Ocultar", "MessageSettingsSaved": "Configuraci\u00f3n guardada.", "ButtonSignOut": "Cerrar Sesi\u00f3n", @@ -887,6 +887,9 @@ "ButtonYes": "Si", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restaurar Compra", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "Para T\u00ed", "ButtonLibrary": "Biblioteca", "ButtonSearch": "B\u00fasqueda", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Por favor agregue al menos una carpeta a esta biblioteca dando clic al bot\u00f3n de Agregar.", "ErrorAddingMediaPathToVirtualFolder": "Hubo un error agregando la ruta de medios. Por favor aseg\u00farese de que la ruta es valida y que el proceso del Servidor Emby tenga acceso a ese destino.", "ErrorRemovingEmbyConnectAccount": "Hubo un error retirando la cuenta de Emby Connect. Por favor aseg\u00farese que su conexi\u00f3n a internet esta activa e intente de nuevo.", - "ErrorAddingEmbyConnectAccount": "Hubo un error agregando la cuenta de Emby Connect. Por favor aseg\u00farese de que la cuenta ha sido activada siguiendo las instrucciones en el correo electr\u00f3nico que se le envi\u00f3 despu\u00e9s de haber creado la cuenta. Si no recibi\u00f3 el correo electr\u00f3nico por favor env\u00ede un correo electr\u00f3nico a apps@emby.media desde la direcci\u00f3n usada con la cuenta de Emby.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Artistas Favoritos", "HeaderFavoriteSongs": "Canciones Favoritas", "HeaderConfirmPluginInstallation": "Confirmar Instalaci\u00f3n de Complemento", diff --git a/dashboard-ui/strings/javascript/es.json b/dashboard-ui/strings/javascript/es.json index ae0f4761f6..b87530f374 100644 --- a/dashboard-ui/strings/javascript/es.json +++ b/dashboard-ui/strings/javascript/es.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Buscar", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/fi.json b/dashboard-ui/strings/javascript/fi.json index c7f1183cc7..3101547dd1 100644 --- a/dashboard-ui/strings/javascript/fi.json +++ b/dashboard-ui/strings/javascript/fi.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/fr.json b/dashboard-ui/strings/javascript/fr.json index 5fda8abbc6..580c3232bc 100644 --- a/dashboard-ui/strings/javascript/fr.json +++ b/dashboard-ui/strings/javascript/fr.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alerte", "MessagePleaseRestart": "Veuillez red\u00e9marrer pour finaliser les mises \u00e0 jour.", "ButtonRestart": "Red\u00e9marrer", - "MessagePleaseRefreshPage": "Veuillez actualiser cette page pour recevoir les nouvelles mises \u00e0 jour du serveur.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Cacher", "MessageSettingsSaved": "Param\u00e8tres sauvegard\u00e9s.", "ButtonSignOut": "D\u00e9connexion", @@ -883,10 +883,13 @@ "ButtonGuide": "Guide", "ButtonRecordedTv": "TV enregistr\u00e9e", "HeaderDisconnectFromPlayer": "D\u00e9connexion du lecteur", - "ConfirmEndPlayerSession": "Voulez-vous \u00e9teindre l'application sur l'appareil distant", + "ConfirmEndPlayerSession": "Would you like to close Emby on the device?", "ButtonYes": "Oui", "ButtonNo": "Non", "ButtonRestorePreviousPurchase": "Restaurer l'achat", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "Pour vous", "ButtonLibrary": "Biblioth\u00e8que", "ButtonSearch": "Recherche", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Veuillez ajouter au moins un dossier \u00e0 cette biblioth\u00e8que en cliquant sur le bouton Ajouter.", "ErrorAddingMediaPathToVirtualFolder": "Une erreur est survenue pendant l'ajout du chemin des m\u00e9dias. Veuillez v\u00e9rifier que le chemin est valide et que le processus Serveur Emby peux y acc\u00e9der.", "ErrorRemovingEmbyConnectAccount": "Une erreur est survenue pendant la suppression du compte Emby Connect. Veuillez vous assurer que vous avez une connection internet active puis r\u00e9\u00e9ssayez.", - "ErrorAddingEmbyConnectAccount": "Une erreur est survenue pendant l'ajout du compte Emby Connect. Veuillez v\u00e9rifier que le compte Emby a bien \u00e9t\u00e9 activ\u00e9e suivant les instructions contenues dans le mail \u00e9voy\u00e9 apr\u00e8s la cr\u00e9ation de ce compte. Si vous n'avez pas re\u00e7u ce mail, veuillez envoyer un mail \u00e0 apps@emby.media depuis l'adresse mail utilis\u00e9e avec le compte Emby.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Artistes pr\u00e9f\u00e9r\u00e9s", "HeaderFavoriteSongs": "Chansons pr\u00e9f\u00e9r\u00e9es", "HeaderConfirmPluginInstallation": "Confirmer l'installation du plugin", diff --git a/dashboard-ui/strings/javascript/gsw.json b/dashboard-ui/strings/javascript/gsw.json index 442f4aa053..627c916ac5 100644 --- a/dashboard-ui/strings/javascript/gsw.json +++ b/dashboard-ui/strings/javascript/gsw.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/he.json b/dashboard-ui/strings/javascript/he.json index ed8eb5d2bf..827145fe5d 100644 --- a/dashboard-ui/strings/javascript/he.json +++ b/dashboard-ui/strings/javascript/he.json @@ -887,6 +887,9 @@ "ButtonYes": "\u05db\u05df", "ButtonNo": "\u05dc\u05d0", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "\u05d1\u05e9\u05d1\u05d9\u05dc\u05da", "ButtonLibrary": "\u05e1\u05e4\u05e8\u05d9\u05d4", "ButtonSearch": "\u05d7\u05d9\u05e4\u05d5\u05e9", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "\u05d0\u05de\u05e0\u05d9\u05dd \u05de\u05d5\u05e2\u05d3\u05e4\u05d9\u05dd", "HeaderFavoriteSongs": "\u05e9\u05d9\u05e8\u05d9\u05dd \u05de\u05d5\u05e2\u05d3\u05e4\u05d9\u05dd", "HeaderConfirmPluginInstallation": "\u05d0\u05e9\u05e8 \u05d4\u05ea\u05e7\u05e0\u05ea \u05ea\u05d5\u05e1\u05e3", diff --git a/dashboard-ui/strings/javascript/hr.json b/dashboard-ui/strings/javascript/hr.json index 5377b7307d..fd8ba9aa77 100644 --- a/dashboard-ui/strings/javascript/hr.json +++ b/dashboard-ui/strings/javascript/hr.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Tra\u017ei", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/it.json b/dashboard-ui/strings/javascript/it.json index 129fc4d90d..e3225ac719 100644 --- a/dashboard-ui/strings/javascript/it.json +++ b/dashboard-ui/strings/javascript/it.json @@ -396,7 +396,7 @@ "HeaderAlert": "Avviso", "MessagePleaseRestart": "Si prega di riavviare per completare l'aggiornamento.", "ButtonRestart": "Riavvia", - "MessagePleaseRefreshPage": "Si prega di aggiornare questa pagina per ricevere i nuovi aggiornamenti dal server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Nascondi", "MessageSettingsSaved": "Settaggi salvati.", "ButtonSignOut": "Esci", @@ -883,10 +883,13 @@ "ButtonGuide": "Guida", "ButtonRecordedTv": "Tv Registrata", "HeaderDisconnectFromPlayer": "Disconnetti utente", - "ConfirmEndPlayerSession": "Volete arresto l'applicazione sul dispositivo remoto?", + "ConfirmEndPlayerSession": "Would you like to close Emby on the device?", "ButtonYes": "Si", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Ripristinare acquisto", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "Per te", "ButtonLibrary": "libreria", "ButtonSearch": "Cerca", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Per favore aggiungi almeno una cartella alla raccolta cliccando sul pulsante Aggiungi.", "ErrorAddingMediaPathToVirtualFolder": "C'\u00e8 stato un errore durante l'aggiunta del percorso. Per favore controlla che sia valido, e che Emby Server abbia l'accesso alla posizione indicata.", "ErrorRemovingEmbyConnectAccount": "C'\u00e8 stato un errore nella rimozione dell'account Emby Connect. Per favore assicurati di avere una connessione a internet attiva e riprova.", - "ErrorAddingEmbyConnectAccount": "C'\u00e8 stato un errore nell'aggiunta dell'account Emby Connect. Per favore assicurati che l'account sia stato attivato tratime le istruzioni inviate per e-mail dopo la creazione dell'account. Se l'e-mail non \u00e8 stata ricevuta per favore inviate un messaggio a apps@emby.media dall'indirizzo associato all'account Emby in questione.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/javascript.json b/dashboard-ui/strings/javascript/javascript.json index 24fbf61ec0..0c1712a3a4 100644 --- a/dashboard-ui/strings/javascript/javascript.json +++ b/dashboard-ui/strings/javascript/javascript.json @@ -897,6 +897,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -928,7 +931,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/kk.json b/dashboard-ui/strings/javascript/kk.json index 96afcff768..69ec8441fc 100644 --- a/dashboard-ui/strings/javascript/kk.json +++ b/dashboard-ui/strings/javascript/kk.json @@ -396,7 +396,7 @@ "HeaderAlert": "\u0415\u0441\u043a\u0435\u0440\u0442\u0443", "MessagePleaseRestart": "\u0416\u0430\u04a3\u0430\u0440\u0442\u0443\u0434\u044b \u0430\u044f\u049b\u0442\u0430\u0443 \u04af\u0448\u0456\u043d \u049b\u0430\u0439\u0442\u0430 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u044b\u04a3\u044b\u0437.", "ButtonRestart": "\u049a\u0430\u0439\u0442\u0430 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u0443", - "MessagePleaseRefreshPage": "\u0421\u0435\u0440\u0432\u0435\u0440\u0434\u0435\u043d \u0436\u0430\u04a3\u0430 \u0436\u0430\u04a3\u0430\u0440\u0442\u0443\u043b\u0430\u0440\u0434\u044b \u0430\u043b\u0443 \u04af\u0448\u0456\u043d \u043e\u0441\u044b \u0431\u0435\u0442\u0442\u0456 \u0436\u0430\u04a3\u0493\u044b\u0440\u0442\u044b\u04a3\u044b\u0437.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "\u0416\u0430\u0441\u044b\u0440\u0443", "MessageSettingsSaved": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440 \u0441\u0430\u049b\u0442\u0430\u043b\u0434\u044b.", "ButtonSignOut": "\u0428\u044b\u0493\u0443", @@ -887,6 +887,9 @@ "ButtonYes": "\u0418\u04d9", "ButtonNo": "\u0416\u043e\u049b", "ButtonRestorePreviousPurchase": "\u0421\u0430\u0442\u044b\u043f \u0430\u043b\u0493\u0430\u043d\u0434\u044b \u049b\u0430\u043b\u043f\u044b\u043d\u0430 \u043a\u0435\u043b\u0442\u0456\u0440\u0443", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "\u0421\u0456\u0437 \u04af\u0448\u0456\u043d...", "ButtonLibrary": "\u0422\u0430\u0441\u044b\u0493\u044b\u0448\u0445\u0430\u043d\u0430...", "ButtonSearch": "\u0406\u0437\u0434\u0435\u0443", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "\u049a\u043e\u0441\u0443 \u0442\u04af\u0439\u043c\u0435\u0448\u0456\u0433\u0456\u043d \u0431\u0430\u0441\u0443 \u0430\u0440\u049b\u044b\u043b\u044b, \u043e\u0441\u044b \u0442\u0430\u0441\u044b\u0493\u044b\u0448\u0445\u0430\u043d\u0430\u0493\u0430 \u043a\u0435\u043c \u0434\u0435\u0433\u0435\u043d\u0434\u0435 \u0431\u0456\u0440 \u049b\u0430\u043b\u0442\u0430 \u049b\u043e\u0441\u044b\u04a3\u044b\u0437.", "ErrorAddingMediaPathToVirtualFolder": "\u0422\u0430\u0441\u044b\u0493\u044b\u0448\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440 \u0436\u043e\u043b\u044b\u043d \u04af\u0441\u0442\u0435\u0433\u0435\u043d \u043a\u0435\u0437\u0456\u043d\u0434\u0435 \u049b\u0430\u0442\u0435 \u043e\u0440\u044b\u043d \u0430\u043b\u0434\u044b. \u0416\u043e\u043b \u0434\u04b1\u0440\u044b\u0441 \u0435\u043a\u0435\u043d\u0456\u043d\u0435 \u0436\u04d9\u043d\u0435 Emby Server \u043f\u0440\u043e\u0446\u0435\u0441\u0456 \u043e\u0441\u044b \u0436\u0430\u0439\u0493\u0430\u0441\u044b\u043c\u0493\u0430 \u049b\u0430\u0442\u044b\u043d\u0430\u0439\u0442\u044b\u043d\u0430 \u043a\u04e9\u0437 \u0436\u0435\u0442\u043a\u0456\u0437\u0456\u04a3\u0456\u0437.", "ErrorRemovingEmbyConnectAccount": "Emby Connect \u0442\u0456\u0440\u043a\u0435\u043b\u0433\u0456\u0441\u0456\u043d \u0430\u043b\u0430\u0441\u0442\u0430\u0443 \u043a\u0435\u0437\u0456\u043d\u0434\u0435 \u049b\u0430\u0442\u0435 \u043e\u0440\u044b\u043d \u0430\u043b\u0434\u044b. \u0411\u0435\u043b\u0441\u0435\u043d\u0434\u0456 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u049b\u043e\u0441\u044b\u043b\u044b\u043c\u044b \u0431\u0430\u0440 \u0435\u043a\u0435\u043d\u0456\u043d\u0435 \u043a\u04e9\u0437 \u0436\u0435\u0442\u043a\u0456\u0437\u0456\u04a3\u0456\u0437 \u0436\u04d9\u043d\u0435 \u04d9\u0440\u0435\u043a\u0435\u0442\u0442\u0456 \u043a\u0435\u0439\u0456\u043d \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u04a3\u044b\u0437.", - "ErrorAddingEmbyConnectAccount": "Emby Connect \u0442\u0456\u0440\u043a\u0435\u043b\u0433\u0456\u0441\u0456\u043d \u04af\u0441\u0442\u0435\u0443 \u043a\u0435\u0437\u0456\u043d\u0434\u0435 \u049b\u0430\u0442\u0435 \u043e\u0440\u044b\u043d \u0430\u043b\u0434\u044b. \u0422\u0456\u0440\u043a\u0435\u043b\u0433\u0456 \u0436\u0430\u0441\u0430\u0493\u0430\u043d\u043d\u0430\u043d \u043a\u0435\u0439\u0456\u043d \u044d-\u043f\u043e\u0448\u0442\u0430\u043c\u0435\u043d \u0436\u0456\u0431\u0435\u0440\u0456\u043b\u0433\u0435\u043d \u043d\u04b1\u0441\u049b\u0430\u0443\u043b\u0430\u0440\u0493\u0430 \u0441\u04d9\u0439\u043a\u0435\u0441 Emby \u0442\u0456\u0440\u043a\u0435\u043b\u0433\u0456\u0441\u0456 \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456\u0440\u0456\u043b\u0433\u0435\u043d\u0456\u043d\u0435 \u043a\u04e9\u0437 \u0436\u0435\u0442\u043a\u0456\u0437\u0456\u04a3\u0456\u0437. \u0415\u0433\u0435\u0440 \u043e\u0441\u044b \u044d-\u043f\u043e\u0448\u0442\u0430 \u0430\u043b\u044b\u043d\u0431\u0430\u0493\u0430\u043d \u0431\u043e\u043b\u0441\u0430, Emby \u0442\u0456\u0440\u043a\u0435\u043b\u0433\u0456\u0441\u0456\u043d\u0434\u0435 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043b\u0493\u0430\u043d \u044d-\u043f\u043e\u0448\u0442\u0430 \u0430\u0440\u049b\u044b\u043b\u044b apps@emby.media \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b\u043d\u0430 \u0445\u0430\u0431\u0430\u0440 \u0436\u0456\u0431\u0435\u0440\u0456\u04a3\u0456\u0437.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "\u0422\u0430\u04a3\u0434\u0430\u0443\u043b\u044b \u043e\u0440\u044b\u043d\u0434\u0430\u0443\u0448\u044b\u043b\u0430\u0440", "HeaderFavoriteSongs": "\u0422\u0430\u04a3\u0434\u0430\u0443\u043b\u044b \u04d9\u0443\u0435\u043d\u0434\u0435\u0440", "HeaderConfirmPluginInstallation": "\u041f\u043b\u0430\u0433\u0438\u043d \u043e\u0440\u043d\u0430\u0442\u044b\u043c\u044b\u043d \u0440\u0430\u0441\u0442\u0430\u0443", diff --git a/dashboard-ui/strings/javascript/ko.json b/dashboard-ui/strings/javascript/ko.json index 225d65120b..4b61e62f90 100644 --- a/dashboard-ui/strings/javascript/ko.json +++ b/dashboard-ui/strings/javascript/ko.json @@ -887,6 +887,9 @@ "ButtonYes": "\uc608", "ButtonNo": "\uc544\ub2c8\uc624", "ButtonRestorePreviousPurchase": "\uad6c\ub9e4 \ubcf5\uc6d0", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "\ub77c\uc774\ube0c\ub7ec\ub9ac", "ButtonSearch": "\ucc3e\uae30", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/ms.json b/dashboard-ui/strings/javascript/ms.json index bea6c48fdb..7307e60b1d 100644 --- a/dashboard-ui/strings/javascript/ms.json +++ b/dashboard-ui/strings/javascript/ms.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/nb.json b/dashboard-ui/strings/javascript/nb.json index 0fa434d4c0..f96677ce1c 100644 --- a/dashboard-ui/strings/javascript/nb.json +++ b/dashboard-ui/strings/javascript/nb.json @@ -396,7 +396,7 @@ "HeaderAlert": "Varsling", "MessagePleaseRestart": "Vennligst utf\u00f8r en omstart for \u00e5 fullf\u00f8re oppdatering.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Vennligst last inn siden p\u00e5 nytt for \u00e5 motta nye oppdateringer fra serveren.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Skjul", "MessageSettingsSaved": "Innstillinger lagret.", "ButtonSignOut": "Sign Out", @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "S\u00f8k", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/nl.json b/dashboard-ui/strings/javascript/nl.json index e8349e5f39..9ebb063f7a 100644 --- a/dashboard-ui/strings/javascript/nl.json +++ b/dashboard-ui/strings/javascript/nl.json @@ -396,7 +396,7 @@ "HeaderAlert": "Waarschuwing", "MessagePleaseRestart": "Herstart om update te voltooien.", "ButtonRestart": "Herstart", - "MessagePleaseRefreshPage": "Vernieuw deze pagina om nieuwe updates te ontvangen van de server.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Verbergen", "MessageSettingsSaved": "Instellingen opgeslagen.", "ButtonSignOut": "Afmelden", @@ -883,10 +883,13 @@ "ButtonGuide": "Gids", "ButtonRecordedTv": "Tv-opnamen", "HeaderDisconnectFromPlayer": "Loskoppelen van Speler", - "ConfirmEndPlayerSession": "Wilt u de app op het externe apparaat afsluiten?", + "ConfirmEndPlayerSession": "Would you like to close Emby on the device?", "ButtonYes": "Ja", "ButtonNo": "Nee", "ButtonRestorePreviousPurchase": "Herstel aankoop", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "Voor U", "ButtonLibrary": "Bibliotheek", "ButtonSearch": "Zoeken", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Voeg ten minste 1 map to aan deze bibliotheek door op de Toevoegen knop te klikken.", "ErrorAddingMediaPathToVirtualFolder": "Er ging iets mis bij het toevoegen van het media pad. Controleer of het pad klopt en of het Emby server process toegang heeft tot het pad.", "ErrorRemovingEmbyConnectAccount": "Er ging iets mis bij het verwijderen van het Emby Connect account. Controleer de internet verbinding en probeer het opnieuw.", - "ErrorAddingEmbyConnectAccount": "Er ging iets mis bij het toevoegen van het Emby Connect account. Controleer of het account volgens de intructies in het activatie emailbericht geactiveerd is. Als je geen emailbericht ontvangen hebt, mail dan met het email adres waar mee je het Emby Connect account aangevraagd hebt naar apps@emby.media.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favoriete Artiest", "HeaderFavoriteSongs": "Favoriete Liedjes", "HeaderConfirmPluginInstallation": "Bevestig Plugin Installatie", diff --git a/dashboard-ui/strings/javascript/pl.json b/dashboard-ui/strings/javascript/pl.json index 336d1f78eb..caa61131b0 100644 --- a/dashboard-ui/strings/javascript/pl.json +++ b/dashboard-ui/strings/javascript/pl.json @@ -396,7 +396,7 @@ "HeaderAlert": "Powiadomienie", "MessagePleaseRestart": "Prosz\u0119 zresetowa\u0107 aby uko\u0144czy\u0107 aktualizacj\u0119.", "ButtonRestart": "Restart", - "MessagePleaseRefreshPage": "Od\u015bwie\u017c stron\u0119 aby otrzyma\u0107 nowe powiadomienia z serwera.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "Ukryj", "MessageSettingsSaved": "Ustawienia zapisane.", "ButtonSignOut": "Wyloguj si\u0119", @@ -883,10 +883,13 @@ "ButtonGuide": "Przewodnik", "ButtonRecordedTv": "Nagrana telewizja", "HeaderDisconnectFromPlayer": "Od\u0142\u0105czono od odtwarzacza", - "ConfirmEndPlayerSession": "Czy chcia\u0142by\u015b zamkn\u0105\u0107 aplikacj\u0119 na urz\u0105dzeniu przeno\u015bnym?", + "ConfirmEndPlayerSession": "Would you like to close Emby on the device?", "ButtonYes": "Tak", "ButtonNo": "Nie", "ButtonRestorePreviousPurchase": "Przywr\u00f3\u0107 zakup", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "Dla Ciebie", "ButtonLibrary": "Biblioteka", "ButtonSearch": "Szukaj", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Prosz\u0119 dodaj przynajmniej jeden folder do tej listy poprzez klikni\u0119cie guzika Dodaj", "ErrorAddingMediaPathToVirtualFolder": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas dodawania \u015bcie\u017cki z mediami. Prosz\u0119 upewnij si\u0119 \u017ce podana \u015bcie\u017cka jest prawid\u0142owa oraz czy Serwer Emby posiada dost\u0119p do lokalizacji.", "ErrorRemovingEmbyConnectAccount": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas usuwania konta Emby Connect. Prosz\u0119 upewnij si\u0119 \u017ce posiadasz aktywne po\u0142\u0105czenie z internetem i spr\u00f3buj ponownie.", - "ErrorAddingEmbyConnectAccount": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas dodawania konta Emby Connect. Prosz\u0119 upewnij si\u0119 \u017ce konto Emby zosta\u0142o aktywowane wed\u0142ug instrukcji przes\u0142anej w emailu po utworzeniu konta. Je\u015bli nie otrzyma\u0142e\u015b tego maila prosz\u0119 napisz do nas na adres apps@emby.media z adresu u\u017cytego podczas tworzenia konta Emby.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Ulubieni arty\u015bci", "HeaderFavoriteSongs": "Ulubione utwory", "HeaderConfirmPluginInstallation": "Potwierd\u017a instalacj\u0119 pluginu", diff --git a/dashboard-ui/strings/javascript/pt-BR.json b/dashboard-ui/strings/javascript/pt-BR.json index c5bcfe9131..685cdf67dc 100644 --- a/dashboard-ui/strings/javascript/pt-BR.json +++ b/dashboard-ui/strings/javascript/pt-BR.json @@ -396,7 +396,7 @@ "HeaderAlert": "Alerta", "MessagePleaseRestart": "Por favor, reinicie para finalizar a atualiza\u00e7\u00e3o.", "ButtonRestart": "Reiniciar", - "MessagePleaseRefreshPage": "Por favor, atualize esta p\u00e1gina para receber novas atualiza\u00e7\u00f5es do servidor.", + "MessagePleaseRefreshPage": "Por favor, atualize esta p\u00e1gina para receber novas atualiza\u00e7\u00f5es do servidor Emby.", "ButtonHide": "Ocultar", "MessageSettingsSaved": "Ajustes salvos.", "ButtonSignOut": "Sair", @@ -887,6 +887,9 @@ "ButtonYes": "Sim", "ButtonNo": "N\u00e3o", "ButtonRestorePreviousPurchase": "Restaurar Compra", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "Para Voc\u00ea", "ButtonLibrary": "Biblioteca", "ButtonSearch": "Busca", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Por favor, adicione ao menos uma pasta a esta biblioteca, clicando no bot\u00e3o Adicionar.", "ErrorAddingMediaPathToVirtualFolder": "Ocorreu um erro ao adicionar o caminho da m\u00eddia. Por favor, assegure-se que o caminho \u00e9 valido e que o processo do Emby Server tenha acesso a essa localiza\u00e7\u00e3o.", "ErrorRemovingEmbyConnectAccount": "Ocorreu um erro ao remover a conta do Emby Connect. Por favor, assegure-se que possui uma conex\u00e3o de internet ativa e tente novamente.", - "ErrorAddingEmbyConnectAccount": "Ocorreu um erro ao adicionar a conta do Emby Connect. Por favor, assegure-se que a conta Emby foi ativada seguindo as instru\u00e7\u00f5es no email enviado ap\u00f3s a cria\u00e7\u00e3o da conta. Se n\u00e3o recebeu este email, por favor envie um email para apps@emby.media do mesmo endere\u00e7o de email usado na conta Emby.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Artistas Favoritos", "HeaderFavoriteSongs": "M\u00fasicas Favoritas", "HeaderConfirmPluginInstallation": "Confirmar a Instala\u00e7\u00e3o do Plugin", diff --git a/dashboard-ui/strings/javascript/pt-PT.json b/dashboard-ui/strings/javascript/pt-PT.json index 05fd0dfee5..fd5b484349 100644 --- a/dashboard-ui/strings/javascript/pt-PT.json +++ b/dashboard-ui/strings/javascript/pt-PT.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Procurar", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/ro.json b/dashboard-ui/strings/javascript/ro.json index 69859e7623..890d07df2c 100644 --- a/dashboard-ui/strings/javascript/ro.json +++ b/dashboard-ui/strings/javascript/ro.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/ru.json b/dashboard-ui/strings/javascript/ru.json index bcf356cf58..7677bef64e 100644 --- a/dashboard-ui/strings/javascript/ru.json +++ b/dashboard-ui/strings/javascript/ru.json @@ -396,7 +396,7 @@ "HeaderAlert": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435", "MessagePleaseRestart": "\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435.", "ButtonRestart": "\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c", - "MessagePleaseRefreshPage": "\u041f\u043e\u0434\u043d\u043e\u0432\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f c \u0441\u0435\u0440\u0432\u0435\u0440\u0430.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "\u0421\u043a\u0440\u044b\u0442\u044c", "MessageSettingsSaved": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b.", "ButtonSignOut": "\u0412\u044b\u0439\u0442\u0438", @@ -887,6 +887,9 @@ "ButtonYes": "\u0414\u0430", "ButtonNo": "\u041d\u0435\u0442", "ButtonRestorePreviousPurchase": "\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u0435", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "\u0414\u043b\u044f \u0432\u0430\u0441...", "ButtonLibrary": "\u041c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430...", "ButtonSearch": "\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u043e\u0434\u043d\u0443 \u043f\u0430\u043f\u043a\u0443 \u043a \u0434\u0430\u043d\u043d\u043e\u0439 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0435, \u043d\u0430\u0436\u0430\u0432 \u043a\u043d\u043e\u043f\u043a\u0443 \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c.", "ErrorAddingMediaPathToVirtualFolder": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u0443\u0442\u0438 \u043a \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u043c. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0443\u0442\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 Emby Server \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e.", "ErrorRemovingEmbyConnectAccount": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Emby Connect. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443.", - "ErrorAddingEmbyConnectAccount": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Emby Connect. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c Emby Connect \u0431\u044b\u043b\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0430, \u0441\u043b\u0435\u0434\u0443\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 \u042d-\u043f\u043e\u0447\u0442\u044b, \u043f\u043e\u0441\u043b\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e, \u0442\u043e \u043f\u043e\u0448\u043b\u0438\u0442\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 apps@emby.media \u0441 \u0430\u0434\u0440\u0435\u0441\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Emby.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438", "HeaderFavoriteSongs": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438", "HeaderConfirmPluginInstallation": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430", diff --git a/dashboard-ui/strings/javascript/sl-SI.json b/dashboard-ui/strings/javascript/sl-SI.json index 331fe82065..2da5139a4e 100644 --- a/dashboard-ui/strings/javascript/sl-SI.json +++ b/dashboard-ui/strings/javascript/sl-SI.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/sv.json b/dashboard-ui/strings/javascript/sv.json index a72a1db891..2a06454d57 100644 --- a/dashboard-ui/strings/javascript/sv.json +++ b/dashboard-ui/strings/javascript/sv.json @@ -396,7 +396,7 @@ "HeaderAlert": "Varning", "MessagePleaseRestart": "V\u00e4nligen starta om f\u00f6r att slutf\u00f6ra uppdateringarna.", "ButtonRestart": "Starta om", - "MessagePleaseRefreshPage": "V\u00e4nligen ladda om den h\u00e4r sidan f\u00f6r att ta emot nya uppdateringar fr\u00e5n servern.", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "D\u00f6lj", "MessageSettingsSaved": "Inst\u00e4llningarna har sparats.", "ButtonSignOut": "Sign Out", @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "S\u00f6k", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/tr.json b/dashboard-ui/strings/javascript/tr.json index 18dca2e7c0..8858f1dde8 100644 --- a/dashboard-ui/strings/javascript/tr.json +++ b/dashboard-ui/strings/javascript/tr.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Arama", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/uk.json b/dashboard-ui/strings/javascript/uk.json index 6e3c126037..6381d6cafd 100644 --- a/dashboard-ui/strings/javascript/uk.json +++ b/dashboard-ui/strings/javascript/uk.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/vi.json b/dashboard-ui/strings/javascript/vi.json index 68508b4685..dceb994f31 100644 --- a/dashboard-ui/strings/javascript/vi.json +++ b/dashboard-ui/strings/javascript/vi.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "T\u00ecm ki\u1ebfm", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/zh-CN.json b/dashboard-ui/strings/javascript/zh-CN.json index 7ab6fe65ee..17bc92143e 100644 --- a/dashboard-ui/strings/javascript/zh-CN.json +++ b/dashboard-ui/strings/javascript/zh-CN.json @@ -396,7 +396,7 @@ "HeaderAlert": "\u8b66\u62a5", "MessagePleaseRestart": "\u8bf7\u91cd\u542f\u670d\u52a1\u5668\u4ee5\u5b8c\u6210\u66f4\u65b0\u3002", "ButtonRestart": "\u91cd\u542f", - "MessagePleaseRefreshPage": "\u8bf7\u5237\u65b0\u6b64\u9875\u9762\u4ee5\u4fbf\u4ece\u7f51\u7edc\u83b7\u53d6\u66f4\u65b0\u7a0b\u5e8f\u3002", + "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from Emby Server.", "ButtonHide": "\u9690\u85cf", "MessageSettingsSaved": "\u8bbe\u7f6e\u5df2\u4fdd\u5b58\u3002", "ButtonSignOut": "Sign Out", @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "\u641c\u7d22", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/zh-HK.json b/dashboard-ui/strings/javascript/zh-HK.json index 9164872f8b..8c51542bc7 100644 --- a/dashboard-ui/strings/javascript/zh-HK.json +++ b/dashboard-ui/strings/javascript/zh-HK.json @@ -887,6 +887,9 @@ "ButtonYes": "\u662f", "ButtonNo": "\u5426", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "\u5a92\u9ad4\u5eab", "ButtonSearch": "Search", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", diff --git a/dashboard-ui/strings/javascript/zh-TW.json b/dashboard-ui/strings/javascript/zh-TW.json index 57959ff2ef..516858ddcf 100644 --- a/dashboard-ui/strings/javascript/zh-TW.json +++ b/dashboard-ui/strings/javascript/zh-TW.json @@ -887,6 +887,9 @@ "ButtonYes": "Yes", "ButtonNo": "No", "ButtonRestorePreviousPurchase": "Restore Purchase", + "AlreadyPaid": "Already Paid?", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, sign into the app from within your home WIFI network, and it will be unlocked automatically.", "ButtonForYou": "For You", "ButtonLibrary": "Library", "ButtonSearch": "\u641c\u7d22", @@ -918,7 +921,8 @@ "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", - "ErrorAddingEmbyConnectAccount": "There was an error adding the Emby Connect account. Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "Please ensure the Emby account has been activated by following the instructions in the email sent after creating the account. If you did not receive this email then please send an email to {0} from the email address used with the Emby account.", "HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteSongs": "Favorite Songs", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", From eaffc2b0d71a7cc1a10eb5d2a8fd0c682854cee5 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 30 Dec 2015 17:07:48 -0500 Subject: [PATCH 17/58] update emby connect error message --- dashboard-ui/scripts/useredit.js | 25 ++++++++++++++++++++----- dashboard-ui/scripts/wizarduserpage.js | 23 ++++++++++++++++++----- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/dashboard-ui/scripts/useredit.js b/dashboard-ui/scripts/useredit.js index 4848388f2e..eec1224ed3 100644 --- a/dashboard-ui/scripts/useredit.js +++ b/dashboard-ui/scripts/useredit.js @@ -113,11 +113,7 @@ }, function () { - Dashboard.alert({ - - message: Globalize.translate('ErrorAddingEmbyConnectAccount', 'apps@emby.media') - - }); + showEmbyConnectErrorMessage('.'); }); } else { @@ -125,8 +121,27 @@ noActionCallback(); } } + } function showEmbyConnectErrorMessage(username) { + + var msg; + + if (username) { + + msg = Globalize.translate('ErrorAddingEmbyConnectAccount1', 'https://emby.media/connect'); + msg += '

' + Globalize.translate('ErrorAddingEmbyConnectAccount2', 'apps@emby.media'); + + } else { + msg = Globalize.translate('DefaultErrorMessage'); + } + + Dashboard.alert({ + + message: msg + + }); } + function onSaveComplete(page, user) { Dashboard.hideLoadingMsg(); diff --git a/dashboard-ui/scripts/wizarduserpage.js b/dashboard-ui/scripts/wizarduserpage.js index 9d544fb91e..5de1de3440 100644 --- a/dashboard-ui/scripts/wizarduserpage.js +++ b/dashboard-ui/scripts/wizarduserpage.js @@ -47,13 +47,27 @@ }).then(onUpdateUserComplete, function () { - var msgKey = form.querySelector('#txtConnectUserName').value ? 'ErrorAddingEmbyConnectAccount' : 'DefaultErrorMessage'; + showEmbyConnectErrorMessage(form.querySelector('#txtConnectUserName').value); + }); + } - Dashboard.alert({ + function showEmbyConnectErrorMessage(username) { - message: Globalize.translate(msgKey) + var msg; + + if (username) { + + msg = Globalize.translate('ErrorAddingEmbyConnectAccount1', 'https://emby.media/connect'); + msg += '

' + Globalize.translate('ErrorAddingEmbyConnectAccount2', 'apps@emby.media'); + + } else { + msg = Globalize.translate('DefaultErrorMessage'); + } + + Dashboard.alert({ + + message: msg - }); }); } @@ -84,7 +98,6 @@ Dashboard.hideLoadingMsg(); }); - }); })(jQuery, document, window); \ No newline at end of file From caed9d9fbf7dd4f2e9fa215afabe69b475ef2767 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 30 Dec 2015 17:11:43 -0500 Subject: [PATCH 18/58] update components --- .../emby-apiclient/.bower.json | 8 +- .../emby-apiclient/connectionmanager.js | 37 ++++--- .../emby-webcomponents/.bower.json | 8 +- .../emby-webcomponents/datetime.js | 101 ++++++++++++++++++ .../iron-behaviors/.bower.json | 6 +- 5 files changed, 132 insertions(+), 28 deletions(-) create mode 100644 dashboard-ui/bower_components/emby-webcomponents/datetime.js diff --git a/dashboard-ui/bower_components/emby-apiclient/.bower.json b/dashboard-ui/bower_components/emby-apiclient/.bower.json index 6882b33b03..74eb3354f5 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.19", - "_release": "1.0.19", + "version": "1.0.20", + "_release": "1.0.20", "_resolution": { "type": "version", - "tag": "1.0.19", - "commit": "09f50cd4f4b126b0ea9a0a26c1b425b4a1e25f5b" + "tag": "1.0.20", + "commit": "55cf67710a438d3eea15f58587b2c2fcd731bf29" }, "_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 358a9f0b9d..a20bcae8bf 100644 --- a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js +++ b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js @@ -850,24 +850,27 @@ return new Promise(function (resolve, reject) { + var onFinish = function (foundServers) { + var servers = foundServers.map(function (foundServer) { + + var info = { + Id: foundServer.Id, + LocalAddress: foundServer.Address, + Name: foundServer.Name, + ManualAddress: convertEndpointAddressToManualAddress(foundServer), + DateLastLocalConnection: new Date().getTime() + }; + + info.LastConnectionMode = info.ManualAddress ? ConnectionMode.Manual : ConnectionMode.Local; + + return info; + }); + resolve(servers); + }; + require(['serverdiscovery'], function (serverDiscovery) { - serverDiscovery.findServers(1000).then(function (foundServers) { - - var servers = foundServers.map(function (foundServer) { - - var info = { - Id: foundServer.Id, - LocalAddress: foundServer.Address, - Name: foundServer.Name, - ManualAddress: convertEndpointAddressToManualAddress(foundServer), - DateLastLocalConnection: new Date().getTime() - }; - - info.LastConnectionMode = info.ManualAddress ? ConnectionMode.Manual : ConnectionMode.Local; - - return info; - }); - resolve(servers); + serverDiscovery.findServers(1000).then(onFinish, function () { + onFinish([]); }); }); diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 8200afb011..d65901fb8d 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.5", - "_release": "1.0.5", + "version": "1.0.6", + "_release": "1.0.6", "_resolution": { "type": "version", - "tag": "1.0.5", - "commit": "ff6d4ba01de70b907dfa51b36aee6c63f64685c9" + "tag": "1.0.6", + "commit": "4d04f0ed205e94c00160c48dc131b9d8dbed995f" }, "_source": "git://github.com/MediaBrowser/emby-webcomponents.git", "_target": "~1.0.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/datetime.js b/dashboard-ui/bower_components/emby-webcomponents/datetime.js new file mode 100644 index 0000000000..26cdb04698 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/datetime.js @@ -0,0 +1,101 @@ +define([], function () { + + function parseISO8601Date(s, toLocal) { + + // parenthese matches: + // year month day hours minutes seconds + // dotmilliseconds + // tzstring plusminus hours minutes + var re = /(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?(Z|([+-])(\d{2}):(\d{2}))?/; + + var d = s.match(re); + + // "2010-12-07T11:00:00.000-09:00" parses to: + // ["2010-12-07T11:00:00.000-09:00", "2010", "12", "07", "11", + // "00", "00", ".000", "-09:00", "-", "09", "00"] + // "2010-12-07T11:00:00.000Z" parses to: + // ["2010-12-07T11:00:00.000Z", "2010", "12", "07", "11", + // "00", "00", ".000", "Z", undefined, undefined, undefined] + + if (!d) { + + throw "Couldn't parse ISO 8601 date string '" + s + "'"; + } + + // parse strings, leading zeros into proper ints + var a = [1, 2, 3, 4, 5, 6, 10, 11]; + for (var i in a) { + d[a[i]] = parseInt(d[a[i]], 10); + } + d[7] = parseFloat(d[7]); + + // Date.UTC(year, month[, date[, hrs[, min[, sec[, ms]]]]]) + // note that month is 0-11, not 1-12 + // see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/UTC + var ms = Date.UTC(d[1], d[2] - 1, d[3], d[4], d[5], d[6]); + + // if there are milliseconds, add them + if (d[7] > 0) { + ms += Math.round(d[7] * 1000); + } + + // if there's a timezone, calculate it + if (d[8] != "Z" && d[10]) { + var offset = d[10] * 60 * 60 * 1000; + if (d[11]) { + offset += d[11] * 60 * 1000; + } + if (d[9] == "-") { + ms -= offset; + } else { + ms += offset; + } + } else if (toLocal === false) { + ms += new Date().getTimezoneOffset() * 60000; + } + + return new Date(ms); + } + + function getDisplayRunningTime(ticks) { + var ticksPerHour = 36000000000; + var ticksPerMinute = 600000000; + var ticksPerSecond = 10000000; + + var parts = []; + + var hours = ticks / ticksPerHour; + hours = Math.floor(hours); + + if (hours) { + parts.push(hours); + } + + ticks -= (hours * ticksPerHour); + + var minutes = ticks / ticksPerMinute; + minutes = Math.floor(minutes); + + ticks -= (minutes * ticksPerMinute); + + if (minutes < 10 && hours) { + minutes = '0' + minutes; + } + parts.push(minutes); + + var seconds = ticks / ticksPerSecond; + seconds = Math.floor(seconds); + + if (seconds < 10) { + seconds = '0' + seconds; + } + parts.push(seconds); + + return parts.join(':'); + } + + return { + parseISO8601Date: parseISO8601Date, + getDisplayRunningTime: getDisplayRunningTime + }; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-behaviors/.bower.json b/dashboard-ui/bower_components/iron-behaviors/.bower.json index 17f68b3351..db08f2170c 100644 --- a/dashboard-ui/bower_components/iron-behaviors/.bower.json +++ b/dashboard-ui/bower_components/iron-behaviors/.bower.json @@ -29,14 +29,14 @@ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "ignore": [], - "homepage": "https://github.com/polymerelements/iron-behaviors", + "homepage": "https://github.com/PolymerElements/iron-behaviors", "_release": "1.0.12", "_resolution": { "type": "version", "tag": "v1.0.12", "commit": "657f526a2382a659cdf4e13be87ecc89261588a3" }, - "_source": "git://github.com/polymerelements/iron-behaviors.git", + "_source": "git://github.com/PolymerElements/iron-behaviors.git", "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-behaviors" + "_originalSource": "PolymerElements/iron-behaviors" } \ No newline at end of file From ff62ab9965ba99eb86bb527e2afc9bb54d1318b6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 2 Jan 2016 16:54:37 -0500 Subject: [PATCH 19/58] better caching of remote data --- dashboard-ui/scripts/supporterkeypage.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dashboard-ui/scripts/supporterkeypage.js b/dashboard-ui/scripts/supporterkeypage.js index 71b83deeb5..2685b024e6 100644 --- a/dashboard-ui/scripts/supporterkeypage.js +++ b/dashboard-ui/scripts/supporterkeypage.js @@ -254,9 +254,9 @@ $(document).on('pageshow', "#supporterKeyPage", SupporterKeyPage.onPageShow); function loadUserInfo(page) { - ApiClient.getJSON(ApiClient.getUrl('System/SupporterInfo')).then(function (info) { + Dashboard.getPluginSecurityInfo().then(function (info) { - if (info.IsActiveSupporter) { + if (info.IsMBSupporter) { $('.supporterContainer', page).addClass('hide'); } else { $('.supporterContainer', page).removeClass('hide'); From 6b1d622a8e181678e471893400766642e15723e6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 4 Jan 2016 12:38:38 -0500 Subject: [PATCH 20/58] remove save buttons on preference pages --- dashboard-ui/mypreferencesdisplay.html | 6 ---- dashboard-ui/mypreferenceshome.html | 6 ---- dashboard-ui/mypreferenceslanguages.html | 6 ---- dashboard-ui/scripts/chromecast.js | 2 +- dashboard-ui/scripts/mypreferencesdisplay.js | 32 ++++++++++------- dashboard-ui/scripts/mypreferenceshome.js | 33 ++++++++++------- .../scripts/mypreferenceslanguages.js | 36 ++++++++++--------- 7 files changed, 60 insertions(+), 61 deletions(-) diff --git a/dashboard-ui/mypreferencesdisplay.html b/dashboard-ui/mypreferencesdisplay.html index 3818e38962..3c6443cbdd 100644 --- a/dashboard-ui/mypreferencesdisplay.html +++ b/dashboard-ui/mypreferencesdisplay.html @@ -114,12 +114,6 @@
- -
- -

*${LegendTheseSettingsShared}

diff --git a/dashboard-ui/mypreferenceshome.html b/dashboard-ui/mypreferenceshome.html index 735a111c16..88b4d8c3fc 100644 --- a/dashboard-ui/mypreferenceshome.html +++ b/dashboard-ui/mypreferenceshome.html @@ -138,12 +138,6 @@ - -
- -

*${LegendTheseSettingsShared}

diff --git a/dashboard-ui/mypreferenceslanguages.html b/dashboard-ui/mypreferenceslanguages.html index 2459d83c9d..44d7bb3d50 100644 --- a/dashboard-ui/mypreferenceslanguages.html +++ b/dashboard-ui/mypreferenceslanguages.html @@ -118,12 +118,6 @@ - -
- -

*${LegendTheseSettingsShared}

diff --git a/dashboard-ui/scripts/chromecast.js b/dashboard-ui/scripts/chromecast.js index 94b6f73a96..5571cbe61f 100644 --- a/dashboard-ui/scripts/chromecast.js +++ b/dashboard-ui/scripts/chromecast.js @@ -54,7 +54,7 @@ var applicationID = "2D4B1DA3"; // This is the beta version used for testing new changes - //applicationID = '27C4EB5B'; + applicationID = '27C4EB5B'; var messageNamespace = 'urn:x-cast:com.connectsdk'; diff --git a/dashboard-ui/scripts/mypreferencesdisplay.js b/dashboard-ui/scripts/mypreferencesdisplay.js index e000846714..e36f479771 100644 --- a/dashboard-ui/scripts/mypreferencesdisplay.js +++ b/dashboard-ui/scripts/mypreferencesdisplay.js @@ -25,18 +25,10 @@ appStorage.setItem('enableThemeSongs-' + user.Id, $('#selectThemeSong', page).val()); appStorage.setItem('enableBackdrops-' + user.Id, $('#selectBackdrop', page).val()); - ApiClient.updateUserConfiguration(user.Id, user.Configuration).then(function () { - Dashboard.alert(Globalize.translate('SettingsSaved')); - - loadForm(page, user); - }); + ApiClient.updateUserConfiguration(user.Id, user.Configuration); } - function onSubmit() { - - var page = $(this).parents('.page')[0]; - - Dashboard.showLoadingMsg(); + function save(page) { var userId = getParameterByName('userId') || Dashboard.getCurrentUserId(); @@ -45,18 +37,26 @@ saveUser(page, user); }); + } + + function onSubmit() { + + var page = $(this).parents('.page')[0]; + + save(page); // Disable default form submission return false; } - $(document).on('pageinit', "#displayPreferencesPage", function () { + pageIdOn('pageinit', "displayPreferencesPage", function () { var page = this; $('.displayPreferencesForm').off('submit', onSubmit).on('submit', onSubmit); - }).on('pageshow', "#displayPreferencesPage", function () { + }); + pageIdOn('pageshow', "displayPreferencesPage", function () { var page = this; @@ -82,6 +82,14 @@ } else { $('.languageSection', page).hide(); } + + }); + pageIdOn('pagebeforehide', "displayPreferencesPage", function () { + + var page = this; + + save(page); + }); })(jQuery, window, document); \ No newline at end of file diff --git a/dashboard-ui/scripts/mypreferenceshome.js b/dashboard-ui/scripts/mypreferenceshome.js index e0e7eed34f..a54d610de1 100644 --- a/dashboard-ui/scripts/mypreferenceshome.js +++ b/dashboard-ui/scripts/mypreferenceshome.js @@ -199,19 +199,11 @@ ApiClient.updateDisplayPreferences('home', displayPreferences, user.Id, AppSettings.displayPreferencesKey()).then(function () { - ApiClient.updateUserConfiguration(user.Id, user.Configuration).then(function () { - Dashboard.alert(Globalize.translate('SettingsSaved')); - - loadForm(page, user, displayPreferences); - }); + ApiClient.updateUserConfiguration(user.Id, user.Configuration); }); } - function onSubmit() { - - var page = $(this).parents('.page')[0]; - - Dashboard.showLoadingMsg(); + function save(page) { var userId = getParameterByName('userId') || Dashboard.getCurrentUserId(); @@ -222,14 +214,20 @@ saveUser(page, user, displayPreferences); }); - }); + } + + function onSubmit() { + + var page = $(this).parents('.page')[0]; + + save(page); // Disable default form submission return false; } - $(document).on('pageinit', "#homeScreenPreferencesPage", function () { + pageIdOn('pageinit', "homeScreenPreferencesPage", function () { var page = this; @@ -272,7 +270,9 @@ $('.homeScreenPreferencesForm').off('submit', onSubmit).on('submit', onSubmit); - }).on('pageshow', "#homeScreenPreferencesPage", function () { + }); + + pageIdOn('pageshow', "homeScreenPreferencesPage", function () { var page = this; @@ -290,4 +290,11 @@ }); }); + pageIdOn('pagebeforehide', "homeScreenPreferencesPage", function () { + + var page = this; + + save(page); + }); + })(jQuery, window, document); \ No newline at end of file diff --git a/dashboard-ui/scripts/mypreferenceslanguages.js b/dashboard-ui/scripts/mypreferenceslanguages.js index aad219ad4f..dc957259aa 100644 --- a/dashboard-ui/scripts/mypreferenceslanguages.js +++ b/dashboard-ui/scripts/mypreferenceslanguages.js @@ -96,22 +96,10 @@ AppSettings.enableCinemaMode(page.querySelector('.chkEnableCinemaMode').checked); - ApiClient.updateUserConfiguration(user.Id, user.Configuration).then(function () { - - Dashboard.hideLoadingMsg(); - Dashboard.alert(Globalize.translate('SettingsSaved')); - - }, function () { - Dashboard.hideLoadingMsg(); - }); + ApiClient.updateUserConfiguration(user.Id, user.Configuration); } - function onSubmit() { - - var page = $(this).parents('.page')[0]; - - Dashboard.showLoadingMsg(); - + function save(page) { AppSettings.enableExternalPlayers(page.querySelector('.chkExternalVideoPlayer').checked); if ($('#selectMaxBitrate', page).val()) { @@ -131,12 +119,19 @@ saveUser(page, result); }); + } + + function onSubmit() { + + var page = $(this).parents('.page')[0]; + + save(page); // Disable default form submission return false; } - $(document).on('pageinit', "#languagePreferencesPage", function () { + pageIdOn('pageinit', "languagePreferencesPage", function () { var page = this; @@ -147,9 +142,9 @@ }); $('.languagePreferencesForm').off('submit', onSubmit).on('submit', onSubmit); + }); - - }).on('pageshow', "#languagePreferencesPage", function () { + pageIdOn('pageshow', "languagePreferencesPage", function () { var page = this; @@ -170,4 +165,11 @@ loadPage(page); }); + pageIdOn('pagebeforehide', "languagePreferencesPage", function () { + + var page = this; + + save(page); + }); + })(jQuery, window, document); \ No newline at end of file From 4212cde7344944b76b8e46b52ff58f5ae523d989 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 4 Jan 2016 13:58:06 -0500 Subject: [PATCH 21/58] update settings pages --- dashboard-ui/mypreferenceslanguages.html | 30 ------------------- dashboard-ui/scripts/appsettings.js | 10 ++----- .../scripts/mypreferenceslanguages.js | 3 +- 3 files changed, 3 insertions(+), 40 deletions(-) diff --git a/dashboard-ui/mypreferenceslanguages.html b/dashboard-ui/mypreferenceslanguages.html index 44d7bb3d50..9c4087a5ac 100644 --- a/dashboard-ui/mypreferenceslanguages.html +++ b/dashboard-ui/mypreferenceslanguages.html @@ -75,39 +75,9 @@
-
-
-
- ${LabelEnableChromecastAc3Passthrough} -
-
-