1
0

feat: Modify some functions

This commit is contained in:
Ca2didi 2025-04-06 17:38:30 +08:00
parent 4854c5b89e
commit ca8c3bcad3
11 changed files with 101 additions and 64 deletions

View File

@ -7,6 +7,11 @@
<configured-by-url>true</configured-by-url>
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
<jdbc-url>jdbc:postgresql://localhost:5432/postgres</jdbc-url>
<jdbc-additional-properties>
<property name="com.intellij.clouds.kubernetes.db.host.port" />
<property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
<property name="com.intellij.clouds.kubernetes.db.container.port" />
</jdbc-additional-properties>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>

View File

@ -5,8 +5,11 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssert_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fea501b1a950043b99f3df638f1824d6143a18_003Fb8_003Fb16d6a68_003FAssert_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAsyncValueTaskMethodBuilder_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fa6b7f037ba7b44df80b8d3aa7e58eeb2e8e938_003Fa5_003Ff3a8130e_003FAsyncValueTaskMethodBuilder_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAuthenticatorTokenProvider_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd56cb0a089b14dab96ad3ee133819f966d938_003Feb_003Fa2d5eee1_003FAuthenticatorTokenProvider_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACheckBoxColumnOptions_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F25ac83f0b30c483ab65ac482108a36294cc00_003F_005Fe6928_003FCheckBoxColumnOptions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACheckBoxColumn_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F2142c5e8387b5a71988ab7c9ece92b77aa8cea9b3f6f76a861547f959780d5_003FCheckBoxColumn_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AClaimsPrincipal_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fbf5ce3f8ae0647439d514bb1a3c7f96b13600_003F20_003Fabeaf9ae_003FClaimsPrincipal_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AClaimTypes_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fbf5ce3f8ae0647439d514bb1a3c7f96b13600_003Fbd_003F4cde67a5_003FClaimTypes_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AColumnBase_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F7d901ebbf99b7e87c21edb35dc72355e0e287a2559c8ee26452dc86792b2a_003FColumnBase_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AControllerBase_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fdffdaf205cf54e098aa7d66ba76b38621de920_003F53_003F6f15feba_003FControllerBase_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADbContext_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fcb0587797ea44bd6915ede69888c6766291038_003Fbc_003F2b4c89d0_003FDbContext_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIdentityDbContext_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3eeae7a548684642a53a9ceddc825b7a1a930_003Fcf_003F6a374370_003FIdentityDbContext_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@ -24,6 +27,8 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASignInManager_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F40411c547364428dafc988a7615774e28b910_003F6d_003F1a409232_003FSignInManager_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AStringValue_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fee39d1e9346e41aa9d44f0e1b1c6630f76268_003F49_003Fb92346b2_003FStringValue_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATestMethodInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F5ef53d675c5d34a6b85963919015dc0c1b06e5ea9834aac59ae6911f4c6f38_003FTestMethodInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATextColumnOptions_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003Fb453ad4346847ab5eb73bb5f57e6ef748946b57c6b76525b4d62e36c6b_003FTextColumnOptions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATextColumn_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003Ff28c315cd14c2851fdb3c6fc6050618665d26fab17f3d1d81edf3d638f6a477_003FTextColumn_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AUrsaWindow_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F6c6e6c071c6e4189b3f95226392ec1b565000_003Fd0_003F599b987a_003FUrsaWindow_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AUserManager_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb3abda585dc54c3f81f64fdda8fc5ba72b708_003F2f_003F1d20f21a_003FUserManager_00601_002Ecs_002Fz_003A2_002D1/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AUserManager_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd56cb0a089b14dab96ad3ee133819f966d938_003F9c_003F183f8355_003FUserManager_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@ -34,13 +39,13 @@
&lt;Assembly Path="C:\Users\Cardi\.nuget\packages\irihi.ursa.themes.semi\1.10.0\lib\netstandard2.0\Ursa.Themes.Semi.dll" /&gt;&#xD;
&lt;Assembly Path="C:\Users\Cardi\.nuget\packages\reactiveui\20.1.1\lib\net8.0\ReactiveUI.dll" /&gt;&#xD;
&lt;/AssemblyExplorer&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=b5573ef9_002Db554_002D4a56_002D82c4_002D2531c8feef65/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" IsLocked="True" Name="PathValidationTest" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=b5573ef9_002Db554_002D4a56_002D82c4_002D2531c8feef65/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" IsLocked="True" Name="PathValidationTest" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;TestAncestor&gt;
&lt;TestId&gt;MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit&lt;/TestId&gt;
&lt;/TestAncestor&gt;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=f3f8a684_002Dc08e_002D489f_002D949c_002D6c38a1ed63b0/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="PathValidationTest #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit.PathValidationTest&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=f3f8a684_002Dc08e_002D489f_002D949c_002D6c38a1ed63b0/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="PathValidationTest #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;TestAncestor&gt;
&lt;TestId&gt;MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit.PathValidationTest&lt;/TestId&gt;
&lt;/TestAncestor&gt;
&lt;/SessionState&gt;</s:String></wpf:ResourceDictionary>

View File

@ -3,7 +3,7 @@
xmlns:semi="https://irihi.tech/semi"
xmlns:ursa="https://irihi.tech/ursa/themes/semi"
x:Class="Flawless.Client.App"
RequestedThemeVariant="Light">
RequestedThemeVariant="Default">
<Application.Styles>
<semi:SemiTheme Locale="zh-cn"/>

View File

@ -67,8 +67,4 @@
<ProjectReference Include="..\Flawless.Abstract\Flawless.Abstract.csproj" />
<ProjectReference Include="..\Flawless.Core\Flawless.Core.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Converters\" />
</ItemGroup>
</Project>

View File

@ -24,14 +24,16 @@ using ChangeType = Flawless.Client.Service.LocalFileTreeAccessor.ChangeType;
namespace Flawless.Client.ViewModels;
public class LocalChangesNode
public partial class LocalChangesNode : ReactiveModel
{
public required string FullPath { get; set; }
[Reactive] private string _fullPath;
public required string Type { get; set; }
[Reactive] private string _type;
public DateTime? ModifiedTime { get; set; }
[Reactive] private DateTime? _modifiedTime;
[Reactive] private LocalChangesNode? _parent;
public bool Included
{
get
@ -42,31 +44,34 @@ public class LocalChangesNode
set
{
if (Contents != null) foreach (var n in Contents) n.Included = value;
_actualIncluded = value;
this.RaiseAndSetIfChanged(ref _actualIncluded, value, nameof(Included));
_parent?.RaisePropertyChanged(nameof(Included));
}
}
private bool _actualIncluded;
public ObservableCollection<LocalChangesNode>? Contents { get; set; }
public static LocalChangesNode FromFolder(string folderPath)
public static LocalChangesNode FromFolder(LocalChangesNode? parent, string folderPath)
{
return new LocalChangesNode
{
Type = "Folder",
FullPath = folderPath,
Contents = new()
Contents = new(),
Parent = parent
};
}
public static LocalChangesNode FromWorkspaceFile(LocalFileTreeAccessor.ChangeRecord file)
public static LocalChangesNode FromWorkspaceFile(LocalChangesNode? parent, LocalFileTreeAccessor.ChangeRecord file)
{
return new LocalChangesNode
{
Type = file.Type.ToString(),
FullPath = file.File.WorkPath,
ModifiedTime = file.File.ModifyTime
ModifiedTime = file.File.ModifyTime,
Parent = parent
};
}
}
@ -147,7 +152,12 @@ public partial class RepositoryViewModel : RoutableViewModelBase
Columns =
{
new CheckBoxColumn<LocalChangesNode>(
string.Empty, n => n.Included, (n, v) => n.Included = v),
null, n => n.Included, (n, v) => n.Included = v,
null, new CheckBoxColumnOptions<LocalChangesNode>
{
CanUserResizeColumn = false,
CanUserSortColumn = false,
}),
new HierarchicalExpanderColumn<LocalChangesNode>(
new TextColumn<LocalChangesNode, string>(
@ -177,7 +187,7 @@ public partial class RepositoryViewModel : RoutableViewModelBase
Columns =
{
new TextColumn<CommitTransitNode, string>(
string.Empty, n => n.CommitId == LocalDatabase.CurrentCommit.ToString() ? "*" : String.Empty),
string.Empty, n => n.CommitId == LocalDatabase.CurrentCommit.ToString() ? "HEAD" : String.Empty),
new TextColumn<CommitTransitNode, string>(
"Message", x => x.Message),
@ -263,10 +273,10 @@ public partial class RepositoryViewModel : RoutableViewModelBase
foreach (var file in changesNode)
{
var n = LocalChangesNode.FromWorkspaceFile(file);
var parentNode = AddParentToMap(file.File.WorkPath);
if (parentNode == null) nodes.Add(n);
else parentNode.Contents!.Add(n);
var parent = AddParentToMap(file.File.WorkPath);
var n = LocalChangesNode.FromWorkspaceFile(parent, file);
if (parent == null) nodes.Add(n);
else parent.Contents!.Add(n);
}
return nodes;
@ -282,8 +292,8 @@ public partial class RepositoryViewModel : RoutableViewModelBase
if (folderMap.TryGetValue(path, out var node)) return node;
// 生成当前文件夹,并先找到这个文件夹的直接文件夹
node = LocalChangesNode.FromFolder(path);
var parent = AddParentToMap(path);
node = LocalChangesNode.FromFolder(parent, path);
folderMap.Add(path, node);
if (parent != null) parent.Contents!.Add(node);
else nodes.Add(node);

View File

@ -6,12 +6,11 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:Flawless.Client.ViewModels"
xmlns:views="clr-namespace:Flawless.Client.Views"
x:DataType="vm:MainWindowViewModel"
Title="Flawless Version Control"
mc:Ignorable="d" d:DesignWidth="1280" d:DesignHeight="800"
x:CompileBindings="True"
CanResize="True" MinWidth="1024" MinHeight="768"
CanResize="True" MinWidth="1024" MinHeight="768" Width="1280" Height="800"
Icon="/Assets/avalonia-logo.ico">
<Design.DataContext>

View File

@ -9,7 +9,7 @@
x:Class="Flawless.Client.Views.RepositoryPage.RepoSettingPageView">
<TabControl TabStripPlacement="Left">
<TabItem Header="Members">
<StackPanel Width="600" Orientation="Vertical" HorizontalAlignment="Left">
<StackPanel Width="600" Orientation="Vertical" HorizontalAlignment="Left" Margin="6">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Spacing="8">
<u:IconButton Icon="{StaticResource SemiIconPlus}" Content="Add User"
IsVisible="{Binding Repository.OwnByCurrentUser}"
@ -43,8 +43,15 @@
</StackPanel>
</TabItem>
<TabItem Header="Admin Area" IsVisible="{Binding IsOwnerRole}">
<ScrollViewer Width="400" HorizontalAlignment="Left">
<ScrollViewer Width="600" HorizontalAlignment="Left" Margin="6">
<u:Form HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<u:FormItem Label="Repository Description">
<TextBox Classes="TextArea" HorizontalAlignment="Stretch">
<TextBox.KeyBindings>
<KeyBinding Gesture="Enter"></KeyBinding>
</TextBox.KeyBindings>
</TextBox>
</u:FormItem>
<u:FormItem Label="Delete Repository">
<Button HorizontalAlignment="Stretch" Classes="Danger" Content="Yes I Want to Delete this Repository"
Command="{Binding DeleteRepositoryBothServerAndLocalCommand}"/>

View File

@ -15,27 +15,19 @@
Command="{Binding SelectAllChangesCommand}"/>
<u:IconButton Icon="{StaticResource SemiIconList}" Content="None"
Command="{Binding DeselectAllChangesCommand}"/>
<u:IconButton Icon="{StaticResource SemiIconDownload}" Content="Pull"
Command="{Binding PullLatestRepositoryCommand}"/>
<!-- <u:IconButton Icon="{StaticResource SemiIconDownload}" Content="Open Folder" -->
<!-- Command="{Binding OpenFolderInSystemDefaultExplorerCommand}"/> -->
<!-- <ToggleButton Content="Auto Refresh" IsChecked="{Binding AutoDetectChanges}"/> -->
</StackPanel>
<TreeDataGrid Grid.Row="1" Grid.Column="0" Source="{Binding LocalChange}" CanUserSortColumns="True"/>
<Border Grid.Row="1" Grid.Column="2" Classes="Shadow" Theme="{StaticResource CardBorder}">
<Grid RowDefinitions="*, Auto">
<u:Form HorizontalAlignment="Stretch">
<TextBox Text="{Binding LocalDatabase.CommitMessage}"
Classes="TextArea" MaxHeight="300" Watermark="Description of this commit"/>
<SplitButton HorizontalAlignment="Stretch" Content="Commit" Command="{Binding CommitSelectedChangesCommand}">
<SplitButton.Flyout>
<MenuFlyout Placement="TopEdgeAlignedRight">
<MenuItem Header="Force Commit as Baseline" Command="{Binding CommitSelectedChangesCommand}"/>
</MenuFlyout>
</SplitButton.Flyout>
</SplitButton>
</u:Form>
</Grid>
<u:Form HorizontalAlignment="Stretch">
<u:IconButton Icon="{StaticResource SemiIconDownload}" Content="Pull" HorizontalAlignment="Stretch"
Command="{Binding PullLatestRepositoryCommand}"/>
<TextBox Text="{Binding LocalDatabase.CommitMessage}"
Classes="TextArea" MaxHeight="300" Watermark="Description of this commit"/>
<u:IconButton Content="Commit" Icon="{StaticResource SemiIconUpload}" HorizontalAlignment="Stretch"
Command="{Binding CommitSelectedChangesCommand}"/>
</u:Form>
</Border>
</Grid>
</UserControl>

View File

@ -24,7 +24,7 @@
<Label Content="Dashboard"/>
</StackPanel>
</TabItem.Header>
<page:RepoDashboardPageView Margin="18"/>
<page:RepoDashboardPageView/>
</TabItem>
<TabItem IsVisible="{Binding IsDeveloperRole}">
<TabItem.Header>
@ -33,7 +33,7 @@
<Label Content="Workspace"/>
</StackPanel>
</TabItem.Header>
<page:RepoWorkspacePageView Margin="18"/>
<page:RepoWorkspacePageView/>
</TabItem>
<TabItem>
<TabItem.Header>
@ -42,7 +42,7 @@
<Label Content="File Tree"/>
</StackPanel>
</TabItem.Header>
<page:RepoFileTreePageView Margin="18"/>
<page:RepoFileTreePageView/>
</TabItem>
<TabItem>
<TabItem.Header>
@ -51,7 +51,7 @@
<Label Content="Commit History"/>
</StackPanel>
</TabItem.Header>
<page:RepoCommitPageView Margin="18"/>
<page:RepoCommitPageView/>
</TabItem>
<TabItem IsVisible="{Binding IsReporterRole}">
<TabItem.Header>
@ -60,7 +60,7 @@
<Label Content="Issue"/>
</StackPanel>
</TabItem.Header>
<page:RepoIssuePageView Margin="18"/>
<page:RepoIssuePageView/>
</TabItem>
<TabItem>
<TabItem.Header>
@ -69,7 +69,7 @@
<Label Content="Setting"/>
</StackPanel>
</TabItem.Header>
<page:RepoSettingPageView Margin="18"/>
<page:RepoSettingPageView/>
</TabItem>
</TabControl>
</DockPanel>

View File

@ -17,16 +17,40 @@
</StackPanel>
<TabControl TabStripPlacement="Left" Margin="0 20">
<TabItem Header="Account">
<ScrollViewer Width="600" HorizontalAlignment="Left" Margin="6">
<u:Form HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
</u:Form>
</ScrollViewer>
</TabItem>
<TabItem Header="Local Storage">
<TabItem Header="Preference">
<ScrollViewer Width="600" HorizontalAlignment="Left" Margin="6">
<u:Form HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<u:FormItem Label="Default Storage Location">
<u:PathPicker/>
</u:FormItem>
<u:FormGroup Header="Workspace Refresh">
<StackPanel Spacing="4">
<CheckBox Theme="{StaticResource CardCheckBox}" Content="Open Workspace"/>
<CheckBox Theme="{StaticResource CardCheckBox}" Content="Filesystem Changed"/>
<CheckBox Theme="{StaticResource CardCheckBox}" Content="Gain Focus"/>
</StackPanel>
</u:FormGroup>
<u:FormGroup Header="Extern Tools">
<u:PathPicker u:FormItem.Label="Open Folder"/>
<u:PathPicker u:FormItem.Label="Diff Tool"/>
</u:FormGroup>
</u:Form>
</ScrollViewer>
</TabItem>
<TabItem Header="Server Configuration">
<TabItem Header="Server">
<ScrollViewer Width="600" HorizontalAlignment="Left" Margin="6">
<u:Form HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<ToggleSwitch u:FormItem.Label="Allow Public Register"></ToggleSwitch>
</u:Form>
</ScrollViewer>
</TabItem>
<TabItem Header="Server Users">
</TabItem>
<TabItem Header="Server Info">
</TabItem>
<TabItem Header="Client Info">
<TabItem Header="Users">
</TabItem>
</TabControl>
</DockPanel>

View File

@ -40,7 +40,6 @@
<ItemGroup>
<Folder Include="data\development\ff9864da-eac3-41f5-9d0f-99d51e608743\Depots\" />
<Folder Include="data\development\ff9864da-eac3-41f5-9d0f-99d51e608743\Manifests\" />
<Folder Include="Exceptions\" />
</ItemGroup>
</Project>