diff --git a/dashboard-ui/css/mediaplayer-video.css b/dashboard-ui/css/mediaplayer-video.css
index 3cf00055b7..639278b001 100644
--- a/dashboard-ui/css/mediaplayer-video.css
+++ b/dashboard-ui/css/mediaplayer-video.css
@@ -24,6 +24,9 @@
background-color: #000;
width: 100%;
height: auto;
+
+ /* Without this the buttons displayed over the video surface will not be clickable in safari. */
+ -webkit-transform-style: preserve-3d
}
.videoControls {
@@ -107,7 +110,7 @@
***************************************/
#videoPlayer,
-#videoPlayer .itemVideo {
+.itemVideo {
position: fixed !important;
top: 0 !important;
bottom: 0 !important;
@@ -121,6 +124,10 @@
max-height: 100%;
}
+/* Hack for safari because it doesn't allow clickable content over the video surface. */
+.itemVideo { (;top: 60px!important;); }
+.itemVideo { [;top: 60px!important;]; }
+
#mediaPlayer .ui-slider-track, .nowPlayingBar .ui-slider-track, .nowPlayingPage .ui-slider-track {
border-color: #2ad !important;
height: 2px!important;
diff --git a/dashboard-ui/encodingsettings.html b/dashboard-ui/encodingsettings.html
index 0b50ae0f6d..626dfcebc8 100644
--- a/dashboard-ui/encodingsettings.html
+++ b/dashboard-ui/encodingsettings.html
@@ -1,4 +1,5 @@
-
+
+
${TitleAdvanced}
@@ -46,11 +47,6 @@
${LabelDownMixAudioScaleHelp}
-
-
-
- ${OptionUpscalingHelp}
-
diff --git a/dashboard-ui/scripts/encodingsettings.js b/dashboard-ui/scripts/encodingsettings.js
index 9550606c71..ae2afc8c74 100644
--- a/dashboard-ui/scripts/encodingsettings.js
+++ b/dashboard-ui/scripts/encodingsettings.js
@@ -10,8 +10,6 @@
}).checkboxradio('refresh');
- $('#chkAllowUpscaling', page).checked(config.AllowVideoUpscaling).checkboxradio("refresh");
-
$('#txtDownMixAudioBoost', page).val(config.DownMixAudioBoost);
Dashboard.hideLoadingMsg();
@@ -40,7 +38,6 @@
ApiClient.getServerConfiguration().done(function (config) {
- config.AllowVideoUpscaling = $('#chkAllowUpscaling', form).checked();
config.EnableDebugEncodingLogging = $('#chkEnableDebugEncodingLogging', form).checked();
config.MediaEncodingQuality = $('.radioEncodingQuality:checked', form).val();
config.DownMixAudioBoost = $('#txtDownMixAudioBoost', form).val();
diff --git a/dashboard-ui/scripts/extensions.js b/dashboard-ui/scripts/extensions.js
index b367344ea9..e3cc999f97 100644
--- a/dashboard-ui/scripts/extensions.js
+++ b/dashboard-ui/scripts/extensions.js
@@ -1,4 +1,4 @@
-function IsStorageEnabled() {
+function IsStorageEnabled(skipRetry) {
if (!window.localStorage) {
return false;
@@ -6,9 +6,15 @@
try {
window.localStorage.setItem("__test", "data");
} catch (err) {
- if ((err.name).toUpperCase() == 'QUOTA_EXCEEDED_ERR') {
- return false;
+
+ if (!skipRetry) {
+ if ((err.name).toUpperCase().indexOf('EXCEEDED') != -1) {
+ window.localStorage.clear();
+ return IsStorageEnabled(true);
+ }
}
+
+ return false;
}
return true;
}
@@ -110,7 +116,7 @@ var WebNotifications = {
});
}
}
-
+
else if (window.webkitNotifications) {
if (!webkitNotifications.checkPermission()) {
var notif = webkitNotifications.createNotification(data.icon, data.title, data.body);
@@ -279,7 +285,7 @@ function replaceQueryString(url, param, value) {
if (url.match(re))
return url.replace(re, '$1' + param + "=" + value + '$2');
else {
-
+
if (url.indexOf('?') == -1) {
return url + '?' + param + "=" + value;
}
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index 9d067222a7..a1fd2ac051 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -49,12 +49,20 @@
values.SortOrder = query.SortOrder;
}
- localStorage.setItem(key + '_' + Dashboard.getCurrentUserId(), JSON.stringify(values));
+ try {
+ localStorage.setItem(key + '_' + Dashboard.getCurrentUserId(), JSON.stringify(values));
+ } catch (e) {
+
+ }
},
saveViewSetting: function (key, value) {
- localStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
+ try {
+ localStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
+ } catch (e) {
+
+ }
},
getSavedViewSetting: function (key) {
@@ -1276,7 +1284,11 @@
getPagingHtml: function (query, totalRecordCount, updatePageSizeSetting, pageSizes, showLimit) {
if (query.Limit && updatePageSizeSetting !== false) {
- localStorage.setItem('pagesize_', query.Limit);
+ try {
+ localStorage.setItem('pagesize_', query.Limit);
+ } catch (e) {
+
+ }
}
var html = '';
diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js
index 2108eeea67..c277f9e4db 100644
--- a/dashboard-ui/scripts/librarymenu.js
+++ b/dashboard-ui/scripts/librarymenu.js
@@ -73,9 +73,9 @@
html += '';
return html;
@@ -170,7 +170,7 @@
html += '';
- html += '';
+ html += '';
html += '';
html += getViewsHtml();
diff --git a/dashboard-ui/scripts/logpage.js b/dashboard-ui/scripts/logpage.js
index e9e5819322..38ffbe05e8 100644
--- a/dashboard-ui/scripts/logpage.js
+++ b/dashboard-ui/scripts/logpage.js
@@ -12,15 +12,6 @@
LogPage.startInterval();
- var autoScroll = localStorage.getItem("autoScrollLogPage");
-
- if (autoScroll == "true") {
- LogPage.updateAutoScroll(true);
- }
- else if (autoScroll == "false") {
- LogPage.updateAutoScroll(false);
- }
-
ApiClient.getSystemInfo().done(function(systemInfo) {
$('#logPath', page).html(systemInfo.LogPath);
@@ -86,8 +77,6 @@
$('#chkAutoScrollBottom', page).checked(value).checkboxradio('refresh');
$('#chkAutoScroll', page).checked(value).checkboxradio('refresh');
-
- localStorage.setItem("autoScrollLogPage", value.toString());
}
};
diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js
index db6f255abe..3cfc332c93 100644
--- a/dashboard-ui/scripts/mediaplayer-video.js
+++ b/dashboard-ui/scripts/mediaplayer-video.js
@@ -85,40 +85,60 @@
return document.fullscreen || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement ? true : false;
};
+ function onFlyoutClose() {
+ $('.itemVideo').css('visibility', 'visible');
+ }
+
+ function onPopupOpen(elem) {
+ elem.popup("open").parents(".ui-popup-container").css("margin-top", 30);
+
+ if ($.browser.safari) {
+ $('.itemVideo').css('visibility', 'hidden');
+ }
+ }
+
self.showSubtitleMenu = function () {
var elem = $('.videoSubtitlePopup').html(getSubtitleTracksHtml())
.trigger('create')
- .popup("option", "positionTo", $('.videoSubtitleButton'));
+ .popup("option", "positionTo", $('.videoSubtitleButton'))
+ .off('popupafterclose', onFlyoutClose)
+ .on('popupafterclose', onFlyoutClose);
- elem.popup("open").parents(".ui-popup-container").css("margin-top", 30);
+ onPopupOpen(elem);
};
self.showQualityFlyout = function () {
var elem = $('.videoQualityPopup').html(getQualityFlyoutHtml())
.trigger('create')
- .popup("option", "positionTo", $('.videoQualityButton'));
+ .popup("option", "positionTo", $('.videoQualityButton'))
+ .off('popupafterclose', onFlyoutClose)
+ .on('popupafterclose', onFlyoutClose);
- elem.popup("open").parents(".ui-popup-container").css("margin-top", 30);
+ onPopupOpen(elem);
};
self.showChaptersFlyout = function () {
var elem = $('.videoChaptersPopup').html(getChaptersFlyoutHtml())
.trigger('create')
- .popup("option", "positionTo", $('.videoChaptersButton'));
+ .popup("option", "positionTo", $('.videoChaptersButton'))
+ .off('popupafterclose', onFlyoutClose)
+ .on('popupafterclose', onFlyoutClose);
- elem.popup("open").parents(".ui-popup-container").css("margin-top", 30);
+ onPopupOpen(elem);
};
self.showAudioTracksFlyout = function () {
var elem = $('.videoAudioPopup').html(getAudioTracksHtml())
.trigger('create')
- .popup("option", "positionTo", $('.videoAudioButton'));
+ .popup("option", "positionTo", $('.videoAudioButton'))
+ .off('popupafterclose', onFlyoutClose)
+ .on('popupafterclose', onFlyoutClose);
- elem.popup("open").parents(".ui-popup-container").css("margin-top", 30);
+ onPopupOpen(elem);
};
self.setAudioStreamIndex = function (index) {
@@ -512,7 +532,7 @@
var html = '';
html += '