Files
Wino-Mail/Wino.Mail/Views/Settings/AliasManagementPage.xaml
Burak Kaan Köse 747efac2ec Reworked aliases.
2024-08-17 19:54:52 +02:00

165 lines
21 KiB
XML

<abstract:AliasManagementPageAbstract x:Class="Wino.Views.Settings.AliasManagementPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:ui="using:Microsoft.Toolkit.Uwp.UI"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:abstract="using:Wino.Views.Abstract"
xmlns:controls="using:Wino.Controls"
xmlns:controls1="using:CommunityToolkit.WinUI.Controls"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:behaviors="using:CommunityToolkit.WinUI.Behaviors"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:entities="using:Wino.Core.Domain.Entities"
xmlns:helpers="using:Wino.Helpers"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:reader="using:Wino.Core.Domain.Models.Reader"
x:Name="root"
mc:Ignorable="d">
<Page.Resources>
<DataTemplate x:DataType="entities:MailAccountAlias" x:Key="AccountAliasTemplate">
<Grid Margin="0,0,0,20" ColumnSpacing="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<Grid VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="{x:Bind AliasAddress}" FontWeight="SemiBold" />
<TextBlock Style="{StaticResource CaptionTextBlockStyle}" Grid.Row="1">
<Run Text="Reply-To:" /> <Run Text="{x:Bind ReplyToAddress}" />
</TextBlock>
</Grid>
<controls1:SwitchPresenter HorizontalAlignment="Stretch"
Grid.Column="1"
TargetType="x:Boolean"
Value="{x:Bind IsVerified}">
<controls1:Case Value="True">
<Ellipse Margin="0,0,12,0"
Fill="{StaticResource AliasVerifiedBrush}"
Width="12"
Height="12" />
</controls1:Case>
<controls1:Case Value="False">
<Ellipse Margin="0,0,12,0"
Fill="{StaticResource AliasUnverifiedBrush}"
Width="12"
Height="12" />
</controls1:Case>
</controls1:SwitchPresenter>
<RadioButton IsChecked="{x:Bind IsPrimary, Mode=OneWay}"
Grid.Column="2"
Command="{Binding ElementName=root, Path=ViewModel.SetAliasPrimaryCommand}"
CommandParameter="{Binding}" />
<Button Grid.Column="3"
IsEnabled="{x:Bind CanDelete}"
HorizontalAlignment="Right"
Command="{Binding ElementName=root, Path=ViewModel.DeleteAliasCommand}"
CommandParameter="{Binding}">
<Button.Content>
<PathIcon Data="F1 M 19.375 3.125 C 19.375 3.26823 19.34733 3.382162 19.291992 3.466797 C 19.236652 3.551434 19.16341 3.61491 19.072266 3.657227 C 18.981119 3.699545 18.880207 3.727215 18.769531 3.740234 C 18.658854 3.753256 18.544922 3.759766 18.427734 3.759766 C 18.362629 3.759766 18.297525 3.758139 18.232422 3.754883 C 18.167316 3.751629 18.108723 3.75 18.056641 3.75 L 16.435547 17.783203 C 16.396484 18.095703 16.305338 18.387045 16.162109 18.657227 C 16.018879 18.927408 15.836588 19.161783 15.615234 19.360352 C 15.39388 19.55892 15.139974 19.71517 14.853516 19.829102 C 14.567057 19.943033 14.267578 20 13.955078 20 L 6.044922 20 C 5.732422 20 5.432942 19.943033 5.146484 19.829102 C 4.860026 19.71517 4.60612 19.55892 4.384766 19.360352 C 4.163411 19.161783 3.98112 18.927408 3.837891 18.657227 C 3.694661 18.387045 3.603516 18.095703 3.564453 17.783203 L 1.943359 3.75 C 1.878255 3.75 1.813151 3.751629 1.748047 3.754883 C 1.682943 3.758139 1.617839 3.759766 1.552734 3.759766 C 1.442057 3.759766 1.33138 3.753256 1.220703 3.740234 C 1.110026 3.727215 1.010742 3.697918 0.922852 3.652344 C 0.834961 3.606771 0.763346 3.541668 0.708008 3.457031 C 0.652669 3.372396 0.625 3.261719 0.625 3.125 C 0.625 2.95573 0.686849 2.809246 0.810547 2.685547 C 0.934245 2.56185 1.080729 2.5 1.25 2.5 L 6.933594 2.5 C 6.998697 2.141928 7.127278 1.809896 7.319336 1.503906 C 7.511393 1.197918 7.745768 0.932617 8.022461 0.708008 C 8.299153 0.483398 8.606771 0.309246 8.945312 0.185547 C 9.283854 0.06185 9.635416 0 10 0 C 10.364583 0 10.716146 0.06185 11.054688 0.185547 C 11.393229 0.309246 11.700846 0.483398 11.977539 0.708008 C 12.25423 0.932617 12.488605 1.197918 12.680664 1.503906 C 12.872721 1.809896 13.001302 2.141928 13.066406 2.5 L 18.75 2.5 C 18.91927 2.5 19.065754 2.56185 19.189453 2.685547 C 19.31315 2.809246 19.375 2.95573 19.375 3.125 Z M 8.232422 2.5 L 11.767578 2.5 C 11.702474 2.311199 11.611328 2.140301 11.494141 1.987305 C 11.376953 1.834311 11.240234 1.702475 11.083984 1.591797 C 10.927734 1.481121 10.758463 1.396484 10.576172 1.337891 C 10.39388 1.279297 10.201822 1.25 10 1.25 C 9.798177 1.25 9.606119 1.279297 9.423828 1.337891 C 9.241536 1.396484 9.072266 1.481121 8.916016 1.591797 C 8.759766 1.702475 8.623047 1.834311 8.505859 1.987305 C 8.388672 2.140301 8.297525 2.311199 8.232422 2.5 Z M 16.796875 3.75 L 3.203125 3.75 L 4.804688 17.646484 C 4.84375 17.972006 4.978841 18.237305 5.209961 18.442383 C 5.441081 18.647461 5.719401 18.75 6.044922 18.75 L 13.955078 18.75 C 14.111328 18.75 14.261067 18.72233 14.404297 18.666992 C 14.547525 18.611654 14.674479 18.535156 14.785156 18.4375 C 14.895833 18.339844 14.986979 18.222656 15.058594 18.085938 C 15.130208 17.949219 15.175781 17.802734 15.195312 17.646484 Z M 7.5 14.375 L 7.5 8.125 C 7.5 7.95573 7.561849 7.809246 7.685547 7.685547 C 7.809245 7.56185 7.955729 7.5 8.125 7.5 C 8.294271 7.5 8.440755 7.56185 8.564453 7.685547 C 8.68815 7.809246 8.75 7.95573 8.75 8.125 L 8.75 14.375 C 8.75 14.544271 8.68815 14.690756 8.564453 14.814453 C 8.440755 14.938151 8.294271 15 8.125 15 C 7.955729 15 7.809245 14.938151 7.685547 14.814453 C 7.561849 14.690756 7.5 14.544271 7.5 14.375 Z M 11.25 14.375 L 11.25 8.125 C 11.25 7.95573 11.311849 7.809246 11.435547 7.685547 C 11.559244 7.56185 11.705729 7.5 11.875 7.5 C 12.04427 7.5 12.190754 7.56185 12.314453 7.685547 C 12.43815 7.809246 12.5 7.95573 12.5 8.125 L 12.5 14.375 C 12.5 14.544271 12.43815 14.690756 12.314453 14.814453 C 12.190754 14.938151 12.04427 15 11.875 15 C 11.705729 15 11.559244 14.938151 11.435547 14.814453 C 11.311849 14.690756 11.25 14.544271 11.25 14.375 Z " />
</Button.Content>
</Button>
</Grid>
</DataTemplate>
</Page.Resources>
<ListView ItemTemplate="{StaticResource AccountAliasTemplate}"
ItemsSource="{x:Bind ViewModel.AccountAliases, Mode=OneWay}"
ui:ListViewExtensions.ItemContainerStretchDirection="Horizontal"
SelectionMode="None">
<ListView.ItemContainerTransitions>
<TransitionCollection>
<NavigationThemeTransition />
</TransitionCollection>
</ListView.ItemContainerTransitions>
<ListView.Header>
<Grid Padding="16,0,24,20"
RowSpacing="12"
ColumnSpacing="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.ColumnSpan="5" ColumnSpacing="12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid Style="{StaticResource InformationAreaGridStyle}">
<TextBlock HorizontalTextAlignment="Center" TextWrapping="WrapWholeWords">
<Run Text="{x:Bind domain:Translator.GeneralTitle_Info}" FontWeight="SemiBold" />
<LineBreak />
<Run Text="{x:Bind domain:Translator.AccountAlias_Disclaimer_FirstLine}" />
<LineBreak />
<Run Text="{x:Bind domain:Translator.AccountAlias_Disclaimer_SecondLine}" />
</TextBlock>
</Grid>
<Button Grid.Column="1"
HorizontalAlignment="Stretch"
Visibility="{x:Bind ViewModel.CanSynchronizeAliases, Mode=OneWay}"
Command="{x:Bind ViewModel.SyncAliasesCommand}"
VerticalAlignment="Stretch">
<StackPanel Spacing="6">
<PathIcon Data="F1 M 18.330078 3.330078 L 18.330078 7.5 C 18.330078 7.727865 18.248697 7.923178 18.085938 8.085938 C 17.923176 8.248698 17.727863 8.330078 17.5 8.330078 L 13.330078 8.330078 C 13.102213 8.330078 12.9069 8.248698 12.744141 8.085938 C 12.58138 7.923178 12.5 7.727865 12.5 7.5 C 12.5 7.272136 12.58138 7.076823 12.744141 6.914062 C 12.9069 6.751303 13.102213 6.669923 13.330078 6.669922 L 15.78125 6.669922 C 15.481771 6.149089 15.120442 5.681967 14.697266 5.268555 C 14.274088 4.855145 13.808593 4.505209 13.300781 4.21875 C 12.792968 3.932293 12.25423 3.712566 11.68457 3.55957 C 11.114908 3.406576 10.530599 3.330078 9.931641 3.330078 C 9.384766 3.330078 8.846028 3.401693 8.31543 3.544922 C 7.784831 3.688152 7.280273 3.891602 6.801758 4.155273 C 6.323242 4.418945 5.878906 4.737956 5.46875 5.112305 C 5.058594 5.486654 4.703776 5.901693 4.404297 6.357422 C 4.254557 6.585287 4.127604 6.816407 4.023438 7.050781 C 3.919271 7.285157 3.815104 7.526043 3.710938 7.773438 C 3.639323 7.942709 3.538411 8.0778 3.408203 8.178711 C 3.277995 8.279623 3.11849 8.330078 2.929688 8.330078 C 2.701823 8.330078 2.504883 8.250326 2.338867 8.09082 C 2.172852 7.931315 2.089844 7.734375 2.089844 7.5 C 2.089844 7.415365 2.10612 7.32422 2.138672 7.226562 C 2.41862 6.412761 2.81901 5.66569 3.339844 4.985352 C 3.860677 4.305014 4.464518 3.719076 5.151367 3.227539 C 5.838216 2.736004 6.588541 2.353516 7.402344 2.080078 C 8.216146 1.806641 9.052734 1.669922 9.912109 1.669922 C 10.576172 1.669922 11.227213 1.743164 11.865234 1.889648 C 12.503255 2.036133 13.111979 2.250977 13.691406 2.53418 C 14.270832 2.817383 14.811197 3.167318 15.3125 3.583984 C 15.813802 4.000652 16.266275 4.475912 16.669922 5.009766 L 16.669922 3.330078 C 16.669922 3.102215 16.751301 2.906902 16.914062 2.744141 C 17.076822 2.581381 17.272135 2.5 17.5 2.5 C 17.727863 2.5 17.923176 2.581381 18.085938 2.744141 C 18.248697 2.906902 18.330078 3.102215 18.330078 3.330078 Z M 17.861328 12.5 C 17.861328 12.584636 17.845051 12.675781 17.8125 12.773438 C 17.532551 13.58724 17.13216 14.334311 16.611328 15.014648 C 16.090494 15.694987 15.486653 16.280924 14.799805 16.772461 C 14.112955 17.263998 13.362629 17.646484 12.548828 17.919922 C 11.735025 18.193359 10.898438 18.330078 10.039062 18.330078 C 9.375 18.330078 8.728841 18.258463 8.100586 18.115234 C 7.472331 17.972006 6.871745 17.762045 6.298828 17.485352 C 5.725911 17.208658 5.188802 16.865234 4.6875 16.455078 C 4.186198 16.044922 3.733724 15.576172 3.330078 15.048828 L 3.330078 16.669922 C 3.330078 16.897787 3.248698 17.0931 3.085938 17.255859 C 2.923177 17.418619 2.727865 17.5 2.5 17.5 C 2.272135 17.5 2.076823 17.418619 1.914062 17.255859 C 1.751302 17.0931 1.669922 16.897787 1.669922 16.669922 L 1.669922 12.5 C 1.669922 12.272136 1.751302 12.076823 1.914062 11.914062 C 2.076823 11.751303 2.272135 11.669922 2.5 11.669922 L 6.669922 11.669922 C 6.897786 11.669922 7.093099 11.751303 7.255859 11.914062 C 7.418619 12.076823 7.5 12.272136 7.5 12.5 C 7.5 12.727865 7.418619 12.923178 7.255859 13.085938 C 7.093099 13.248698 6.897786 13.330078 6.669922 13.330078 L 4.179688 13.330078 C 4.479167 13.850912 4.840495 14.318034 5.263672 14.731445 C 5.686849 15.144857 6.150716 15.494792 6.655273 15.78125 C 7.15983 16.067709 7.696939 16.287436 8.266602 16.44043 C 8.836263 16.593424 9.420572 16.669922 10.019531 16.669922 C 10.566406 16.669922 11.106771 16.598307 11.640625 16.455078 C 12.174479 16.31185 12.680664 16.108398 13.15918 15.844727 C 13.637695 15.581055 14.080403 15.262045 14.487305 14.887695 C 14.894205 14.513347 15.247396 14.095053 15.546875 13.632812 C 15.696614 13.404948 15.821939 13.173828 15.922852 12.939453 C 16.023762 12.705078 16.129557 12.464193 16.240234 12.216797 C 16.311848 12.047526 16.414387 11.912436 16.547852 11.811523 C 16.681314 11.710612 16.842447 11.660156 17.03125 11.660156 C 17.148438 11.660156 17.257486 11.682943 17.358398 11.728516 C 17.459309 11.774089 17.547199 11.834311 17.62207 11.90918 C 17.696939 11.98405 17.755533 12.07194 17.797852 12.172852 C 17.840168 12.273764 17.861328 12.382812 17.861328 12.5 Z "
VerticalAlignment="Center"
HorizontalAlignment="Center" />
<TextBlock Text="{x:Bind domain:Translator.Buttons_SyncAliases}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</StackPanel>
</Button>
<Button Grid.Column="2"
HorizontalAlignment="Stretch"
Command="{x:Bind ViewModel.AddNewAliasCommand}"
VerticalAlignment="Stretch">
<StackPanel Spacing="6">
<PathIcon Data="F1 M 3.75 4.902344 C 3.75 4.225262 3.885091 3.588867 4.155273 2.993164 C 4.425456 2.397461 4.790039 1.878256 5.249023 1.435547 C 5.708008 0.99284 6.238606 0.642904 6.84082 0.385742 C 7.443034 0.128582 8.079427 0 8.75 0 C 9.420572 0 10.056966 0.128582 10.65918 0.385742 C 11.261393 0.642904 11.791992 0.99284 12.250977 1.435547 C 12.709961 1.878256 13.074544 2.397461 13.344727 2.993164 C 13.614908 3.588867 13.75 4.225262 13.75 4.902344 C 13.75 5.332031 13.707682 5.742188 13.623047 6.132812 C 13.538411 6.523438 13.395182 6.907553 13.193359 7.285156 C 12.307942 7.434896 11.484375 7.734375 10.722656 8.183594 C 11.295572 7.819012 11.735025 7.353517 12.041016 6.787109 C 12.347005 6.220704 12.5 5.598959 12.5 4.921875 C 12.5 4.414062 12.399088 3.937176 12.197266 3.491211 C 11.995442 3.045248 11.723633 2.65625 11.381836 2.324219 C 11.040039 1.992188 10.641275 1.730145 10.185547 1.538086 C 9.729817 1.346029 9.251302 1.25 8.75 1.25 C 8.229166 1.25 7.740885 1.347656 7.285156 1.542969 C 6.829427 1.738281 6.432292 2.005209 6.09375 2.34375 C 5.755208 2.682293 5.488281 3.079428 5.292969 3.535156 C 5.097656 3.990887 5 4.479167 5 5 C 5 5.501303 5.096028 5.979818 5.288086 6.435547 C 5.480143 6.891276 5.742188 7.290039 6.074219 7.631836 C 6.40625 7.973633 6.795247 8.245443 7.241211 8.447266 C 7.687174 8.649089 8.164062 8.75 8.671875 8.75 C 9.023438 8.75 9.360352 8.709311 9.682617 8.62793 C 10.004883 8.54655 10.322266 8.417969 10.634766 8.242188 C 9.873047 8.704428 9.222005 9.290365 8.681641 10 L 8.662109 10 C 8.011067 10 7.389323 9.868164 6.796875 9.604492 C 6.204427 9.34082 5.681966 8.984375 5.229492 8.535156 C 4.777018 8.085938 4.417317 7.565104 4.150391 6.972656 C 3.883463 6.380209 3.75 5.755209 3.75 5.097656 Z M 8.75 14.375 C 8.75 13.600261 8.898111 12.871094 9.194336 12.1875 C 9.49056 11.503906 9.892578 10.908203 10.400391 10.400391 C 10.908203 9.892578 11.503906 9.490561 12.1875 9.194336 C 12.871093 8.898112 13.60026 8.75 14.375 8.75 C 14.889322 8.75 15.385741 8.816732 15.864258 8.950195 C 16.342773 9.083659 16.790363 9.272461 17.207031 9.516602 C 17.623697 9.760742 18.004557 10.055339 18.349609 10.400391 C 18.69466 10.745443 18.989258 11.126303 19.233398 11.542969 C 19.477539 11.959636 19.66634 12.407227 19.799805 12.885742 C 19.933268 13.364258 20 13.860678 20 14.375 C 20 15.14974 19.851887 15.878906 19.555664 16.5625 C 19.259439 17.246094 18.857422 17.841797 18.349609 18.349609 C 17.841797 18.857422 17.246094 19.259439 16.5625 19.555664 C 15.878906 19.851889 15.149739 20 14.375 20 C 13.59375 20 12.861328 19.853516 12.177734 19.560547 C 11.494141 19.267578 10.898438 18.867188 10.390625 18.359375 C 9.882812 17.851562 9.482422 17.255859 9.189453 16.572266 C 8.896484 15.888672 8.75 15.15625 8.75 14.375 Z M 0 13.701172 C 0 13.375651 0.066732 13.064779 0.200195 12.768555 C 0.333659 12.472331 0.512695 12.211914 0.737305 11.987305 C 0.961914 11.762695 1.222331 11.583659 1.518555 11.450195 C 1.814779 11.316732 2.125651 11.25 2.451172 11.25 L 7.900391 11.25 C 7.809244 11.451823 7.722981 11.656901 7.641602 11.865234 C 7.560221 12.073568 7.490234 12.285156 7.431641 12.5 L 2.5 12.5 C 2.324219 12.5 2.161458 12.532553 2.011719 12.597656 C 1.861979 12.662761 1.730143 12.752279 1.616211 12.866211 C 1.502279 12.980144 1.41276 13.111979 1.347656 13.261719 C 1.282552 13.411459 1.25 13.574219 1.25 13.75 C 1.25 14.407553 1.359049 14.986979 1.577148 15.488281 C 1.795247 15.989584 2.091471 16.425781 2.46582 16.796875 C 2.840169 17.167969 3.273112 17.478842 3.764648 17.729492 C 4.256185 17.980143 4.777018 18.180338 5.327148 18.330078 C 5.877278 18.479818 6.438802 18.58724 7.011719 18.652344 C 7.584635 18.717447 8.138021 18.75 8.671875 18.75 C 8.847656 18.977865 9.033203 19.192709 9.228516 19.394531 C 9.423828 19.596354 9.635416 19.785156 9.863281 19.960938 C 9.674479 19.973959 9.488932 19.983725 9.306641 19.990234 C 9.124349 19.996744 8.938802 20 8.75 20 C 7.897135 20 7.042643 19.939779 6.186523 19.819336 C 5.330403 19.698893 4.511719 19.462891 3.730469 19.111328 C 3.157552 18.850912 2.641602 18.543295 2.182617 18.188477 C 1.723633 17.833658 1.333008 17.431641 1.010742 16.982422 C 0.688477 16.533203 0.439453 16.035156 0.263672 15.488281 C 0.087891 14.941406 0 14.345703 0 13.701172 Z M 15 15 L 16.875 15 C 17.04427 15 17.190754 14.938151 17.314453 14.814453 C 17.43815 14.690756 17.5 14.544271 17.5 14.375 C 17.5 14.205729 17.43815 14.059245 17.314453 13.935547 C 17.190754 13.81185 17.04427 13.75 16.875 13.75 L 15 13.75 L 15 11.875 C 14.999999 11.705729 14.93815 11.559245 14.814453 11.435547 C 14.690755 11.31185 14.544271 11.25 14.375 11.25 C 14.205729 11.25 14.059244 11.31185 13.935547 11.435547 C 13.811849 11.559245 13.75 11.705729 13.75 11.875 L 13.75 13.75 L 11.875 13.75 C 11.705729 13.75 11.559244 13.81185 11.435547 13.935547 C 11.311849 14.059245 11.25 14.205729 11.25 14.375 C 11.25 14.544271 11.311849 14.690756 11.435547 14.814453 C 11.559244 14.938151 11.705729 15 11.875 15 L 13.75 15 L 13.75 16.875 C 13.75 17.044271 13.811849 17.190756 13.935547 17.314453 C 14.059244 17.43815 14.205729 17.5 14.375 17.5 C 14.544271 17.5 14.690755 17.43815 14.814453 17.314453 C 14.93815 17.190756 14.999999 17.044271 15 16.875 Z "
VerticalAlignment="Center"
HorizontalAlignment="Center" />
<TextBlock Text="{x:Bind domain:Translator.Buttons_AddNewAlias}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</StackPanel>
</Button>
</Grid>
<TextBlock Text="{x:Bind domain:Translator.AccountAlias_Column_Alias}" Grid.Row="1" />
<TextBlock Text="{x:Bind domain:Translator.AccountAlias_Column_Verified}"
Grid.Row="1"
HorizontalAlignment="Right"
Grid.Column="1" />
<TextBlock Text="{x:Bind domain:Translator.AccountAlias_Column_IsPrimaryAlias}"
Grid.Row="2"
Grid.Column="2" />
</Grid>
</ListView.Header>
</ListView>
</abstract:AliasManagementPageAbstract>