Sic.Framework/MECF.Framework.UI.Client/CenterViews/Configs/Accounts/AccountView.xaml

484 lines
25 KiB
XML

<UserControl
x:Class="MECF.Framework.UI.Client.CenterViews.Configs.Accounts.AccountView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:OpenSEMI.Ctrlib.Controls"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:micro="clr-namespace:Caliburn.Micro"
Width="1920">
<UserControl.Resources>
<Style
x:Key="ViewEnabledBtn"
BasedOn="{StaticResource ResourceKey={x:Type Button}}"
TargetType="{x:Type Button}">
<Setter Property="Button.IsEnabled" Value="False" />
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Permission}" Value="2" />
<Condition Binding="{Binding ControlMode}" Value="VIEW" />
</MultiDataTrigger.Conditions>
<Setter Property="Button.IsEnabled" Value="True" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
<Style
x:Key="EditEnabledBtn"
BasedOn="{StaticResource ResourceKey={x:Type Button}}"
TargetType="{x:Type Button}">
<Setter Property="Button.IsEnabled" Value="False" />
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Permission}" Value="2" />
<Condition Binding="{Binding ControlMode}" Value="EDIT" />
</MultiDataTrigger.Conditions>
<Setter Property="Button.IsEnabled" Value="True" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<Grid
x:Name="MainTable"
MinWidth="1900"
MinHeight="450"
HorizontalAlignment="Left">
<Grid x:Name="MainField">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<GridSplitter
Grid.Column="1"
Width="5"
HorizontalAlignment="Left"
BorderThickness="0,8">
<GridSplitter.Background>
<SolidColorBrush />
</GridSplitter.Background>
</GridSplitter>
<ListView
Name="AccountList"
Margin="0,20,0,0"
AlternationCount="2"
ItemsSource="{Binding AccountList}"
SelectedItem="{Binding TreeSelectedAccount}">
<ListView.Style>
<Style BasedOn="{StaticResource ResourceKey={x:Type ListView}}" TargetType="{x:Type ListView}">
<Setter Property="ListView.IsEnabled" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding ControlMode}" Value="VIEW">
<Setter Property="ListView.IsEnabled" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.Style>
<ListView.View>
<GridView>
<GridViewColumn
Width="200"
DisplayMemberBinding="{Binding DisplayAccountName}"
Header="Account" />
</GridView>
</ListView.View>
</ListView>
<Grid Grid.Column="1" Margin="10,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="20" />
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock
Margin="5,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
FontFamily="Arial"
FontSize="14"
FontWeight="Bold"
Foreground="{DynamicResource FG_Black}"
Text="Account Property"
TextWrapping="Wrap" />
<Grid
Grid.Row="1"
Margin="0,0,10,0"
IsEnabled="{Binding IsPermission}">
<Grid.RowDefinitions>
<RowDefinition Height="24" />
<RowDefinition Height="24" />
<RowDefinition Height="24" />
<RowDefinition Height="24" />
<RowDefinition Height="24" />
<RowDefinition Height="24" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid x:Name="GdAccountName" Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="12"
Foreground="{DynamicResource FG_Black}"
Text="Login Name"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<controls:TextBoxEx
x:Name="TbAccountName"
Width="200"
HorizontalAlignment="Left"
VerticalAlignment="Top"
HorizontalContentAlignment="Left"
IsEnabled="{Binding Mode=TwoWay, Path=TreeSelectedAccount.IsEnableChangeAccountName}"
MaxLength="50"
Text="{Binding TreeSelectedAccount.DisplayAccountName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
TextSaved="{Binding Mode=TwoWay, Path=TreeSelectedAccount.AccountTextSaved}"
Validation.ErrorTemplate="{StaticResource ValidationTemplate}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<micro:ActionMessage MethodName="OnAccountChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</controls:TextBoxEx>
</Border>
</Grid>
<Grid x:Name="GdNewPassword" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="12"
Foreground="{DynamicResource FG_Black}"
Text="New Password"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<PasswordBox
x:Name="pwNewPassword"
Width="200"
HorizontalAlignment="Left"
MaxLength="50"
Tag="NewPassword"
micro:Message.Attach="[Event PasswordChanged]=[Action OnPasswordChanged($source, $eventArgs)]"/>
</Border>
</Grid>
<Grid x:Name="GdConfirmPassword" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="12"
Foreground="{DynamicResource FG_Black}"
Text="Confirm Password"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<PasswordBox
Name="pwConfirmPassword"
Width="200"
HorizontalAlignment="Left"
MaxLength="50"
Tag="ConfirmPassword"
micro:Message.Attach="[Event PasswordChanged]=[Action OnPasswordChanged($source, $eventArgs)]"/>
</Border>
</Grid>
<Grid x:Name="GdFirstName" Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="12"
Foreground="{DynamicResource FG_Black}"
Text="First Name"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
x:Name="TbFirstName"
Width="200"
HorizontalAlignment="Left"
VerticalAlignment="Top"
HorizontalContentAlignment="Stretch"
MaxLength="50"
Text="{Binding TreeSelectedAccount.DisplayFirstName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
TextSaved="{Binding Mode=TwoWay, Path=TreeSelectedAccount.FirstNameTextSaved}"
Validation.ErrorTemplate="{StaticResource ValidationTemplate}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<micro:ActionMessage MethodName="OnAccountChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</controls:TextBoxEx>
</Border>
</Grid>
<Grid x:Name="GdLastName" Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="12"
Foreground="{DynamicResource FG_Black}"
Text="Last Name"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
x:Name="TbLastName"
Width="200"
HorizontalAlignment="Left"
VerticalAlignment="Top"
HorizontalContentAlignment="Stretch"
MaxLength="50"
Text="{Binding TreeSelectedAccount.DisplayLastName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
TextSaved="{Binding Mode=TwoWay, Path=TreeSelectedAccount.LastNameTextSaved}"
Validation.ErrorTemplate="{StaticResource ValidationTemplate}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<micro:ActionMessage MethodName="OnAccountChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</controls:TextBoxEx>
</Border>
</Grid>
<Grid x:Name="GdEmail" Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="12"
Foreground="{DynamicResource FG_Black}"
Text="Email"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
x:Name="TbEmail"
Width="200"
HorizontalAlignment="Left"
VerticalAlignment="Top"
HorizontalContentAlignment="Stretch"
MaxLength="50"
Text="{Binding TreeSelectedAccount.DisplayEmail, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
TextSaved="{Binding Mode=TwoWay, Path=TreeSelectedAccount.EmailTextSaved}"
Validation.ErrorTemplate="{StaticResource ValidationTemplate}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<micro:ActionMessage MethodName="OnAccountChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</controls:TextBoxEx>
</Border>
</Grid>
<Grid x:Name="GdDescription" Grid.Row="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="12"
Foreground="{DynamicResource FG_Black}"
Text="Description"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
x:Name="TbDescription"
MinWidth="200"
HorizontalAlignment="Left"
VerticalAlignment="Top"
HorizontalContentAlignment="Stretch"
MaxLength="50"
Text="{Binding TreeSelectedAccount.DisplayDescription, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
TextSaved="{Binding Mode=TwoWay, Path=TreeSelectedAccount.DescriptionTextSaved}"
Validation.ErrorTemplate="{StaticResource ValidationTemplate}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<micro:ActionMessage MethodName="OnAccountChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</controls:TextBoxEx>
</Border>
</Grid>
</Grid>
<TabControl Grid.Row="2" Margin="0,10,10,0">
<TabItem>
<TabItem.Header>
<TextBlock FontWeight="Bold" Text="Role Status" />
</TabItem.Header>
<ListView
Name="RolesStatusList"
VerticalAlignment="Top"
AlternationCount="2"
ItemsSource="{Binding Path=TreeSelectedAccount.RoleColleciton}">
<ListView.View>
<GridView>
<GridViewColumn
Width="250"
DisplayMemberBinding="{Binding RoleName}"
Header="Role" />
<GridViewColumn Width="300" Header="Status">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding DisplayRoleStatus}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="OnAccountChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</TabItem>
</TabControl>
</Grid>
<StackPanel
Grid.Row="1"
Grid.ColumnSpan="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<!--<Button
Width="150"
Height="25"
Content="Change Password"
Margin="0 0 20 0"
Style="{StaticResource ViewEnabledBtn}"
micro:Message.Attach="ChangePassword()"/>-->
<Button
Width="80"
Height="25"
Command="{Binding BtnAddAccountCommand}"
Content="Create"
Style="{StaticResource ViewEnabledBtn}" />
<Button
Width="80"
Height="25"
Margin="10,0,0,0"
Command="{Binding BtnDeleteAccountCommand}"
Content="Delete"
Style="{StaticResource ViewEnabledBtn}" />
<Button
Width="80"
Height="25"
Margin="10,0,0,0"
Command="{Binding BtnCloneAccountCommand}"
Content="Clone"
Style="{StaticResource ViewEnabledBtn}" />
<Button
Width="80"
Height="25"
Margin="10,0,0,0"
Command="{Binding BtnSaveAccountCommand}"
Content="Save"
Style="{StaticResource EditEnabledBtn}" />
<Button
Width="80"
Height="25"
Margin="10,0,0,0"
Command="{Binding BtnCancelAccountCommand}"
Content="Cancel"
Style="{StaticResource EditEnabledBtn}" />
</StackPanel>
</Grid>
</Grid>
</UserControl>