From 23b95d0042bdb2b3417143807037f889a20d8b6e Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 27 Apr 2016 17:26:28 -0400 Subject: [PATCH 1/7] added option to preserve original audio when recording --- dashboard-ui/livetvsettings.html | 5 +++++ dashboard-ui/scripts/livetvsettings.js | 2 ++ dashboard-ui/strings/en-US.json | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dashboard-ui/livetvsettings.html b/dashboard-ui/livetvsettings.html index c3aa6b247..22cd639db 100644 --- a/dashboard-ui/livetvsettings.html +++ b/dashboard-ui/livetvsettings.html @@ -46,6 +46,11 @@
${FeatureRequiresEmbyPremiere}

+
+ ${OptionConvertRecordingPreserveAudio} +
${OptionConvertRecordingPreserveAudioHelp}
+
+

${OptionSendRecordingsToAutoOrganize} diff --git a/dashboard-ui/scripts/livetvsettings.js b/dashboard-ui/scripts/livetvsettings.js index becba5ee6..43be4ad7b 100644 --- a/dashboard-ui/scripts/livetvsettings.js +++ b/dashboard-ui/scripts/livetvsettings.js @@ -10,6 +10,7 @@ $('#chkMovies', page).checked(config.EnableMovieProviders); $('#chkOrganize', page).checked(config.EnableAutoOrganize); $('#chkConvertRecordings', page).checked(config.EnableRecordingEncoding); + $('#chkPreserveAudio', page).checked(config.EnableOriginalAudioWithEncodedRecordings || false); $('#txtRecordingPath', page).val(config.RecordingPath || ''); @@ -31,6 +32,7 @@ config.EnableMovieProviders = $('#chkMovies', form).checked(); config.EnableAutoOrganize = $('#chkOrganize', form).checked(); config.EnableRecordingEncoding = $('#chkConvertRecordings', form).checked(); + config.EnableOriginalAudioWithEncodedRecordings = $('#chkPreserveAudio', form).checked(); config.RecordingPath = $('#txtRecordingPath', form).val() || null; config.PrePaddingSeconds = $('#txtPrePaddingMinutes', form).val() * 60; diff --git a/dashboard-ui/strings/en-US.json b/dashboard-ui/strings/en-US.json index 177e162e9..9ac4fb5f9 100644 --- a/dashboard-ui/strings/en-US.json +++ b/dashboard-ui/strings/en-US.json @@ -2349,5 +2349,7 @@ "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", "LabelTitle": "Title:", "LabelOriginalTitle": "Original title:", - "LabelSortTitle": "Sort title:" + "LabelSortTitle": "Sort title:", + "OptionConvertRecordingPreserveAudio": "Preserve original audio when converting recordings", + "OptionConvertRecordingPreserveAudioHelp": "This will provide better audio but may require transcoding during playback on some devices." } From 6cf11c215149a5b2765ac03e4345681459cdc7a4 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 27 Apr 2016 21:43:09 -0400 Subject: [PATCH 2/7] update components --- .../emby-webcomponents/.bower.json | 8 +-- .../emby-webcomponents/guide/guide.css | 24 +++++--- .../emby-webcomponents/guide/guide.js | 13 ++++- .../emby-webcomponents/slideshow/slideshow.js | 55 ++++++++++++++----- .../emby-webcomponents/slideshow/style.css | 2 +- .../iron-a11y-keys-behavior/.bower.json | 6 +- .../bower_components/iron-icon/.bower.json | 6 +- .../bower_components/iron-meta/.bower.json | 6 +- .../iron-selector/.bower.json | 4 +- .../paper-behaviors/.bower.json | 4 +- .../bower_components/paper-ripple/.bower.json | 6 +- 11 files changed, 87 insertions(+), 47 deletions(-) diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index d1d0265e2..be5b9e47f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -16,12 +16,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.2.49", - "_release": "1.2.49", + "version": "1.2.50", + "_release": "1.2.50", "_resolution": { "type": "version", - "tag": "1.2.49", - "commit": "dced619538d91455d46dcbaf0bc03178cbf5ebd8" + "tag": "1.2.50", + "commit": "b58b3517bb892e0cde54a8a5f5bf318248f0eb13" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css index e60131118..6aa8f2602 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css +++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css @@ -181,6 +181,8 @@ align-items: center; color: #fff !important; text-decoration: none; + /* Needed in firefox */ + text-align: left; } @media all and (min-width: 500px) { @@ -232,7 +234,7 @@ @media all and (max-width: 1280px) { - .guideChannelInfoWithImage .guideChannelName { + .channelHeaderCell.withImage .guideChannelNumber { display: none; } } @@ -366,22 +368,28 @@ margin-left: .25em; } -.guideChannelInfo { - display: inline-block; - max-width: 110px; +.guideChannelNumber { + padding-left: 1em; + max-width: 30%; + text-overflow: ellipsis; overflow: hidden; - white-space: nowrap; - padding-left: .7em; } .guideChannelName { margin-left: auto; - margin-right: .3em; - max-width: 6vw; + margin-right: 1em; + max-width: 50%; text-overflow: ellipsis; overflow: hidden; } +@media all and (max-width: 1000px) { + + .guideChannelName { + display: none; + } +} + .channelList, .programGrid { height: auto !important; } diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js index f608a6261..039c0418b 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js +++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js @@ -328,11 +328,18 @@ dataSrc = ' data-src="' + url + '"'; } - html += ''; } diff --git a/dashboard-ui/bower_components/emby-webcomponents/slideshow/slideshow.js b/dashboard-ui/bower_components/emby-webcomponents/slideshow/slideshow.js index 1f1940a66..4b00e7988 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/slideshow/slideshow.js +++ b/dashboard-ui/bower_components/emby-webcomponents/slideshow/slideshow.js @@ -120,24 +120,35 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f if (options.interactive) { + var actionButtonsOnTop = layoutManager.mobile; + html += '
'; html += '
'; html += ''; html += ''; - html += ''; - - html += '
'; - - //html += ''; - html += ''; - if (appHost.supports('filedownload')) { - html += ''; + html += '
'; + if (actionButtonsOnTop) { + if (appHost.supports('filedownload')) { + html += ''; + } } - + html += ''; html += '
'; + if (!actionButtonsOnTop) { + html += '
'; + + //html += ''; + html += ''; + if (appHost.supports('filedownload')) { + html += ''; + } + + html += '
'; + } + html += '
'; } else { @@ -329,7 +340,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f var url = getCurrentImageUrl(); var itemId = getCurrentItemId(); - alert(itemId); + require(['fileDownloader'], function (fileDownloader) { fileDownloader.download([ { @@ -345,13 +356,21 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f function play() { - dlg.querySelector('.btnSlideshowPause').icon = "slideshow:pause"; + var btnSlideshowPause = dlg.querySelector('.btnSlideshowPause'); + if (btnSlideshowPause) { + btnSlideshowPause.icon = "slideshow:pause"; + } + swiperInstance.startAutoplay(); } function pause() { - dlg.querySelector('.btnSlideshowPause').icon = "slideshow:play-arrow"; + var btnSlideshowPause = dlg.querySelector('.btnSlideshowPause'); + if (btnSlideshowPause) { + btnSlideshowPause.icon = "slideshow:play-arrow"; + } + swiperInstance.stopAutoplay(); } @@ -403,13 +422,19 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f function showOsd() { - slideUpToShow(getOsdBottom()); - startHideTimer(); + var bottom = getOsdBottom(); + if (bottom) { + slideUpToShow(bottom); + startHideTimer(); + } } function hideOsd() { - slideDownToHide(getOsdBottom()); + var bottom = getOsdBottom(); + if (bottom) { + slideDownToHide(bottom); + } } var hideTimeout; diff --git a/dashboard-ui/bower_components/emby-webcomponents/slideshow/style.css b/dashboard-ui/bower_components/emby-webcomponents/slideshow/style.css index d447f163a..8395c5273 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/slideshow/style.css +++ b/dashboard-ui/bower_components/emby-webcomponents/slideshow/style.css @@ -80,7 +80,7 @@ position: absolute; } -.btnSlideshowExit { +.topActionButtons { right: .5vh; top: .5vh; z-index: 1002; diff --git a/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json b/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json index f920799d2..9604c48b0 100644 --- a/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json +++ b/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json @@ -30,14 +30,14 @@ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "ignore": [], - "homepage": "https://github.com/polymerelements/iron-a11y-keys-behavior", + "homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior", "_release": "1.1.2", "_resolution": { "type": "version", "tag": "v1.1.2", "commit": "0c2330c229a6fd3d200e2b84147ec6f94f17c22d" }, - "_source": "git://github.com/polymerelements/iron-a11y-keys-behavior.git", + "_source": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git", "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-a11y-keys-behavior" + "_originalSource": "PolymerElements/iron-a11y-keys-behavior" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-icon/.bower.json b/dashboard-ui/bower_components/iron-icon/.bower.json index f0167baf1..9784e3a3b 100644 --- a/dashboard-ui/bower_components/iron-icon/.bower.json +++ b/dashboard-ui/bower_components/iron-icon/.bower.json @@ -32,14 +32,14 @@ "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, - "homepage": "https://github.com/polymerelements/iron-icon", + "homepage": "https://github.com/PolymerElements/iron-icon", "_release": "1.0.8", "_resolution": { "type": "version", "tag": "v1.0.8", "commit": "f36b38928849ef3853db727faa8c9ef104d611eb" }, - "_source": "git://github.com/polymerelements/iron-icon.git", + "_source": "git://github.com/PolymerElements/iron-icon.git", "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-icon" + "_originalSource": "PolymerElements/iron-icon" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-meta/.bower.json b/dashboard-ui/bower_components/iron-meta/.bower.json index e1304d174..f4bfef4a7 100644 --- a/dashboard-ui/bower_components/iron-meta/.bower.json +++ b/dashboard-ui/bower_components/iron-meta/.bower.json @@ -26,14 +26,14 @@ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "iron-meta.html", - "homepage": "https://github.com/PolymerElements/iron-meta", + "homepage": "https://github.com/polymerelements/iron-meta", "_release": "1.1.1", "_resolution": { "type": "version", "tag": "v1.1.1", "commit": "e171ee234b482219c9514e6f9551df48ef48bd9f" }, - "_source": "git://github.com/PolymerElements/iron-meta.git", + "_source": "git://github.com/polymerelements/iron-meta.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-meta" + "_originalSource": "polymerelements/iron-meta" } \ 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 c88ed41aa..43e942ccc 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.4.0", "commit": "554f7418fdbd97688eb21518b5f8172167d53a95" }, - "_source": "git://github.com/polymerelements/iron-selector.git", + "_source": "git://github.com/PolymerElements/iron-selector.git", "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-selector" + "_originalSource": "PolymerElements/iron-selector" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/paper-behaviors/.bower.json b/dashboard-ui/bower_components/paper-behaviors/.bower.json index 2b04bf9f8..a6b333d33 100644 --- a/dashboard-ui/bower_components/paper-behaviors/.bower.json +++ b/dashboard-ui/bower_components/paper-behaviors/.bower.json @@ -45,7 +45,7 @@ "tag": "v1.0.11", "commit": "e3c1ab0c72905b58fb4d9adc2921ea73b5c085a5" }, - "_source": "git://github.com/PolymerElements/paper-behaviors.git", + "_source": "git://github.com/polymerelements/paper-behaviors.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-behaviors" + "_originalSource": "polymerelements/paper-behaviors" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/paper-ripple/.bower.json b/dashboard-ui/bower_components/paper-ripple/.bower.json index 157225ee7..2f654d71c 100644 --- a/dashboard-ui/bower_components/paper-ripple/.bower.json +++ b/dashboard-ui/bower_components/paper-ripple/.bower.json @@ -32,14 +32,14 @@ "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0" }, "ignore": [], - "homepage": "https://github.com/PolymerElements/paper-ripple", + "homepage": "https://github.com/polymerelements/paper-ripple", "_release": "1.0.5", "_resolution": { "type": "version", "tag": "v1.0.5", "commit": "d72e7a9a8ab518b901ed18dde492df3b87a93be5" }, - "_source": "git://github.com/PolymerElements/paper-ripple.git", + "_source": "git://github.com/polymerelements/paper-ripple.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-ripple" + "_originalSource": "polymerelements/paper-ripple" } \ No newline at end of file From 190f70bb715ce0e6cd36a95fd28c7bf8dc5c8e07 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 27 Apr 2016 21:59:54 -0400 Subject: [PATCH 3/7] update avc display on detail screen --- dashboard-ui/scripts/itemdetailpage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index 900f3085b..b3da6ae94 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -1484,7 +1484,7 @@ } if (stream.IsAVC != null) { - attributes.push(createAttribute('AVC', stream.IsAVC)); + attributes.push(createAttribute('AVC', (stream.IsAVC ? 'Yes' : 'No'))); } if (stream.Profile) { From 3657bdf7b79be14087ac34e1720d5bf2dc724f7c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 27 Apr 2016 22:46:41 -0400 Subject: [PATCH 4/7] use common sharing manager --- .../emby-webcomponents/.bower.json | 8 +-- .../emby-webcomponents/guide/guide.css | 2 +- .../sharing/sharingmanager.js | 60 +++++++++++++++++++ .../iron-a11y-keys-behavior/.bower.json | 6 +- .../bower_components/iron-meta/.bower.json | 6 +- .../bower_components/polymer/.bower.json | 2 +- dashboard-ui/scripts/librarybrowser.js | 4 +- dashboard-ui/scripts/librarylist.js | 4 +- dashboard-ui/scripts/sharingmanager.js | 59 ------------------ dashboard-ui/scripts/site.js | 8 +-- 10 files changed, 80 insertions(+), 79 deletions(-) create mode 100644 dashboard-ui/bower_components/emby-webcomponents/sharing/sharingmanager.js delete mode 100644 dashboard-ui/scripts/sharingmanager.js diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index be5b9e47f..c94c13339 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -16,12 +16,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.2.50", - "_release": "1.2.50", + "version": "1.2.51", + "_release": "1.2.51", "_resolution": { "type": "version", - "tag": "1.2.50", - "commit": "b58b3517bb892e0cde54a8a5f5bf318248f0eb13" + "tag": "1.2.51", + "commit": "0de31178ecd029314513167a880a1cf645140917" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css index 6aa8f2602..d00f60f63 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css +++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css @@ -378,7 +378,7 @@ .guideChannelName { margin-left: auto; margin-right: 1em; - max-width: 50%; + max-width: 40%; text-overflow: ellipsis; overflow: hidden; } diff --git a/dashboard-ui/bower_components/emby-webcomponents/sharing/sharingmanager.js b/dashboard-ui/bower_components/emby-webcomponents/sharing/sharingmanager.js new file mode 100644 index 000000000..ed938176b --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/sharing/sharingmanager.js @@ -0,0 +1,60 @@ +define(['connectionManager', 'sharingMenu', 'loading'], function (connectionManager, sharingMenu, loading) { + + function onSharingSuccess(options) { + + console.log('share success. shareId: ' + options.share.Id); + } + + function onSharingCancel(options, apiClient) { + + var shareId = options.share.Id; + + console.log('share cancelled. shareId: ' + shareId); + + // Delete the share since it was cancelled + apiClient.ajax({ + + type: 'DELETE', + url: apiClient.getUrl('Social/Shares/' + shareId) + + }); + } + + function showMenu(apiClient, itemId) { + + loading.show(); + var userId = apiClient.getCurrentUserId(); + + return apiClient.getItem(userId, itemId).then(function () { + + return apiClient.ajax({ + type: 'POST', + url: apiClient.getUrl('Social/Shares', { + + ItemId: itemId, + UserId: userId + }), + dataType: "json" + + }).then(function (share) { + + var options = { + share: share + }; + + loading.hide(); + sharingMenu.showMenu(options, onSharingSuccess, function (options) { + onSharingCancel(options, apiClient); + }); + + }, function () { + + loading.hide(); + }); + }); + } + + return { + showMenu: showMenu + }; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json b/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json index 9604c48b0..f920799d2 100644 --- a/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json +++ b/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json @@ -30,14 +30,14 @@ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "ignore": [], - "homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior", + "homepage": "https://github.com/polymerelements/iron-a11y-keys-behavior", "_release": "1.1.2", "_resolution": { "type": "version", "tag": "v1.1.2", "commit": "0c2330c229a6fd3d200e2b84147ec6f94f17c22d" }, - "_source": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git", + "_source": "git://github.com/polymerelements/iron-a11y-keys-behavior.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-a11y-keys-behavior" + "_originalSource": "polymerelements/iron-a11y-keys-behavior" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-meta/.bower.json b/dashboard-ui/bower_components/iron-meta/.bower.json index f4bfef4a7..e1304d174 100644 --- a/dashboard-ui/bower_components/iron-meta/.bower.json +++ b/dashboard-ui/bower_components/iron-meta/.bower.json @@ -26,14 +26,14 @@ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "iron-meta.html", - "homepage": "https://github.com/polymerelements/iron-meta", + "homepage": "https://github.com/PolymerElements/iron-meta", "_release": "1.1.1", "_resolution": { "type": "version", "tag": "v1.1.1", "commit": "e171ee234b482219c9514e6f9551df48ef48bd9f" }, - "_source": "git://github.com/polymerelements/iron-meta.git", + "_source": "git://github.com/PolymerElements/iron-meta.git", "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-meta" + "_originalSource": "PolymerElements/iron-meta" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/polymer/.bower.json b/dashboard-ui/bower_components/polymer/.bower.json index 3e8a4009a..bbad7fe7b 100644 --- a/dashboard-ui/bower_components/polymer/.bower.json +++ b/dashboard-ui/bower_components/polymer/.bower.json @@ -34,6 +34,6 @@ "commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514" }, "_source": "git://github.com/Polymer/polymer.git", - "_target": "^1.0.0", + "_target": "^1.1.0", "_originalSource": "Polymer/polymer" } \ No newline at end of file diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 23dd2d2e4..aa5beb514 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -960,8 +960,8 @@ switch (id) { case 'share': - require(['sharingmanager'], function () { - SharingManager.showMenu(Dashboard.getCurrentUserId(), itemId); + require(['sharingmanager'], function (sharingManager) { + sharingManager.showMenu(ApiClient, itemId); }); break; case 'addtocollection': diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index 556af2ec6..fa4bce8d6 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -576,8 +576,8 @@ LibraryBrowser.playInExternalPlayer(itemId); break; case 'share': - require(['sharingmanager'], function () { - SharingManager.showMenu(Dashboard.getCurrentUserId(), itemId); + require(['sharingmanager'], function (sharingManager) { + sharingManager.showMenu(ApiClient, itemId); }); break; case 'removefromplaylist': diff --git a/dashboard-ui/scripts/sharingmanager.js b/dashboard-ui/scripts/sharingmanager.js deleted file mode 100644 index 0472679ad..000000000 --- a/dashboard-ui/scripts/sharingmanager.js +++ /dev/null @@ -1,59 +0,0 @@ -define([], function () { - - function onSharingSuccess(options) { - - console.log('share success. shareId: ' + options.share.Id); - - } - - function onSharingCancel(options) { - - var shareId = options.share.Id; - - console.log('share cancelled. shareId: ' + shareId); - - // Delete the share since it was cancelled - ApiClient.ajax({ - - type: 'DELETE', - url: ApiClient.getUrl('Social/Shares/' + shareId) - - }); - } - - function showMenu(userId, itemId) { - - Dashboard.showLoadingMsg(); - - require(['sharingwidget'], function (SharingWidget) { - - ApiClient.ajax({ - type: 'POST', - url: ApiClient.getUrl('Social/Shares', { - - ItemId: itemId, - UserId: userId - }), - dataType: "json" - - }).then(function (share) { - - var options = { - share: share - }; - - Dashboard.hideLoadingMsg(); - SharingWidget.showMenu(options, onSharingSuccess, onSharingCancel); - - }, function () { - - Dashboard.hideLoadingMsg(); - }); - }); - } - - window.SharingManager = { - showMenu: showMenu - }; - -}); \ No newline at end of file diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 97722b31a..e5fd1b091 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1651,12 +1651,12 @@ var AppInfo = {}; paths.hlsjs = bowerPath + "/hls.js/dist/hls.min"; if (Dashboard.isRunningInCordova()) { - paths.sharingwidget = "cordova/sharingwidget"; + paths.sharingMenu = "cordova/sharingwidget"; paths.serverdiscovery = "cordova/serverdiscovery"; paths.wakeonlan = "cordova/wakeonlan"; paths.actionsheet = "cordova/actionsheet"; } else { - paths.sharingwidget = "components/sharingwidget"; + paths.sharingMenu = "components/sharingwidget"; paths.serverdiscovery = apiClientBowerPath + "/serverdiscovery"; paths.wakeonlan = apiClientBowerPath + "/wakeonlan"; @@ -1678,6 +1678,8 @@ var AppInfo = {}; return viewManager; }); + define("sharingmanager", [embyWebComponentsBowerPath + "/sharing/sharingmanager"], returnFirstDependency); + // hack for an android test before browserInfo is loaded if (Dashboard.isRunningInCordova() && window.MainActivity) { paths.appStorage = "cordova/android/appstorage"; @@ -2028,8 +2030,6 @@ var AppInfo = {}; define("detailtablecss", ['css!css/detailtable.css']); define("tileitemcss", ['css!css/tileitem.css']); - define("sharingmanager", ["scripts/sharingmanager"]); - if (Dashboard.isRunningInCordova() && browserInfo.safari) { define("searchmenu", ["cordova/searchmenu"]); } else { From acb094fa46cd7cb8ad172104edf0cfd107196304 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 27 Apr 2016 22:56:18 -0400 Subject: [PATCH 5/7] update sharing widget --- dashboard-ui/components/apphost.js | 2 ++ dashboard-ui/components/sharingwidget.js | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/dashboard-ui/components/apphost.js b/dashboard-ui/components/apphost.js index 369646cf1..9d08eeada 100644 --- a/dashboard-ui/components/apphost.js +++ b/dashboard-ui/components/apphost.js @@ -94,6 +94,8 @@ define(['appStorage', 'browser'], function (appStorage, browser) { 'filedownload' ]; + features.push('sharing'); + return features.indexOf(command.toLowerCase()) != -1; }, appInfo: function () { diff --git a/dashboard-ui/components/sharingwidget.js b/dashboard-ui/components/sharingwidget.js index c65641302..87f87d400 100644 --- a/dashboard-ui/components/sharingwidget.js +++ b/dashboard-ui/components/sharingwidget.js @@ -1,4 +1,4 @@ -define(['dialogHelper', 'jQuery', 'thirdparty/social-share-kit-1.0.4/dist/js/social-share-kit.min', 'css!thirdparty/social-share-kit-1.0.4/dist/css/social-share-kit.css'], function (dialogHelper, $) { +define(['dialogHelper', 'thirdparty/social-share-kit-1.0.4/dist/js/social-share-kit.min', 'css!thirdparty/social-share-kit-1.0.4/dist/css/social-share-kit.css'], function (dialogHelper) { function showMenu(options, successCallback, cancelCallback) { @@ -58,11 +58,16 @@ } }); - // Has to be assigned a z-index after the call to .open() - $('.ssk', dlg).on('click', function () { + function onSskButtonClick(e) { isShared = true; dialogHelper.close(dlg); - }); + } + + // Has to be assigned a z-index after the call to .open() + var sskButtons = dlg.querySelectorAll('.ssk'); + for (var i = 0, length = sskButtons.length; i < length; i++) { + sskButtons[i].addEventListener('click', onSskButtonClick); + } // Has to be assigned a z-index after the call to .open() dlg.querySelector('.btnCancel').addEventListener('click', function () { From 59ede5b1e6840b83cee692c47fe12c7a71970674 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 28 Apr 2016 00:53:11 -0400 Subject: [PATCH 6/7] update components --- .../emby-webcomponents/.bower.json | 8 ++-- .../sharing/sharingmanager.js | 4 +- .../emby-webcomponents/slideshow/slideshow.js | 47 ++++++++++--------- .../bower_components/iron-icon/.bower.json | 6 +-- .../bower_components/polymer/.bower.json | 2 +- dashboard-ui/scripts/librarybrowser.js | 10 +++- dashboard-ui/scripts/librarylist.js | 9 +++- 7 files changed, 52 insertions(+), 34 deletions(-) diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index c94c13339..f20b0c734 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -16,12 +16,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.2.51", - "_release": "1.2.51", + "version": "1.2.53", + "_release": "1.2.53", "_resolution": { "type": "version", - "tag": "1.2.51", - "commit": "0de31178ecd029314513167a880a1cf645140917" + "tag": "1.2.53", + "commit": "818133a9b1b4b241b6f0e8e1733da3358bb02df5" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/sharing/sharingmanager.js b/dashboard-ui/bower_components/emby-webcomponents/sharing/sharingmanager.js index ed938176b..9ac278757 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/sharing/sharingmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/sharing/sharingmanager.js @@ -20,9 +20,11 @@ }); } - function showMenu(apiClient, itemId) { + function showMenu(options) { loading.show(); + var itemId = options.itemId; + var apiClient = options.apiClient || connectionManager.getApiClient(options.serverId); var userId = apiClient.getCurrentUserId(); return apiClient.getItem(userId, itemId).then(function () { diff --git a/dashboard-ui/bower_components/emby-webcomponents/slideshow/slideshow.js b/dashboard-ui/bower_components/emby-webcomponents/slideshow/slideshow.js index 4b00e7988..ba9b88c19 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/slideshow/slideshow.js +++ b/dashboard-ui/bower_components/emby-webcomponents/slideshow/slideshow.js @@ -133,6 +133,9 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f if (appHost.supports('filedownload')) { html += ''; } + if (appHost.supports('sharing')) { + html += ''; + } } html += ''; html += '
'; @@ -145,6 +148,9 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f if (appHost.supports('filedownload')) { html += ''; } + if (appHost.supports('sharing')) { + html += ''; + } html += '
'; } @@ -240,7 +246,8 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f originalImage: getImgUrl(item, true), //title: item.Name, //description: item.Overview - Id: item.Id + Id: item.Id, + ServerId: item.ServerId }); } @@ -265,7 +272,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f function getSwiperSlideHtmlFromSlide(item) { var html = ''; - html += '
'; + html += '
'; html += ''; html += ''; if (item.title || item.subtitle) { @@ -316,21 +323,19 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f } } - function getCurrentItemId() { - + function getCurrentImageInfo() { if (swiperInstance) { - return document.querySelector('.swiper-slide-active').getAttribute('data-itemid'); - } else { + var slide = document.querySelector('.swiper-slide-active'); + + if (slide) { + return { + url: slide.getAttribute('data-original'), + itemId: slide.getAttribute('data-itemid'), + serverId: slide.getAttribute('data-serverid') + }; + } return null; - } - } - - function getCurrentImageUrl() { - - - if (swiperInstance) { - return document.querySelector('.swiper-slide-active').getAttribute('data-original'); } else { return null; } @@ -338,20 +343,20 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f function download() { - var url = getCurrentImageUrl(); - var itemId = getCurrentItemId(); + var imageInfo = getCurrentImageInfo(); require(['fileDownloader'], function (fileDownloader) { - fileDownloader.download([ - { - url: url, - itemId: itemId - }]); + fileDownloader.download([imageInfo]); }); } function share() { + var imageInfo = getCurrentImageInfo(); + + require(['sharingmanager'], function (sharingManager) { + sharingManager.showMenu(imageInfo); + }); } function play() { diff --git a/dashboard-ui/bower_components/iron-icon/.bower.json b/dashboard-ui/bower_components/iron-icon/.bower.json index 9784e3a3b..f0167baf1 100644 --- a/dashboard-ui/bower_components/iron-icon/.bower.json +++ b/dashboard-ui/bower_components/iron-icon/.bower.json @@ -32,14 +32,14 @@ "web-component-tester": "^4.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, - "homepage": "https://github.com/PolymerElements/iron-icon", + "homepage": "https://github.com/polymerelements/iron-icon", "_release": "1.0.8", "_resolution": { "type": "version", "tag": "v1.0.8", "commit": "f36b38928849ef3853db727faa8c9ef104d611eb" }, - "_source": "git://github.com/PolymerElements/iron-icon.git", + "_source": "git://github.com/polymerelements/iron-icon.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-icon" + "_originalSource": "polymerelements/iron-icon" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/polymer/.bower.json b/dashboard-ui/bower_components/polymer/.bower.json index bbad7fe7b..3e8a4009a 100644 --- a/dashboard-ui/bower_components/polymer/.bower.json +++ b/dashboard-ui/bower_components/polymer/.bower.json @@ -34,6 +34,6 @@ "commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514" }, "_source": "git://github.com/Polymer/polymer.git", - "_target": "^1.1.0", + "_target": "^1.0.0", "_originalSource": "Polymer/polymer" } \ No newline at end of file diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index aa5beb514..ee654b508 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -950,6 +950,8 @@ }); } + var serverId = ApiClient.serverInfo().Id; + require(['actionsheet'], function (actionsheet) { actionsheet.show({ @@ -961,7 +963,10 @@ case 'share': require(['sharingmanager'], function (sharingManager) { - sharingManager.showMenu(ApiClient, itemId); + sharingManager.showMenu({ + serverId: serverId, + itemId: itemId + }); }); break; case 'addtocollection': @@ -990,7 +995,8 @@ fileDownloader.download([ { url: downloadHref, - itemId: itemId + itemId: itemId, + serverId: serverId }]); }); diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index fa4bce8d6..3301c8202 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -249,6 +249,7 @@ var albumid = card.getAttribute('data-albumid'); var artistid = card.getAttribute('data-artistid'); + var serverId = ApiClient.serverInfo().Id; Dashboard.getCurrentUser().then(function (user) { @@ -494,7 +495,8 @@ fileDownloader.download([ { url: downloadHref, - itemId: itemId + itemId: itemId, + serverId: serverId }]); }); @@ -577,7 +579,10 @@ break; case 'share': require(['sharingmanager'], function (sharingManager) { - sharingManager.showMenu(ApiClient, itemId); + sharingManager.showMenu({ + serverId: serverId, + itemId: itemId + }); }); break; case 'removefromplaylist': From ba45e06d36661ac1715a001eae8108dbe89b25c6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 28 Apr 2016 01:00:15 -0400 Subject: [PATCH 7/7] fix play all from here --- dashboard-ui/scripts/librarybrowser.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index ee654b508..4ae453a52 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -1553,6 +1553,11 @@ value: item.LocationType || '' }); + atts.push({ + name: 'index', + value: index + }); + if (item.AlbumId) { atts.push({ name: 'albumid',