From aced0f628f59c49cbf9db24cb16a3a224ddb7231 Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Wed, 30 Sep 2020 16:56:23 +0200 Subject: [PATCH] stream remote media when not converted yet --- zero.Core/Api/MediaApi.cs | 5 ++++ zero.Debug/Controllers/TestController.cs | 9 -------- zero.Debug/appsettings.Development.json | 2 +- zero.Web.UI/App/components/tree/tree-item.vue | 8 +++++++ zero.Web.UI/App/resources/media.js | 2 +- zero.Web/Controllers/MediaController.cs | 23 +++++++++++++------ 6 files changed, 31 insertions(+), 18 deletions(-) diff --git a/zero.Core/Api/MediaApi.cs b/zero.Core/Api/MediaApi.cs index d2a52055..9a974a7e 100644 --- a/zero.Core/Api/MediaApi.cs +++ b/zero.Core/Api/MediaApi.cs @@ -57,6 +57,11 @@ namespace zero.Core.Api return null; } + if (media.Source.StartsWith("url://")) + { + return media.Source.Substring(6) + "?preset=productMini"; + } + return thumb ? (media.ThumbnailSource ?? media.Source) : media.Source; } diff --git a/zero.Debug/Controllers/TestController.cs b/zero.Debug/Controllers/TestController.cs index 67eeaa20..13934452 100644 --- a/zero.Debug/Controllers/TestController.cs +++ b/zero.Debug/Controllers/TestController.cs @@ -149,15 +149,6 @@ namespace zero.Debug.Controllers CurrencyId = "currencies.33-A", State = OrderState.Completed, DetailStateId = "orderDetailStates.3-A", - StateHistory = new List() - { - new OrderStateHistoryItem() - { - CreatedDate = DateTimeOffset.Now, - State = OrderState.Open, - DetailStateId = "orderDetailStates.3-A" - } - }, IsRequest = false, CustomerId = "customers.1-A", CustomerNote = "Danke für die Hilfe. Das war wirklich dringend nötig <3", diff --git a/zero.Debug/appsettings.Development.json b/zero.Debug/appsettings.Development.json index 91818a4b..1cbc9039 100644 --- a/zero.Debug/appsettings.Development.json +++ b/zero.Debug/appsettings.Development.json @@ -2,7 +2,7 @@ "Zero": { "Raven": { "Url": "http://127.0.0.1:9800", - "Database": "zero" + "Database": "laolamigration" } }, "Logging": { diff --git a/zero.Web.UI/App/components/tree/tree-item.vue b/zero.Web.UI/App/components/tree/tree-item.vue index 92010164..2b8983bd 100644 --- a/zero.Web.UI/App/components/tree/tree-item.vue +++ b/zero.Web.UI/App/components/tree/tree-item.vue @@ -174,6 +174,14 @@ } } + .ui-tree-item-text + { + display: block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + .ui-tree-item-toggle { position: absolute; diff --git a/zero.Web.UI/App/resources/media.js b/zero.Web.UI/App/resources/media.js index 48705718..49231e66 100644 --- a/zero.Web.UI/App/resources/media.js +++ b/zero.Web.UI/App/resources/media.js @@ -42,7 +42,7 @@ export default { { return id; } - return zero.apiPath + base + 'streamThumbnail/' + id + '?cache=' + Strings.guid(6) + (typeof thumb === 'boolean' ? '&thumb=' + (thumb ? 'true' : 'false') : ''); + return zero.apiPath + base + 'streamThumbnail/' + id + (typeof thumb === 'boolean' ? '?thumb=' + (thumb ? 'true' : 'false') : ''); }, // save a media diff --git a/zero.Web/Controllers/MediaController.cs b/zero.Web/Controllers/MediaController.cs index 8c197b60..a0b43dbc 100644 --- a/zero.Web/Controllers/MediaController.cs +++ b/zero.Web/Controllers/MediaController.cs @@ -5,6 +5,7 @@ using Microsoft.Net.Http.Headers; using System; using System.Collections.Generic; using System.IO; +using System.Net; using System.Threading.Tasks; using zero.Core; using zero.Core.Api; @@ -81,6 +82,21 @@ namespace zero.Web.Controllers public async Task StreamThumbnail(string id, [FromQuery] bool thumb = true) { string path = await Api.GetSourceById(id, thumb); + + var provider = new FileExtensionContentTypeProvider(); + string contentType; + if (path == null || !provider.TryGetContentType(Path.GetFileName(path), out contentType)) + { + contentType = "application/octet-stream"; + } + + if (path.StartsWith("http")) + { + using var client = new WebClient(); + var content = client.DownloadData(path); + return File(content, contentType, DateTimeOffset.Now, EntityTagHeaderValue.Any); + } + string fullPath = Path.Combine(Paths.Root, path?.Trim('/') ?? String.Empty); if (path == null || !System.IO.File.Exists(fullPath)) @@ -88,13 +104,6 @@ namespace zero.Web.Controllers return NotFound(); } - var provider = new FileExtensionContentTypeProvider(); - string contentType; - if (!provider.TryGetContentType(Path.GetFileName(path), out contentType)) - { - contentType = "application/octet-stream"; - } - return File(path, contentType, DateTimeOffset.Now, EntityTagHeaderValue.Any); } }