updated nuget
This commit is contained in:
parent
6c97b11f21
commit
f470541e59
20 changed files with 254 additions and 61 deletions
|
@ -73,7 +73,7 @@
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
<label for="txtDashboardSourcePath">${LabelDashboardSourcePath}</label>
|
<label for="txtDashboardSourcePath">${LabelDashboardSourcePath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtDashboardSourcePath" />
|
<input type="text" id="txtDashboardSourcePath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectDashboardSourcePath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectDashboardSourcePath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label for="txtWatchFolder">${LabelWatchFolder}</label>
|
<label for="txtWatchFolder">${LabelWatchFolder}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtWatchFolder" name="txtWatchFolder" />
|
<input type="text" id="txtWatchFolder" name="txtWatchFolder" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectWatchFolder" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectWatchFolder" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
<label for="txtCachePath">${LabelChannelDownloadPath}</label>
|
<label for="txtCachePath">${LabelChannelDownloadPath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtCachePath" name="txtCachePath" />
|
<input type="text" id="txtCachePath" name="txtCachePath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectCachePath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectCachePath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label for="txtCustomIntrosPath">${LabelCustomIntrosPath}</label>
|
<label for="txtCustomIntrosPath">${LabelCustomIntrosPath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtCustomIntrosPath" />
|
<input type="text" id="txtCustomIntrosPath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectCustomIntrosPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectCustomIntrosPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
<label for="txtCachePath">${LabelCachePath}</label>
|
<label for="txtCachePath">${LabelCachePath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtCachePath" name="txtCachePath" />
|
<input type="text" id="txtCachePath" name="txtCachePath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectCachePath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectCachePath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label for="txtCertificatePath">${LabelCustomCertificatePath}</label>
|
<label for="txtCertificatePath">${LabelCustomCertificatePath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtCertificatePath" />
|
<input type="text" id="txtCertificatePath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectCertPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectCertPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li id="fldCameraUploadPath" style="display:none;">
|
<li id="fldCameraUploadPath" style="display:none;">
|
||||||
<label for="txtUploadPath">${LabelCameraUploadPath}</label>
|
<label for="txtUploadPath">${LabelCameraUploadPath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtUploadPath" />
|
<input type="text" id="txtUploadPath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectUploadPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectUploadPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
<label for="txtUploadPath">${LabelCameraUploadPath}</label>
|
<label for="txtUploadPath">${LabelCameraUploadPath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtUploadPath" />
|
<input type="text" id="txtUploadPath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectUploadPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectUploadPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label for="txtTranscodingTempPath">${LabelTranscodingTempPath}</label>
|
<label for="txtTranscodingTempPath">${LabelTranscodingTempPath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtTranscodingTempPath" />
|
<input type="text" id="txtTranscodingTempPath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectTranscodingTempPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectTranscodingTempPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li class="fldImagesByName" style="display:none;">
|
<li class="fldImagesByName" style="display:none;">
|
||||||
<label for="txtItemsByNamePath">${LabelImagesByNamePath}</label>
|
<label for="txtItemsByNamePath">${LabelImagesByNamePath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtItemsByNamePath" name="txtItemsByNamePath" />
|
<input type="text" id="txtItemsByNamePath" name="txtItemsByNamePath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectIBNPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectIBNPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
<label for="txtMetadataPath">${LabelMetadataPath}</label>
|
<label for="txtMetadataPath">${LabelMetadataPath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtMetadataPath" />
|
<input type="text" id="txtMetadataPath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectMetadataPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectMetadataPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -215,7 +215,7 @@
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<label for="txtSyncPath">${LabelSyncPath}</label>
|
<label for="txtSyncPath">${LabelSyncPath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtSyncPath" readonly />
|
<input type="text" id="txtSyncPath" readonly />
|
||||||
</div>
|
</div>
|
||||||
<button class="btnSelectSyncPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true"></button>
|
<button class="btnSelectSyncPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true"></button>
|
||||||
|
|
|
@ -261,6 +261,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.HtmlMediaRenderer = htmlMediaRenderer;
|
if (!window.AudioRenderer) {
|
||||||
|
window.AudioRenderer = htmlMediaRenderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!window.VideoRenderer) {
|
||||||
|
window.VideoRenderer = htmlMediaRenderer;
|
||||||
|
}
|
||||||
|
|
||||||
})();
|
})();
|
|
@ -33,10 +33,11 @@
|
||||||
|
|
||||||
html += '<button onclick="VoiceInputManager.startListening();" type="button" data-role="none" class="headerButton headerButtonRight headerVoiceButton" style="display:none;"><i class="material-icons">mic</i></button>';
|
html += '<button onclick="VoiceInputManager.startListening();" type="button" data-role="none" class="headerButton headerButtonRight headerVoiceButton" style="display:none;"><i class="material-icons">mic</i></button>';
|
||||||
|
|
||||||
//if (AppInfo.isNativeApp && $.browser.android)
|
if (!showUserAtTop()) {
|
||||||
//{
|
html += '<button class="headerButton headerButtonRight headerUserButton" type="button" data-role="none" onclick="Dashboard.showUserFlyout(this);">';
|
||||||
// html += '<button class="headerButtonViewMenu headerButton headerButtonRight" type="button" data-role="none"><i class="material-icons">more_vert</i></button>';
|
html += '<div class="fa fa-user"></div>';
|
||||||
//}
|
html += '</button>';
|
||||||
|
}
|
||||||
|
|
||||||
if (!$.browser.mobile && !AppInfo.isNativeApp) {
|
if (!$.browser.mobile && !AppInfo.isNativeApp) {
|
||||||
html += '<a href="dashboard.html" class="headerButton headerButtonRight dashboardEntryHeaderButton" style="display:none;"><i class="material-icons">settings</i></a>';
|
html += '<a href="dashboard.html" class="headerButton headerButtonRight dashboardEntryHeaderButton" style="display:none;"><i class="material-icons">settings</i></a>';
|
||||||
|
@ -91,6 +92,26 @@
|
||||||
} else {
|
} else {
|
||||||
$('.dashboardEntryHeaderButton', header).hide();
|
$('.dashboardEntryHeaderButton', header).hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var userButtonHtml = '';
|
||||||
|
if (user.name) {
|
||||||
|
|
||||||
|
if (user.imageUrl && AppInfo.enableUserImage) {
|
||||||
|
|
||||||
|
var userButtonHeight = 26;
|
||||||
|
|
||||||
|
var url = user.imageUrl;
|
||||||
|
|
||||||
|
if (user.supportsImageParams) {
|
||||||
|
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>';
|
||||||
|
}
|
||||||
|
$('.headerUserButton', header).html(userButtonHtml).lazyChildren();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function bindMenuEvents() {
|
function bindMenuEvents() {
|
||||||
|
@ -129,23 +150,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//function onViewButtonClick() {
|
|
||||||
|
|
||||||
// var html = '<div class="appViewMenuPanel" data-role="panel" data-position="right" data-display="overlay" data-position-fixed="true" data-theme="a">';
|
|
||||||
|
|
||||||
|
|
||||||
// html += '</div>';
|
|
||||||
|
|
||||||
// $(document.body).append(html);
|
|
||||||
|
|
||||||
// var elem = $('.appViewMenuPanel').panel({}).trigger('create').panel("open").on("panelclose", function () {
|
|
||||||
|
|
||||||
// $(this).off("panelclose").remove();
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
//}
|
|
||||||
|
|
||||||
function initViewMenuBarHeadroom() {
|
function initViewMenuBarHeadroom() {
|
||||||
|
|
||||||
// grab an element
|
// grab an element
|
||||||
|
@ -203,7 +207,10 @@
|
||||||
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="selectserver" href="selectserver.html"><span class="fa fa-globe sidebarLinkIcon"></span>' + Globalize.translate('ButtonSelectServer') + '</a>';
|
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="selectserver" href="selectserver.html"><span class="fa fa-globe sidebarLinkIcon"></span>' + Globalize.translate('ButtonSelectServer') + '</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="logout" href="#" onclick="Dashboard.logout();"><span class="fa fa-lock sidebarLinkIcon"></span>' + Globalize.translate('ButtonSignOut') + '</a>';
|
if (showUserAtTop()) {
|
||||||
|
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="logout" href="#" onclick="Dashboard.logout();"><span class="fa fa-lock sidebarLinkIcon"></span>' + Globalize.translate('ButtonSignOut') + '</a>';
|
||||||
|
}
|
||||||
|
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
@ -407,22 +414,6 @@
|
||||||
html += '<div class="lazy" data-src="css/images/mblogoicon.png" style="width:' + 28 + 'px;height:' + 28 + 'px;background-size:contain;background-repeat:no-repeat;background-position:center center;border-radius:1000px;vertical-align:middle;margin:0 1.4em 0 1.3em;display:inline-block;"></div>';
|
html += '<div class="lazy" data-src="css/images/mblogoicon.png" style="width:' + 28 + 'px;height:' + 28 + 'px;background-size:contain;background-repeat:no-repeat;background-position:center center;border-radius:1000px;vertical-align:middle;margin:0 1.4em 0 1.3em;display:inline-block;"></div>';
|
||||||
html += Globalize.translate('ButtonHome');
|
html += Globalize.translate('ButtonHome');
|
||||||
html += '</a>';
|
html += '</a>';
|
||||||
|
|
||||||
html += '<a class="sidebarLink lnkMediaFolder" href="' + userHref + '">';
|
|
||||||
if (hasUserImage) {
|
|
||||||
var imgWidth = 20;
|
|
||||||
var url = user.imageUrl;
|
|
||||||
|
|
||||||
if (user.supportsImageParams) {
|
|
||||||
url += "&width=" + (imgWidth * Math.max(devicePixelRatio || 1, 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
html += '<div class="lazy" data-src="' + url + '" style="width:' + imgWidth + 'px;height:' + imgWidth + 'px;background-size:contain;background-repeat:no-repeat;background-position:center center;border-radius:1000px;vertical-align:middle;margin:0 1.6em 0 1.6em;display:inline-block;"></div>';
|
|
||||||
} else {
|
|
||||||
html += '<span class="fa fa-user sidebarLinkIcon"></span>';
|
|
||||||
}
|
|
||||||
html += Globalize.translate('ButtonPreferences');
|
|
||||||
html += '</a>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="remote" href="nowplaying.html"><span class="fa fa-tablet sidebarLinkIcon"></span>' + Globalize.translate('ButtonRemote') + '</a>';
|
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="remote" href="nowplaying.html"><span class="fa fa-tablet sidebarLinkIcon"></span>' + Globalize.translate('ButtonRemote') + '</a>';
|
||||||
|
|
|
@ -1050,7 +1050,7 @@
|
||||||
|
|
||||||
self.playVideo = function (item, mediaSource, startPosition) {
|
self.playVideo = function (item, mediaSource, startPosition) {
|
||||||
|
|
||||||
requirejs(['scripts/htmlmediarenderer'], function () {
|
requirejs(['videorenderer'], function () {
|
||||||
|
|
||||||
var streamInfo = self.createStreamInfo('Video', item, mediaSource, startPosition);
|
var streamInfo = self.createStreamInfo('Video', item, mediaSource, startPosition);
|
||||||
|
|
||||||
|
@ -1191,7 +1191,7 @@
|
||||||
videoControls.removeClass('hide');
|
videoControls.removeClass('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
var mediaRenderer = new HtmlMediaRenderer('video');
|
var mediaRenderer = new VideoRenderer('video');
|
||||||
|
|
||||||
initialVolume = self.getSavedVolume();
|
initialVolume = self.getSavedVolume();
|
||||||
|
|
||||||
|
|
|
@ -760,7 +760,7 @@
|
||||||
contentType = 'video/' + mediaSource.Container;
|
contentType = 'video/' + mediaSource.Container;
|
||||||
|
|
||||||
if (mediaSource.enableDirectPlay) {
|
if (mediaSource.enableDirectPlay) {
|
||||||
mediaUrl = FileSystem.translateFilePath(mediaSource.Path);
|
mediaUrl = FileSystemBridge.translateFilePath(mediaSource.Path);
|
||||||
playMethod = 'DirectPlay';
|
playMethod = 'DirectPlay';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -797,7 +797,7 @@
|
||||||
|
|
||||||
if (mediaSource.enableDirectPlay) {
|
if (mediaSource.enableDirectPlay) {
|
||||||
|
|
||||||
mediaUrl = FileSystem.translateFilePath(mediaSource.Path);
|
mediaUrl = FileSystemBridge.translateFilePath(mediaSource.Path);
|
||||||
playMethod = 'DirectPlay';
|
playMethod = 'DirectPlay';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -1628,7 +1628,7 @@
|
||||||
|
|
||||||
function getAudioRenderer() {
|
function getAudioRenderer() {
|
||||||
|
|
||||||
return new HtmlMediaRenderer('audio');
|
return new AudioRenderer('audio');
|
||||||
}
|
}
|
||||||
|
|
||||||
function onTimeUpdate() {
|
function onTimeUpdate() {
|
||||||
|
@ -1639,7 +1639,7 @@
|
||||||
|
|
||||||
function playAudio(item, mediaSource, startPositionTicks) {
|
function playAudio(item, mediaSource, startPositionTicks) {
|
||||||
|
|
||||||
requirejs(['scripts/htmlmediarenderer'], function () {
|
requirejs(['audiorenderer'], function () {
|
||||||
playAudioInternal(item, mediaSource, startPositionTicks);
|
playAudioInternal(item, mediaSource, startPositionTicks);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -636,6 +636,62 @@ var Dashboard = {
|
||||||
}, 500);
|
}, 500);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
showUserFlyout: function () {
|
||||||
|
|
||||||
|
var html = '<div data-role="panel" data-position="right" data-display="overlay" id="userFlyout" data-position-fixed="true" data-theme="a">';
|
||||||
|
|
||||||
|
html += '<h3 class="userHeader">';
|
||||||
|
|
||||||
|
html += '</h3>';
|
||||||
|
|
||||||
|
html += '<form>';
|
||||||
|
|
||||||
|
html += '<p class="preferencesContainer"></p>';
|
||||||
|
|
||||||
|
html += '<p><button data-mini="true" type="button" onclick="Dashboard.logout();" data-icon="lock">' + Globalize.translate('ButtonSignOut') + '</button></p>';
|
||||||
|
|
||||||
|
html += '</form>';
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
$(document.body).append(html);
|
||||||
|
|
||||||
|
var elem = $('#userFlyout').panel({}).lazyChildren().trigger('create').panel("open").on("panelclose", function () {
|
||||||
|
|
||||||
|
$(this).off("panelclose").remove();
|
||||||
|
});
|
||||||
|
|
||||||
|
ConnectionManager.user(window.ApiClient).done(function (user) {
|
||||||
|
Dashboard.updateUserFlyout(elem, user);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
updateUserFlyout: function (elem, user) {
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
var imgWidth = 48;
|
||||||
|
|
||||||
|
if (user.imageUrl && AppInfo.enableUserImage) {
|
||||||
|
var url = user.imageUrl;
|
||||||
|
|
||||||
|
if (user.supportsImageParams) {
|
||||||
|
url += "&width=" + (imgWidth * Math.max(window.devicePixelRatio || 1, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
html += '<div class="lazy" data-src="' + url + '" style="width:' + imgWidth + 'px;height:' + imgWidth + 'px;background-size:contain;background-repeat:no-repeat;background-position:center center;border-radius:1000px;vertical-align:middle;margin-right:.8em;display:inline-block;"></div>';
|
||||||
|
}
|
||||||
|
html += user.name;
|
||||||
|
|
||||||
|
$('.userHeader', elem).html(html).lazyChildren();
|
||||||
|
|
||||||
|
html = '';
|
||||||
|
|
||||||
|
if (user.localUser && user.localUser.Policy.EnableUserPreferenceAccess) {
|
||||||
|
html += '<p><a data-mini="true" data-role="button" href="mypreferencesdisplay.html?userId=' + user.localUser.Id + '" data-icon="gear">' + Globalize.translate('ButtonSettings') + '</button></a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.preferencesContainer', elem).html(html).trigger('create');
|
||||||
|
},
|
||||||
|
|
||||||
getPluginSecurityInfo: function () {
|
getPluginSecurityInfo: function () {
|
||||||
|
|
||||||
var apiClient = ApiClient;
|
var apiClient = ApiClient;
|
||||||
|
@ -1334,7 +1390,10 @@ var Dashboard = {
|
||||||
PlayableMediaTypes: ['Audio', 'Video'],
|
PlayableMediaTypes: ['Audio', 'Video'],
|
||||||
|
|
||||||
SupportedCommands: Dashboard.getSupportedRemoteCommands(),
|
SupportedCommands: Dashboard.getSupportedRemoteCommands(),
|
||||||
SupportsPersistentIdentifier: AppInfo.isNativeApp === true,
|
|
||||||
|
// Need to use this rather than AppInfo.isNativeApp because the property isn't set yet at the time we call this
|
||||||
|
SupportsPersistentIdentifier: Dashboard.isRunningInCordova(),
|
||||||
|
|
||||||
SupportsMediaControl: true,
|
SupportsMediaControl: true,
|
||||||
SupportedLiveMediaTypes: ['Audio', 'Video']
|
SupportedLiveMediaTypes: ['Audio', 'Video']
|
||||||
};
|
};
|
||||||
|
@ -1898,6 +1957,16 @@ var AppInfo = {};
|
||||||
define("nativedirectorychooser", ["thirdparty/cordova/android/nativedirectorychooser"]);
|
define("nativedirectorychooser", ["thirdparty/cordova/android/nativedirectorychooser"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Dashboard.isRunningInCordova() && $.browser.android) {
|
||||||
|
//define("audiorenderer", ["thirdparty/cordova/android/vlcplayer"]);
|
||||||
|
define("audiorenderer", ["scripts/htmlmediarenderer"]);
|
||||||
|
define("videorenderer", ["scripts/htmlmediarenderer"]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
define("audiorenderer", ["scripts/htmlmediarenderer"]);
|
||||||
|
define("videorenderer", ["scripts/htmlmediarenderer"]);
|
||||||
|
}
|
||||||
|
|
||||||
define("connectservice", ["thirdparty/apiclient/connectservice"]);
|
define("connectservice", ["thirdparty/apiclient/connectservice"]);
|
||||||
|
|
||||||
//requirejs(['http://viblast.com/player/free-version/qy2fdwajo1/viblast.js']);
|
//requirejs(['http://viblast.com/player/free-version/qy2fdwajo1/viblast.js']);
|
||||||
|
@ -1911,7 +1980,7 @@ var AppInfo = {};
|
||||||
require(['appstorage'], function () {
|
require(['appstorage'], function () {
|
||||||
|
|
||||||
capabilities.DeviceProfile = MediaPlayer.getDeviceProfile(Math.max(screen.height, screen.width));
|
capabilities.DeviceProfile = MediaPlayer.getDeviceProfile(Math.max(screen.height, screen.width));
|
||||||
createConnectionManager(capabilities).done(function() {
|
createConnectionManager(capabilities).done(function () {
|
||||||
$(function () {
|
$(function () {
|
||||||
onDocumentReady();
|
onDocumentReady();
|
||||||
Dashboard.initPromiseDone = true;
|
Dashboard.initPromiseDone = true;
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
<label for="txtSyncTempPath">${LabelSyncTempPath}</label>
|
<label for="txtSyncTempPath">${LabelSyncTempPath}</label>
|
||||||
<div style="display: inline-block; width: 92%;">
|
<div style="display: inline-block; width: 85%;">
|
||||||
<input type="text" id="txtSyncTempPath" />
|
<input type="text" id="txtSyncTempPath" />
|
||||||
</div>
|
</div>
|
||||||
<button id="btnSelectSyncTempPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
<button id="btnSelectSyncTempPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
var canSeek = playState.CanSeek || false;
|
var canSeek = playState.CanSeek || false;
|
||||||
|
|
||||||
var url = '';
|
var url = '';
|
||||||
var imgHeight = 200;
|
var imgHeight = 400;
|
||||||
|
|
||||||
var nowPlayingItem = state.NowPlayingItem;
|
var nowPlayingItem = state.NowPlayingItem;
|
||||||
|
|
||||||
|
|
127
dashboard-ui/thirdparty/cordova/android/vlcplayer.js
vendored
Normal file
127
dashboard-ui/thirdparty/cordova/android/vlcplayer.js
vendored
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
(function () {
|
||||||
|
|
||||||
|
function vlcRenderer(type) {
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
function onEnded() {
|
||||||
|
$(self).trigger('ended');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onTimeUpdate() {
|
||||||
|
$(self).trigger('timeupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onVolumeChange() {
|
||||||
|
$(self).trigger('volumechange');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onPlaying() {
|
||||||
|
$(self).trigger('playing');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onPlay() {
|
||||||
|
$(self).trigger('play');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onPause() {
|
||||||
|
$(self).trigger('pause');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onClick() {
|
||||||
|
$(self).trigger('click');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onDblClick() {
|
||||||
|
$(self).trigger('dblclick');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onError() {
|
||||||
|
|
||||||
|
var errorCode = this.error ? this.error.code : '';
|
||||||
|
console.log('Media element error code: ' + errorCode);
|
||||||
|
|
||||||
|
$(self).trigger('error');
|
||||||
|
}
|
||||||
|
|
||||||
|
var playerState = {};
|
||||||
|
|
||||||
|
self.currentTime = function (val) {
|
||||||
|
|
||||||
|
if (val != null) {
|
||||||
|
AndroidVlcPlayer.setPosition(val);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return playerState.currentTime;
|
||||||
|
};
|
||||||
|
|
||||||
|
self.duration = function (val) {
|
||||||
|
|
||||||
|
if (playerState) {
|
||||||
|
return playerState.duration;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
self.pause = function () {
|
||||||
|
AndroidVlcPlayer.pause();
|
||||||
|
};
|
||||||
|
|
||||||
|
self.unpause = function () {
|
||||||
|
AndroidVlcPlayer.unpause();
|
||||||
|
};
|
||||||
|
|
||||||
|
self.volume = function (val) {
|
||||||
|
if (playerState) {
|
||||||
|
if (val != null) {
|
||||||
|
AndroidVlcPlayer.setVolume(val);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return playerState.volume;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
self.setCurrentSrc = function (val) {
|
||||||
|
|
||||||
|
if (!val) {
|
||||||
|
self.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type == 'audio') {
|
||||||
|
AndroidVlcPlayer.playAudioVlc(val);
|
||||||
|
} else {
|
||||||
|
AndroidVlcPlayer.playVideoVlc(val);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
self.currentSrc = function () {
|
||||||
|
if (playerState) {
|
||||||
|
return playerState.currentSrc;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
self.paused = function () {
|
||||||
|
|
||||||
|
if (playerState) {
|
||||||
|
return playerState.paused;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
self.destroy = function () {
|
||||||
|
|
||||||
|
AndroidVlcPlayer.destroy();
|
||||||
|
playerState = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
self.setPoster = function (url) {
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
window.AudioRenderer = vlcRenderer;
|
||||||
|
|
||||||
|
})();
|
Loading…
Add table
Add a link
Reference in a new issue