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:
parent
59a3cada00
commit
1c27cdeb2c
35 changed files with 226 additions and 115 deletions
|
@ -1273,7 +1273,7 @@
|
|||
"X-Application": appName + "/" + appVersion
|
||||
}
|
||||
|
||||
}).done(onDone);
|
||||
}).always(onDone);
|
||||
|
||||
} else {
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "font-roboto",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"description": "An HTML import for Roboto",
|
||||
"authors": [
|
||||
"The Polymer Authors"
|
||||
|
@ -19,13 +19,13 @@
|
|||
"ignore": [
|
||||
"/.*"
|
||||
],
|
||||
"_release": "1.0.0",
|
||||
"_release": "1.0.1",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "1.0.0",
|
||||
"commit": "b85b217e5f4b31f9c03b588e25c977b8104a40cd"
|
||||
"tag": "v1.0.1",
|
||||
"commit": "21ce9b51a417fa9995cf6606e886aba0728f70a1"
|
||||
},
|
||||
"_source": "git://github.com/PolymerElements/font-roboto.git",
|
||||
"_target": "^1.0.0",
|
||||
"_target": "^1.0.1",
|
||||
"_originalSource": "PolymerElements/font-roboto"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "font-roboto",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"description": "An HTML import for Roboto",
|
||||
"authors": [
|
||||
"The Polymer Authors"
|
||||
|
|
|
@ -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
|
||||
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">
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
"tag": "v1.0.1",
|
||||
"commit": "3809f0eb7461c8ca63640aaa238775b3a25aa578"
|
||||
},
|
||||
"_source": "git://github.com/PolymerElements/iron-menu-behavior.git",
|
||||
"_source": "git://github.com/polymerelements/iron-menu-behavior.git",
|
||||
"_target": "^1.0.0",
|
||||
"_originalSource": "PolymerElements/iron-menu-behavior"
|
||||
"_originalSource": "polymerelements/iron-menu-behavior"
|
||||
}
|
|
@ -33,6 +33,6 @@
|
|||
"commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
|
||||
},
|
||||
"_source": "git://github.com/jquery/jquery.git",
|
||||
"_target": "*",
|
||||
"_target": ">=1.9.1",
|
||||
"_originalSource": "jquery"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "paper-styles",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9",
|
||||
"description": "Common (global) styles for Material Design elements.",
|
||||
"authors": [
|
||||
"The Polymer Authors"
|
||||
|
@ -22,17 +22,17 @@
|
|||
],
|
||||
"dependencies": {
|
||||
"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"
|
||||
},
|
||||
"devDependencies": {
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"_release": "1.0.8",
|
||||
"_release": "1.0.9",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.0.8",
|
||||
"commit": "741d688f260e29399dec1403acf2853001f94863"
|
||||
"tag": "v1.0.9",
|
||||
"commit": "cb73f4d677c1bb64342263956a0592a2936922d2"
|
||||
},
|
||||
"_source": "git://github.com/PolymerElements/paper-styles.git",
|
||||
"_target": "^1.0.0",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "paper-styles",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9",
|
||||
"description": "Common (global) styles for Material Design elements.",
|
||||
"authors": [
|
||||
"The Polymer Authors"
|
||||
|
@ -22,7 +22,7 @@
|
|||
],
|
||||
"dependencies": {
|
||||
"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"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -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
|
||||
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="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">
|
||||
<link rel="import" href="../font-roboto/roboto.html">
|
||||
|
||||
<!--
|
||||
Typographic styles are provided matching the Material Design standard styles:
|
||||
|
@ -44,7 +42,7 @@ Design typography section.
|
|||
|
||||
.paper-font-code2,
|
||||
.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 */
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
|||
};
|
||||
|
||||
--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;
|
||||
};
|
||||
|
||||
|
@ -215,7 +215,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
|||
|
||||
--paper-font-code2: {
|
||||
/* @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;
|
||||
|
||||
font-size: 14px;
|
||||
|
@ -225,7 +225,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
|||
|
||||
--paper-font-code1: {
|
||||
/* @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;
|
||||
|
||||
font-size: 14px;
|
||||
|
|
|
@ -39,6 +39,8 @@
|
|||
<input type="checkbox" id="chkUpcomingDvdTrailers" />
|
||||
<label for="chkUpcomingStreamingTrailers">${OptionUpcomingStreamingMovies}</label>
|
||||
<input type="checkbox" id="chkUpcomingStreamingTrailers" />
|
||||
<label for="chkOtherTrailers">${OptionOtherTrailers}</label>
|
||||
<input type="checkbox" id="chkOtherTrailers" />
|
||||
</fieldset>
|
||||
<div class="fieldDescription">${LabelTheseFeaturesRequireSupporterHelpAndTrailers}</div>
|
||||
<div class="fieldDescription"><a class="lnkSupporterLearnMore" href="supporter.html" style="display:none;">${ButtonLearnMore}</a></div>
|
||||
|
|
|
@ -31,6 +31,10 @@
|
|||
display: inline-block;
|
||||
}
|
||||
|
||||
.headerUserButtonRound img {
|
||||
border-radius: 1000px;
|
||||
}
|
||||
|
||||
.viewMenuBar .fa, .viewMenuBar paper-icon-button {
|
||||
color: #fff;
|
||||
vertical-align: middle;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<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">
|
||||
<a href="tvrecommended.html"><iron-icon icon="info"></iron-icon>${TabSuggestions}</a>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<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">
|
||||
<a href="moviesrecommended.html"><iron-icon icon="info"></iron-icon>${TabSuggestions}</a>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
$('#chkUpcomingTheaterTrailers', page).checked(config.EnableIntrosFromUpcomingTrailers).checkboxradio('refresh');
|
||||
$('#chkUpcomingDvdTrailers', page).checked(config.EnableIntrosFromUpcomingDvdMovies).checkboxradio('refresh');
|
||||
$('#chkUpcomingStreamingTrailers', page).checked(config.EnableIntrosFromUpcomingStreamingMovies).checkboxradio('refresh');
|
||||
$('#chkOtherTrailers', page).checked(config.EnableIntrosFromSimilarMovies).checkboxradio('refresh');
|
||||
|
||||
$('#chkUnwatchedOnly', page).checked(!config.EnableIntrosForWatchedContent).checkboxradio('refresh');
|
||||
$('#chkEnableParentalControl', page).checked(config.EnableIntrosParentalControl).checkboxradio('refresh');
|
||||
|
@ -41,6 +42,7 @@
|
|||
config.EnableIntrosFromUpcomingTrailers = $('#chkUpcomingTheaterTrailers', page).checked();
|
||||
config.EnableIntrosFromUpcomingDvdMovies = $('#chkUpcomingDvdTrailers', page).checked();
|
||||
config.EnableIntrosFromUpcomingStreamingMovies = $('#chkUpcomingStreamingTrailers', page).checked();
|
||||
config.EnableIntrosFromSimilarMovies = $('#chkOtherTrailers', page).checked();
|
||||
|
||||
ApiClient.updateNamedConfiguration("cinemamode", config).done(Dashboard.processServerConfigurationUpdateResult);
|
||||
});
|
||||
|
|
|
@ -364,6 +364,14 @@
|
|||
|
||||
updateFilterControls(this);
|
||||
|
||||
Dashboard.getCurrentUser().done(function(user) {
|
||||
if (user.Policy.IsAdministrator) {
|
||||
$('.btnMergeVersions', page).show();
|
||||
} else {
|
||||
$('.btnMergeVersions', page).hide();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
})(jQuery, document);
|
|
@ -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 () {
|
||||
|
||||
var page = this;
|
||||
|
|
|
@ -1691,9 +1691,13 @@
|
|||
}).on("click", ".moreCriticReviews", function () {
|
||||
|
||||
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 () {
|
||||
|
||||
var page = this;
|
||||
|
|
|
@ -1138,7 +1138,7 @@
|
|||
html += '</span>';
|
||||
//html += '<button type="button" data-role="none" class="listviewMenuButton imageButton listViewMoreButton" data-icon="none">';
|
||||
//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 += LibraryBrowser.getUserDataIconsHtml(item);
|
||||
html += '</span>';
|
||||
|
@ -1811,7 +1811,7 @@
|
|||
html += '<paper-icon-button icon="play-arrow" class="cardOverlayPlayButton" onclick="return false;"></paper-icon-button>';
|
||||
}
|
||||
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
|
||||
|
@ -1838,7 +1838,7 @@
|
|||
|
||||
if (options.cardLayout) {
|
||||
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>";
|
||||
}
|
||||
|
||||
|
@ -2400,7 +2400,7 @@
|
|||
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" 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>';
|
||||
|
|
|
@ -124,7 +124,7 @@
|
|||
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++;
|
||||
|
||||
html += '</div>';
|
||||
|
@ -508,7 +508,7 @@
|
|||
|
||||
while (target != null) {
|
||||
var tagName = target.tagName || '';
|
||||
if (tagName == 'A' || tagName.indexOf('BUTTON') != -1) {
|
||||
if (tagName == 'A' || tagName.indexOf('BUTTON') != -1 || tagName.indexOf('INPUT') != -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -780,9 +780,13 @@
|
|||
|
||||
function onCardClick(e) {
|
||||
|
||||
if (isClickable(targetElem)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var targetElem = e.target;
|
||||
if (targetElem.classList.contains('itemSelectionPanel') || this.querySelector('.itemSelectionPanel')) {
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
|
||||
var info = LibraryBrowser.getListItemInfo(this);
|
||||
|
@ -807,10 +811,6 @@
|
|||
return;
|
||||
}
|
||||
|
||||
if (isClickable(targetElem)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var target = $(targetElem);
|
||||
if (target.parents('a').length || target.parents('button').length) {
|
||||
return;
|
||||
|
|
|
@ -29,9 +29,7 @@
|
|||
html += '<paper-icon-button icon="mic" class="headerButton headerButtonRight headerVoiceButton hide" onclick="VoiceInputManager.startListening();"></paper-icon-button>';
|
||||
|
||||
if (!showUserAtTop()) {
|
||||
html += '<button class="headerButton headerButtonRight headerUserButton" type="button" data-role="none" onclick="Dashboard.showUserFlyout(this);">';
|
||||
html += '<div class="fa fa-user"></div>';
|
||||
html += '</button>';
|
||||
html += '<paper-icon-button icon="person" class="headerButton headerButtonRight headerUserButton" onclick="return Dashboard.showUserFlyout(this);"></paper-icon-button>';
|
||||
}
|
||||
|
||||
if (!$.browser.mobile && !AppInfo.isNativeApp) {
|
||||
|
@ -93,9 +91,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
var userButtonHtml = '';
|
||||
if (user.name) {
|
||||
|
||||
if (user.imageUrl && AppInfo.enableUserImage) {
|
||||
|
||||
var userButtonHeight = 26;
|
||||
|
@ -106,15 +102,12 @@
|
|||
url += "&height=" + (userButtonHeight * Math.max(devicePixelRatio || 1, 2));
|
||||
}
|
||||
|
||||
userButtonHtml += '<div class="lazy headerUserImage" data-src="' + url + '" style="width:' + userButtonHeight + 'px;height:' + userButtonHeight + 'px;"></div>';
|
||||
} else {
|
||||
userButtonHtml += '<div class="fa fa-user"></div>';
|
||||
}
|
||||
|
||||
var headerUserButton = header.querySelector('.headerUserButton');
|
||||
if (headerUserButton) {
|
||||
headerUserButton.innerHTML = userButtonHtml;
|
||||
ImageLoader.lazyChildren(headerUserButton);
|
||||
var headerUserButton = header.querySelector('.headerUserButton');
|
||||
if (headerUserButton) {
|
||||
headerUserButton.icon = null;
|
||||
headerUserButton.src = url;
|
||||
headerUserButton.classList.add('headerUserButtonRound');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -567,7 +560,7 @@
|
|||
$('.btnCast').removeClass('btnActiveCast').each(function () {
|
||||
this.icon = 'cast';
|
||||
});
|
||||
$('.nowPlayingSelectedPlayer').html('');
|
||||
$('.headerSelectedPlayer').html('');
|
||||
|
||||
} else {
|
||||
|
||||
|
@ -575,7 +568,7 @@
|
|||
this.icon = 'cast-connected';
|
||||
});
|
||||
|
||||
$('.nowPlayingSelectedPlayer').html((info.deviceName || info.name));
|
||||
$('.headerSelectedPlayer').html((info.deviceName || info.name));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -411,12 +411,29 @@
|
|||
// External vtt or burn in
|
||||
profile.SubtitleProfiles = [];
|
||||
if (self.supportsTextTracks()) {
|
||||
profile.SubtitleProfiles.push({
|
||||
Format: 'vtt',
|
||||
Method: 'External'
|
||||
});
|
||||
|
||||
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({
|
||||
Format: 'vtt',
|
||||
Method: 'External'
|
||||
|
@ -823,7 +840,12 @@
|
|||
contentType = 'video/' + mediaSource.Container;
|
||||
|
||||
if (mediaSource.enableDirectPlay) {
|
||||
mediaUrl = FileSystemBridge.translateFilePath(mediaSource.Path);
|
||||
mediaUrl = mediaSource.Path;
|
||||
|
||||
if (mediaSource.Protocol == 'File') {
|
||||
mediaUrl = FileSystemBridge.translateFilePath(mediaUrl);
|
||||
}
|
||||
|
||||
playMethod = 'DirectPlay';
|
||||
|
||||
} else {
|
||||
|
@ -860,7 +882,11 @@
|
|||
|
||||
if (mediaSource.enableDirectPlay) {
|
||||
|
||||
mediaUrl = FileSystemBridge.translateFilePath(mediaSource.Path);
|
||||
mediaUrl = mediaSource.Path;
|
||||
|
||||
if (mediaSource.Protocol == 'File') {
|
||||
mediaUrl = FileSystemBridge.translateFilePath(mediaUrl);
|
||||
}
|
||||
playMethod = 'DirectPlay';
|
||||
|
||||
} else {
|
||||
|
|
|
@ -461,6 +461,14 @@
|
|||
updateFilterControls(page);
|
||||
|
||||
filtersLoaded = false;
|
||||
|
||||
Dashboard.getCurrentUser().done(function (user) {
|
||||
if (user.Policy.IsAdministrator) {
|
||||
$('.btnMergeVersions', page).show();
|
||||
} else {
|
||||
$('.btnMergeVersions', page).hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery, document);
|
||||
|
|
|
@ -685,7 +685,7 @@
|
|||
$('.nowPlayingCastIcon').each(function () {
|
||||
this.icon = 'cast';
|
||||
});
|
||||
$('.headerSelectedPlayer').html('');
|
||||
$('.nowPlayingSelectedPlayer').html('');
|
||||
|
||||
} else {
|
||||
|
||||
|
@ -693,7 +693,7 @@
|
|||
this.icon = 'cast-connected';
|
||||
});
|
||||
|
||||
$('.headerSelectedPlayer').html((info.deviceName || info.name));
|
||||
$('.nowPlayingSelectedPlayer').html((info.deviceName || info.name));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@
|
|||
html += '<div class="cardFooter">';
|
||||
|
||||
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 class='cardText'>";
|
||||
|
|
|
@ -190,6 +190,19 @@
|
|||
return deferred.promise();
|
||||
};
|
||||
|
||||
var pollInterval;
|
||||
|
||||
function onPollIntervalFired() {
|
||||
|
||||
if (!ApiClient.isWebSocketOpen()) {
|
||||
var apiClient = window.ApiClient;
|
||||
|
||||
if (apiClient) {
|
||||
apiClient.getSessions().done(processUpdatedSessions);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.subscribeToPlayerUpdates = function () {
|
||||
|
||||
self.isUpdating = true;
|
||||
|
@ -198,16 +211,25 @@
|
|||
|
||||
ApiClient.sendWebSocketMessage("SessionsStart", "100,800");
|
||||
}
|
||||
if (pollInterval) {
|
||||
clearInterval(pollInterval);
|
||||
pollInterval = null;
|
||||
}
|
||||
pollInterval = setInterval(onPollIntervalFired, 1500);
|
||||
};
|
||||
|
||||
function unsubscribeFromPlayerUpdates() {
|
||||
|
||||
self.false = true;
|
||||
self.isUpdating = true;
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
|
||||
ApiClient.sendWebSocketMessage("SessionsStop");
|
||||
}
|
||||
if (pollInterval) {
|
||||
clearInterval(pollInterval);
|
||||
pollInterval = null;
|
||||
}
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
var apiClient = this;
|
||||
|
||||
if (msg.MessageType === "Sessions") {
|
||||
|
||||
var currentTargetId = MediaController.getPlayerInfo().id;
|
||||
|
||||
// Update existing data
|
||||
//updateSessionInfo(popup, msg.Data);
|
||||
var session = msg.Data.filter(function (s) {
|
||||
return s.Id == currentTargetId;
|
||||
})[0];
|
||||
|
||||
if (session) {
|
||||
firePlaybackEvent('playstatechange', session);
|
||||
}
|
||||
processUpdatedSessions(msg.Data);
|
||||
}
|
||||
else if (msg.MessageType === "SessionEnded") {
|
||||
|
||||
|
|
|
@ -167,16 +167,31 @@
|
|||
reloadList($.mobile.activePage);
|
||||
}
|
||||
|
||||
var pollInterval;
|
||||
function onPollIntervalFired() {
|
||||
|
||||
if (!ApiClient.isWebSocketOpen()) {
|
||||
reloadList($.mobile.activePage);
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
$(document).on('pageinitdepends', "#scheduledTasksPage", function () {
|
||||
|
|
|
@ -84,7 +84,7 @@
|
|||
|
||||
if (server.showOptions !== false) {
|
||||
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>";
|
||||
}
|
||||
|
||||
|
@ -318,7 +318,7 @@
|
|||
html += '<div class="cardFooter outerCardFooter">';
|
||||
|
||||
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 class="cardText">';
|
||||
|
|
|
@ -1715,6 +1715,12 @@ var AppInfo = {};
|
|||
AppInfo.directPlayAudioContainers = [];
|
||||
AppInfo.directPlayVideoContainers = [];
|
||||
}
|
||||
|
||||
if (isCordova && isIOS) {
|
||||
AppInfo.moreIcon = 'more-horiz';
|
||||
} else {
|
||||
AppInfo.moreIcon = 'more-vert';
|
||||
}
|
||||
}
|
||||
|
||||
function initializeApiClient(apiClient) {
|
||||
|
@ -1780,7 +1786,9 @@ var AppInfo = {};
|
|||
|
||||
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
|
||||
$(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');
|
||||
}
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@
|
|||
}
|
||||
|
||||
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>";
|
||||
|
||||
for (var i = 0, length = textLines.length; i < length; i++) {
|
||||
|
|
|
@ -34,7 +34,7 @@ $.fn.taskButton = function (options) {
|
|||
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);
|
||||
|
||||
|
@ -102,9 +102,7 @@ $.fn.taskButton = function (options) {
|
|||
}
|
||||
|
||||
function onSocketOpen() {
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
|
||||
}
|
||||
startInterval();
|
||||
}
|
||||
|
||||
function onSocketMessage(e, msg) {
|
||||
|
@ -117,6 +115,33 @@ $.fn.taskButton = function (options) {
|
|||
}
|
||||
|
||||
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) {
|
||||
$(options.panel).hide();
|
||||
|
@ -126,10 +151,7 @@ $.fn.taskButton = function (options) {
|
|||
|
||||
this.off('click', onButtonClick);
|
||||
$(ApiClient).off("websocketmessage", onSocketMessage).off('websocketopen', onSocketOpen);
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStop");
|
||||
}
|
||||
stopInterval();
|
||||
|
||||
} else if (this.length) {
|
||||
|
||||
|
@ -137,9 +159,7 @@ $.fn.taskButton = function (options) {
|
|||
|
||||
pollTasks(self);
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
|
||||
}
|
||||
startInterval();
|
||||
|
||||
$(ApiClient).on("websocketmessage", onSocketMessage).on('websocketopen', onSocketOpen);
|
||||
}
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
html += '<div class="cardFooter">';
|
||||
|
||||
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 class="cardText" style="padding-top:10px;padding-bottom:10px;">';
|
||||
|
|
|
@ -47,7 +47,7 @@ html, body, .ui-btn, .pageTitle {
|
|||
}
|
||||
|
||||
@media all and (max-width: 600px) {
|
||||
|
||||
|
||||
.libraryViewNav a {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
|
@ -58,9 +58,9 @@ html, body, .ui-btn, .pageTitle {
|
|||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.libraryViewNav .ui-btn-active, .libraryViewNav .iron-selected {
|
||||
color: #539FFD !important;
|
||||
}
|
||||
.libraryViewNav .ui-btn-active, .libraryViewNav .iron-selected, .barsMenuButton .fa, .btnActiveCast, .libraryViewNav a:not(.ui-btn-active):hover {
|
||||
color: #EA3150 !important;
|
||||
}
|
||||
|
||||
.libraryViewNav {
|
||||
border-top: 1px solid #333 !important;
|
||||
|
@ -74,10 +74,6 @@ html, body, .ui-btn, .pageTitle {
|
|||
border-bottom: 1px solid #333;
|
||||
}
|
||||
|
||||
.barsMenuButton .fa {
|
||||
color: #539FFD !important;
|
||||
}
|
||||
|
||||
h1, h1 a {
|
||||
font-weight: 400 !important;
|
||||
}
|
||||
|
@ -116,9 +112,9 @@ paper-tab {
|
|||
box-shadow: none;
|
||||
}
|
||||
|
||||
.visualCardBox .outerCardFooter {
|
||||
padding: 0;
|
||||
}
|
||||
.visualCardBox .outerCardFooter {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
.viewMenuSearch {
|
||||
|
@ -134,21 +130,13 @@ paper-tab {
|
|||
margin: 0 auto !important;
|
||||
}
|
||||
|
||||
.btnActiveCast i {
|
||||
color: #539FFD !important;
|
||||
}
|
||||
|
||||
.libraryViewNav a:not(.ui-btn-active):hover {
|
||||
color: #539FFD !important;
|
||||
}
|
||||
|
||||
@media (min-width: 600px) {
|
||||
|
||||
|
||||
/* This needs a little extra space to account for the longer date format */
|
||||
.channelHeaderCell, .channelTimeslotHeader {
|
||||
width: 209px;
|
||||
}
|
||||
|
||||
|
||||
.programGrid, .timeslotHeaders {
|
||||
margin-left: 210px;
|
||||
}
|
||||
|
@ -165,4 +153,4 @@ paper-tab {
|
|||
#footer {
|
||||
/* Eliminate transparency to prevent clicks from passing through to the elements underneath */
|
||||
background-color: rgb(26,26,26);
|
||||
}
|
||||
}
|
||||
|
|
1
dashboard-ui/thirdparty/emby-icons.html
vendored
1
dashboard-ui/thirdparty/emby-icons.html
vendored
|
@ -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="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="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>
|
||||
</svg>
|
||||
</iron-iconset-svg>
|
||||
|
|
|
@ -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="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="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>
|
||||
</svg>
|
||||
</iron-iconset-svg>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue