+
${TabNowPlaying}
diff --git a/dashboard-ui/scripts/chromecast.js b/dashboard-ui/scripts/chromecast.js
index 48509be839..a56fe0f7ad 100644
--- a/dashboard-ui/scripts/chromecast.js
+++ b/dashboard-ui/scripts/chromecast.js
@@ -1260,16 +1260,16 @@
};
}
- MediaController.registerPlayer(new chromecastPlayer());
+ //MediaController.registerPlayer(new chromecastPlayer());
- $(MediaController).on('playerchange', function () {
+ //$(MediaController).on('playerchange', function () {
- if (MediaController.getPlayerInfo().name == PlayerName) {
+ // if (MediaController.getPlayerInfo().name == PlayerName) {
- if (CastPlayer.deviceState != DEVICE_STATE.ACTIVE && CastPlayer.isInitialized) {
- CastPlayer.launchApp();
- }
- }
- });
+ // if (CastPlayer.deviceState != DEVICE_STATE.ACTIVE && CastPlayer.isInitialized) {
+ // CastPlayer.launchApp();
+ // }
+ // }
+ //});
})(window, window.chrome, console);
\ No newline at end of file
diff --git a/dashboard-ui/scripts/dashboardpage.js b/dashboard-ui/scripts/dashboardpage.js
index 88f8cb7f32..1f2e04122a 100644
--- a/dashboard-ui/scripts/dashboardpage.js
+++ b/dashboard-ui/scripts/dashboardpage.js
@@ -26,11 +26,11 @@
$('#contribute', page).show();
}
+ DashboardPage.renderSupporterIcon(page, pluginSecurityInfo);
});
DashboardPage.reloadSystemInfo(page);
DashboardPage.reloadNews(page);
-
DashboardPage.sessionUpdateTimer = setInterval(DashboardPage.refreshSessionsLocally, 60000);
},
@@ -55,7 +55,7 @@
var port = systemInfo.HttpServerPortNumber;
if (port == systemInfo.WebSocketPortNumber) {
-
+
$('#ports', page).html(Globalize.translate('LabelRunningOnPort').replace('{0}', '
' + port + ''));
} else {
$('#ports', page).html(Globalize.translate('LabelRunningOnPorts').replace('{0}', '
' + port + '').replace('{1}', '
' + systemInfo.WebSocketPortNumber + ''));
@@ -739,6 +739,25 @@
}
},
+ renderSupporterIcon: function (page, pluginSecurityInfo) {
+
+ var imgUrl, text;
+
+ if (pluginSecurityInfo.IsMBSupporter) {
+
+ imgUrl = "css/images/supporter/supporterbadge.png";
+ text = "Thank you for supporting Media Browser.";
+
+ $('.supporterIconContainer', page).html('
' + text + '');
+ } else {
+
+ imgUrl = "css/images/supporter/nonsupporterbadge.png";
+ text = "Please support Media Browser.";
+
+ $('.supporterIconContainer', page).html('
' + text + '');
+ }
+ },
+
renderHasPendingRestart: function (page, hasPendingRestart) {
$('#updateFail', page).hide();
diff --git a/dashboard-ui/scripts/itemlistpage.js b/dashboard-ui/scripts/itemlistpage.js
index 1a4003f174..242719269c 100644
--- a/dashboard-ui/scripts/itemlistpage.js
+++ b/dashboard-ui/scripts/itemlistpage.js
@@ -43,7 +43,7 @@
else if (view == "Poster") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
- shape: "portrait",
+ shape: "auto",
showTitle: true,
centerText: true
});
diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js
index 7569357ec4..2dfa9b1a40 100644
--- a/dashboard-ui/scripts/librarymenu.js
+++ b/dashboard-ui/scripts/librarymenu.js
@@ -7,49 +7,56 @@
//html += '';
- html += '
';
$(document.body).prepend(html);
+ $('.viewMenuBar').trigger('create');
$(document).trigger('headercreated');
$('.libraryMenuButton').createHoverTouch().on('hovertouch', showLibraryMenu);
+ $('.dashboardMenuButton').createHoverTouch().on('hovertouch', showDashboardMenu);
}
function getItemHref(item) {
@@ -76,9 +83,23 @@
function showLibraryMenu() {
- var panel = getLibraryMenu();
+ var page = $.mobile.activePage;
+ var panel;
- updateLibraryNavLinks($.mobile.activePage);
+ panel = getLibraryMenu();
+ updateLibraryNavLinks(page);
+
+ $(panel).panel('toggle').off('mouseleave.librarymenu').on('mouseleave.librarymenu', function () {
+
+ $(this).panel("close");
+
+ });
+ }
+
+ function showDashboardMenu() {
+
+ var page = $.mobile.activePage;
+ var panel = getDashboardMenu(page);
$(panel).panel('toggle').off('mouseleave.librarymenu').on('mouseleave.librarymenu', function () {
@@ -100,7 +121,7 @@
var viewMenuCssClass = (i.CollectionType || 'general') + 'ViewMenu';
var itemId = i.Id;
-
+
if (i.CollectionType == "channels") {
itemId = "channels";
}
@@ -131,6 +152,8 @@
});
}
+ var requiresLibraryMenuRefresh = false;
+
function getLibraryMenu() {
var panel = $('#libraryPanel');
@@ -157,6 +180,33 @@
updateLibraryMenu();
}
+ else if (requiresLibraryMenuRefresh) {
+ updateLibraryMenu();
+ requiresLibraryMenuRefresh = false;
+ }
+
+ return panel;
+ }
+
+ function getDashboardMenu(page) {
+
+ var panel = $('#dashboardPanel', page);
+
+ if (!panel.length) {
+
+ var html = '';
+
+ html += '
';
+
+ html += '
';
+
+ html += '
';
+
+ html += '
';
+
+ $(document.body).append(html);
+ panel = $('#dashboardPanel').panel({}).trigger('create');
+ }
return panel;
}
@@ -187,10 +237,12 @@
if (info.isLocalPlayer) {
$('.btnCast').addClass('btnDefaultCast').removeClass('btnActiveCast');
+ $('.headerSelectedPlayer').html('');
} else {
$('.btnCast').removeClass('btnDefaultCast').addClass('btnActiveCast');
+ $('.headerSelectedPlayer').html(info.deviceName || info.name);
}
}
@@ -257,12 +309,30 @@
$('.libraryMenuButtonText').html('
' + name + '');
}
- else if ($(page).hasClass('allLibraryPage')) {
+ //else if ($(page).hasClass('type-interior')) {
+
+ // $('.libraryMenuButtonText').html('
' + 'Dashboard' + '');
+
+ //}
+ else if ($(page).hasClass('allLibraryPage') || $(page).hasClass('type-interior')) {
$('.libraryMenuButtonText').html('
MEDIABROWSER');
}
}
- $(document).on('pageinit', ".libraryPage", function () {
+ function onWebSocketMessage(e, data) {
+
+ var msg = data;
+
+ if (msg.MessageType === "UserConfigurationUpdated") {
+
+ if (msg.Data.Id == Dashboard.getCurrentUserId()) {
+
+ requiresLibraryMenuRefresh = true;
+ }
+ }
+ }
+
+ $(document).on('pageinit', ".page", function () {
var page = this;
@@ -274,10 +344,9 @@
});
- }).on('pagebeforeshow', ".libraryPage", function () {
+ }).on('pagebeforeshow', ".page:not(.standalonePage)", function () {
var page = this;
-
if (!$('.viewMenuBar').length) {
Dashboard.getCurrentUser().done(function (user) {
@@ -294,14 +363,25 @@
updateLibraryNavLinks(page);
}
+ var jpage = $(page);
+
+ if (jpage.hasClass('libraryPage')) {
+ $(document.body).addClass('libraryDocument').removeClass('dashboardDocument');
+ }
+ else if (jpage.hasClass('type-interior')) {
+ $(document.body).addClass('dashboardDocument').removeClass('libraryDocument');
+ } else {
+ $(document.body).removeClass('dashboardDocument').removeClass('libraryDocument');
+ }
+
}).on('pagebeforeshow', ".page", function () {
var page = this;
- if ($(page).hasClass('libraryPage')) {
- $('.viewMenuBar').show();
- } else {
+ if ($(page).hasClass('standalonePage')) {
$('.viewMenuBar').hide();
+ } else {
+ $('.viewMenuBar').show();
}
}).on('pageshow', ".libraryPage", function () {
@@ -316,8 +396,6 @@
// Scroll back up so in case vertical scroll was messed with
$(document).scrollTop(0);
}
-
-
});
$(function () {
@@ -326,6 +404,7 @@
updateCastIcon();
});
+ $(ApiClient).on('websocketmessage', onWebSocketMessage);
});
})(window, document, jQuery);
diff --git a/dashboard-ui/scripts/mediacontroller.js b/dashboard-ui/scripts/mediacontroller.js
index 745f75b5a6..cbc0e7b7b6 100644
--- a/dashboard-ui/scripts/mediacontroller.js
+++ b/dashboard-ui/scripts/mediacontroller.js
@@ -291,7 +291,7 @@
currentPlayer.shuffle(id);
};
- self.playlist = function() {
+ self.playlist = function () {
return currentPlayer.playlist || [];
};
@@ -430,7 +430,7 @@
var mirror = (!target.isLocalPlayer && target.supportedCommands.indexOf('DisplayContent') != -1) ? 'true' : 'false';
- html += '
';
+ html += '
';
html += '
';
$(document.body).append(html);
@@ -506,6 +509,7 @@
var playerName = this.getAttribute('data-playername');
var targetId = this.getAttribute('data-targetid');
var targetName = this.getAttribute('data-targetname');
+ var deviceName = this.getAttribute('data-deviceName');
var playableMediaTypes = this.getAttribute('data-mediatypes').split(',');
var supportedCommands = this.getAttribute('data-commands').split(',');
@@ -513,7 +517,8 @@
id: targetId,
name: targetName,
playableMediaTypes: playableMediaTypes,
- supportedCommands: supportedCommands
+ supportedCommands: supportedCommands,
+ deviceName: deviceName
});
});
diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js
index bf77481522..583777ebe2 100644
--- a/dashboard-ui/scripts/mediaplayer-video.js
+++ b/dashboard-ui/scripts/mediaplayer-video.js
@@ -1,21 +1,8 @@
(function () {
- videoPlayer = function (mediaPlayer, item, mediaSource, startPosition, user) {
- if (mediaPlayer == null) {
- throw new Error("mediaPlayer cannot be null");
- }
- if (item == null) {
- throw new Error("item cannot be null");
- }
-
- if (user == null) {
- throw new Error("user cannot be null");
- }
-
- var self = mediaPlayer;
+ function createVideoPlayer(self) {
var timeout;
- var video;
var initialVolume;
var fullscreenExited = false;
var idleState = true;
@@ -30,12 +17,6 @@
self.currentSubtitleStreamIndex = null;
- self.initVideoPlayer = function () {
- video = playVideo(item, mediaSource, startPosition);
-
- return video;
- };
-
self.getCurrentSubtitleStream = function () {
return self.getSubtitleStream(self.currentSubtitleStreamIndex);
};
@@ -219,7 +200,7 @@
return s.Type == 'Subtitle' && s.IsTextSubtitleStream;
});
- var allTracks = video.textTracks; // get list of tracks
+ var allTracks = self.currentMediaElement.textTracks; // get list of tracks
for (var i = 0; i < allTracks.length; i++) {
@@ -239,7 +220,7 @@
return;
}
- var allTracks = video.textTracks; // get list of tracks
+ var allTracks = self.currentMediaElement.textTracks; // get list of tracks
for (var i = 0; i < allTracks.length; i++) {
@@ -256,7 +237,7 @@
}
}
- $('track', video).each(function () {
+ $('track', self.currentMediaElement).each(function () {
var currentSrc = this.src;
@@ -267,22 +248,6 @@
});
};
- $(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange', function (e) {
-
- var videoControls = $('#videoControls');
-
- $('.itemVideo').off('mousemove keydown scroll', idleHandler);
-
- if (self.isFullScreen()) {
- enterFullScreen();
- idleState = true;
- $('.itemVideo').on('mousemove keydown scroll', idleHandler).trigger('mousemove');
- } else {
- videoControls.removeClass("active inactive");
- exitFullScreenToWindow();
- }
- });
-
function onPositionSliderChange() {
isPositionSliderActive = false;
@@ -365,12 +330,6 @@
hideFlyout($('#video-qualityFlyout'));
});
- $("body").on("mousemove", "#videoPlayer.fullscreenVideo #itemVideo", function () {
-
- idleHandler(this);
-
- });
-
var trackChange = false;
var tooltip = $('
');
@@ -399,9 +358,18 @@
tooltip.remove();
});
+
+ $(".mediaFlyoutContainer").on("click", "a", function (e) {
+ if (confirm("This option will close the video player. Proceed?")) {
+ self.stop();
+ } else {
+ e.preventDefault();
+ }
+ });
});
function idleHandler() {
+
var video = $(".itemVideo");
var videoControls = $("#videoControls");
@@ -447,14 +415,6 @@
}
- function changeHandler(event) {
-
- document.addEventListener(event, function () {
- fullscreenExited = self.isFullScreen() == false;
- });
-
- }
-
function enterFullScreen() {
var player = $("#videoPlayer");
@@ -512,6 +472,7 @@
$(document.body).off("mousedown.hidesearchhints");
}
+
function getChaptersFlyoutHtml() {
var html = '';
@@ -577,7 +538,7 @@
return currentStream.Type == "Audio";
});
- var currentIndex = getParameterByName('AudioStreamIndex', video.currentSrc);
+ var currentIndex = getParameterByName('AudioStreamIndex', self.currentMediaElement.currentSrc);
var html = '';
@@ -716,12 +677,12 @@
var html = '';
- var currentSrc = video.currentSrc.toLowerCase();
+ var currentSrc = self.currentMediaElement.currentSrc.toLowerCase();
var isStatic = currentSrc.indexOf('static=true') != -1;
var transcodingExtension = self.getTranscodingExtension();
- var currentAudioStreamIndex = getParameterByName('AudioStreamIndex', video.currentSrc);
+ var currentAudioStreamIndex = getParameterByName('AudioStreamIndex', self.currentMediaElement.currentSrc);
var options = getVideoQualityOptions(self.currentMediaSource.MediaStreams, currentAudioStreamIndex, transcodingExtension);
@@ -833,7 +794,66 @@
return options;
}
- function playVideo(item, mediaSource, startPosition) {
+ function bindEventsForPlayback() {
+
+ $(document).on('webkitfullscreenchange.videoplayer mozfullscreenchange.videoplayer fullscreenchange.videoplayer', function (e) {
+
+ $('.itemVideo').off('mousemove.videoplayer keydown.videoplayer scroll.videoplayer', idleHandler);
+
+ if (self.isFullScreen()) {
+ enterFullScreen();
+ idleState = true;
+ $('.itemVideo').on('mousemove.videoplayer keydown.videoplayer scroll.videoplayer', idleHandler).trigger('mousemove');
+
+ } else {
+ $('#videoControls').removeClass("active inactive");
+ exitFullScreenToWindow();
+ }
+
+ fullscreenExited = self.isFullScreen() == false;
+
+ }).on("msfullscreenchange.videoplayer", function (e) {
+
+ fullscreenExited = self.isFullScreen() == false;
+
+ }).on("keyup.videoplayer", function (e) {
+
+ if (fullscreenExited) {
+ $("#videoPlayer", $("#mediaPlayer")).removeClass("fullscreenVideo");
+ fullscreenExited = false;
+ return;
+ }
+
+ if (e.keyCode == 27) {
+ self.stop();
+ }
+ });
+
+ // Stop playback on browser back button nav
+ $(window).one("popstate.videoplayer", function () {
+ self.stop();
+ return;
+ });
+
+ $(document.body).on("mousemove.videplayer", "#videoPlayer.fullscreenVideo #itemVideo", function () {
+
+ idleHandler(this);
+ });
+ }
+
+ function unbindEventsForPlayback() {
+
+ $(document).off('webkitfullscreenchange.videoplayer mozfullscreenchange.videoplayer fullscreenchange.videoplayer').off("msfullscreenchange.videoplayer").off("keyup.videoplayer");
+
+ // Stop playback on browser back button nav
+ $(window).off("popstate.videoplayer");
+
+ $(document.body).off("mousemove.videplayer", "#videoPlayer.fullscreenVideo #itemVideo");
+
+ $('.itemVideo').off('mousemove.videoplayer keydown.videoplayer scroll.videoplayer');
+ }
+
+ self.playVideo = function (item, mediaSource, startPosition) {
var mediaStreams = mediaSource.MediaStreams || [];
@@ -892,18 +912,15 @@
// None of the browsers seem to like this
EnableAutoStreamCopy: false
-
})) + seekParam;
var webmVideoUrl = ApiClient.getUrl('Videos/' + item.Id + '/stream.webm', $.extend({}, baseParams, {
-
VideoCodec: 'vpx',
AudioCodec: 'Vorbis',
maxWidth: webmQuality.maxWidth,
videoBitrate: webmQuality.videoBitrate,
audioBitrate: webmQuality.audioBitrate,
EnableAutoStreamCopy: false
-
})) + seekParam;
var hlsVideoUrl = ApiClient.getUrl('Videos/' + item.Id + '/stream.m3u8', $.extend({}, baseParams, {
@@ -915,7 +932,6 @@
AudioCodec: m3U8Quality.audioCodec,
profile: 'baseline',
level: '3'
-
})) + seekParam;
//======================================================================================>
@@ -975,9 +991,8 @@
html += '';
- var mediaPlayer = $("#mediaPlayer").show();
- var videoPlayer = $("#videoPlayer", mediaPlayer);
- var videoControls = $('#videoControls', mediaPlayer);
+ var mediaPlayerContainer = $("#mediaPlayer").show();
+ var videoControls = $('#videoControls', mediaPlayerContainer);
//show stop button
$('#video-stopButton', videoControls).show();
@@ -985,7 +1000,8 @@
$('#video-pauseButton', videoControls).show();
$('#video-previousTrackButton', videoControls).hide();
$('#video-nextTrackButton', videoControls).hide();
- var videoElement = $('#videoElement', mediaPlayer).prepend(html);
+
+ var videoElement = $('#videoElement', mediaPlayerContainer).prepend(html);
$('#video-qualityButton', videoControls).show();
@@ -1000,7 +1016,8 @@
if (subtitleStreams.length) {
$('#video-subtitleButton', videoControls).show().prop("disabled", false);
} else {
- $('#video-subtitleButton', videoControls).hide().prop("disabled", true);;
+ $('#video-subtitleButton', videoControls).hide().prop("disabled", true);
+ ;
}
if (item.Chapters && item.Chapters.length) {
@@ -1026,17 +1043,17 @@
volumeSlider.val(initialVolume).slider('refresh');
updateVolumeButtons(initialVolume);
- video.on("volumechange", function (e) {
+ video.on("volumechange.mediaplayerevent", function (e) {
var vol = this.volume;
updateVolumeButtons(vol);
- }).one("playing", function () {
+ }).one("playing.mediaplayerevent", function () {
self.onPlaybackStart(this, item, mediaSource);
- }).on("pause", function (e) {
+ }).on("pause.mediaplayerevent", function (e) {
$('#video-playButton', videoControls).show();
$('#video-pauseButton', videoControls).hide();
@@ -1050,7 +1067,7 @@
self.stop();
}, 5 * 60 * 1000); // 5 minutes
- }).on("playing", function (e) {
+ }).on("playing.mediaplayerevent", function (e) {
$('#video-playButton', videoControls).hide();
$('#video-pauseButton', videoControls).show();
@@ -1062,14 +1079,14 @@
// Remove pause setop timer
self.clearPauseStop();
- }).on("timeupdate", function () {
+ }).on("timeupdate.mediaplayerevent", function () {
if (!isPositionSliderActive) {
self.setCurrentTime(self.getCurrentTicks(this), positionSlider, currentTimeElement);
}
- }).on("error", function () {
+ }).on("error.mediaplayerevent", function () {
self.clearPauseStop();
@@ -1090,7 +1107,7 @@
message: errorMsg
});
- }).on("click", function (e) {
+ }).on("click.mediaplayerevent", function (e) {
if (this.paused) {
self.unpause();
@@ -1098,23 +1115,23 @@
self.pause();
}
- }).on("dblclick", function () {
+ }).on("dblclick.mediaplayerevent", function () {
self.toggleFullscreen();
- }).on("seeking", function (e) {
+ }).on("seeking.mediaplayerevent", function (e) {
$("html").css("cursor", "wait");
- }).on("seeked", function (e) {
+ }).on("seeked.mediaplayerevent", function (e) {
$("html").css("cursor", "default");
- }).on("loadstart", function () {
+ }).on("loadstart.mediaplayerevent", function () {
$("html").css("cursor", "progress");
- }).on("canplay", function () {
+ }).on("canplay.mediaplayerevent", function () {
$("html").css("cursor", "default");
@@ -1124,47 +1141,22 @@
self.onPlaybackStopped.call(this);
+ unbindEventsForPlayback();
+
}).on('ended.playnext', self.playNextAfterEnded);
- // Stop playback on browser back button nav
- $(window).on("popstate", function () {
- self.stop();
- return;
- });
+ bindEventsForPlayback();
- $(".mediaFlyoutContainer").on("click", "a", function (e) {
- if (confirm("This option will close the video player. Proceed?")) {
- self.stop();
- } else {
- e.preventDefault();
- }
- });
-
- changeHandler("fullscreenchange");
- changeHandler("mozfullscreenchange");
- changeHandler("webkitfullscreenchange");
- changeHandler("msfullscreenchange");
-
- $(document).on("keyup.enhancePlayer", function (e) {
- if (fullscreenExited) {
- videoPlayer.removeClass("fullscreenVideo");
- fullscreenExited = false;
- return;
- }
-
- if (e.keyCode == 27) {
- self.stop();
- $(this).off("keyup.enhancePlayer");
- }
- });
-
- mediaPlayer.trigger("create");
+ mediaPlayerContainer.trigger("create");
fullscreenExited = false;
self.currentSubtitleStreamIndex = mediaSource.DefaultSubtitleStreamIndex;
return video[0];
- }
- };
+ };
+ }
+
+ createVideoPlayer(MediaPlayer);
+
})();
\ No newline at end of file
diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js
index 06ea89557a..ae2cf43334 100644
--- a/dashboard-ui/scripts/mediaplayer.js
+++ b/dashboard-ui/scripts/mediaplayer.js
@@ -475,8 +475,7 @@
self.currentItem = item;
self.currentMediaSource = getOptimalMediaSource(item.MediaType, item.MediaSources);
- videoPlayer(self, item, self.currentMediaSource, startPosition, user);
- mediaElement = self.initVideoPlayer();
+ mediaElement = self.playVideo(item, self.currentMediaSource, startPosition);
self.currentDurationTicks = self.currentMediaSource.RunTimeTicks;
} else if (item.MediaType === "Audio") {
@@ -940,7 +939,7 @@
var isVideo = self.currentItem.MediaType == "Video";
- $(elem).off("ended.playnext").on("ended", function () {
+ $(elem).off("ended.playnext").one("ended", function () {
$(this).off();
@@ -1106,7 +1105,7 @@
var playerElement = this;
- $(playerElement).off('ended.playbackstopped');
+ $(playerElement).off('.mediaplayerevent').off('ended.playbackstopped');
clearProgressInterval();
@@ -1259,25 +1258,25 @@
this.volume = initialVolume;
this.play();
- }).on("volumechange", function () {
+ }).on("volumechange.mediaplayerevent", function () {
self.onVolumeChanged(this);
- }).one("playing", function () {
+ }).one("playing.mediaplayerevent", function () {
$('.mediaPlayerAudioContainer').hide();
self.onPlaybackStart(this, item, mediaSource);
- }).on("pause", function () {
+ }).on("pause.mediaplayerevent", function () {
self.onPlaystateChange(this);
- }).on("playing", function () {
+ }).on("playing.mediaplayerevent", function () {
self.onPlaystateChange(this);
- }).on("timeupdate", function () {
+ }).on("timeupdate.mediaplayerevent", function () {
self.setCurrentTime(self.getCurrentTicks(this));
diff --git a/dashboard-ui/scripts/notifications.js b/dashboard-ui/scripts/notifications.js
index c416a6b948..92109cfd2b 100644
--- a/dashboard-ui/scripts/notifications.js
+++ b/dashboard-ui/scripts/notifications.js
@@ -19,7 +19,7 @@
self.getNotificationsSummary().done(function (summary) {
- var item = $('.btnNotifications').removeClass('levelNormal').removeClass('levelWarning').removeClass('levelError').html(summary.UnreadCount);
+ var item = $('.btnNotificationsInner').removeClass('levelNormal').removeClass('levelWarning').removeClass('levelError').html(summary.UnreadCount);
if (summary.UnreadCount) {
item.addClass('level' + summary.MaxUnreadNotificationLevel);
@@ -207,13 +207,9 @@
window.Notifications = new notifications();
- $(Dashboard).on('interiorheaderrendered', function (e, header, user) {
+ $(document).on('headercreated', function (e) {
- if (!user || $('.notificationsButton', header).length) {
- return;
- }
-
- $('
0').insertAfter($('.btnCurrentUser', header)).on('click', Notifications.showNotificationsFlyout);
+ $('').insertBefore($('.headerUserButton')).on('click', Notifications.showNotificationsFlyout);
Notifications.updateNotificationCount();
});
diff --git a/dashboard-ui/scripts/nowplayingbar.js b/dashboard-ui/scripts/nowplayingbar.js
index 1a61392c6a..081cc52550 100644
--- a/dashboard-ui/scripts/nowplayingbar.js
+++ b/dashboard-ui/scripts/nowplayingbar.js
@@ -24,6 +24,9 @@
html += '
';
html += '
' + Globalize.translate('ButtonPlaylist') + '';
html += '
';
+
+ html += '
' + Globalize.translate('ButtonRemoteControl') + '';
+
html += '
';
html += '
';
diff --git a/dashboard-ui/scripts/remotecontrol.js b/dashboard-ui/scripts/remotecontrol.js
index 20ab69852b..2107c66fa3 100644
--- a/dashboard-ui/scripts/remotecontrol.js
+++ b/dashboard-ui/scripts/remotecontrol.js
@@ -252,6 +252,7 @@
}).map(function (s) {
return {
name: s.DeviceName,
+ deviceName: s.DeviceName,
id: s.Id,
playerName: self.name,
appName: s.Client,
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index f0800459c3..22ff375628 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -59,30 +59,13 @@ var Dashboard = {
return Dashboard.getUserPromise;
},
- validateCurrentUser: function (page) {
+ validateCurrentUser: function () {
Dashboard.getUserPromise = null;
if (Dashboard.getCurrentUserId()) {
Dashboard.getCurrentUser();
}
-
- page = page || $.mobile.activePage;
-
- var header = $('.header', page);
-
- if (header.length) {
- // Re-render the header
- header.remove();
-
- if (Dashboard.getUserPromise) {
- Dashboard.getUserPromise.done(function (user) {
- Dashboard.ensureHeader(page, user);
- });
- } else {
- Dashboard.ensureHeader(page);
- }
- }
},
getCurrentUserId: function () {
@@ -544,21 +527,21 @@ var Dashboard = {
Dashboard.validateCurrentUser();
},
- ensureHeader: function (page, user) {
+ ensureHeader: function (page) {
- if (!page.hasClass('libraryPage') && !$('.headerButtons', page).length) {
+ if (page.hasClass('standalonePage')) {
- Dashboard.renderHeader(page, user);
+ Dashboard.renderHeader(page);
}
},
- renderHeader: function (page, user) {
-
- var headerHtml = '';
+ renderHeader: function (page) {
var header = $('.header', page);
if (!header.length) {
+ var headerHtml = '';
+
headerHtml += '';
page.prepend(headerHtml);
-
- header = $('.header', page).trigger('create');
}
-
- var imageColor = "black";
-
- headerHtml = '';
- headerHtml += '';
-
- header.append(headerHtml).trigger('create');
-
- if (!$('.supporterIcon', header).length) {
-
- Dashboard.getPluginSecurityInfo().done(function (pluginSecurityInfo) {
-
- if (pluginSecurityInfo.IsMBSupporter) {
- $('

').insertBefore($('.btnTools', header));
- } else {
- $('

').insertBefore($('.btnTools', header));
- }
- });
- }
-
- $(Dashboard).trigger('interiorheaderrendered', [header, user]);
},
ensureToolsMenu: function (page, user) {
@@ -645,12 +570,9 @@ var Dashboard = {
var html = '