From b21dae1192f1e5c9852eada1ad12ab6bb0d7497a Mon Sep 17 00:00:00 2001 From: Ca2didi Date: Tue, 20 May 2025 16:07:07 +0800 Subject: [PATCH] fix: Some timing issue has been fixed --- Flawless.Client/Service/Remote_Generated.cs | 2 +- .../ViewModels/RepositoryViewModel.cs | 34 +++++++++++++------ .../RepositoryPage/RepoCommitPageView.axaml | 4 +-- .../RepositoryPage/RepoFileTreePageView.axaml | 4 ++- .../RepositoryPage/RepoSettingPageView.axaml | 4 +-- .../RepoWorkspacePageView.axaml | 4 +-- 6 files changed, 34 insertions(+), 18 deletions(-) diff --git a/Flawless.Client/Service/Remote_Generated.cs b/Flawless.Client/Service/Remote_Generated.cs index 9d73348..aa919c6 100644 --- a/Flawless.Client/Service/Remote_Generated.cs +++ b/Flawless.Client/Service/Remote_Generated.cs @@ -243,7 +243,7 @@ namespace Flawless.Client.Remote /// Thrown when the request returns a non-success status code. [Headers("Accept: text/plain, application/json, text/json")] [Post("/api/repo/{userName}/{repositoryName}/fetch_depot")] - Task> FetchDepot(string userName, string repositoryName, [Query] string depotId); + Task> FetchDepot(string userName, string repositoryName, [Query] string depotId, CancellationToken cancellationToken = default); /// OK /// Thrown when the request returns a non-success status code. diff --git a/Flawless.Client/ViewModels/RepositoryViewModel.cs b/Flawless.Client/ViewModels/RepositoryViewModel.cs index c2e8d9f..6beac89 100644 --- a/Flawless.Client/ViewModels/RepositoryViewModel.cs +++ b/Flawless.Client/ViewModels/RepositoryViewModel.cs @@ -275,11 +275,11 @@ public partial class RepositoryViewModel : RoutableViewModelBase private async Task StartupTasksAsync() { - await RefreshRepositoryRoleInfoAsyncCommand.Execute(); - await RefreshRepositoryIssuesAsyncCommand.Execute(); - await RefreshStatisticDataCommand.Execute(); - await RefreshWebhooksCommand.Execute(); - await DetectLocalChangesAsyncCommand.Execute(); + await RefreshRepositoryRoleInfoAsync(); + await RefreshRepositoryIssuesAsync(); + await RefreshStatisticDataAsync(); + await RefreshWebhooksAsync(); + await DetectLocalChangesAsync(); await RendererFileTreeAsync(); SyncCommitsFromRepository(); } @@ -659,6 +659,8 @@ public partial class RepositoryViewModel : RoutableViewModelBase [ReactiveCommand] private async ValueTask RefreshRepositoryIssuesAsync() { + if (!IsReporterRole) return; + using var l = UIHelper.MakeLoading("Refreshing issues..."); await RepositoryService.C.UpdateIssuesListFromServerAsync(Repository); } @@ -756,6 +758,8 @@ public partial class RepositoryViewModel : RoutableViewModelBase [ReactiveCommand] private async ValueTask DetectLocalChangesAsync() { + if (!IsDeveloperRole) return; + using var l = UIHelper.MakeLoading("Refreshing local changes..."); var ns = await Task.Run(async () => { @@ -773,7 +777,16 @@ public partial class RepositoryViewModel : RoutableViewModelBase foreach (var n in LocalChangeSetRaw) n.Included = true; } - + + [ReactiveCommand] + private void OpenFolder() + { + System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo() { + FileName = PathUtility.GetWorkspacePath(Api.C.Username.Value!, Repository.OwnerName, Repository.Name), + UseShellExecute = true, + Verb = "open" + }); + } [ReactiveCommand] private void DeselectAllChanges() @@ -783,8 +796,10 @@ public partial class RepositoryViewModel : RoutableViewModelBase } [ReactiveCommand] - private async Task RefreshStatisticData() + private async Task RefreshStatisticDataAsync() { + if (!IsOwnerRole) return; + try { var api = Api.C; @@ -800,13 +815,12 @@ public partial class RepositoryViewModel : RoutableViewModelBase foreach (var dp in rsp.Depots) DepotsStats.Add(new DepotStatsInfo{ Id = dp.DepotName, Size = dp.DepotSize}); - ByDay = new[] - { + ByDay = [ new ColumnSeries { Values = rsp.CommitByDay.Select(k => new DateTimePoint(k.Day.LocalDateTime, k.Count)).ToList(), } - }; + ]; } catch (Exception e) { diff --git a/Flawless.Client/Views/RepositoryPage/RepoCommitPageView.axaml b/Flawless.Client/Views/RepositoryPage/RepoCommitPageView.axaml index a71ea2a..7846b65 100644 --- a/Flawless.Client/Views/RepositoryPage/RepoCommitPageView.axaml +++ b/Flawless.Client/Views/RepositoryPage/RepoCommitPageView.axaml @@ -7,10 +7,10 @@ mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Flawless.Client.Views.RepositoryPage.RepoCommitPageView"> - + - + diff --git a/Flawless.Client/Views/RepositoryPage/RepoFileTreePageView.axaml b/Flawless.Client/Views/RepositoryPage/RepoFileTreePageView.axaml index 8034c88..51a0627 100644 --- a/Flawless.Client/Views/RepositoryPage/RepoFileTreePageView.axaml +++ b/Flawless.Client/Views/RepositoryPage/RepoFileTreePageView.axaml @@ -13,8 +13,10 @@ + - + diff --git a/Flawless.Client/Views/RepositoryPage/RepoSettingPageView.axaml b/Flawless.Client/Views/RepositoryPage/RepoSettingPageView.axaml index c3905eb..1d029dd 100644 --- a/Flawless.Client/Views/RepositoryPage/RepoSettingPageView.axaml +++ b/Flawless.Client/Views/RepositoryPage/RepoSettingPageView.axaml @@ -97,11 +97,11 @@ - + + Command="{Binding RefreshStatisticDataCommand}"/> diff --git a/Flawless.Client/Views/RepositoryPage/RepoWorkspacePageView.axaml b/Flawless.Client/Views/RepositoryPage/RepoWorkspacePageView.axaml index a19e79e..1d9ec50 100644 --- a/Flawless.Client/Views/RepositoryPage/RepoWorkspacePageView.axaml +++ b/Flawless.Client/Views/RepositoryPage/RepoWorkspacePageView.axaml @@ -15,8 +15,8 @@ Command="{Binding SelectAllChangesCommand}"/> - - +