1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update selection buttons

This commit is contained in:
Luke Pulverenti 2015-07-14 12:39:34 -04:00
parent 59a3cada00
commit 1c27cdeb2c
35 changed files with 226 additions and 115 deletions

View file

@ -1273,7 +1273,7 @@
"X-Application": appName + "/" + appVersion "X-Application": appName + "/" + appVersion
} }
}).done(onDone); }).always(onDone);
} else { } else {

View file

@ -1,6 +1,6 @@
{ {
"name": "font-roboto", "name": "font-roboto",
"version": "1.0.0", "version": "1.0.1",
"description": "An HTML import for Roboto", "description": "An HTML import for Roboto",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"
@ -19,13 +19,13 @@
"ignore": [ "ignore": [
"/.*" "/.*"
], ],
"_release": "1.0.0", "_release": "1.0.1",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.0.0", "tag": "v1.0.1",
"commit": "b85b217e5f4b31f9c03b588e25c977b8104a40cd" "commit": "21ce9b51a417fa9995cf6606e886aba0728f70a1"
}, },
"_source": "git://github.com/PolymerElements/font-roboto.git", "_source": "git://github.com/PolymerElements/font-roboto.git",
"_target": "^1.0.0", "_target": "^1.0.1",
"_originalSource": "PolymerElements/font-roboto" "_originalSource": "PolymerElements/font-roboto"
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "font-roboto", "name": "font-roboto",
"version": "1.0.0", "version": "1.0.1",
"description": "An HTML import for Roboto", "description": "An HTML import for Roboto",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"

View file

@ -7,4 +7,5 @@ The complete set of contributors may be found at http://polymer.github.io/CONTRI
Code distributed by Google as part of the polymer project is also Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
--> -->
<!--<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic">--> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700">

View file

@ -35,7 +35,7 @@
"tag": "v1.0.1", "tag": "v1.0.1",
"commit": "3809f0eb7461c8ca63640aaa238775b3a25aa578" "commit": "3809f0eb7461c8ca63640aaa238775b3a25aa578"
}, },
"_source": "git://github.com/PolymerElements/iron-menu-behavior.git", "_source": "git://github.com/polymerelements/iron-menu-behavior.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-menu-behavior" "_originalSource": "polymerelements/iron-menu-behavior"
} }

View file

@ -33,6 +33,6 @@
"commit": "7751e69b615c6eca6f783a81e292a55725af6b85" "commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
}, },
"_source": "git://github.com/jquery/jquery.git", "_source": "git://github.com/jquery/jquery.git",
"_target": "*", "_target": ">=1.9.1",
"_originalSource": "jquery" "_originalSource": "jquery"
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-styles", "name": "paper-styles",
"version": "1.0.8", "version": "1.0.9",
"description": "Common (global) styles for Material Design elements.", "description": "Common (global) styles for Material Design elements.",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"
@ -22,17 +22,17 @@
], ],
"dependencies": { "dependencies": {
"iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0",
"font-roboto": "PolymerElements/font-roboto#^1.0.0", "font-roboto": "PolymerElements/font-roboto#^1.0.1",
"polymer": "Polymer/polymer#^1.0.0" "polymer": "Polymer/polymer#^1.0.0"
}, },
"devDependencies": { "devDependencies": {
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"_release": "1.0.8", "_release": "1.0.9",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.8", "tag": "v1.0.9",
"commit": "741d688f260e29399dec1403acf2853001f94863" "commit": "cb73f4d677c1bb64342263956a0592a2936922d2"
}, },
"_source": "git://github.com/PolymerElements/paper-styles.git", "_source": "git://github.com/PolymerElements/paper-styles.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-styles", "name": "paper-styles",
"version": "1.0.8", "version": "1.0.9",
"description": "Common (global) styles for Material Design elements.", "description": "Common (global) styles for Material Design elements.",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"
@ -22,7 +22,7 @@
], ],
"dependencies": { "dependencies": {
"iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0",
"font-roboto": "PolymerElements/font-roboto#^1.0.0", "font-roboto": "PolymerElements/font-roboto#^1.0.1",
"polymer": "Polymer/polymer#^1.0.0" "polymer": "Polymer/polymer#^1.0.0"
}, },
"devDependencies": { "devDependencies": {

View file

@ -7,9 +7,7 @@ The complete set of contributors may be found at http://polymer.github.io/CONTRI
Code distributed by Google as part of the polymer project is also Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
--> -->
<!-- TODO(nevir): Should we upgrade Polymer/font-roboto to the final font? --> <link rel="import" href="../font-roboto/roboto.html">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Inconsolata:400,700">
<!-- <!--
Typographic styles are provided matching the Material Design standard styles: Typographic styles are provided matching the Material Design standard styles:
@ -44,7 +42,7 @@ Design typography section.
.paper-font-code2, .paper-font-code2,
.paper-font-code1 { .paper-font-code1 {
font-family: 'Inconsolata', 'Consolas', 'Source Code Pro', 'Monaco', 'Menlo', monospace; font-family: 'Roboto Mono', 'Consolas', 'Menlo', monospace;
-webkit-font-smoothing: antialiased; /* OS X subpixel AA bleed bug */ -webkit-font-smoothing: antialiased; /* OS X subpixel AA bleed bug */
} }

View file

@ -27,7 +27,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
}; };
--paper-font-common-code: { --paper-font-common-code: {
font-family: 'Inconsolata', 'Consolas', 'Source Code Pro', 'Monaco', 'Menlo', monospace; font-family: 'Roboto Mono', 'Consolas', 'Menlo', monospace;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
}; };
@ -215,7 +215,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
--paper-font-code2: { --paper-font-code2: {
/* @apply(--paper-font-common-code); */ /* @apply(--paper-font-common-code); */
font-family: 'Inconsolata', 'Consolas', 'Source Code Pro', 'Monaco', 'Menlo', monospace; font-family: 'Roboto Mono', 'Consolas', 'Menlo', monospace;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
font-size: 14px; font-size: 14px;
@ -225,7 +225,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
--paper-font-code1: { --paper-font-code1: {
/* @apply(--paper-font-common-code); */ /* @apply(--paper-font-common-code); */
font-family: 'Inconsolata', 'Consolas', 'Source Code Pro', 'Monaco', 'Menlo', monospace; font-family: 'Roboto Mono', 'Consolas', 'Menlo', monospace;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
font-size: 14px; font-size: 14px;

View file

@ -39,6 +39,8 @@
<input type="checkbox" id="chkUpcomingDvdTrailers" /> <input type="checkbox" id="chkUpcomingDvdTrailers" />
<label for="chkUpcomingStreamingTrailers">${OptionUpcomingStreamingMovies}</label> <label for="chkUpcomingStreamingTrailers">${OptionUpcomingStreamingMovies}</label>
<input type="checkbox" id="chkUpcomingStreamingTrailers" /> <input type="checkbox" id="chkUpcomingStreamingTrailers" />
<label for="chkOtherTrailers">${OptionOtherTrailers}</label>
<input type="checkbox" id="chkOtherTrailers" />
</fieldset> </fieldset>
<div class="fieldDescription">${LabelTheseFeaturesRequireSupporterHelpAndTrailers}</div> <div class="fieldDescription">${LabelTheseFeaturesRequireSupporterHelpAndTrailers}</div>
<div class="fieldDescription"><a class="lnkSupporterLearnMore" href="supporter.html" style="display:none;">${ButtonLearnMore}</a></div> <div class="fieldDescription"><a class="lnkSupporterLearnMore" href="supporter.html" style="display:none;">${ButtonLearnMore}</a></div>

View file

@ -31,6 +31,10 @@
display: inline-block; display: inline-block;
} }
.headerUserButtonRound img {
border-radius: 1000px;
}
.viewMenuBar .fa, .viewMenuBar paper-icon-button { .viewMenuBar .fa, .viewMenuBar paper-icon-button {
color: #fff; color: #fff;
vertical-align: middle; vertical-align: middle;

View file

@ -4,7 +4,7 @@
<title>Emby</title> <title>Emby</title>
</head> </head>
<body> <body>
<div id="episodesPage" data-role="page" class="page libraryPage" data-require="scripts/episodes"> <div id="episodesPage" data-role="page" class="page libraryPage" data-require="scripts/episodes,jqmicons">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html"><iron-icon icon="info"></iron-icon>${TabSuggestions}</a> <a href="tvrecommended.html"><iron-icon icon="info"></iron-icon>${TabSuggestions}</a>

View file

@ -4,7 +4,7 @@
<title>Emby</title> <title>Emby</title>
</head> </head>
<body> <body>
<div id="moviesPage" data-role="page" class="page libraryPage collectionEditorPage" data-require="scripts/movies,scripts/queryfilters"> <div id="moviesPage" data-role="page" class="page libraryPage collectionEditorPage" data-require="scripts/movies,scripts/queryfilters,jqmicons">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="moviesrecommended.html"><iron-icon icon="info"></iron-icon>${TabSuggestions}</a> <a href="moviesrecommended.html"><iron-icon icon="info"></iron-icon>${TabSuggestions}</a>

View file

@ -10,6 +10,7 @@
$('#chkUpcomingTheaterTrailers', page).checked(config.EnableIntrosFromUpcomingTrailers).checkboxradio('refresh'); $('#chkUpcomingTheaterTrailers', page).checked(config.EnableIntrosFromUpcomingTrailers).checkboxradio('refresh');
$('#chkUpcomingDvdTrailers', page).checked(config.EnableIntrosFromUpcomingDvdMovies).checkboxradio('refresh'); $('#chkUpcomingDvdTrailers', page).checked(config.EnableIntrosFromUpcomingDvdMovies).checkboxradio('refresh');
$('#chkUpcomingStreamingTrailers', page).checked(config.EnableIntrosFromUpcomingStreamingMovies).checkboxradio('refresh'); $('#chkUpcomingStreamingTrailers', page).checked(config.EnableIntrosFromUpcomingStreamingMovies).checkboxradio('refresh');
$('#chkOtherTrailers', page).checked(config.EnableIntrosFromSimilarMovies).checkboxradio('refresh');
$('#chkUnwatchedOnly', page).checked(!config.EnableIntrosForWatchedContent).checkboxradio('refresh'); $('#chkUnwatchedOnly', page).checked(!config.EnableIntrosForWatchedContent).checkboxradio('refresh');
$('#chkEnableParentalControl', page).checked(config.EnableIntrosParentalControl).checkboxradio('refresh'); $('#chkEnableParentalControl', page).checked(config.EnableIntrosParentalControl).checkboxradio('refresh');
@ -41,6 +42,7 @@
config.EnableIntrosFromUpcomingTrailers = $('#chkUpcomingTheaterTrailers', page).checked(); config.EnableIntrosFromUpcomingTrailers = $('#chkUpcomingTheaterTrailers', page).checked();
config.EnableIntrosFromUpcomingDvdMovies = $('#chkUpcomingDvdTrailers', page).checked(); config.EnableIntrosFromUpcomingDvdMovies = $('#chkUpcomingDvdTrailers', page).checked();
config.EnableIntrosFromUpcomingStreamingMovies = $('#chkUpcomingStreamingTrailers', page).checked(); config.EnableIntrosFromUpcomingStreamingMovies = $('#chkUpcomingStreamingTrailers', page).checked();
config.EnableIntrosFromSimilarMovies = $('#chkOtherTrailers', page).checked();
ApiClient.updateNamedConfiguration("cinemamode", config).done(Dashboard.processServerConfigurationUpdateResult); ApiClient.updateNamedConfiguration("cinemamode", config).done(Dashboard.processServerConfigurationUpdateResult);
}); });

View file

@ -364,6 +364,14 @@
updateFilterControls(this); updateFilterControls(this);
Dashboard.getCurrentUser().done(function(user) {
if (user.Policy.IsAdministrator) {
$('.btnMergeVersions', page).show();
} else {
$('.btnMergeVersions', page).hide();
}
});
}); });
})(jQuery, document); })(jQuery, document);

View file

@ -592,6 +592,11 @@
}); });
}); });
var btnMore = page.querySelectorAll('.btnMoreCommands iron-icon');
for (var i = 0, length = btnMore.length; i < length; i++) {
btnMore[i].icon = AppInfo.moreIcon;
}
}).on('pagebeforeshowready', "#itemByNameDetailPage", function () { }).on('pagebeforeshowready', "#itemByNameDetailPage", function () {
var page = this; var page = this;

View file

@ -1691,9 +1691,13 @@
}).on("click", ".moreCriticReviews", function () { }).on("click", ".moreCriticReviews", function () {
renderCriticReviews(page, currentItem); renderCriticReviews(page, currentItem);
}); });
var btnMore = page.querySelectorAll('.btnMoreCommands iron-icon');
for (var i = 0, length = btnMore.length; i < length; i++) {
btnMore[i].icon = AppInfo.moreIcon;
}
}).on('pagebeforeshowready', "#itemDetailPage", function () { }).on('pagebeforeshowready', "#itemDetailPage", function () {
var page = this; var page = this;

View file

@ -1138,7 +1138,7 @@
html += '</span>'; html += '</span>';
//html += '<button type="button" data-role="none" class="listviewMenuButton imageButton listViewMoreButton" data-icon="none">'; //html += '<button type="button" data-role="none" class="listviewMenuButton imageButton listViewMoreButton" data-icon="none">';
//html += '</button>'; //html += '</button>';
html += '<paper-icon-button icon="more-vert" class="listviewMenuButton"></paper-icon-button>'; html += '<paper-icon-button icon="' + AppInfo.moreIcon + '" class="listviewMenuButton"></paper-icon-button>';
html += '<span class="listViewUserDataButtons">'; html += '<span class="listViewUserDataButtons">';
html += LibraryBrowser.getUserDataIconsHtml(item); html += LibraryBrowser.getUserDataIconsHtml(item);
html += '</span>'; html += '</span>';
@ -1811,7 +1811,7 @@
html += '<paper-icon-button icon="play-arrow" class="cardOverlayPlayButton" onclick="return false;"></paper-icon-button>'; html += '<paper-icon-button icon="play-arrow" class="cardOverlayPlayButton" onclick="return false;"></paper-icon-button>';
} }
if (options.overlayMoreButton) { if (options.overlayMoreButton) {
html += '<paper-icon-button icon="more-vert" class="cardOverlayMoreButton" onclick="return false;"></paper-icon-button>'; html += '<paper-icon-button icon="' + AppInfo.moreIcon + '" class="cardOverlayMoreButton" onclick="return false;"></paper-icon-button>';
} }
// cardScalable // cardScalable
@ -1838,7 +1838,7 @@
if (options.cardLayout) { if (options.cardLayout) {
html += '<div class="cardButtonContainer">'; html += '<div class="cardButtonContainer">';
html += '<paper-icon-button icon="more-vert" class="listviewMenuButton btnCardOptions"></paper-icon-button>'; html += '<paper-icon-button icon="' + AppInfo.moreIcon + '" class="listviewMenuButton btnCardOptions"></paper-icon-button>';
html += "</div>"; html += "</div>";
} }
@ -2400,7 +2400,7 @@
if (options.viewButton) { if (options.viewButton) {
//html += '<paper-button raised class="subdued notext"><iron-icon icon="view-comfy"></iron-icon></paper-button>'; //html += '<paper-button raised class="subdued notext"><iron-icon icon="view-comfy"></iron-icon></paper-button>';
html += '<paper-button raised class="subdued notext" onclick="require([\'jqmicons\']);jQuery(\'.viewPanel\', jQuery(this).parents(\'.page\')).panel(\'toggle\');"><iron-icon icon="more-vert"></iron-icon></paper-button>'; html += '<paper-button raised class="subdued notext" onclick="require([\'jqmicons\']);jQuery(\'.viewPanel\', jQuery(this).parents(\'.page\')).panel(\'toggle\');"><iron-icon icon="' + AppInfo.moreIcon + '"></iron-icon></paper-button>';
} }
html += '</div>'; html += '</div>';

View file

@ -124,7 +124,7 @@
buttonCount++; buttonCount++;
} }
html += '<paper-icon-button icon="more-vert" class="btnMoreCommands"></paper-icon-button>'; html += '<paper-icon-button icon="' + AppInfo.moreIcon + '" class="btnMoreCommands"></paper-icon-button>';
buttonCount++; buttonCount++;
html += '</div>'; html += '</div>';
@ -508,7 +508,7 @@
while (target != null) { while (target != null) {
var tagName = target.tagName || ''; var tagName = target.tagName || '';
if (tagName == 'A' || tagName.indexOf('BUTTON') != -1) { if (tagName == 'A' || tagName.indexOf('BUTTON') != -1 || tagName.indexOf('INPUT') != -1) {
return true; return true;
} }
@ -780,9 +780,13 @@
function onCardClick(e) { function onCardClick(e) {
if (isClickable(targetElem)) {
return;
}
var targetElem = e.target; var targetElem = e.target;
if (targetElem.classList.contains('itemSelectionPanel') || this.querySelector('.itemSelectionPanel')) { if (targetElem.classList.contains('itemSelectionPanel') || this.querySelector('.itemSelectionPanel')) {
return false; return;
} }
var info = LibraryBrowser.getListItemInfo(this); var info = LibraryBrowser.getListItemInfo(this);
@ -807,10 +811,6 @@
return; return;
} }
if (isClickable(targetElem)) {
return;
}
var target = $(targetElem); var target = $(targetElem);
if (target.parents('a').length || target.parents('button').length) { if (target.parents('a').length || target.parents('button').length) {
return; return;

View file

@ -29,9 +29,7 @@
html += '<paper-icon-button icon="mic" class="headerButton headerButtonRight headerVoiceButton hide" onclick="VoiceInputManager.startListening();"></paper-icon-button>'; html += '<paper-icon-button icon="mic" class="headerButton headerButtonRight headerVoiceButton hide" onclick="VoiceInputManager.startListening();"></paper-icon-button>';
if (!showUserAtTop()) { if (!showUserAtTop()) {
html += '<button class="headerButton headerButtonRight headerUserButton" type="button" data-role="none" onclick="Dashboard.showUserFlyout(this);">'; html += '<paper-icon-button icon="person" class="headerButton headerButtonRight headerUserButton" onclick="return Dashboard.showUserFlyout(this);"></paper-icon-button>';
html += '<div class="fa fa-user"></div>';
html += '</button>';
} }
if (!$.browser.mobile && !AppInfo.isNativeApp) { if (!$.browser.mobile && !AppInfo.isNativeApp) {
@ -93,9 +91,7 @@
} }
} }
var userButtonHtml = '';
if (user.name) { if (user.name) {
if (user.imageUrl && AppInfo.enableUserImage) { if (user.imageUrl && AppInfo.enableUserImage) {
var userButtonHeight = 26; var userButtonHeight = 26;
@ -106,15 +102,12 @@
url += "&height=" + (userButtonHeight * Math.max(devicePixelRatio || 1, 2)); url += "&height=" + (userButtonHeight * Math.max(devicePixelRatio || 1, 2));
} }
userButtonHtml += '<div class="lazy headerUserImage" data-src="' + url + '" style="width:' + userButtonHeight + 'px;height:' + userButtonHeight + 'px;"></div>'; var headerUserButton = header.querySelector('.headerUserButton');
} else { if (headerUserButton) {
userButtonHtml += '<div class="fa fa-user"></div>'; headerUserButton.icon = null;
} headerUserButton.src = url;
headerUserButton.classList.add('headerUserButtonRound');
var headerUserButton = header.querySelector('.headerUserButton'); }
if (headerUserButton) {
headerUserButton.innerHTML = userButtonHtml;
ImageLoader.lazyChildren(headerUserButton);
} }
} }
} }
@ -567,7 +560,7 @@
$('.btnCast').removeClass('btnActiveCast').each(function () { $('.btnCast').removeClass('btnActiveCast').each(function () {
this.icon = 'cast'; this.icon = 'cast';
}); });
$('.nowPlayingSelectedPlayer').html(''); $('.headerSelectedPlayer').html('');
} else { } else {
@ -575,7 +568,7 @@
this.icon = 'cast-connected'; this.icon = 'cast-connected';
}); });
$('.nowPlayingSelectedPlayer').html((info.deviceName || info.name)); $('.headerSelectedPlayer').html((info.deviceName || info.name));
} }
} }

View file

@ -411,12 +411,29 @@
// External vtt or burn in // External vtt or burn in
profile.SubtitleProfiles = []; profile.SubtitleProfiles = [];
if (self.supportsTextTracks()) { if (self.supportsTextTracks()) {
profile.SubtitleProfiles.push({
Format: 'vtt',
Method: 'External'
});
if (isVlc) { if (isVlc) {
profile.SubtitleProfiles.push({
Format: 'srt',
Method: 'External'
});
profile.SubtitleProfiles.push({
Format: 'srt',
Method: 'Embed'
});
profile.SubtitleProfiles.push({
Format: 'ass',
Method: 'Embed'
});
profile.SubtitleProfiles.push({
Format: 'ssa',
Method: 'Embed'
});
profile.SubtitleProfiles.push({
Format: 'pgs',
Method: 'Embed'
});
} else {
profile.SubtitleProfiles.push({ profile.SubtitleProfiles.push({
Format: 'vtt', Format: 'vtt',
Method: 'External' Method: 'External'
@ -823,7 +840,12 @@
contentType = 'video/' + mediaSource.Container; contentType = 'video/' + mediaSource.Container;
if (mediaSource.enableDirectPlay) { if (mediaSource.enableDirectPlay) {
mediaUrl = FileSystemBridge.translateFilePath(mediaSource.Path); mediaUrl = mediaSource.Path;
if (mediaSource.Protocol == 'File') {
mediaUrl = FileSystemBridge.translateFilePath(mediaUrl);
}
playMethod = 'DirectPlay'; playMethod = 'DirectPlay';
} else { } else {
@ -860,7 +882,11 @@
if (mediaSource.enableDirectPlay) { if (mediaSource.enableDirectPlay) {
mediaUrl = FileSystemBridge.translateFilePath(mediaSource.Path); mediaUrl = mediaSource.Path;
if (mediaSource.Protocol == 'File') {
mediaUrl = FileSystemBridge.translateFilePath(mediaUrl);
}
playMethod = 'DirectPlay'; playMethod = 'DirectPlay';
} else { } else {

View file

@ -461,6 +461,14 @@
updateFilterControls(page); updateFilterControls(page);
filtersLoaded = false; filtersLoaded = false;
Dashboard.getCurrentUser().done(function (user) {
if (user.Policy.IsAdministrator) {
$('.btnMergeVersions', page).show();
} else {
$('.btnMergeVersions', page).hide();
}
});
}); });
})(jQuery, document); })(jQuery, document);

View file

@ -685,7 +685,7 @@
$('.nowPlayingCastIcon').each(function () { $('.nowPlayingCastIcon').each(function () {
this.icon = 'cast'; this.icon = 'cast';
}); });
$('.headerSelectedPlayer').html(''); $('.nowPlayingSelectedPlayer').html('');
} else { } else {
@ -693,7 +693,7 @@
this.icon = 'cast-connected'; this.icon = 'cast-connected';
}); });
$('.headerSelectedPlayer').html((info.deviceName || info.name)); $('.nowPlayingSelectedPlayer').html((info.deviceName || info.name));
} }
} }

View file

@ -85,7 +85,7 @@
html += '<div class="cardFooter">'; html += '<div class="cardFooter">';
html += '<div class="cardText" style="text-align:right; float:right;padding-top:5px;">'; html += '<div class="cardText" style="text-align:right; float:right;padding-top:5px;">';
html += '<paper-icon-button icon="more-vert" class="btnCardMenu"></paper-icon-button>'; html += '<paper-icon-button icon="' + AppInfo.moreIcon + '" class="btnCardMenu"></paper-icon-button>';
html += "</div>"; html += "</div>";
html += "<div class='cardText'>"; html += "<div class='cardText'>";

View file

@ -190,6 +190,19 @@
return deferred.promise(); return deferred.promise();
}; };
var pollInterval;
function onPollIntervalFired() {
if (!ApiClient.isWebSocketOpen()) {
var apiClient = window.ApiClient;
if (apiClient) {
apiClient.getSessions().done(processUpdatedSessions);
}
}
}
self.subscribeToPlayerUpdates = function () { self.subscribeToPlayerUpdates = function () {
self.isUpdating = true; self.isUpdating = true;
@ -198,16 +211,25 @@
ApiClient.sendWebSocketMessage("SessionsStart", "100,800"); ApiClient.sendWebSocketMessage("SessionsStart", "100,800");
} }
if (pollInterval) {
clearInterval(pollInterval);
pollInterval = null;
}
pollInterval = setInterval(onPollIntervalFired, 1500);
}; };
function unsubscribeFromPlayerUpdates() { function unsubscribeFromPlayerUpdates() {
self.false = true; self.isUpdating = true;
if (ApiClient.isWebSocketOpen()) { if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("SessionsStop"); ApiClient.sendWebSocketMessage("SessionsStop");
} }
if (pollInterval) {
clearInterval(pollInterval);
pollInterval = null;
}
} }
var playerListenerCount = 0; var playerListenerCount = 0;
@ -307,23 +329,28 @@
} }
} }
function processUpdatedSessions(sessions) {
var currentTargetId = MediaController.getPlayerInfo().id;
// Update existing data
//updateSessionInfo(popup, msg.Data);
var session = sessions.filter(function (s) {
return s.Id == currentTargetId;
})[0];
if (session) {
firePlaybackEvent('playstatechange', session);
}
}
function onWebSocketMessageReceived(e, msg) { function onWebSocketMessageReceived(e, msg) {
var apiClient = this; var apiClient = this;
if (msg.MessageType === "Sessions") { if (msg.MessageType === "Sessions") {
var currentTargetId = MediaController.getPlayerInfo().id; processUpdatedSessions(msg.Data);
// Update existing data
//updateSessionInfo(popup, msg.Data);
var session = msg.Data.filter(function (s) {
return s.Id == currentTargetId;
})[0];
if (session) {
firePlaybackEvent('playstatechange', session);
}
} }
else if (msg.MessageType === "SessionEnded") { else if (msg.MessageType === "SessionEnded") {

View file

@ -167,16 +167,31 @@
reloadList($.mobile.activePage); reloadList($.mobile.activePage);
} }
var pollInterval;
function onPollIntervalFired() {
if (!ApiClient.isWebSocketOpen()) {
reloadList($.mobile.activePage);
}
}
function startInterval() { function startInterval() {
if (ApiClient.isWebSocketOpen()) { if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000"); ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
} }
if (pollInterval) {
clearInterval(pollInterval);
}
pollInterval = setInterval(onPollIntervalFired, 1500);
} }
function stopInterval() { function stopInterval() {
if (ApiClient.isWebSocketOpen()) { if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStop"); ApiClient.sendWebSocketMessage("ScheduledTasksInfoStop");
} }
if (pollInterval) {
clearInterval(pollInterval);
}
} }
$(document).on('pageinitdepends', "#scheduledTasksPage", function () { $(document).on('pageinitdepends', "#scheduledTasksPage", function () {

View file

@ -84,7 +84,7 @@
if (server.showOptions !== false) { if (server.showOptions !== false) {
html += '<div class="cardText" style="text-align:right; float:right;padding:0;">'; html += '<div class="cardText" style="text-align:right; float:right;padding:0;">';
html += '<paper-icon-button icon="more-vert" class="btnServerMenu"></paper-icon-button>'; html += '<paper-icon-button icon="' + AppInfo.moreIcon + '" class="btnServerMenu"></paper-icon-button>';
html += "</div>"; html += "</div>";
} }
@ -318,7 +318,7 @@
html += '<div class="cardFooter outerCardFooter">'; html += '<div class="cardFooter outerCardFooter">';
html += '<div class="cardText" style="text-align:right; float:right;padding:0;">'; html += '<div class="cardText" style="text-align:right; float:right;padding:0;">';
html += '<paper-icon-button icon="more-vert" class="btnInviteMenu"></paper-icon-button>'; html += '<paper-icon-button icon="' + AppInfo.moreIcon + '" class="btnInviteMenu"></paper-icon-button>';
html += "</div>"; html += "</div>";
html += '<div class="cardText">'; html += '<div class="cardText">';

View file

@ -1715,6 +1715,12 @@ var AppInfo = {};
AppInfo.directPlayAudioContainers = []; AppInfo.directPlayAudioContainers = [];
AppInfo.directPlayVideoContainers = []; AppInfo.directPlayVideoContainers = [];
} }
if (isCordova && isIOS) {
AppInfo.moreIcon = 'more-horiz';
} else {
AppInfo.moreIcon = 'more-vert';
}
} }
function initializeApiClient(apiClient) { function initializeApiClient(apiClient) {
@ -1780,7 +1786,9 @@ var AppInfo = {};
require(["bower_components/fastclick/lib/fastclick"], function (FastClick) { require(["bower_components/fastclick/lib/fastclick"], function (FastClick) {
FastClick.attach(document.body); FastClick.attach(document.body, {
tapDelay: 0
});
// Have to work around this issue of fast click breaking the panel dismiss // Have to work around this issue of fast click breaking the panel dismiss
$(document.body).on('touchstart', '.ui-panel-dismiss', function () { $(document.body).on('touchstart', '.ui-panel-dismiss', function () {
@ -1845,7 +1853,7 @@ var AppInfo = {};
} }
} }
if ($.browser.msie && ($.browser.version || 11) <= 10) { if ($.browser.msie && $.browser.tv && ($.browser.version || 11) <= 10) {
Dashboard.importCss('thirdparty/paper-ie10.css'); Dashboard.importCss('thirdparty/paper-ie10.css');
} }

View file

@ -118,7 +118,7 @@
} }
html += '<div class="cardText" style="text-align:right; float:right;padding:0;">'; html += '<div class="cardText" style="text-align:right; float:right;padding:0;">';
html += '<paper-icon-button icon="more-vert" class="btnJobMenu"></paper-icon-button>'; html += '<paper-icon-button icon="' + AppInfo.moreIcon + '" class="btnJobMenu"></paper-icon-button>';
html += "</div>"; html += "</div>";
for (var i = 0, length = textLines.length; i < length; i++) { for (var i = 0, length = textLines.length; i < length; i++) {

View file

@ -34,7 +34,7 @@ $.fn.taskButton = function (options) {
return; return;
} }
button.buttonEnabled(task.State == 'Idle').attr('data-taskid', task.Id); $(button).buttonEnabled(task.State == 'Idle').attr('data-taskid', task.Id);
var progress = (task.CurrentProgressPercentage || 0).toFixed(1); var progress = (task.CurrentProgressPercentage || 0).toFixed(1);
@ -102,9 +102,7 @@ $.fn.taskButton = function (options) {
} }
function onSocketOpen() { function onSocketOpen() {
if (ApiClient.isWebSocketOpen()) { startInterval();
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
}
} }
function onSocketMessage(e, msg) { function onSocketMessage(e, msg) {
@ -117,6 +115,33 @@ $.fn.taskButton = function (options) {
} }
var self = this; var self = this;
var pollInterval;
function onPollIntervalFired() {
if (!ApiClient.isWebSocketOpen()) {
pollTasks(self);
}
}
function startInterval() {
if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
}
if (pollInterval) {
clearInterval(pollInterval);
}
pollInterval = setInterval(onPollIntervalFired, 1500);
}
function stopInterval() {
if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStop");
}
if (pollInterval) {
clearInterval(pollInterval);
}
}
if (options.panel) { if (options.panel) {
$(options.panel).hide(); $(options.panel).hide();
@ -126,10 +151,7 @@ $.fn.taskButton = function (options) {
this.off('click', onButtonClick); this.off('click', onButtonClick);
$(ApiClient).off("websocketmessage", onSocketMessage).off('websocketopen', onSocketOpen); $(ApiClient).off("websocketmessage", onSocketMessage).off('websocketopen', onSocketOpen);
stopInterval();
if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStop");
}
} else if (this.length) { } else if (this.length) {
@ -137,9 +159,7 @@ $.fn.taskButton = function (options) {
pollTasks(self); pollTasks(self);
if (ApiClient.isWebSocketOpen()) { startInterval();
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
}
$(ApiClient).on("websocketmessage", onSocketMessage).on('websocketopen', onSocketOpen); $(ApiClient).on("websocketmessage", onSocketMessage).on('websocketopen', onSocketOpen);
} }

View file

@ -143,7 +143,7 @@
html += '<div class="cardFooter">'; html += '<div class="cardFooter">';
html += '<div class="cardText" style="text-align:right; float:right;padding:0;">'; html += '<div class="cardText" style="text-align:right; float:right;padding:0;">';
html += '<paper-icon-button icon="more-vert" class="btnUserMenu"></paper-icon-button>'; html += '<paper-icon-button icon="' + AppInfo.moreIcon + '" class="btnUserMenu"></paper-icon-button>';
html += "</div>"; html += "</div>";
html += '<div class="cardText" style="padding-top:10px;padding-bottom:10px;">'; html += '<div class="cardText" style="padding-top:10px;padding-bottom:10px;">';

View file

@ -47,7 +47,7 @@ html, body, .ui-btn, .pageTitle {
} }
@media all and (max-width: 600px) { @media all and (max-width: 600px) {
.libraryViewNav a { .libraryViewNav a {
padding-left: 10px; padding-left: 10px;
padding-right: 10px; padding-right: 10px;
@ -58,9 +58,9 @@ html, body, .ui-btn, .pageTitle {
border-bottom: 0; border-bottom: 0;
} }
.libraryViewNav .ui-btn-active, .libraryViewNav .iron-selected { .libraryViewNav .ui-btn-active, .libraryViewNav .iron-selected, .barsMenuButton .fa, .btnActiveCast, .libraryViewNav a:not(.ui-btn-active):hover {
color: #539FFD !important; color: #EA3150 !important;
} }
.libraryViewNav { .libraryViewNav {
border-top: 1px solid #333 !important; border-top: 1px solid #333 !important;
@ -74,10 +74,6 @@ html, body, .ui-btn, .pageTitle {
border-bottom: 1px solid #333; border-bottom: 1px solid #333;
} }
.barsMenuButton .fa {
color: #539FFD !important;
}
h1, h1 a { h1, h1 a {
font-weight: 400 !important; font-weight: 400 !important;
} }
@ -116,9 +112,9 @@ paper-tab {
box-shadow: none; box-shadow: none;
} }
.visualCardBox .outerCardFooter { .visualCardBox .outerCardFooter {
padding: 0; padding: 0;
} }
.viewMenuSearch { .viewMenuSearch {
@ -134,21 +130,13 @@ paper-tab {
margin: 0 auto !important; margin: 0 auto !important;
} }
.btnActiveCast i {
color: #539FFD !important;
}
.libraryViewNav a:not(.ui-btn-active):hover {
color: #539FFD !important;
}
@media (min-width: 600px) { @media (min-width: 600px) {
/* This needs a little extra space to account for the longer date format */ /* This needs a little extra space to account for the longer date format */
.channelHeaderCell, .channelTimeslotHeader { .channelHeaderCell, .channelTimeslotHeader {
width: 209px; width: 209px;
} }
.programGrid, .timeslotHeaders { .programGrid, .timeslotHeaders {
margin-left: 210px; margin-left: 210px;
} }
@ -165,4 +153,4 @@ paper-tab {
#footer { #footer {
/* Eliminate transparency to prevent clicks from passing through to the elements underneath */ /* Eliminate transparency to prevent clicks from passing through to the elements underneath */
background-color: rgb(26,26,26); background-color: rgb(26,26,26);
} }

View file

@ -121,6 +121,7 @@ See [iron-iconset](#iron-iconset) and [iron-iconset-svg](#iron-iconset-svg) for
<g id="photo-album"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z" /></g> <g id="photo-album"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z" /></g>
<g id="local-movies"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z" /></g> <g id="local-movies"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z" /></g>
<g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z" /></g> <g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z" /></g>
<g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" /></g>
</defs> </defs>
</svg> </svg>
</iron-iconset-svg> </iron-iconset-svg>

View file

@ -17330,6 +17330,7 @@ paper-ripple {
<g id="photo-album"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z"></path></g> <g id="photo-album"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z"></path></g>
<g id="local-movies"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"></path></g> <g id="local-movies"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"></path></g>
<g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"></path></g> <g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"></path></g>
<g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g>
</defs> </defs>
</svg> </svg>
</iron-iconset-svg> </iron-iconset-svg>