From 63677f70bf0663ef3fae47b4fce64d9de7f428f4 Mon Sep 17 00:00:00 2001 From: Rory& Date: Tue, 9 Jul 2024 00:18:44 +0200 Subject: Older changes --- BugMine.Web/Pages/Projects/Boards/Index.razor | 19 ++++++++ BugMine.Web/Pages/Projects/Issues/NewIssue.razor | 13 +++++- BugMine.Web/Pages/Projects/Issues/ViewIssue.razor | 24 ++++++++++ BugMine.Web/Pages/Projects/NewProject.razor | 4 +- BugMine.Web/Pages/Projects/ViewProject.razor | 53 ++++++++++++++++++----- BugMine.Web/Pages/Projects/ViewProject.razor.css | 8 ++++ 6 files changed, 107 insertions(+), 14 deletions(-) create mode 100644 BugMine.Web/Pages/Projects/Boards/Index.razor create mode 100644 BugMine.Web/Pages/Projects/Issues/ViewIssue.razor create mode 100644 BugMine.Web/Pages/Projects/ViewProject.razor.css (limited to 'BugMine.Web/Pages') diff --git a/BugMine.Web/Pages/Projects/Boards/Index.razor b/BugMine.Web/Pages/Projects/Boards/Index.razor new file mode 100644 index 0000000..c1953c8 --- /dev/null +++ b/BugMine.Web/Pages/Projects/Boards/Index.razor @@ -0,0 +1,19 @@ +@page "/Projects/{ProjectSlug}/Boards" +@using BugMine.Web.Components.ScopedContainers +

Boards

+ +

@ProjectContext.Project.Info.Name

+
+ +@code { + + [Parameter] + public string ProjectSlug { get; set; } + + public ProjectContainer.ProjectContainerContext ProjectContext { get; set; } = new(); + + private async Task OnProjectLoaded() { + + } + +} \ No newline at end of file diff --git a/BugMine.Web/Pages/Projects/Issues/NewIssue.razor b/BugMine.Web/Pages/Projects/Issues/NewIssue.razor index 159e20d..118a00c 100644 --- a/BugMine.Web/Pages/Projects/Issues/NewIssue.razor +++ b/BugMine.Web/Pages/Projects/Issues/NewIssue.razor @@ -1,8 +1,17 @@ @page "/Projects/{ProjectSlug}/Issues/New" +@using ArcaneLibs.Extensions +@using BugMine.Sdk.Events.Timeline +@using BugMine.Web.Components.ScopedContainers

New issue

-

Hi from NewIssue!

+

Title:

+ + @if (Constants.Debug) { +

Debug info:

+

Issue data:

+
@IssueData.ToJson()
+ }
@code { @@ -11,5 +20,7 @@ public string ProjectSlug { get; set; } = null!; public ProjectContainer.ProjectContainerContext? ProjectContext { get; set; } = new(); + + public BugMineIssueData IssueData { get; set; } = new(); } \ No newline at end of file diff --git a/BugMine.Web/Pages/Projects/Issues/ViewIssue.razor b/BugMine.Web/Pages/Projects/Issues/ViewIssue.razor new file mode 100644 index 0000000..e33f74d --- /dev/null +++ b/BugMine.Web/Pages/Projects/Issues/ViewIssue.razor @@ -0,0 +1,24 @@ +@page "/Projects/{ProjectSlug}/Issues/{IssueId}" +@using ArcaneLibs.Extensions +@using BugMine.Sdk.Events.Timeline +@using BugMine.Web.Components.ScopedContainers +

New issue

+ + + +

meow

+
+
+ +@code { + + [Parameter] + public string ProjectSlug { get; set; } = null!; + + [Parameter] + public string IssueId { get; set; } = null!; + + public ProjectContainer.ProjectContainerContext? ProjectContext { get; set; } = new(); + public IssueContainer.IssueContainerContext? IssueContext { get; set; } = new(); + +} \ No newline at end of file diff --git a/BugMine.Web/Pages/Projects/NewProject.razor b/BugMine.Web/Pages/Projects/NewProject.razor index f8c7dfd..2a7c7da 100644 --- a/BugMine.Web/Pages/Projects/NewProject.razor +++ b/BugMine.Web/Pages/Projects/NewProject.razor @@ -1,6 +1,8 @@ @page "/Projects/New" @using ArcaneLibs.Extensions +@using BugMine.Sdk.Events.State @using LibMatrix +@inject ILogger Logger

New project

Project name: @@ -62,7 +64,7 @@ else { } catch (MatrixException e) { - + Logger.LogError(e, "Failed to create project"); } } diff --git a/BugMine.Web/Pages/Projects/ViewProject.razor b/BugMine.Web/Pages/Projects/ViewProject.razor index 91cc4d0..c1a2aa1 100644 --- a/BugMine.Web/Pages/Projects/ViewProject.razor +++ b/BugMine.Web/Pages/Projects/ViewProject.razor @@ -1,28 +1,36 @@ @page "/Projects/{ProjectSlug}/" -@using LibMatrix -@using BugMine.Web.Classes.Exceptions +@using System.Collections.Frozen +@using System.Reflection @using ArcaneLibs.Extensions +@using BugMine.Sdk.Events.Timeline +@using BugMine.Web.Pages.Projects.Issues +@using BugMine.Web.Components.ScopedContainers +@using LibMatrix -

Hi from ViewProject!

-

@ProjectContext!.Project!.Info.Name

- - @if (Progress == "loading-issues") { +

@ProjectContext!.Project!.Info.Name

+

@Followers.Count followers - @Issues?.Count issues

+ New issue + @if (Progress == Status.Loading) {

Loading issues, got @(Issues?.Count ?? 0) so far...

} @*

@Project.Description

*@ @if (Issues != null) { @foreach (var issue in Issues) { -
@issue.Data.RawContent.ToJson()
+ var issueData = issue.Data.TypedContent as BugMineIssueData; +
+
@* Color based on tags... *@ +

@issueData.Name

+
} }
@code { - private string? _progress = "loading"; + private Status? _progress = Status.Loading; public ProjectContainer.ProjectContainerContext? ProjectContext { get; set; } = new(); @@ -30,8 +38,9 @@ public string ProjectSlug { get; set; } = null!; private List? Issues { get; set; } + private FrozenSet Followers { get; set; } = FrozenSet.Empty; - private string? Progress { + private Status? Progress { get => _progress; set { _progress = value; @@ -40,14 +49,34 @@ } protected async Task OnProjectLoaded() { - Progress = "loading-issues"; - await foreach (var issue in ProjectContext.Project.GetIssues()) { + Progress = Status.Loading; + ProjectContext!.Project!.Room.GetMembersListAsync().ContinueWith(x => { + Followers = x.Result; + StateHasChanged(); + }); + await foreach (var issue in ProjectContext.Project.GetIssues(chunkLimit: 1000)) { Issues ??= new List(); Issues.Add(issue); - StateHasChanged(); + // StateHasChanged(); + if (Issues.Count % 1000 == 0) { + StateHasChanged(); + Console.WriteLine($"Got issue {Issues.Count} {issue.Data.RawContent.ToJson()}"); + } } + Progress = Status.Done; + StateHasChanged(); } + private enum Status { + Loading, + Done + } + + private string GetIssueUrl(BugMineIssue issue) => + typeof(ViewIssue).GetCustomAttributes().First().Template + .Replace("{ProjectSlug}", ProjectSlug) + .Replace("{IssueId}", issue.Data.EventId); + } \ No newline at end of file diff --git a/BugMine.Web/Pages/Projects/ViewProject.razor.css b/BugMine.Web/Pages/Projects/ViewProject.razor.css new file mode 100644 index 0000000..6f67e52 --- /dev/null +++ b/BugMine.Web/Pages/Projects/ViewProject.razor.css @@ -0,0 +1,8 @@ +.issue-card { + display: flex; + padding: 1rem; + border-radius: 0.5rem; + background-color: var(--bs-dark); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5); + transition: background-color 1s, box-shadow 3s; +} \ No newline at end of file -- cgit 1.5.1