From bcd4628ba2576704113d6b2eb7983f3f38c134b5 Mon Sep 17 00:00:00 2001 From: Mateusz Skoczek Date: Tue, 22 Oct 2024 02:34:02 +0200 Subject: [PATCH] person page created, small fixes --- .../IPersonsWebAPIService.cs | 1 + .../PersonsWebAPIService.cs | 2 +- .../Panels/ItemPageHeaderPanelComponent.razor | 22 ++++++ .../ItemPageHeaderPanelComponent.razor.cs | 51 +++++++++++++ .../ItemPageHeaderPanelComponent.razor.css | 13 ++++ .../Panels/PictureEditorPanelComponent.razor | 2 +- .../Subcomponents/PictureComponent.razor | 8 +-- .../WatchIt.Website/Pages/MediaPage.razor | 37 ++-------- .../WatchIt.Website/Pages/MediaPage.razor.cs | 1 - .../WatchIt.Website/Pages/PersonPage.razor | 51 +++++++++++++ .../WatchIt.Website/Pages/PersonPage.razor.cs | 72 +++++++++++++++++++ .../PersonPage.razor.css} | 0 .../WatchIt.Website/WatchIt.Website.csproj | 5 ++ 13 files changed, 224 insertions(+), 41 deletions(-) create mode 100644 WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor create mode 100644 WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor.cs create mode 100644 WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor.css create mode 100644 WatchIt.Website/WatchIt.Website/Pages/PersonPage.razor create mode 100644 WatchIt.Website/WatchIt.Website/Pages/PersonPage.razor.cs rename WatchIt.Website/WatchIt.Website/{Components/Common/Panels/PictureEditorPanelComponent.razor.css => Pages/PersonPage.razor.css} (100%) diff --git a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/IPersonsWebAPIService.cs b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/IPersonsWebAPIService.cs index c1f7cd9..bbb0b96 100644 --- a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/IPersonsWebAPIService.cs +++ b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/IPersonsWebAPIService.cs @@ -12,6 +12,7 @@ public interface IPersonsWebAPIService Task DeletePerson(long id, Action? successAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); Task GetPersonsViewRank(int? first = null, int? days = null, Action>? successAction = null, Action>? badRequestAction = null); + Task PostPersonView(long personId, Action? successAction = null, Action? notFoundAction = null); Task GetPersonPhoto(long id, Action? successAction = null, Action>? badRequestAction = null, Action? notFoundAction = null); Task PutPersonPhoto(long id, PersonPhotoRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); diff --git a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/PersonsWebAPIService.cs b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/PersonsWebAPIService.cs index cd1fd70..a3c8e14 100644 --- a/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/PersonsWebAPIService.cs +++ b/WatchIt.Website/WatchIt.Website.Services/WatchIt.Website.Services.WebAPI/WatchIt.Website.Services.WebAPI.Persons/PersonsWebAPIService.cs @@ -139,7 +139,7 @@ public class PersonsWebAPIService : BaseWebAPIService, IPersonsWebAPIService .ExecuteAction(); } - public async Task PostPersonsView(long personId, Action? successAction = null, Action? notFoundAction = null) + public async Task PostPersonView(long personId, Action? successAction = null, Action? notFoundAction = null) { string url = GetUrl(EndpointsConfiguration.Persons.PostPersonsView, personId); diff --git a/WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor b/WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor new file mode 100644 index 0000000..689936a --- /dev/null +++ b/WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor @@ -0,0 +1,22 @@ +
+
+
+ +
+
+
+

@(Name)

+
+ @if (!string.IsNullOrWhiteSpace(Subname)) + { + @(Subname) + } + @if (!string.IsNullOrWhiteSpace(Description)) + { + @(Description) + } +
+
+
+
+
\ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor.cs b/WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor.cs new file mode 100644 index 0000000..96e0fdd --- /dev/null +++ b/WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor.cs @@ -0,0 +1,51 @@ +using Microsoft.AspNetCore.Components; +using WatchIt.Common.Model; + +namespace WatchIt.Website.Components.Common.Panels; + +public partial class ItemPageHeaderPanelComponent : ComponentBase +{ + #region PARAMETERS + + [Parameter] public required string Name { get; set; } + [Parameter] public string? Subname { get; set; } + [Parameter] public string? Description { get; set; } + + [Parameter] public required string PosterPlaceholder { get; set; } + [Parameter] public required Func, Task> GetPosterMethod { get; set; } + + #endregion + + + + #region FIELDS + + private Picture? _poster; + + #endregion + + + + #region PRIVATE METHODS + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + List endTasks = new List(1); + + // STEP 0 + endTasks.AddRange( + [ + GetPosterMethod(data => _poster = data) + ]); + + // END + await Task.WhenAll(endTasks); + + StateHasChanged(); + } + } + + #endregion +} \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor.css b/WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor.css new file mode 100644 index 0000000..8d33a8c --- /dev/null +++ b/WatchIt.Website/WatchIt.Website/Components/Common/Panels/ItemPageHeaderPanelComponent.razor.css @@ -0,0 +1,13 @@ +/* CLASSES */ + +.mt-grid { + margin-top: 9rem !important; +} + +.title-shadow { + text-shadow: 2px 2px 2px #000; +} + +.description-shadow { + text-shadow: 1px 1px 1px #000; +} \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Components/Common/Panels/PictureEditorPanelComponent.razor b/WatchIt.Website/WatchIt.Website/Components/Common/Panels/PictureEditorPanelComponent.razor index f2a1ac3..2264955 100644 --- a/WatchIt.Website/WatchIt.Website/Components/Common/Panels/PictureEditorPanelComponent.razor +++ b/WatchIt.Website/WatchIt.Website/Components/Common/Panels/PictureEditorPanelComponent.razor @@ -2,7 +2,7 @@ @if (_loaded) {
- + @if (_pictureChanged || _pictureSaved is not null) { diff --git a/WatchIt.Website/WatchIt.Website/Components/Common/Subcomponents/PictureComponent.razor b/WatchIt.Website/WatchIt.Website/Components/Common/Subcomponents/PictureComponent.razor index 52a3e03..398c4d6 100644 --- a/WatchIt.Website/WatchIt.Website/Components/Common/Subcomponents/PictureComponent.razor +++ b/WatchIt.Website/WatchIt.Website/Components/Common/Subcomponents/PictureComponent.razor @@ -1,7 +1 @@ -@(AlternativeText) - - \ No newline at end of file +@(AlternativeText) \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Pages/MediaPage.razor b/WatchIt.Website/WatchIt.Website/Pages/MediaPage.razor index 47a2c9b..08f47bd 100644 --- a/WatchIt.Website/WatchIt.Website/Pages/MediaPage.razor +++ b/WatchIt.Website/WatchIt.Website/Pages/MediaPage.razor @@ -30,32 +30,13 @@ else { if (string.IsNullOrWhiteSpace(_error)) { -
-
- -
+
-
-
-
-
-

- @_media.Title -

-
-
- @if (!string.IsNullOrWhiteSpace(_media.Description)) - { -
-
-
- @_media.Description -
-
-
- } -
-
+
@@ -68,12 +49,6 @@ else - @if (!string.IsNullOrWhiteSpace(_media.OriginalTitle)) - { - - } @if (_media.ReleaseDate is not null) {