merge from dev
This commit is contained in:
parent
1bd9ae8609
commit
8bce7960fe
|
@ -197,13 +197,15 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
{
|
{
|
||||||
var path = request.ResourceName;
|
var path = request.ResourceName;
|
||||||
|
|
||||||
|
path = path.Replace("bower_components" + _appHost.ApplicationVersion, "bower_components", StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
var contentType = MimeTypes.GetMimeType(path);
|
var contentType = MimeTypes.GetMimeType(path);
|
||||||
|
|
||||||
// Bounce them to the startup wizard if it hasn't been completed yet
|
// Bounce them to the startup wizard if it hasn't been completed yet
|
||||||
if (!_serverConfigurationManager.Configuration.IsStartupWizardCompleted && path.IndexOf("wizard", StringComparison.OrdinalIgnoreCase) == -1 && GetPackageCreator().IsCoreHtml(path))
|
if (!_serverConfigurationManager.Configuration.IsStartupWizardCompleted && path.IndexOf("wizard", StringComparison.OrdinalIgnoreCase) == -1 && GetPackageCreator().IsCoreHtml(path))
|
||||||
{
|
{
|
||||||
// But don't redirect if an html import is being requested.
|
// But don't redirect if an html import is being requested.
|
||||||
if (path.IndexOf("vulcanize", StringComparison.OrdinalIgnoreCase) == -1 && path.IndexOf("bower_components", StringComparison.OrdinalIgnoreCase) == -1)
|
if (path.IndexOf("bower_components", StringComparison.OrdinalIgnoreCase) == -1)
|
||||||
{
|
{
|
||||||
Request.Response.Redirect("wizardstart.html");
|
Request.Response.Redirect("wizardstart.html");
|
||||||
return null;
|
return null;
|
||||||
|
@ -263,22 +265,6 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
return new PackageCreator(_fileSystem, _localization, Logger, _serverConfigurationManager, _jsonSerializer);
|
return new PackageCreator(_fileSystem, _localization, Logger, _serverConfigurationManager, _jsonSerializer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Determines whether the specified path is HTML.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="path">The path.</param>
|
|
||||||
/// <returns><c>true</c> if the specified path is HTML; otherwise, <c>false</c>.</returns>
|
|
||||||
private bool IsHtml(string path)
|
|
||||||
{
|
|
||||||
return Path.GetExtension(path).EndsWith("html", StringComparison.OrdinalIgnoreCase);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void CopyFile(string src, string dst)
|
|
||||||
{
|
|
||||||
_fileSystem.CreateDirectory(Path.GetDirectoryName(dst));
|
|
||||||
_fileSystem.CopyFile(src, dst, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<object> Get(GetDashboardPackage request)
|
public async Task<object> Get(GetDashboardPackage request)
|
||||||
{
|
{
|
||||||
var path = Path.Combine(_serverConfigurationManager.ApplicationPaths.ProgramDataPath,
|
var path = Path.Combine(_serverConfigurationManager.ApplicationPaths.ProgramDataPath,
|
||||||
|
@ -305,57 +291,140 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
|
|
||||||
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
// Overwrite certain files with cordova specific versions
|
_fileSystem.DeleteFile(Path.Combine(path, "scripts", "registrationservices.js"));
|
||||||
var cordovaVersion = Path.Combine(path, "cordova", "registrationservices.js");
|
|
||||||
_fileSystem.CopyFile(cordovaVersion, Path.Combine(path, "scripts", "registrationservices.js"), true);
|
|
||||||
_fileSystem.DeleteFile(cordovaVersion);
|
|
||||||
|
|
||||||
// Delete things that are unneeded in an attempt to keep the output as trim as possible
|
|
||||||
_fileSystem.DeleteDirectory(Path.Combine(path, "css", "images", "tour"), true);
|
|
||||||
_fileSystem.DeleteDirectory(Path.Combine(path, "apiclient", "alt"), true);
|
|
||||||
|
|
||||||
_fileSystem.DeleteFile(Path.Combine(path, "thirdparty", "jquerymobile-1.4.5", "jquery.mobile-1.4.5.min.map"));
|
|
||||||
|
|
||||||
_fileSystem.DeleteDirectory(Path.Combine(path, "bower_components"), true);
|
|
||||||
_fileSystem.DeleteDirectory(Path.Combine(path, "thirdparty", "viblast"), true);
|
|
||||||
|
|
||||||
// But we do need this
|
|
||||||
CopyFile(Path.Combine(creator.DashboardUIPath, "bower_components", "webcomponentsjs", "webcomponents-lite.js"), Path.Combine(path, "bower_components", "webcomponentsjs", "webcomponents-lite.js"));
|
|
||||||
CopyFile(Path.Combine(creator.DashboardUIPath, "bower_components", "webcomponentsjs", "webcomponents-lite.min.js"), Path.Combine(path, "bower_components", "webcomponentsjs", "webcomponents-lite.min.js"));
|
|
||||||
CopyFile(Path.Combine(creator.DashboardUIPath, "bower_components", "velocity", "velocity.min.js"), Path.Combine(path, "bower_components", "velocity", "velocity.min.js"));
|
|
||||||
CopyFile(Path.Combine(creator.DashboardUIPath, "bower_components", "requirejs", "require.js"), Path.Combine(path, "bower_components", "requirejs", "require.js"));
|
|
||||||
CopyFile(Path.Combine(creator.DashboardUIPath, "bower_components", "fastclick", "lib", "fastclick.js"), Path.Combine(path, "bower_components", "fastclick", "lib", "fastclick.js"));
|
|
||||||
CopyFile(Path.Combine(creator.DashboardUIPath, "bower_components", "jquery", "dist", "jquery.min.js"), Path.Combine(path, "bower_components", "jquery", "dist", "jquery.min.js"));
|
|
||||||
|
|
||||||
CopyFile(Path.Combine(creator.DashboardUIPath, "bower_components", "jstree", "dist", "jstree.min.js"), Path.Combine(path, "bower_components", "jstree", "dist", "jstree.min.js"));
|
|
||||||
|
|
||||||
CopyDirectory(Path.Combine(creator.DashboardUIPath, "bower_components", "swipebox", "src", "css"), Path.Combine(path, "bower_components", "swipebox", "src", "css"));
|
|
||||||
CopyDirectory(Path.Combine(creator.DashboardUIPath, "bower_components", "swipebox", "src", "js"), Path.Combine(path, "bower_components", "swipebox", "src", "js"));
|
|
||||||
CopyDirectory(Path.Combine(creator.DashboardUIPath, "bower_components", "swipebox", "src", "img"), Path.Combine(path, "bower_components", "swipebox", "src", "img"));
|
|
||||||
|
|
||||||
CopyFile(Path.Combine(creator.DashboardUIPath, "bower_components", "hammerjs", "hammer.min.js"), Path.Combine(path, "bower_components", "hammerjs", "hammer.min.js"));
|
|
||||||
|
|
||||||
CopyFile(Path.Combine(creator.DashboardUIPath, "bower_components", "Sortable", "Sortable.min.js"), Path.Combine(path, "bower_components", "Sortable", "Sortable.min.js"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MinifyCssDirectory(Path.Combine(path, "css"));
|
// Try to trim the output size a bit
|
||||||
MinifyJsDirectory(Path.Combine(path, "scripts"));
|
var bowerPath = Path.Combine(path, "bower_components");
|
||||||
MinifyJsDirectory(Path.Combine(path, "apiclient"));
|
|
||||||
MinifyJsDirectory(Path.Combine(path, "voice"));
|
if (!string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
var versionedBowerPath = Path.Combine(Path.GetDirectoryName(bowerPath), "bower_components" + _appHost.ApplicationVersion);
|
||||||
|
Directory.Move(bowerPath, versionedBowerPath);
|
||||||
|
bowerPath = versionedBowerPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
DeleteFilesByExtension(bowerPath, ".log");
|
||||||
|
DeleteFilesByExtension(bowerPath, ".txt");
|
||||||
|
DeleteFilesByExtension(bowerPath, ".map");
|
||||||
|
DeleteFilesByExtension(bowerPath, ".md");
|
||||||
|
DeleteFilesByExtension(bowerPath, ".json");
|
||||||
|
DeleteFilesByExtension(bowerPath, ".gz");
|
||||||
|
DeleteFilesByExtension(bowerPath, ".bat");
|
||||||
|
DeleteFilesByName(bowerPath, "copying", true);
|
||||||
|
DeleteFilesByName(bowerPath, "license", true);
|
||||||
|
DeleteFilesByName(bowerPath, "license-mit", true);
|
||||||
|
DeleteFilesByName(bowerPath, "gitignore");
|
||||||
|
DeleteFilesByName(bowerPath, "npmignore");
|
||||||
|
DeleteFilesByName(bowerPath, "jshintrc");
|
||||||
|
DeleteFilesByName(bowerPath, "gruntfile");
|
||||||
|
DeleteFilesByName(bowerPath, "bowerrc");
|
||||||
|
DeleteFilesByName(bowerPath, "jscsrc");
|
||||||
|
DeleteFilesByName(bowerPath, "hero.svg");
|
||||||
|
DeleteFilesByName(bowerPath, "travis.yml");
|
||||||
|
DeleteFilesByName(bowerPath, "build.js");
|
||||||
|
DeleteFilesByName(bowerPath, "editorconfig");
|
||||||
|
DeleteFilesByName(bowerPath, "gitattributes");
|
||||||
|
DeleteFoldersByName(bowerPath, "demo");
|
||||||
|
DeleteFoldersByName(bowerPath, "test");
|
||||||
|
DeleteFoldersByName(bowerPath, "guides");
|
||||||
|
DeleteFoldersByName(bowerPath, "grunt");
|
||||||
|
DeleteFoldersByName(bowerPath, "rollups");
|
||||||
|
|
||||||
|
DeleteCryptoFiles(Path.Combine(bowerPath, "cryptojslib", "components"));
|
||||||
|
|
||||||
|
DeleteFoldersByName(Path.Combine(bowerPath, "jquery"), "src");
|
||||||
|
DeleteFoldersByName(Path.Combine(bowerPath, "jstree"), "src");
|
||||||
|
DeleteFoldersByName(Path.Combine(bowerPath, "Sortable"), "meteor");
|
||||||
|
DeleteFoldersByName(Path.Combine(bowerPath, "Sortable"), "st");
|
||||||
|
DeleteFoldersByName(Path.Combine(bowerPath, "swipebox"), "lib");
|
||||||
|
DeleteFoldersByName(Path.Combine(bowerPath, "swipebox"), "scss");
|
||||||
|
|
||||||
|
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
// Delete things that are unneeded in an attempt to keep the output as trim as possible
|
||||||
|
_fileSystem.DeleteDirectory(Path.Combine(path, "css", "images", "tour"), true);
|
||||||
|
|
||||||
|
_fileSystem.DeleteFile(Path.Combine(path, "thirdparty", "jquerymobile-1.4.5", "jquery.mobile-1.4.5.min.map"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MinifyCssDirectory(path);
|
||||||
|
MinifyJsDirectory(path);
|
||||||
|
}
|
||||||
|
|
||||||
await DumpHtml(creator.DashboardUIPath, path, mode, culture, appVersion);
|
await DumpHtml(creator.DashboardUIPath, path, mode, culture, appVersion);
|
||||||
await DumpJs(creator.DashboardUIPath, path, mode, culture, appVersion);
|
|
||||||
|
|
||||||
await DumpFile("scripts/all.js", Path.Combine(path, "scripts", "all.js"), mode, culture, appVersion).ConfigureAwait(false);
|
|
||||||
await DumpFile("css/all.css", Path.Combine(path, "css", "all.css"), mode, culture, appVersion).ConfigureAwait(false);
|
await DumpFile("css/all.css", Path.Combine(path, "css", "all.css"), mode, culture, appVersion).ConfigureAwait(false);
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DeleteCryptoFiles(string path)
|
||||||
|
{
|
||||||
|
var files = _fileSystem.GetFiles(path)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
var keepFiles = new[] { "core-min.js", "md5-min.js", "sha1-min.js" };
|
||||||
|
|
||||||
|
foreach (var file in files)
|
||||||
|
{
|
||||||
|
if (!keepFiles.Contains(file.Name, StringComparer.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
_fileSystem.DeleteFile(file.FullName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeleteFilesByExtension(string path, string extension)
|
||||||
|
{
|
||||||
|
var files = _fileSystem.GetFiles(path, true)
|
||||||
|
.Where(i => string.Equals(i.Extension, extension, StringComparison.OrdinalIgnoreCase))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
foreach (var file in files)
|
||||||
|
{
|
||||||
|
_fileSystem.DeleteFile(file.FullName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeleteFilesByName(string path, string name, bool exact = false)
|
||||||
|
{
|
||||||
|
var files = _fileSystem.GetFiles(path, true)
|
||||||
|
.Where(i => string.Equals(i.Name, name, StringComparison.OrdinalIgnoreCase) || (!exact && i.Name.IndexOf(name, StringComparison.OrdinalIgnoreCase) != -1))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
foreach (var file in files)
|
||||||
|
{
|
||||||
|
_fileSystem.DeleteFile(file.FullName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeleteFoldersByName(string path, string name)
|
||||||
|
{
|
||||||
|
var directories = _fileSystem.GetDirectories(path, true)
|
||||||
|
.Where(i => string.Equals(i.Name, name, StringComparison.OrdinalIgnoreCase))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
foreach (var directory in directories)
|
||||||
|
{
|
||||||
|
_fileSystem.DeleteDirectory(directory.FullName, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void MinifyCssDirectory(string path)
|
private void MinifyCssDirectory(string path)
|
||||||
{
|
{
|
||||||
foreach (var file in Directory.GetFiles(path, "*.css", SearchOption.AllDirectories))
|
foreach (var file in Directory.GetFiles(path, "*.css", SearchOption.AllDirectories))
|
||||||
{
|
{
|
||||||
|
if (file.IndexOf(".min.", StringComparison.OrdinalIgnoreCase) != -1)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (file.IndexOf("bower_", StringComparison.OrdinalIgnoreCase) != -1)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var text = _fileSystem.ReadAllText(file, Encoding.UTF8);
|
var text = _fileSystem.ReadAllText(file, Encoding.UTF8);
|
||||||
|
@ -383,6 +452,15 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
{
|
{
|
||||||
foreach (var file in Directory.GetFiles(path, "*.js", SearchOption.AllDirectories))
|
foreach (var file in Directory.GetFiles(path, "*.js", SearchOption.AllDirectories))
|
||||||
{
|
{
|
||||||
|
if (file.IndexOf(".min.", StringComparison.OrdinalIgnoreCase) != -1)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (file.IndexOf("bower_", StringComparison.OrdinalIgnoreCase) != -1)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var text = _fileSystem.ReadAllText(file, Encoding.UTF8);
|
var text = _fileSystem.ReadAllText(file, Encoding.UTF8);
|
||||||
|
@ -408,7 +486,7 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
|
|
||||||
private async Task DumpHtml(string source, string destination, string mode, string culture, string appVersion)
|
private async Task DumpHtml(string source, string destination, string mode, string culture, string appVersion)
|
||||||
{
|
{
|
||||||
foreach (var file in Directory.GetFiles(source, "*.html", SearchOption.TopDirectoryOnly))
|
foreach (var file in Directory.GetFiles(source, "*", SearchOption.TopDirectoryOnly))
|
||||||
{
|
{
|
||||||
var filename = Path.GetFileName(file);
|
var filename = Path.GetFileName(file);
|
||||||
|
|
||||||
|
@ -428,16 +506,6 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task DumpJs(string source, string mode, string destination, string culture, string appVersion)
|
|
||||||
{
|
|
||||||
foreach (var file in Directory.GetFiles(source, "*.js", SearchOption.TopDirectoryOnly))
|
|
||||||
{
|
|
||||||
var filename = Path.GetFileName(file);
|
|
||||||
|
|
||||||
await DumpFile("scripts/" + filename, Path.Combine(destination, "scripts", filename), mode, culture, appVersion).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task DumpFile(string resourceVirtualPath, string destinationFilePath, string mode, string culture, string appVersion)
|
private async Task DumpFile(string resourceVirtualPath, string destinationFilePath, string mode, string culture, string appVersion)
|
||||||
{
|
{
|
||||||
using (var stream = await GetPackageCreator().GetResource(resourceVirtualPath, mode, culture, appVersion, true).ConfigureAwait(false))
|
using (var stream = await GetPackageCreator().GetResource(resourceVirtualPath, mode, culture, appVersion, true).ConfigureAwait(false))
|
||||||
|
|
|
@ -42,12 +42,7 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
{
|
{
|
||||||
Stream resourceStream;
|
Stream resourceStream;
|
||||||
|
|
||||||
if (path.Equals("scripts/all.js", StringComparison.OrdinalIgnoreCase))
|
if (path.Equals("css/all.css", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
|
||||||
resourceStream = await GetAllJavascript(mode, localizationCulture, appVersion, enableMinification).ConfigureAwait(false);
|
|
||||||
enableMinification = false;
|
|
||||||
}
|
|
||||||
else if (path.Equals("css/all.css", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
{
|
||||||
resourceStream = await GetAllCss(enableMinification).ConfigureAwait(false);
|
resourceStream = await GetAllCss(enableMinification).ConfigureAwait(false);
|
||||||
enableMinification = false;
|
enableMinification = false;
|
||||||
|
@ -70,14 +65,14 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
}
|
}
|
||||||
else if (IsFormat(path, "js"))
|
else if (IsFormat(path, "js"))
|
||||||
{
|
{
|
||||||
if (path.IndexOf("thirdparty", StringComparison.OrdinalIgnoreCase) == -1 && path.IndexOf("bower_components", StringComparison.OrdinalIgnoreCase) == -1)
|
if (path.IndexOf(".min.", StringComparison.OrdinalIgnoreCase) == -1 && path.IndexOf("bower_components", StringComparison.OrdinalIgnoreCase) == -1)
|
||||||
{
|
{
|
||||||
resourceStream = await ModifyJs(resourceStream, enableMinification).ConfigureAwait(false);
|
resourceStream = await ModifyJs(resourceStream, enableMinification).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (IsFormat(path, "css"))
|
else if (IsFormat(path, "css"))
|
||||||
{
|
{
|
||||||
if (path.IndexOf("thirdparty", StringComparison.OrdinalIgnoreCase) == -1 && path.IndexOf("bower_components", StringComparison.OrdinalIgnoreCase) == -1)
|
if (path.IndexOf(".min.", StringComparison.OrdinalIgnoreCase) == -1 && path.IndexOf("bower_components", StringComparison.OrdinalIgnoreCase) == -1)
|
||||||
{
|
{
|
||||||
resourceStream = await ModifyCss(resourceStream, enableMinification).ConfigureAwait(false);
|
resourceStream = await ModifyCss(resourceStream, enableMinification).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
@ -226,11 +221,6 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
|
|
||||||
public bool IsCoreHtml(string path)
|
public bool IsCoreHtml(string path)
|
||||||
{
|
{
|
||||||
if (path.IndexOf("vulcanize", StringComparison.OrdinalIgnoreCase) != -1)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (path.IndexOf(".template.html", StringComparison.OrdinalIgnoreCase) != -1)
|
if (path.IndexOf(".template.html", StringComparison.OrdinalIgnoreCase) != -1)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
@ -309,21 +299,9 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
.Replace("</body>", "</div>--></div></paper-drawer-panel></body>");
|
.Replace("</body>", "</div>--></div></paper-drawer-panel></body>");
|
||||||
}
|
}
|
||||||
|
|
||||||
var versionString = !string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase) ? "?v=" + appVersion : string.Empty;
|
|
||||||
|
|
||||||
var imports = new[]
|
|
||||||
{
|
|
||||||
"vulcanize-out.html" + versionString
|
|
||||||
};
|
|
||||||
var importsHtml = string.Join("", imports.Select(i => "<link rel=\"import\" href=\"" + i + "\">").ToArray());
|
|
||||||
|
|
||||||
// It would be better to make polymer completely dynamic and loaded on demand, but seeing issues with that
|
|
||||||
// In chrome it is causing the body to be hidden while loading, which leads to width-check methods to return 0 for everything
|
|
||||||
//imports = "";
|
|
||||||
|
|
||||||
html = html.Replace("<head>", "<head>" + GetMetaTags(mode) + GetCommonCss(mode, appVersion));
|
html = html.Replace("<head>", "<head>" + GetMetaTags(mode) + GetCommonCss(mode, appVersion));
|
||||||
|
|
||||||
html = html.Replace("</body>", GetInitialJavascript(mode, appVersion) + importsHtml + GetCommonJavascript(mode, appVersion) + "</body>");
|
html = html.Replace("</body>", GetCommonJavascript(mode, appVersion) + "</body>");
|
||||||
|
|
||||||
var bytes = Encoding.UTF8.GetBytes(html);
|
var bytes = Encoding.UTF8.GetBytes(html);
|
||||||
|
|
||||||
|
@ -333,9 +311,6 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
|
|
||||||
private string ModifyForCordova(string html)
|
private string ModifyForCordova(string html)
|
||||||
{
|
{
|
||||||
// Strip everything between CORDOVA_EXCLUDE_START and CORDOVA_EXCLUDE_END
|
|
||||||
html = ReplaceBetween(html, "<!--CORDOVA_EXCLUDE_START-->", "<!--CORDOVA_EXCLUDE_END-->", string.Empty);
|
|
||||||
|
|
||||||
// Replace CORDOVA_REPLACE_SUPPORTER_SUBMIT_START
|
// Replace CORDOVA_REPLACE_SUPPORTER_SUBMIT_START
|
||||||
html = ReplaceBetween(html, "<!--CORDOVA_REPLACE_SUPPORTER_SUBMIT_START-->", "<!--CORDOVA_REPLACE_SUPPORTER_SUBMIT_END-->", "<i class=\"fa fa-check\"></i><span>${ButtonPurchase}</span>");
|
html = ReplaceBetween(html, "<!--CORDOVA_REPLACE_SUPPORTER_SUBMIT_START-->", "<!--CORDOVA_REPLACE_SUPPORTER_SUBMIT_END-->", "<i class=\"fa fa-check\"></i><span>${ButtonPurchase}</span>");
|
||||||
|
|
||||||
|
@ -379,9 +354,10 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
|
|
||||||
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
//sb.Append("<meta http-equiv=\"Content-Security-Policy\" content=\"default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'\">");
|
sb.Append("<meta http-equiv=\"Content-Security-Policy\" content=\"default-src * 'unsafe-inline' 'unsafe-eval'\">");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sb.Append("<link rel=\"manifest\" href=\"manifest.json\">");
|
||||||
sb.Append("<meta http-equiv=\"X-UA-Compatibility\" content=\"IE=Edge\">");
|
sb.Append("<meta http-equiv=\"X-UA-Compatibility\" content=\"IE=Edge\">");
|
||||||
sb.Append("<meta name=\"format-detection\" content=\"telephone=no\">");
|
sb.Append("<meta name=\"format-detection\" content=\"telephone=no\">");
|
||||||
sb.Append("<meta name=\"msapplication-tap-highlight\" content=\"no\">");
|
sb.Append("<meta name=\"msapplication-tap-highlight\" content=\"no\">");
|
||||||
|
@ -428,35 +404,11 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
"css/all.css" + versionString
|
"css/all.css" + versionString
|
||||||
};
|
};
|
||||||
|
|
||||||
var tags = files.Select(s => string.Format("<link rel=\"stylesheet\" href=\"{0}\" />", s)).ToArray();
|
var tags = files.Select(s => string.Format("<link rel=\"stylesheet\" href=\"{0}\" async />", s)).ToArray();
|
||||||
|
|
||||||
return string.Join(string.Empty, tags);
|
return string.Join(string.Empty, tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the common javascript.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="mode">The mode.</param>
|
|
||||||
/// <param name="version">The version.</param>
|
|
||||||
/// <returns>System.String.</returns>
|
|
||||||
private string GetInitialJavascript(string mode, string version)
|
|
||||||
{
|
|
||||||
var builder = new StringBuilder();
|
|
||||||
|
|
||||||
var versionString = !string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase) ? "?v=" + version : string.Empty;
|
|
||||||
|
|
||||||
var files = new List<string>
|
|
||||||
{
|
|
||||||
"bower_components/webcomponentsjs/webcomponents-lite.js" + versionString
|
|
||||||
};
|
|
||||||
|
|
||||||
var tags = files.Select(s => string.Format("<script src=\"{0}\"></script>", s)).ToArray();
|
|
||||||
|
|
||||||
builder.Append(string.Join(string.Empty, tags));
|
|
||||||
|
|
||||||
return builder.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the common javascript.
|
/// Gets the common javascript.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -467,11 +419,25 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
{
|
{
|
||||||
var builder = new StringBuilder();
|
var builder = new StringBuilder();
|
||||||
|
|
||||||
|
builder.Append("<script>");
|
||||||
|
if (!string.IsNullOrWhiteSpace(mode))
|
||||||
|
{
|
||||||
|
builder.AppendFormat("window.appMode='{0}';", mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
builder.AppendFormat("window.dashboardVersion='{0}';", version);
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.Append("</script>");
|
||||||
|
|
||||||
var versionString = !string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase) ? "?v=" + version : string.Empty;
|
var versionString = !string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase) ? "?v=" + version : string.Empty;
|
||||||
|
|
||||||
var files = new List<string>
|
var files = new List<string>
|
||||||
{
|
{
|
||||||
"scripts/all.js" + versionString
|
"bower_components/requirejs/require.js" + versionString,
|
||||||
|
"scripts/site.js" + versionString
|
||||||
};
|
};
|
||||||
|
|
||||||
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
||||||
|
@ -479,168 +445,21 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
files.Insert(0, "cordova.js");
|
files.Insert(0, "cordova.js");
|
||||||
}
|
}
|
||||||
|
|
||||||
var tags = files.Select(s => string.Format("<script src=\"{0}\"></script>", s)).ToArray();
|
var tags = files.Select(s =>
|
||||||
|
{
|
||||||
|
if (s.IndexOf("require", StringComparison.OrdinalIgnoreCase) == -1)
|
||||||
|
{
|
||||||
|
return string.Format("<script src=\"{0}\" async></script>", s);
|
||||||
|
}
|
||||||
|
return string.Format("<script src=\"{0}\"></script>", s);
|
||||||
|
|
||||||
|
}).ToArray();
|
||||||
|
|
||||||
builder.Append(string.Join(string.Empty, tags));
|
builder.Append(string.Join(string.Empty, tags));
|
||||||
|
|
||||||
return builder.ToString();
|
return builder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets a stream containing all concatenated javascript
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>Task{Stream}.</returns>
|
|
||||||
private async Task<Stream> GetAllJavascript(string mode, string culture, string version, bool enableMinification)
|
|
||||||
{
|
|
||||||
var memoryStream = new MemoryStream();
|
|
||||||
var newLineBytes = Encoding.UTF8.GetBytes(Environment.NewLine);
|
|
||||||
|
|
||||||
await AppendResource(memoryStream, "bower_components/jquery/dist/jquery.min.js", newLineBytes).ConfigureAwait(false);
|
|
||||||
|
|
||||||
//await AppendLocalization(memoryStream, culture, excludePhrases).ConfigureAwait(false);
|
|
||||||
await memoryStream.WriteAsync(newLineBytes, 0, newLineBytes.Length).ConfigureAwait(false);
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(mode))
|
|
||||||
{
|
|
||||||
var appModeBytes = Encoding.UTF8.GetBytes(string.Format("window.appMode='{0}';", mode));
|
|
||||||
await memoryStream.WriteAsync(appModeBytes, 0, appModeBytes.Length).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write the version string for the dashboard comparison function
|
|
||||||
var versionString = string.Format("window.dashboardVersion='{0}';", version);
|
|
||||||
var versionBytes = Encoding.UTF8.GetBytes(versionString);
|
|
||||||
|
|
||||||
await memoryStream.WriteAsync(versionBytes, 0, versionBytes.Length).ConfigureAwait(false);
|
|
||||||
await memoryStream.WriteAsync(newLineBytes, 0, newLineBytes.Length).ConfigureAwait(false);
|
|
||||||
|
|
||||||
var builder = new StringBuilder();
|
|
||||||
|
|
||||||
var commonFiles = new[]
|
|
||||||
{
|
|
||||||
"bower_components/requirejs/require.js",
|
|
||||||
"thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.js",
|
|
||||||
"thirdparty/browser.js",
|
|
||||||
"thirdparty/jquery.unveil-custom.js",
|
|
||||||
"apiclient/logger.js",
|
|
||||||
"apiclient/md5.js",
|
|
||||||
"apiclient/store.js",
|
|
||||||
"apiclient/device.js",
|
|
||||||
"apiclient/credentials.js",
|
|
||||||
"apiclient/ajax.js",
|
|
||||||
"apiclient/events.js",
|
|
||||||
"apiclient/deferred.js",
|
|
||||||
"apiclient/apiclient.js"
|
|
||||||
}.ToList();
|
|
||||||
|
|
||||||
commonFiles.Add("apiclient/connectionmanager.js");
|
|
||||||
|
|
||||||
foreach (var file in commonFiles)
|
|
||||||
{
|
|
||||||
using (var fs = _fileSystem.GetFileStream(GetDashboardResourcePath(file), FileMode.Open, FileAccess.Read, FileShare.ReadWrite, true))
|
|
||||||
{
|
|
||||||
using (var streamReader = new StreamReader(fs))
|
|
||||||
{
|
|
||||||
var text = await streamReader.ReadToEndAsync().ConfigureAwait(false);
|
|
||||||
builder.Append(text);
|
|
||||||
builder.Append(Environment.NewLine);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var file in GetScriptFiles())
|
|
||||||
{
|
|
||||||
var path = GetDashboardResourcePath("scripts/" + file);
|
|
||||||
|
|
||||||
using (var fs = _fileSystem.GetFileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, true))
|
|
||||||
{
|
|
||||||
using (var streamReader = new StreamReader(fs))
|
|
||||||
{
|
|
||||||
var text = await streamReader.ReadToEndAsync().ConfigureAwait(false);
|
|
||||||
builder.Append(text);
|
|
||||||
builder.Append(Environment.NewLine);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var js = builder.ToString();
|
|
||||||
|
|
||||||
if (enableMinification)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var result = new CrockfordJsMinifier().Minify(js, false, Encoding.UTF8);
|
|
||||||
|
|
||||||
if (result.Errors.Count > 0)
|
|
||||||
{
|
|
||||||
_logger.Error("Error minifying javascript: " + result.Errors[0].Message);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
js = result.MinifiedContent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.ErrorException("Error minifying javascript", ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var bytes = Encoding.UTF8.GetBytes(js);
|
|
||||||
await memoryStream.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
|
|
||||||
|
|
||||||
memoryStream.Position = 0;
|
|
||||||
return memoryStream;
|
|
||||||
}
|
|
||||||
private IEnumerable<string> GetScriptFiles()
|
|
||||||
{
|
|
||||||
return new[]
|
|
||||||
{
|
|
||||||
"extensions.js",
|
|
||||||
"globalize.js",
|
|
||||||
"site.js",
|
|
||||||
"librarybrowser.js",
|
|
||||||
"librarylist.js",
|
|
||||||
"librarymenu.js",
|
|
||||||
"mediacontroller.js",
|
|
||||||
"backdrops.js",
|
|
||||||
"sync.js",
|
|
||||||
"playlistmanager.js",
|
|
||||||
"appsettings.js",
|
|
||||||
"mediaplayer.js",
|
|
||||||
"mediaplayer-video.js",
|
|
||||||
"alphapicker.js",
|
|
||||||
"notifications.js",
|
|
||||||
"remotecontrol.js",
|
|
||||||
"search.js",
|
|
||||||
"thememediaplayer.js"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Appends the resource.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="outputStream">The output stream.</param>
|
|
||||||
/// <param name="path">The path.</param>
|
|
||||||
/// <param name="newLineBytes">The new line bytes.</param>
|
|
||||||
/// <returns>Task.</returns>
|
|
||||||
private async Task AppendResource(Stream outputStream, string path, byte[] newLineBytes)
|
|
||||||
{
|
|
||||||
path = GetDashboardResourcePath(path);
|
|
||||||
|
|
||||||
using (var fs = _fileSystem.GetFileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, true))
|
|
||||||
{
|
|
||||||
using (var streamReader = new StreamReader(fs))
|
|
||||||
{
|
|
||||||
var text = await streamReader.ReadToEndAsync().ConfigureAwait(false);
|
|
||||||
var bytes = Encoding.UTF8.GetBytes(text);
|
|
||||||
await outputStream.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
await outputStream.WriteAsync(newLineBytes, 0, newLineBytes.Length).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets all CSS.
|
/// Gets all CSS.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -652,20 +471,9 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
var files = new[]
|
var files = new[]
|
||||||
{
|
{
|
||||||
"thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.theme.css",
|
"thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.theme.css",
|
||||||
"thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.structure.css",
|
|
||||||
"css/site.css",
|
"css/site.css",
|
||||||
"css/chromecast.css",
|
|
||||||
"css/mediaplayer.css",
|
|
||||||
"css/mediaplayer-video.css",
|
|
||||||
"css/librarymenu.css",
|
"css/librarymenu.css",
|
||||||
"css/librarybrowser.css",
|
"css/librarybrowser.css",
|
||||||
"css/card.css",
|
|
||||||
"css/notifications.css",
|
|
||||||
"css/search.css",
|
|
||||||
"css/remotecontrol.css",
|
|
||||||
"css/userimage.css",
|
|
||||||
"css/nowplaying.css",
|
|
||||||
"css/materialize.css",
|
|
||||||
"thirdparty/paper-button-style.css"
|
"thirdparty/paper-button-style.css"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="CommonIO, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="CommonIO, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
@ -63,8 +63,9 @@
|
||||||
<Reference Include="ServiceStack.Interfaces">
|
<Reference Include="ServiceStack.Interfaces">
|
||||||
<HintPath>..\ThirdParty\ServiceStack\ServiceStack.Interfaces.dll</HintPath>
|
<HintPath>..\ThirdParty\ServiceStack\ServiceStack.Interfaces.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="WebMarkupMin.Core">
|
<Reference Include="WebMarkupMin.Core, Version=1.0.1.0, Culture=neutral, PublicKeyToken=99472178d266584b, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\WebMarkupMin.Core.1.0.0\lib\net40\WebMarkupMin.Core.dll</HintPath>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\packages\WebMarkupMin.Core.1.0.1\lib\net40\WebMarkupMin.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -91,6 +92,11 @@
|
||||||
<Name>MediaBrowser.Model</Name>
|
<Name>MediaBrowser.Model</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="dashboard-ui\bower_components\**\*.*">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="dashboard-ui\apiclient\sync\contentuploader.js">
|
<Content Include="dashboard-ui\apiclient\sync\contentuploader.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
@ -110,67 +116,7 @@
|
||||||
<Content Include="dashboard-ui\apiclient\sync\serversync.js">
|
<Content Include="dashboard-ui\apiclient\sync\serversync.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\bower_components\fastclick\lib\fastclick.js">
|
<Content Include="dashboard-ui\legacy\buttonenabled.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\hammerjs\hammer.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\hammerjs\hammer.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\howler.js\howler.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\jquery\dist\jquery.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\jstree\dist\jstree.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\requirejs\require.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\Sortable\Sortable.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\swipebox\src\css\swipebox.min.css">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\swipebox\src\img\icons.png">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\swipebox\src\img\icons.svg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\swipebox\src\js\jquery.swipebox.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\velocity\velocity.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\CustomElements.js" />
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\CustomElements.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\HTMLImports.js" />
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\HTMLImports.min.js" />
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\MutationObserver.js" />
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\MutationObserver.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\ShadowDOM.js" />
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\ShadowDOM.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\webcomponents-lite.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\webcomponents-lite.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\webcomponents.js" />
|
|
||||||
<Content Include="dashboard-ui\bower_components\webcomponentsjs\webcomponents.min.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\components\collectioneditor\collectioneditor.js">
|
<Content Include="dashboard-ui\components\collectioneditor\collectioneditor.js">
|
||||||
|
@ -179,6 +125,12 @@
|
||||||
<Content Include="dashboard-ui\components\directorybrowser\directorybrowser.js">
|
<Content Include="dashboard-ui\components\directorybrowser\directorybrowser.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\components\humanedate.js">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\components\imagestore.js">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="dashboard-ui\components\itemidentifier\itemidentifier.js">
|
<Content Include="dashboard-ui\components\itemidentifier\itemidentifier.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -224,43 +176,18 @@
|
||||||
<Content Include="dashboard-ui\components\prompt.js">
|
<Content Include="dashboard-ui\components\prompt.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\components\requirecss.js">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\components\requirehtml.js">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="dashboard-ui\components\tvguide\tvguide.js">
|
<Content Include="dashboard-ui\components\tvguide\tvguide.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\components\tvguide\tvguide.template.html">
|
<Content Include="dashboard-ui\components\tvguide\tvguide.template.html">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\cordova\android\localsync.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\android\logging.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\android\newapp.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\fileupload.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\ios\backgroundfetch.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\ios\tabbar.js" />
|
|
||||||
<Content Include="dashboard-ui\cordova\ios\vlcplayer.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\localassetmanager.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\prompt.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\searchmenu.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\sharingwidget.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\devices\ie\ie.css">
|
<Content Include="dashboard-ui\devices\ie\ie.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -276,9 +203,6 @@
|
||||||
<Content Include="dashboard-ui\css\images\clients\chromecast.png">
|
<Content Include="dashboard-ui\css\images\clients\chromecast.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\images\clients\firefox.png">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\css\images\empty.png">
|
<Content Include="dashboard-ui\css\images\empty.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -357,6 +281,9 @@
|
||||||
<Content Include="dashboard-ui\scripts\localsync.js">
|
<Content Include="dashboard-ui\scripts\localsync.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\scripts\musicfolders.js">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="dashboard-ui\scripts\mypreferenceshome.js">
|
<Content Include="dashboard-ui\scripts\mypreferenceshome.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -381,7 +308,7 @@
|
||||||
<Content Include="dashboard-ui\scripts\sharingmanager.js">
|
<Content Include="dashboard-ui\scripts\sharingmanager.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\scripts\sharingwidget.js">
|
<Content Include="dashboard-ui\components\sharingwidget.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\scripts\slideshow.js">
|
<Content Include="dashboard-ui\scripts\slideshow.js">
|
||||||
|
@ -390,6 +317,9 @@
|
||||||
<Content Include="dashboard-ui\scripts\supporterkeypage.js">
|
<Content Include="dashboard-ui\scripts\supporterkeypage.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\components\testermessage.js">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="dashboard-ui\scripts\wizardlivetvguide.js">
|
<Content Include="dashboard-ui\scripts\wizardlivetvguide.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -423,9 +353,6 @@
|
||||||
<Content Include="dashboard-ui\devices\ios\ios.css">
|
<Content Include="dashboard-ui\devices\ios\ios.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\materialize.css">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\scripts\htmlmediarenderer.js">
|
<Content Include="dashboard-ui\scripts\htmlmediarenderer.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -438,36 +365,6 @@
|
||||||
<Content Include="dashboard-ui\apiclient\wakeonlan.js">
|
<Content Include="dashboard-ui\apiclient\wakeonlan.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\cordova\android\appstorage.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\android\mediasession.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\android\nativedirectorychooser.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\android\vlcplayer.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\back.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\actionsheet.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\ios\orientation.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\volume.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\wakeonlan.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\emby-icons.html">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\hls.min.js">
|
<Content Include="dashboard-ui\thirdparty\hls.min.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -513,15 +410,15 @@
|
||||||
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jqm.checkbox.js">
|
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jqm.checkbox.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jqm.widget.js">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jquery.mobile.custom.icons.css">
|
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jquery.mobile.custom.icons.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jquery.mobile.custom.js">
|
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jquery.mobile.custom.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jquery.mobile.custom.structure.css">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jquery.mobile.custom.theme.css">
|
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jquery.mobile.custom.theme.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -539,21 +436,6 @@
|
||||||
<Content Include="dashboard-ui\thirdparty\social-share-kit-1.0.4\dist\js\social-share-kit.min.js">
|
<Content Include="dashboard-ui\thirdparty\social-share-kit-1.0.4\dist\js\social-share-kit.min.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\thirdparty\viblast\viblast-video-js.swf">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\viblast\viblast.crypto.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\viblast\viblast.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\viblast\viblast.remuxer.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\viblast\worker.html">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\components\tvproviders\schedulesdirect.js">
|
<Content Include="dashboard-ui\components\tvproviders\schedulesdirect.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -668,59 +550,12 @@
|
||||||
<Content Include="dashboard-ui\syncsettings.html">
|
<Content Include="dashboard-ui\syncsettings.html">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\apiclient\ajax.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\apiclient\alt\bean.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\apiclient\alt\events.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\apiclient\connectservice.js">
|
<Content Include="dashboard-ui\apiclient\connectservice.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\cordova\android\androidcredentials.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\android\iap.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\android\immersive.js" />
|
|
||||||
<Content Include="dashboard-ui\cordova\chromecast.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\connectsdk.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\externalplayer.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\generaldevice.js" />
|
|
||||||
<Content Include="dashboard-ui\cordova\iap.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\imagestore.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\registrationservices.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\remotecontrols.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\cordova\serverdiscovery.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\apiclient\deferred.js">
|
<Content Include="dashboard-ui\apiclient\deferred.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\apiclient\alt\deferred.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\apiclient\device.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\apiclient\events.js">
|
<Content Include="dashboard-ui\apiclient\events.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -847,9 +682,6 @@
|
||||||
<Content Include="dashboard-ui\css\mediaplayer-video.css">
|
<Content Include="dashboard-ui\css\mediaplayer-video.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\mediaplayer.css">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\css\nowplaying.css">
|
<Content Include="dashboard-ui\css\nowplaying.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -970,18 +802,12 @@
|
||||||
<Content Include="dashboard-ui\css\images\clients\chrome.png">
|
<Content Include="dashboard-ui\css\images\clients\chrome.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\images\clients\ie.png">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\css\images\clients\mbc.png">
|
<Content Include="dashboard-ui\css\images\clients\mbc.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\images\clients\roku.jpg">
|
<Content Include="dashboard-ui\css\images\clients\roku.jpg">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\images\clients\safari.png">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\css\images\fresh.png">
|
<Content Include="dashboard-ui\css\images\fresh.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -1015,18 +841,12 @@
|
||||||
<Content Include="dashboard-ui\css\librarybrowser.css">
|
<Content Include="dashboard-ui\css\librarybrowser.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\remotecontrol.css">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\css\search.css">
|
<Content Include="dashboard-ui\css\search.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\tileitem.css">
|
<Content Include="dashboard-ui\css\tileitem.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\userimage.css">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\edititemmetadata.html">
|
<Content Include="dashboard-ui\edititemmetadata.html">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -1261,30 +1081,9 @@
|
||||||
<Content Include="dashboard-ui\apiclient\serverdiscovery.js">
|
<Content Include="dashboard-ui\apiclient\serverdiscovery.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\apiclient\sha1.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\apiclient\store.js">
|
<Content Include="dashboard-ui\apiclient\store.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\thirdparty\browser.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\cast_sender.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\fontawesome\css\font-awesome.css">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\fontawesome\css\font-awesome.min.css">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\fontawesome\fonts\fontawesome-webfont.svg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\headroom.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\jquery.unveil-custom.js">
|
<Content Include="dashboard-ui\thirdparty\jquery.unveil-custom.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -1894,9 +1693,6 @@
|
||||||
<Content Include="dashboard-ui\livetv.html">
|
<Content Include="dashboard-ui\livetv.html">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\apiclient\md5.js">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\jstree\themes\default\32px.png">
|
<Content Include="dashboard-ui\thirdparty\jstree\themes\default\32px.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -1924,12 +1720,6 @@
|
||||||
<Content Include="dashboard-ui\userpassword.html">
|
<Content Include="dashboard-ui\userpassword.html">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="dashboard-ui\vulcanize-in.html">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\vulcanize-out.html">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="dashboard-ui\wizardagreement.html">
|
<Content Include="dashboard-ui\wizardagreement.html">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -2419,11 +2209,6 @@
|
||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="dashboard-ui\bower_components\webcomponentsjs\.bower.json" />
|
|
||||||
<None Include="dashboard-ui\bower_components\webcomponentsjs\bower.json" />
|
|
||||||
<None Include="dashboard-ui\bower_components\webcomponentsjs\build.log" />
|
|
||||||
<None Include="dashboard-ui\bower_components\webcomponentsjs\package.json" />
|
|
||||||
<None Include="dashboard-ui\bower_components\webcomponentsjs\README.md" />
|
|
||||||
<None Include="dashboard-ui\css\fonts\roboto\RobotoBold.woff">
|
<None Include="dashboard-ui\css\fonts\roboto\RobotoBold.woff">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
|
@ -2724,30 +2509,21 @@
|
||||||
<Content Include="dashboard-ui\strings\javascript\zh-TW.json">
|
<Content Include="dashboard-ui\strings\javascript\zh-TW.json">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<None Include="dashboard-ui\manifest.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Include="dashboard-ui\strings\html\hu.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
<None Include="dashboard-ui\strings\html\zh-HK.json">
|
<None Include="dashboard-ui\strings\html\zh-HK.json">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="dashboard-ui\strings\javascript\ko.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
<None Include="dashboard-ui\strings\javascript\zh-HK.json">
|
<None Include="dashboard-ui\strings\javascript\zh-HK.json">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Include="dashboard-ui\thirdparty\fontawesome\css\font-awesome.css.map">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="dashboard-ui\thirdparty\fontawesome\fonts\fontawesome-webfont.eot">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="dashboard-ui\thirdparty\fontawesome\fonts\fontawesome-webfont.ttf">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="dashboard-ui\thirdparty\fontawesome\fonts\fontawesome-webfont.woff">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="dashboard-ui\thirdparty\fontawesome\fonts\fontawesome-webfont.woff2">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="dashboard-ui\thirdparty\fontawesome\fonts\FontAwesome.otf">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jqm.table.js">
|
<Content Include="dashboard-ui\thirdparty\jquerymobile-1.4.5\jqm.table.js">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
|
|
@ -3,5 +3,5 @@
|
||||||
<package id="CommonIO" version="1.0.0.5" targetFramework="net45" />
|
<package id="CommonIO" version="1.0.0.5" targetFramework="net45" />
|
||||||
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.249" targetFramework="net45" />
|
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.249" targetFramework="net45" />
|
||||||
<package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
|
<package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
|
||||||
<package id="WebMarkupMin.Core" version="1.0.0" targetFramework="net45" />
|
<package id="WebMarkupMin.Core" version="1.0.1" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
Loading…
Reference in New Issue
Block a user