feat: Modify some functions
This commit is contained in:
parent
4854c5b89e
commit
ca8c3bcad3
@ -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>
|
||||
|
||||
@ -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 @@
|
||||
<Assembly Path="C:\Users\Cardi\.nuget\packages\irihi.ursa.themes.semi\1.10.0\lib\netstandard2.0\Ursa.Themes.Semi.dll" />
|
||||
<Assembly Path="C:\Users\Cardi\.nuget\packages\reactiveui\20.1.1\lib\net8.0\ReactiveUI.dll" />
|
||||
</AssemblyExplorer></s:String>
|
||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=b5573ef9_002Db554_002D4a56_002D82c4_002D2531c8feef65/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" IsLocked="True" Name="PathValidationTest" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||
<TestAncestor>
|
||||
<TestId>MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit</TestId>
|
||||
</TestAncestor>
|
||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=b5573ef9_002Db554_002D4a56_002D82c4_002D2531c8feef65/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" IsLocked="True" Name="PathValidationTest" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||
<TestAncestor>
|
||||
<TestId>MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit</TestId>
|
||||
</TestAncestor>
|
||||
</SessionState></s:String>
|
||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=f3f8a684_002Dc08e_002D489f_002D949c_002D6c38a1ed63b0/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="PathValidationTest #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||
<TestAncestor>
|
||||
<TestId>MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit.PathValidationTest</TestId>
|
||||
</TestAncestor>
|
||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=f3f8a684_002Dc08e_002D489f_002D949c_002D6c38a1ed63b0/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="PathValidationTest #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||
<TestAncestor>
|
||||
<TestId>MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit.PathValidationTest</TestId>
|
||||
</TestAncestor>
|
||||
</SessionState></s:String></wpf:ResourceDictionary>
|
||||
@ -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"/>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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}"/>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user