Add local JSON account import and export

This commit is contained in:
Burak Kaan Köse
2026-04-18 15:55:15 +02:00
parent 2a93600ede
commit 00437bae4e
14 changed files with 443 additions and 48 deletions
@@ -1,7 +1,7 @@
using Wino.Core.ViewModels;
using Wino.Mail.ViewModels;
namespace Wino.Mail.WinUI.Views.Abstract;
public abstract class ManageAccountsPageAbstract : BasePage<ManageAccountsPagePageViewModel>
public abstract class ManageAccountsPageAbstract : BasePage<AccountManagementViewModel>
{
}
@@ -220,6 +220,21 @@
<SymbolIcon Symbol="Account" />
</winuiControls:SettingsCard.HeaderIcon>
</winuiControls:SettingsCard>
<winuiControls:SettingsCard
Description="{x:Bind domain:Translator.WinoAccount_Management_LocalDataSectionDescription}"
Header="{x:Bind domain:Translator.WinoAccount_Management_LocalDataSectionTitle}">
<StackPanel Orientation="Horizontal" Spacing="12">
<Button
Command="{x:Bind ViewModel.ImportLocalDataCommand}"
Content="{x:Bind domain:Translator.WinoAccount_Management_LocalDataImportAction}" />
<Button
Command="{x:Bind ViewModel.ExportLocalDataCommand}"
Content="{x:Bind domain:Translator.WinoAccount_Management_LocalDataExportAction}" />
</StackPanel>
<winuiControls:SettingsCard.HeaderIcon>
<SymbolIcon Symbol="Sync" />
</winuiControls:SettingsCard.HeaderIcon>
</winuiControls:SettingsCard>
<winuiControls:SettingsCard
Command="{x:Bind ViewModel.CreateMergedAccountCommand}"
Description="{x:Bind domain:Translator.SettingsLinkAccounts_Description}"
+3 -3
View File
@@ -162,12 +162,12 @@
</AppBarButton>
<AppBarToggleButton
x:Name="ComposeAiActionsToggleButton"
Checked="ComposeAiActionsToggleButton_Checked"
MinWidth="40"
HorizontalContentAlignment="Center"
Checked="ComposeAiActionsToggleButton_Checked"
LabelPosition="Collapsed"
Visibility="{x:Bind GetAiActionsToggleVisibility(ViewModel.PreferencesService.IsAiActionsPanelHidden), Mode=OneWay}"
ToolTipService.ToolTip="{x:Bind domain:Translator.Composer_AiActions}">
ToolTipService.ToolTip="{x:Bind domain:Translator.Composer_AiActions}"
Visibility="{x:Bind GetAiActionsToggleVisibility(ViewModel.PreferencesService.IsAiActionsPanelHidden), Mode=OneWay}">
<AppBarToggleButton.Icon>
<FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xE945;" />
</AppBarToggleButton.Icon>
+19 -1
View File
@@ -4,7 +4,9 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:abstract="using:Wino.Mail.WinUI.Views.Abstract"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:winuiControls="using:CommunityToolkit.WinUI.Controls"
Style="{StaticResource PageStyle}"
mc:Ignorable="d">
@@ -12,6 +14,22 @@
<Grid
MaxWidth="900"
Padding="20"
HorizontalAlignment="Stretch" />
HorizontalAlignment="Stretch">
<winuiControls:SettingsCard
Description="{x:Bind domain:Translator.WinoAccount_Management_LocalDataSectionDescription}"
Header="{x:Bind domain:Translator.WinoAccount_Management_LocalDataSectionTitle}">
<StackPanel Orientation="Horizontal" Spacing="12">
<Button
Command="{x:Bind ViewModel.ImportLocalDataCommand}"
Content="{x:Bind domain:Translator.WinoAccount_Management_LocalDataImportAction}" />
<Button
Command="{x:Bind ViewModel.ExportLocalDataCommand}"
Content="{x:Bind domain:Translator.WinoAccount_Management_LocalDataExportAction}" />
</StackPanel>
<winuiControls:SettingsCard.HeaderIcon>
<SymbolIcon Symbol="Sync" />
</winuiControls:SettingsCard.HeaderIcon>
</winuiControls:SettingsCard>
</Grid>
</Border>
</abstract:ManageAccountsPageAbstract>
+8 -2
View File
@@ -126,13 +126,17 @@
<StackPanel
Grid.Row="3"
MaxWidth="600"
HorizontalAlignment="Center"
Spacing="8">
HorizontalAlignment="Center">
<HyperlinkButton
HorizontalAlignment="Center"
Command="{x:Bind ViewModel.ImportFromWinoAccountCommand}"
Content="{x:Bind domain:Translator.WelcomeWindow_ImportFromWinoAccount}" />
<HyperlinkButton
HorizontalAlignment="Center"
Command="{x:Bind ViewModel.ImportFromJsonCommand}"
Content="{x:Bind domain:Translator.WelcomeWindow_ImportFromJsonFile}" />
<StackPanel
x:Name="ImportProgressPanel"
HorizontalAlignment="Stretch"
@@ -157,6 +161,7 @@
Visibility="{x:Bind ViewModel.HasImportStatus, Mode=OneWay}" />
<TextBlock
Margin="0,4"
HorizontalAlignment="Center"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Style="{StaticResource BodyTextBlockStyle}"
@@ -164,6 +169,7 @@
<Button
MinWidth="240"
Margin="0,12,0,0"
Padding="12,10"
HorizontalAlignment="Center"
Command="{x:Bind ViewModel.GetStartedCommand}"