update to jquery mobile 1.4.3
|
@ -24,6 +24,9 @@
|
||||||
background-color: #000;
|
background-color: #000;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
||||||
|
/* Without this the buttons displayed over the video surface will not be clickable in safari. */
|
||||||
|
-webkit-transform-style: preserve-3d
|
||||||
}
|
}
|
||||||
|
|
||||||
.videoControls {
|
.videoControls {
|
||||||
|
@ -107,7 +110,7 @@
|
||||||
***************************************/
|
***************************************/
|
||||||
|
|
||||||
#videoPlayer,
|
#videoPlayer,
|
||||||
#videoPlayer .itemVideo {
|
.itemVideo {
|
||||||
position: fixed !important;
|
position: fixed !important;
|
||||||
top: 0 !important;
|
top: 0 !important;
|
||||||
bottom: 0 !important;
|
bottom: 0 !important;
|
||||||
|
@ -121,6 +124,10 @@
|
||||||
max-height: 100%;
|
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 {
|
#mediaPlayer .ui-slider-track, .nowPlayingBar .ui-slider-track, .nowPlayingPage .ui-slider-track {
|
||||||
border-color: #2ad !important;
|
border-color: #2ad !important;
|
||||||
height: 2px!important;
|
height: 2px!important;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>${TitleAdvanced}</title>
|
<title>${TitleAdvanced}</title>
|
||||||
|
@ -46,11 +47,6 @@
|
||||||
<input type="number" id="txtDownMixAudioBoost" pattern="[0-9]*" required="required" min=".5" max="3" step=".1" data-mini="true" />
|
<input type="number" id="txtDownMixAudioBoost" pattern="[0-9]*" required="required" min=".5" max="3" step=".1" data-mini="true" />
|
||||||
<div class="fieldDescription">${LabelDownMixAudioScaleHelp}</div>
|
<div class="fieldDescription">${LabelDownMixAudioScaleHelp}</div>
|
||||||
</li>
|
</li>
|
||||||
<li style="display:none;">
|
|
||||||
<input type="checkbox" id="chkAllowUpscaling" name="chkAllowUpscaling" data-mini="true" />
|
|
||||||
<label for="chkAllowUpscaling">${OptionUpscaling}</label>
|
|
||||||
<div class="fieldDescription">${OptionUpscalingHelp}</div>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<input type="checkbox" id="chkEnableDebugEncodingLogging" name="chkEnableDebugEncodingLogging" data-mini="true" />
|
<input type="checkbox" id="chkEnableDebugEncodingLogging" name="chkEnableDebugEncodingLogging" data-mini="true" />
|
||||||
<label for="chkEnableDebugEncodingLogging">${OptionEnableDebugTranscodingLogging}</label>
|
<label for="chkEnableDebugEncodingLogging">${OptionEnableDebugTranscodingLogging}</label>
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
|
|
||||||
}).checkboxradio('refresh');
|
}).checkboxradio('refresh');
|
||||||
|
|
||||||
$('#chkAllowUpscaling', page).checked(config.AllowVideoUpscaling).checkboxradio("refresh");
|
|
||||||
|
|
||||||
$('#txtDownMixAudioBoost', page).val(config.DownMixAudioBoost);
|
$('#txtDownMixAudioBoost', page).val(config.DownMixAudioBoost);
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
|
@ -40,7 +38,6 @@
|
||||||
|
|
||||||
ApiClient.getServerConfiguration().done(function (config) {
|
ApiClient.getServerConfiguration().done(function (config) {
|
||||||
|
|
||||||
config.AllowVideoUpscaling = $('#chkAllowUpscaling', form).checked();
|
|
||||||
config.EnableDebugEncodingLogging = $('#chkEnableDebugEncodingLogging', form).checked();
|
config.EnableDebugEncodingLogging = $('#chkEnableDebugEncodingLogging', form).checked();
|
||||||
config.MediaEncodingQuality = $('.radioEncodingQuality:checked', form).val();
|
config.MediaEncodingQuality = $('.radioEncodingQuality:checked', form).val();
|
||||||
config.DownMixAudioBoost = $('#txtDownMixAudioBoost', form).val();
|
config.DownMixAudioBoost = $('#txtDownMixAudioBoost', form).val();
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
function IsStorageEnabled() {
|
function IsStorageEnabled(skipRetry) {
|
||||||
|
|
||||||
if (!window.localStorage) {
|
if (!window.localStorage) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -6,9 +6,15 @@
|
||||||
try {
|
try {
|
||||||
window.localStorage.setItem("__test", "data");
|
window.localStorage.setItem("__test", "data");
|
||||||
} catch (err) {
|
} 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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,12 +49,20 @@
|
||||||
values.SortOrder = query.SortOrder;
|
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) {
|
saveViewSetting: function (key, value) {
|
||||||
|
|
||||||
localStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
|
try {
|
||||||
|
localStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
getSavedViewSetting: function (key) {
|
getSavedViewSetting: function (key) {
|
||||||
|
@ -1276,7 +1284,11 @@
|
||||||
getPagingHtml: function (query, totalRecordCount, updatePageSizeSetting, pageSizes, showLimit) {
|
getPagingHtml: function (query, totalRecordCount, updatePageSizeSetting, pageSizes, showLimit) {
|
||||||
|
|
||||||
if (query.Limit && updatePageSizeSetting !== false) {
|
if (query.Limit && updatePageSizeSetting !== false) {
|
||||||
localStorage.setItem('pagesize_', query.Limit);
|
try {
|
||||||
|
localStorage.setItem('pagesize_', query.Limit);
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
|
@ -73,9 +73,9 @@
|
||||||
|
|
||||||
html += '<div class="adminMenuOptions">';
|
html += '<div class="adminMenuOptions">';
|
||||||
html += '<div class="libraryMenuDivider"></div>';
|
html += '<div class="libraryMenuDivider"></div>';
|
||||||
//html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder dashboardViewMenu" data-itemid="dashboard" href="dashboard.html">Dashboard</a>';
|
//html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder dashboardViewMenu" data-itemid="dashboard" href="dashboard.html">'+Globalize.translate('ButtonDashboard')+'</a>';
|
||||||
html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder editorViewMenu" data-itemid="editor" href="edititemmetadata.html">Metadata Manager</a>';
|
html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder editorViewMenu" data-itemid="editor" href="edititemmetadata.html">' + Globalize.translate('ButtonMetadataManager') + '</a>';
|
||||||
html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder reportsViewMenu" data-itemid="reports" href="reports.html">Reports</a>';
|
html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder reportsViewMenu" data-itemid="reports" href="reports.html">' + Globalize.translate('ButtonReports') + '</a>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
return html;
|
return html;
|
||||||
|
@ -170,7 +170,7 @@
|
||||||
|
|
||||||
html += '<div style="margin: 0 -1em;">';
|
html += '<div style="margin: 0 -1em;">';
|
||||||
|
|
||||||
html += '<a class="lnkMediaFolder viewMenuLink viewMenuTextLink homeViewMenu" href="index.html">Home</a>';
|
html += '<a class="lnkMediaFolder viewMenuLink viewMenuTextLink homeViewMenu" href="index.html">' + Globalize.translate('ButtonHome') + '</a>';
|
||||||
html += '<div class="libraryMenuDivider"></div>';
|
html += '<div class="libraryMenuDivider"></div>';
|
||||||
|
|
||||||
html += getViewsHtml();
|
html += getViewsHtml();
|
||||||
|
|
|
@ -12,15 +12,6 @@
|
||||||
|
|
||||||
LogPage.startInterval();
|
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) {
|
ApiClient.getSystemInfo().done(function(systemInfo) {
|
||||||
|
|
||||||
$('#logPath', page).html(systemInfo.LogPath);
|
$('#logPath', page).html(systemInfo.LogPath);
|
||||||
|
@ -86,8 +77,6 @@
|
||||||
|
|
||||||
$('#chkAutoScrollBottom', page).checked(value).checkboxradio('refresh');
|
$('#chkAutoScrollBottom', page).checked(value).checkboxradio('refresh');
|
||||||
$('#chkAutoScroll', page).checked(value).checkboxradio('refresh');
|
$('#chkAutoScroll', page).checked(value).checkboxradio('refresh');
|
||||||
|
|
||||||
localStorage.setItem("autoScrollLogPage", value.toString());
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -85,40 +85,60 @@
|
||||||
return document.fullscreen || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement ? true : false;
|
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 () {
|
self.showSubtitleMenu = function () {
|
||||||
|
|
||||||
var elem = $('.videoSubtitlePopup').html(getSubtitleTracksHtml())
|
var elem = $('.videoSubtitlePopup').html(getSubtitleTracksHtml())
|
||||||
.trigger('create')
|
.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 () {
|
self.showQualityFlyout = function () {
|
||||||
|
|
||||||
var elem = $('.videoQualityPopup').html(getQualityFlyoutHtml())
|
var elem = $('.videoQualityPopup').html(getQualityFlyoutHtml())
|
||||||
.trigger('create')
|
.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 () {
|
self.showChaptersFlyout = function () {
|
||||||
|
|
||||||
var elem = $('.videoChaptersPopup').html(getChaptersFlyoutHtml())
|
var elem = $('.videoChaptersPopup').html(getChaptersFlyoutHtml())
|
||||||
.trigger('create')
|
.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 () {
|
self.showAudioTracksFlyout = function () {
|
||||||
|
|
||||||
var elem = $('.videoAudioPopup').html(getAudioTracksHtml())
|
var elem = $('.videoAudioPopup').html(getAudioTracksHtml())
|
||||||
.trigger('create')
|
.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) {
|
self.setAudioStreamIndex = function (index) {
|
||||||
|
@ -512,7 +532,7 @@
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
html += '<div class="videoPlayerPopupContent">';
|
html += '<div class="videoPlayerPopupContent">';
|
||||||
html += '<ul data-role="listview" data-inset="true"><li data-role="list-divider">Scenes</li>';
|
html += '<ul data-role="listview" data-inset="true"><li data-role="list-divider">' + Globalize.translate('HeaderScenes') + '</li>';
|
||||||
html += '</ul>';
|
html += '</ul>';
|
||||||
|
|
||||||
html += '<div class="videoPlayerPopupScroller">';
|
html += '<div class="videoPlayerPopupScroller">';
|
||||||
|
@ -588,7 +608,7 @@
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
html += '<div class="videoPlayerPopupContent">';
|
html += '<div class="videoPlayerPopupContent">';
|
||||||
html += '<ul data-role="listview" data-inset="true"><li data-role="list-divider">Audio Tracks</li>';
|
html += '<ul data-role="listview" data-inset="true"><li data-role="list-divider">' + Globalize.translate('HeaderAudioTracks') + '</li>';
|
||||||
html += '</ul>';
|
html += '</ul>';
|
||||||
|
|
||||||
html += '<div class="videoPlayerPopupScroller">';
|
html += '<div class="videoPlayerPopupScroller">';
|
||||||
|
@ -613,7 +633,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
var textLines = [];
|
var textLines = [];
|
||||||
textLines.push(stream.Language || 'Unknown language');
|
textLines.push(stream.Language || Globalize.translate('LabelUnknownLanguage'));
|
||||||
|
|
||||||
var attributes = [];
|
var attributes = [];
|
||||||
|
|
||||||
|
@ -673,7 +693,7 @@
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
html += '<div class="videoPlayerPopupContent">';
|
html += '<div class="videoPlayerPopupContent">';
|
||||||
html += '<ul data-role="listview" data-inset="true"><li data-role="list-divider">Subtitles</li>';
|
html += '<ul data-role="listview" data-inset="true"><li data-role="list-divider">' + Globalize.translate('HeaderSubtitles') + '</li>';
|
||||||
html += '</ul>';
|
html += '</ul>';
|
||||||
|
|
||||||
html += '<div class="videoPlayerPopupScroller">';
|
html += '<div class="videoPlayerPopupScroller">';
|
||||||
|
@ -698,7 +718,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
var textLines = [];
|
var textLines = [];
|
||||||
textLines.push(stream.Language || 'Unknown language');
|
textLines.push(stream.Language || Globalize.translate('LabelUnknownLanguage'));
|
||||||
|
|
||||||
if (stream.Codec) {
|
if (stream.Codec) {
|
||||||
textLines.push(stream.Codec);
|
textLines.push(stream.Codec);
|
||||||
|
@ -754,8 +774,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
html += '<div class="videoPlayerPopupContent">';
|
html += '<div class="videoPlayerPopupContent">';
|
||||||
html += '<ul data-role="listview" data-inset="true"><li data-role="list-divider">Video Quality</li>';
|
html += '<ul data-role="listview" data-inset="true"><li data-role="list-divider">' + Globalize.translate('HeaderVideoQuality') + '</li>';
|
||||||
html += '</ul>';
|
html += '</ul>';
|
||||||
|
|
||||||
html += '<div class="videoPlayerPopupScroller">';
|
html += '<div class="videoPlayerPopupScroller">';
|
||||||
|
@ -1185,14 +1206,10 @@
|
||||||
var errorCode = this.error ? this.error.code : '';
|
var errorCode = this.error ? this.error.code : '';
|
||||||
console.log('Html5 Video error code: ' + errorCode);
|
console.log('Html5 Video error code: ' + errorCode);
|
||||||
|
|
||||||
var errorMsg = 'There was an error playing the video.';
|
var errorMsg = Globalize.translate('MessageErrorPlayingVideo');
|
||||||
|
|
||||||
if (item.Type == "TvChannel") {
|
if (item.Type == "TvChannel") {
|
||||||
errorMsg += " Please ensure there is an open tuner availalble.";
|
errorMsg += "<br/><br/>" + Globalize.translate('MessageEnsureOpenTuner');
|
||||||
}
|
|
||||||
|
|
||||||
if (errorCode) {
|
|
||||||
errorMsg += " Error code: " + errorCode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Dashboard.alert({
|
Dashboard.alert({
|
||||||
|
|
|
@ -157,9 +157,13 @@
|
||||||
isStatic = finalParams.isStatic;
|
isStatic = finalParams.isStatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isStatic || !ticks) {
|
var isSeekableMedia = self.currentMediaSource.RunTimeTicks;
|
||||||
|
var isClientSeekable = isStatic || (isSeekableMedia && transcodingExtension == '.m3u8');
|
||||||
|
|
||||||
|
if (isClientSeekable || !ticks || !isSeekableMedia) {
|
||||||
currentSrc = replaceQueryString(currentSrc, 'starttimeticks', '');
|
currentSrc = replaceQueryString(currentSrc, 'starttimeticks', '');
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
currentSrc = replaceQueryString(currentSrc, 'starttimeticks', ticks);
|
currentSrc = replaceQueryString(currentSrc, 'starttimeticks', ticks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
(function () {
|
(function () {
|
||||||
|
|
||||||
|
var notificationsConfigurationKey = "notifications";
|
||||||
|
|
||||||
function fillItems(elem, items, cssClass, idPrefix, currentList, isEnabledList) {
|
function fillItems(elem, items, cssClass, idPrefix, currentList, isEnabledList) {
|
||||||
|
|
||||||
var html = '<div data-role="controlgroup">';
|
var html = '<div data-role="controlgroup">';
|
||||||
|
@ -26,18 +28,18 @@
|
||||||
var type = getParameterByName('type');
|
var type = getParameterByName('type');
|
||||||
|
|
||||||
var promise1 = ApiClient.getUsers();
|
var promise1 = ApiClient.getUsers();
|
||||||
var promise2 = ApiClient.getServerConfiguration();
|
var promise2 = ApiClient.getNamedConfiguration(notificationsConfigurationKey);
|
||||||
var promise3 = ApiClient.getJSON(ApiClient.getUrl("Notifications/Types"));
|
var promise3 = ApiClient.getJSON(ApiClient.getUrl("Notifications/Types"));
|
||||||
var promise4 = ApiClient.getJSON(ApiClient.getUrl("Notifications/Services"));
|
var promise4 = ApiClient.getJSON(ApiClient.getUrl("Notifications/Services"));
|
||||||
|
|
||||||
$.when(promise1, promise2, promise3, promise4).done(function (response1, response2, response3, response4) {
|
$.when(promise1, promise2, promise3, promise4).done(function (response1, response2, response3, response4) {
|
||||||
|
|
||||||
var users = response1[0];
|
var users = response1[0];
|
||||||
var config = response2[0];
|
var notificationOptions = response2[0];
|
||||||
var types = response3[0];
|
var types = response3[0];
|
||||||
var services = response4[0];
|
var services = response4[0];
|
||||||
|
|
||||||
var notificationConfig = config.NotificationOptions.Options.filter(function (n) {
|
var notificationConfig = notificationOptions.Options.filter(function (n) {
|
||||||
|
|
||||||
return n.Type == type;
|
return n.Type == type;
|
||||||
|
|
||||||
|
@ -97,17 +99,15 @@
|
||||||
|
|
||||||
var type = getParameterByName('type');
|
var type = getParameterByName('type');
|
||||||
|
|
||||||
var promise1 = ApiClient.getServerConfiguration();
|
var promise1 = ApiClient.getNamedConfiguration(notificationsConfigurationKey);
|
||||||
var promise2 = ApiClient.getJSON(ApiClient.getUrl("Notifications/Types"));
|
var promise2 = ApiClient.getJSON(ApiClient.getUrl("Notifications/Types"));
|
||||||
|
|
||||||
$.when(promise1, promise2).done(function (response1, response2) {
|
$.when(promise1, promise2).done(function (response1, response2) {
|
||||||
|
|
||||||
var config = response1[0];
|
var notificationOptions = response1[0];
|
||||||
var types = response2[0];
|
var types = response2[0];
|
||||||
|
|
||||||
var notificationOptions = config.NotificationOptions;
|
var notificationConfig = notificationOptions.Options.filter(function (n) {
|
||||||
|
|
||||||
var notificationConfig = config.NotificationOptions.Options.filter(function (n) {
|
|
||||||
|
|
||||||
return n.Type == type;
|
return n.Type == type;
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
return c.getAttribute('data-itemid');
|
return c.getAttribute('data-itemid');
|
||||||
});
|
});
|
||||||
|
|
||||||
ApiClient.updateServerConfiguration(config).done(function (r) {
|
ApiClient.updateNamedConfiguration(notificationsConfigurationKey, notificationOptions).done(function (r) {
|
||||||
|
|
||||||
Dashboard.navigate('notificationsettings.html');
|
Dashboard.navigate('notificationsettings.html');
|
||||||
});
|
});
|
||||||
|
|
|
@ -8,11 +8,11 @@
|
||||||
|
|
||||||
html += '<thead><tr>';
|
html += '<thead><tr>';
|
||||||
html += '<th></th>';
|
html += '<th></th>';
|
||||||
html += '<th>Name</th>';
|
html += '<th>' + Globalize.translate('HeaderName') + '</th>';
|
||||||
html += '<th>Album</th>';
|
html += '<th>' + Globalize.translate('HeaderAlbum') + '</th>';
|
||||||
html += '<th>Artist</th>';
|
html += '<th>' + Globalize.translate('HeaderArtist') + '</th>';
|
||||||
html += '<th>Album Artist</th>';
|
html += '<th>' + Globalize.translate('HeaderAlbumArtist') + '</th>';
|
||||||
html += '<th>Time</th>';
|
html += '<th>' + Globalize.translate('HeaderTime') + '</th>';
|
||||||
html += '</tr></thead>';
|
html += '</tr></thead>';
|
||||||
|
|
||||||
html += '<tbody>';
|
html += '<tbody>';
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
var parentName = item.SeriesName || item.Album;
|
var parentName = item.SeriesName || item.Album;
|
||||||
|
|
||||||
html += '<tr>';
|
html += '<tr>';
|
||||||
html += '<td><button type="button" data-index="' + i + '" class="lnkPlay" data-icon="play" data-iconpos="notext">Play</button></td>';
|
html += '<td><button type="button" data-index="' + i + '" class="lnkPlay" data-icon="play" data-iconpos="notext">' + Globalize.translate('ButtonPlay') + '</button></td>';
|
||||||
html += '<td>';
|
html += '<td>';
|
||||||
html += '<a href="itemdetails.html?id=' + item.Id + '">' + name + '</a>';
|
html += '<a href="itemdetails.html?id=' + item.Id + '">' + name + '</a>';
|
||||||
html += '</td>';
|
html += '</td>';
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
html += '</td>';
|
html += '</td>';
|
||||||
|
|
||||||
html += '<td>' + Dashboard.getDisplayTime(item.RunTimeTicks) + '</td>';
|
html += '<td>' + Dashboard.getDisplayTime(item.RunTimeTicks) + '</td>';
|
||||||
html += '<td><button type="button" data-index="' + i + '" class="lnkRemove" data-icon="delete" data-iconpos="notext">Remove</button></td>';
|
html += '<td><button type="button" data-index="' + i + '" class="lnkRemove" data-icon="delete" data-iconpos="notext">' + Globalize.translate('ButtonRemove') + '</button></td>';
|
||||||
html += '</tr>';
|
html += '</tr>';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1199,12 +1199,10 @@ else if (!IsStorageEnabled()) {
|
||||||
alert("This browser does not support local storage or is running in private mode. For a better experience, try a newer browser such as Chrome, Firefox, IE10+, Safari (iOS) or Opera.");
|
alert("This browser does not support local storage or is running in private mode. For a better experience, try a newer browser such as Chrome, Firefox, IE10+, Safari (iOS) or Opera.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var ApiClient = MediaBrowser.ApiClient.create("Dashboard", window.dashboardVersion);
|
var ApiClient = MediaBrowser.ApiClient.create("Dashboard", window.dashboardVersion);
|
||||||
|
|
||||||
$(ApiClient).on("websocketopen", Dashboard.onWebSocketOpened).on("websocketmessage", Dashboard.onWebSocketMessageReceived);
|
$(ApiClient).on("websocketopen", Dashboard.onWebSocketOpened).on("websocketmessage", Dashboard.onWebSocketMessageReceived);
|
||||||
|
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
|
|
||||||
ApiClient.currentUserId(Dashboard.getCurrentUserId());
|
ApiClient.currentUserId(Dashboard.getCurrentUserId());
|
||||||
|
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 219 B After Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 227 B After Width: | Height: | Size: 227 B |
Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 244 B |
Before Width: | Height: | Size: 243 B After Width: | Height: | Size: 243 B |
Before Width: | Height: | Size: 146 B After Width: | Height: | Size: 146 B |
Before Width: | Height: | Size: 167 B After Width: | Height: | Size: 167 B |
Before Width: | Height: | Size: 173 B After Width: | Height: | Size: 173 B |
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 159 B |
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 171 B |
Before Width: | Height: | Size: 149 B After Width: | Height: | Size: 149 B |
Before Width: | Height: | Size: 149 B After Width: | Height: | Size: 149 B |
Before Width: | Height: | Size: 156 B After Width: | Height: | Size: 156 B |
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 147 B |
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 147 B |
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 163 B |
Before Width: | Height: | Size: 169 B After Width: | Height: | Size: 169 B |
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 163 B |
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 165 B |
Before Width: | Height: | Size: 151 B After Width: | Height: | Size: 151 B |
Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 307 B |
Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 314 B |
Before Width: | Height: | Size: 233 B After Width: | Height: | Size: 233 B |
Before Width: | Height: | Size: 240 B After Width: | Height: | Size: 240 B |
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 135 B After Width: | Height: | Size: 135 B |
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 147 B |
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 146 B After Width: | Height: | Size: 146 B |
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 143 B |
Before Width: | Height: | Size: 250 B After Width: | Height: | Size: 250 B |
Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 207 B After Width: | Height: | Size: 207 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 174 B After Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 177 B After Width: | Height: | Size: 177 B |
Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 184 B |
Before Width: | Height: | Size: 194 B After Width: | Height: | Size: 194 B |
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 196 B |
Before Width: | Height: | Size: 204 B After Width: | Height: | Size: 204 B |
Before Width: | Height: | Size: 169 B After Width: | Height: | Size: 169 B |
Before Width: | Height: | Size: 172 B After Width: | Height: | Size: 172 B |
Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 316 B |
Before Width: | Height: | Size: 212 B After Width: | Height: | Size: 212 B |
Before Width: | Height: | Size: 210 B After Width: | Height: | Size: 210 B |
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 165 B |
Before Width: | Height: | Size: 160 B After Width: | Height: | Size: 160 B |
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 171 B |
Before Width: | Height: | Size: 185 B After Width: | Height: | Size: 185 B |
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 163 B |
Before Width: | Height: | Size: 170 B After Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 249 B After Width: | Height: | Size: 249 B |
Before Width: | Height: | Size: 253 B After Width: | Height: | Size: 253 B |
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 299 B |
Before Width: | Height: | Size: 308 B After Width: | Height: | Size: 308 B |
Before Width: | Height: | Size: 233 B After Width: | Height: | Size: 233 B |
Before Width: | Height: | Size: 243 B After Width: | Height: | Size: 243 B |
Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 318 B |
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 302 B |
Before Width: | Height: | Size: 160 B After Width: | Height: | Size: 160 B |
Before Width: | Height: | Size: 167 B After Width: | Height: | Size: 167 B |
Before Width: | Height: | Size: 242 B After Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 246 B |
Before Width: | Height: | Size: 150 B After Width: | Height: | Size: 150 B |
Before Width: | Height: | Size: 154 B After Width: | Height: | Size: 154 B |
Before Width: | Height: | Size: 250 B After Width: | Height: | Size: 250 B |
Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 245 B After Width: | Height: | Size: 245 B |
Before Width: | Height: | Size: 247 B After Width: | Height: | Size: 247 B |
Before Width: | Height: | Size: 204 B After Width: | Height: | Size: 204 B |
Before Width: | Height: | Size: 207 B After Width: | Height: | Size: 207 B |
Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 226 B |
Before Width: | Height: | Size: 227 B After Width: | Height: | Size: 227 B |
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 116 B |
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 116 B |
Before Width: | Height: | Size: 242 B After Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 241 B After Width: | Height: | Size: 241 B |
Before Width: | Height: | Size: 270 B After Width: | Height: | Size: 270 B |
Before Width: | Height: | Size: 274 B After Width: | Height: | Size: 274 B |
Before Width: | Height: | Size: 123 B After Width: | Height: | Size: 123 B |
Before Width: | Height: | Size: 124 B After Width: | Height: | Size: 124 B |
Before Width: | Height: | Size: 292 B After Width: | Height: | Size: 292 B |
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 302 B |
Before Width: | Height: | Size: 243 B After Width: | Height: | Size: 243 B |
Before Width: | Height: | Size: 253 B After Width: | Height: | Size: 253 B |