added dashboard info page

This commit is contained in:
Luke Pulverenti 2014-01-18 14:25:20 -05:00
parent 0073dc3476
commit 1fa7dcdb2b
8 changed files with 125 additions and 63 deletions

View File

@ -6,19 +6,14 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
/**
* Creates a new api client instance
* @param {String} serverProtocol
* @param {String} serverHostName
* @param {String} serverPortNumber
* @param {String} serverAddress
* @param {String} clientName
* @param {String} applicationVersion
*/
return function (serverProtocol, serverHostName, serverPortNumber, clientName, applicationVersion) {
return function (serverAddress, clientName, applicationVersion) {
if (!serverProtocol) {
throw new Error("Must supply a serverProtocol, e.g. http:");
}
if (!serverHostName) {
throw new Error("Must supply serverHostName, e.g. 192.168.1.1 or myServerName");
if (!serverAddress) {
throw new Error("Must supply a serverAddress");
}
var self = this;
@ -28,11 +23,11 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
var webSocket;
/**
* Gets the server host name.
* Gets the server address.
*/
self.serverHostName = function () {
self.serverAddress = function () {
return serverHostName;
return serverAddress;
};
/**
@ -133,11 +128,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
throw new Error("Url name cannot be empty");
}
var url = serverProtocol + "//" + serverHostName;
if (serverPortNumber) {
url += ":" + serverPortNumber;
}
var url = serverAddress;
url += "/mediabrowser/" + name;
@ -148,9 +139,9 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
return url;
};
self.openWebSocket = function (port) {
self.openWebSocket = function (webSocketAddress) {
var url = "ws://" + serverHostName + ":" + port + "/mediabrowser";
var url = webSocketAddress + "/mediabrowser";
webSocket = new WebSocket(url);
@ -3998,7 +3989,13 @@ MediaBrowser.ApiClient.create = function (clientName, applicationVersion) {
var loc = window.location;
return new MediaBrowser.ApiClient(loc.protocol, loc.hostname, loc.port, clientName, applicationVersion);
var address = loc.protocol + '//' + loc.hostname;
if (loc.port) {
address += ':' + loc.port;
}
return new MediaBrowser.ApiClient(address, clientName, applicationVersion);
};
/**

View File

@ -8,6 +8,11 @@
<div data-role="content">
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="#" data-role="button" class="ui-btn-active">Home</a>
<a href="dashboardinfopage.html" data-role="button">Info</a>
</div>
<div class="readOnlyContent">
<div data-role="collapsible" data-collapsed="false" style="margin-top: 2em;">
@ -67,25 +72,6 @@
<p><a href="scheduledtasks.html">Manage Scheduled Tasks</a></p>
</div>
<div data-role="collapsible" data-collapsed="true" style="margin-top: 1em;">
<h3>Links</h3>
<div>
<p>Bookmark url: <a id="bookmarkUrl" href="#" data-ajax="false"></a></p>
<p class="externalUrl"></p>
<p><a href="http://mediabrowser3.com/community" target="_blank">Community</a> - Join us!</p>
<p><a href="https://github.com/MediaBrowser/MediaBrowser" target="_blank">Github</a></p>
<p><a href="../swagger-ui/index.html" target="_blank">Api Documentation</a></p>
</div>
</div>
<div data-role="collapsible" data-collapsed="true" style="margin-top: 1em;">
<h3>System Paths</h3>
<div>
<p><b>Logs:</b> <span id="logPath"></span></p>
<p><b>Images by name:</b> <span id="imagesByNamePath"></span></p>
</div>
</div>
<div style="display: none; margin-top: 4em;" id="contribute">
<h2>Help improve Media Browser</h2>
<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr"

View File

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<head>
<title>Dashboard</title>
</head>
<body>
<div id="dashboardInfoPage" data-role="page" class="page type-interior adminPage">
<div data-role="content">
<div class="content-primary">
<div class="readOnlyContent">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="dashboard.html" data-role="button">Home</a>
<a href="#" data-role="button" class="ui-btn-active">Info</a>
</div>
<div data-role="collapsible" data-collapsed="false" style="margin-top: 1em;">
<h3>Links</h3>
<div>
<p>Bookmark url: <a id="bookmarkUrl" href="#" data-ajax="false"></a></p>
<p class="externalUrl"></p>
<p><a href="http://mediabrowser3.com/community" target="_blank">Community</a> - Join us!</p>
<p><a href="https://github.com/MediaBrowser/MediaBrowser" target="_blank">Github</a></p>
<p><a href="../swagger-ui/index.html" target="_blank">Api Documentation</a></p>
</div>
</div>
<div data-role="collapsible" data-collapsed="false" style="margin-top: 1em;">
<h3>System Paths</h3>
<div>
<p><b>Cache:</b> <span id="cachePath"></span></p>
<p><b>Images by name:</b> <span id="imagesByNamePath"></span></p>
<p><b>Logs:</b> <span id="logPath"></span></p>
<p><b>Transcoding temporary files:</b> <span id="transcodingTemporaryPath"></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,40 @@
(function ($, document, window) {
function loadPage(page, systemInfo) {
$('#cachePath', page).html(systemInfo.CachePath);
$('#logPath', page).html(systemInfo.LogPath);
$('#imagesByNamePath', page).html(systemInfo.ItemsByNamePath);
$('#transcodingTemporaryPath', page).html(systemInfo.TranscodingTempPath);
var url = ApiClient.serverAddress() + "/mediabrowser";
$('#bookmarkUrl', page).html(url).attr("href", url);
if (systemInfo.WanAddress) {
var externalUrl = systemInfo.WanAddress + "/mediabrowser";
$('.externalUrl', page).html('External url: <a href="' + externalUrl + '" target="_blank">' + externalUrl + '</a>').show().trigger('create');
} else {
$('.externalUrl', page).hide();
}
Dashboard.hideLoadingMsg();
}
$(document).on('pageshow', "#dashboardInfoPage", function () {
Dashboard.showLoadingMsg();
var page = this;
ApiClient.getSystemInfo().done(function (systemInfo) {
loadPage(page, systemInfo);
});
});
})(jQuery, document, window);

View File

@ -347,15 +347,6 @@
$('#ports', page).html('Running on ports <b>' + port + '</b> and <b>' + dashboardInfo.SystemInfo.WebSocketPortNumber + '</b>');
}
$('#logPath', page).html(dashboardInfo.SystemInfo.LogPath);
$('#imagesByNamePath', page).html(dashboardInfo.SystemInfo.ItemsByNamePath);
var host = ApiClient.serverHostName();
var url = "http://" + host + ":" + port + "/mediabrowser";
$('#bookmarkUrl', page).html(url).attr("href", url);
if (dashboardInfo.RunningTasks.filter(function (task) {
return task.Id == dashboardInfo.ApplicationUpdateTaskId;
@ -373,15 +364,6 @@
$('.btnRestartContainer', page).addClass('hide');
}
if (dashboardInfo.SystemInfo.WanAddress) {
var externalUrl = dashboardInfo.SystemInfo.WanAddress + "/mediabrowser";
$('.externalUrl', page).html('External url: <a href="' + externalUrl + '" target="_blank">' + externalUrl + '</a>').show().trigger('create');
} else {
$('.externalUrl', page).hide();
}
DashboardPage.renderApplicationUpdateInfo(dashboardInfo);
DashboardPage.renderPluginUpdateInfo(dashboardInfo);
DashboardPage.renderPendingInstallations(dashboardInfo.SystemInfo);

View File

@ -888,16 +888,16 @@
var attributes = [];
if (stream.Language) {
if (stream.Language && stream.Type != "Video") {
attributes.push('<span class="mediaInfoAttribute">' + stream.Language + '</span>');
}
if (stream.Codec && stream.Codec != "dca") {
attributes.push('<span class="mediaInfoAttribute">' + stream.Codec + '</span>');
attributes.push('<span class="mediaInfoAttribute">' + stream.Codec.toUpperCase() + '</span>');
}
if (stream.Profile && stream.Codec == "dca") {
attributes.push('<span class="mediaInfoAttribute">' + stream.Profile + '</span>');
attributes.push('<span class="mediaInfoAttribute">' + stream.Profile.toUpperCase() + '</span>');
}
if (stream.Width || stream.Height) {
@ -919,7 +919,7 @@
attributes.push('<span class="mediaInfoAttribute">' + (parseInt(stream.BitRate / 1000)) + ' kbps</span>');
}
if (stream.IsDefault) {
if (stream.IsDefault && stream.Type != "Video") {
attributes.push('<span class="mediaInfoAttribute">Default</span>');
}
if (stream.IsForced) {

View File

@ -797,7 +797,21 @@ var Dashboard = {
systemInfo = systemInfo || Dashboard.lastSystemInfo;
ApiClient.openWebSocket(systemInfo.WebSocketPortNumber);
var location = window.location;
var webSocketUrl = "ws://" + location.hostname;
if (systemInfo.HttpServerPortNumber != systemInfo.WebSocketPortNumber) {
if (location.port) {
webSocketUrl += ':' + location.port;
}
} else {
webSocketUrl += ':' + systemInfo.WebSocketPortNumber;
}
ApiClient.openWebSocket(webSocketUrl);
},
onWebSocketMessageReceived: function (e, data) {

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.230" targetFramework="net45" />
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.237" targetFramework="net45" />
</packages>