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/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}"/>
-
-
+