Merge pull request #1690 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-04-28 15:09:56 -04:00
commit 23ee907693
19 changed files with 214 additions and 134 deletions

View File

@ -16,12 +16,12 @@
},
"devDependencies": {},
"ignore": [],
"version": "1.2.49",
"_release": "1.2.49",
"version": "1.2.53",
"_release": "1.2.53",
"_resolution": {
"type": "version",
"tag": "1.2.49",
"commit": "dced619538d91455d46dcbaf0bc03178cbf5ebd8"
"tag": "1.2.53",
"commit": "818133a9b1b4b241b6f0e8e1733da3358bb02df5"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0",

View File

@ -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: 40%;
text-overflow: ellipsis;
overflow: hidden;
}
@media all and (max-width: 1000px) {
.guideChannelName {
display: none;
}
}
.channelList, .programGrid {
height: auto !important;
}

View File

@ -328,11 +328,18 @@
dataSrc = ' data-src="' + url + '"';
}
html += '<button type="button" class="channelHeaderCell clearButton itemAction lazy"' + dataSrc + ' data-action="link" data-isfolder="' + channel.IsFolder + '" data-id="' + channel.Id + '" data-serverid="' + channel.ServerId + '" data-type="' + channel.Type + '">';
var cssClass = 'channelHeaderCell clearButton itemAction lazy';
if (hasChannelImage) {
cssClass += ' withImage';
}
var cssClass = hasChannelImage ? 'guideChannelInfo guideChannelInfoWithImage' : 'guideChannelInfo';
html += '<button type="button" class="' + cssClass + '"' + dataSrc + ' data-action="link" data-isfolder="' + channel.IsFolder + '" data-id="' + channel.Id + '" data-serverid="' + channel.ServerId + '" data-type="' + channel.Type + '">';
html += '<div class="' + cssClass + '"><div class="guideChannelName">' + channel.Number + '</div></div>';
html += '<div class="guideChannelNumber">' + channel.Number + '</div>';
if (!hasChannelImage) {
html += '<div class="guideChannelName">' + channel.Name + '</div>';
}
html += '</button>';
}

View File

@ -0,0 +1,62 @@
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(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 () {
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
};
});

View File

@ -120,14 +120,27 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
if (options.interactive) {
var actionButtonsOnTop = layoutManager.mobile;
html += '<div>';
html += '<div class="slideshowSwiperContainer"><div class="swiper-wrapper"></div></div>';
html += '<paper-icon-button icon="slideshow:keyboard-arrow-left" class="btnSlideshowPrevious slideshowButton" tabindex="-1"></paper-icon-button>';
html += '<paper-icon-button icon="slideshow:keyboard-arrow-right" class="btnSlideshowNext slideshowButton" tabindex="-1"></paper-icon-button>';
html += '<div class="topActionButtons">';
if (actionButtonsOnTop) {
if (appHost.supports('filedownload')) {
html += '<paper-icon-button icon="slideshow:file-download" class="btnDownload slideshowButton"></paper-icon-button>';
}
if (appHost.supports('sharing')) {
html += '<paper-icon-button icon="slideshow:share" class="btnShare slideshowButton"></paper-icon-button>';
}
}
html += '<paper-icon-button icon="slideshow:close" class="btnSlideshowExit" tabindex="-1"></paper-icon-button>';
html += '</div>';
if (!actionButtonsOnTop) {
html += '<div class="slideshowBottomBar hide">';
//html += '<paper-icon-button icon="slideshow:share" class="btnShare slideshowButton"></paper-icon-button>';
@ -135,8 +148,12 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
if (appHost.supports('filedownload')) {
html += '<paper-icon-button icon="slideshow:file-download" class="btnDownload slideshowButton"></paper-icon-button>';
}
if (appHost.supports('sharing')) {
html += '<paper-icon-button icon="slideshow:share" class="btnShare slideshowButton"></paper-icon-button>';
}
html += '</div>';
}
html += '</div>';
@ -229,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
});
}
@ -254,7 +272,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
function getSwiperSlideHtmlFromSlide(item) {
var html = '';
html += '<div class="swiper-slide" data-original="' + item.originalImage + '" data-itemid="' + item.Id + '">';
html += '<div class="swiper-slide" data-original="' + item.originalImage + '" data-itemid="' + item.Id + '" data-serverid="' + item.ServerId + '">';
html += '<img data-src="' + item.imageUrl + '" class="swiper-lazy">';
html += '<paper-spinner></paper-spinner>';
if (item.title || item.subtitle) {
@ -305,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;
}
@ -327,31 +343,39 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
function download() {
var url = getCurrentImageUrl();
var itemId = getCurrentItemId();
alert(itemId);
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() {
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 +427,19 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
function showOsd() {
slideUpToShow(getOsdBottom());
var bottom = getOsdBottom();
if (bottom) {
slideUpToShow(bottom);
startHideTimer();
}
}
function hideOsd() {
slideDownToHide(getOsdBottom());
var bottom = getOsdBottom();
if (bottom) {
slideDownToHide(bottom);
}
}
var hideTimeout;

View File

@ -80,7 +80,7 @@
position: absolute;
}
.btnSlideshowExit {
.topActionButtons {
right: .5vh;
top: .5vh;
z-index: 1002;

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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"
}

View File

@ -94,6 +94,8 @@ define(['appStorage', 'browser'], function (appStorage, browser) {
'filedownload'
];
features.push('sharing');
return features.indexOf(command.toLowerCase()) != -1;
},
appInfo: function () {

View File

@ -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 () {

View File

@ -46,6 +46,11 @@
<div class="fieldDescription paperCheckboxFieldDescription btnSupporterForConverting"><a href="https://emby.media/premiere" target="_blank" class="accent">${FeatureRequiresEmbyPremiere}</a></div>
</div>
<br />
<div>
<paper-checkbox id="chkPreserveAudio">${OptionConvertRecordingPreserveAudio}</paper-checkbox>
<div class="fieldDescription paperCheckboxFieldDescription">${OptionConvertRecordingPreserveAudioHelp}</div>
</div>
<br />
<br />
<div>
<paper-checkbox id="chkOrganize">${OptionSendRecordingsToAutoOrganize}</paper-checkbox>

View File

@ -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) {

View File

@ -950,6 +950,8 @@
});
}
var serverId = ApiClient.serverInfo().Id;
require(['actionsheet'], function (actionsheet) {
actionsheet.show({
@ -960,8 +962,11 @@
switch (id) {
case 'share':
require(['sharingmanager'], function () {
SharingManager.showMenu(Dashboard.getCurrentUserId(), itemId);
require(['sharingmanager'], function (sharingManager) {
sharingManager.showMenu({
serverId: serverId,
itemId: itemId
});
});
break;
case 'addtocollection':
@ -990,7 +995,8 @@
fileDownloader.download([
{
url: downloadHref,
itemId: itemId
itemId: itemId,
serverId: serverId
}]);
});
@ -1547,6 +1553,11 @@
value: item.LocationType || ''
});
atts.push({
name: 'index',
value: index
});
if (item.AlbumId) {
atts.push({
name: 'albumid',

View File

@ -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
}]);
});
@ -576,8 +578,11 @@
LibraryBrowser.playInExternalPlayer(itemId);
break;
case 'share':
require(['sharingmanager'], function () {
SharingManager.showMenu(Dashboard.getCurrentUserId(), itemId);
require(['sharingmanager'], function (sharingManager) {
sharingManager.showMenu({
serverId: serverId,
itemId: itemId
});
});
break;
case 'removefromplaylist':

View File

@ -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;

View File

@ -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
};
});

View File

@ -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 {

View File

@ -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."
}