KanbanResources.xaml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:wpf="clr-namespace:InABox.WPF;assembly=InABox.Wpf"
  4. xmlns:local="clr-namespace:PRSDesktop"
  5. x:Class="PRSDesktop.KanbanResources">
  6. <wpf:BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter" TrueValue="Visible" FalseValue="Collapsed" />
  7. <local:ViewModeToKanbanTemplateConverter x:Key="TypeToTemplateConverter"/>
  8. <local:KanbanStatusToStringConverter x:Key="KanbanStatusToStringConverter"/>
  9. <Style x:Key="employeeStyle" TargetType="{x:Type TextBlock}">
  10. <Style.Triggers>
  11. <DataTrigger Binding="{Binding AssignedTo}" Value="">
  12. <Setter Property="Visibility" Value="Collapsed" />
  13. </DataTrigger>
  14. </Style.Triggers>
  15. </Style>
  16. <Style x:Key="managerStyle" TargetType="{x:Type TextBlock}">
  17. <Style.Triggers>
  18. <DataTrigger Binding="{Binding Manager}" Value="">
  19. <Setter Property="Visibility" Value="Collapsed"/>
  20. </DataTrigger>
  21. </Style.Triggers>
  22. </Style>
  23. <Style x:Key="jobStyle" TargetType="{x:Type TextBlock}">
  24. <Style.Triggers>
  25. <DataTrigger Binding="{Binding JobNumber}" Value="">
  26. <Setter Property="Visibility" Value="Collapsed" />
  27. </DataTrigger>
  28. </Style.Triggers>
  29. </Style>
  30. <Style x:Key="descriptionStyle" TargetType="{x:Type TextBlock}">
  31. <Style.Triggers>
  32. <DataTrigger Binding="{Binding Path=Description}" Value="">
  33. <Setter Property="Visibility" Value="Collapsed" />
  34. </DataTrigger>
  35. </Style.Triggers>
  36. </Style>
  37. <Style x:Key="notesStyle" TargetType="{x:Type TextBlock}">
  38. <Style.Triggers>
  39. <DataTrigger Binding="{Binding Path=Notes}" Value="">
  40. <Setter Property="Visibility" Value="Collapsed" />
  41. </DataTrigger>
  42. </Style.Triggers>
  43. </Style>
  44. <DataTemplate x:Key="FullKanban" DataType="{x:Type local:TaskModel}">
  45. <Border BorderBrush="Gray" BorderThickness="0.75" CornerRadius="5"
  46. Margin="0,2,0,2" MouseLeftButtonDown="Border_MouseLeftButtonDown" Tag="{Binding}"
  47. MouseMove="Border_MouseMove" ContextMenuOpening="TaskMenu_Opened">
  48. <Border.Background>
  49. <SolidColorBrush Color="{Binding Color}"/>
  50. </Border.Background>
  51. <Grid Margin="4">
  52. <Grid.ColumnDefinitions>
  53. <ColumnDefinition x:Name="colImage">
  54. <ColumnDefinition.Style>
  55. <Style TargetType="ColumnDefinition">
  56. <Setter Property="Width" Value="Auto"/>
  57. <Style.Triggers>
  58. <DataTrigger Binding="{Binding Path=Image}" Value="{x:Null}">
  59. <Setter Property="Width" Value="0"/>
  60. </DataTrigger>
  61. </Style.Triggers>
  62. </Style>
  63. </ColumnDefinition.Style>
  64. </ColumnDefinition>
  65. <ColumnDefinition x:Name="colCheckbox" Width="Auto" />
  66. <ColumnDefinition x:Name="colDescription" Width="*" />
  67. <ColumnDefinition x:Name="colType" Width="Auto" />
  68. <ColumnDefinition x:Name="colAttach" Width="Auto" />
  69. <ColumnDefinition x:Name="colDueDate" Width="Auto" />
  70. </Grid.ColumnDefinitions>
  71. <Grid.RowDefinitions>
  72. <RowDefinition Height="Auto" />
  73. <RowDefinition Height="*" />
  74. <RowDefinition Height="Auto" />
  75. </Grid.RowDefinitions>
  76. <Border Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Width="40" Height="40" CornerRadius="20"
  77. Margin="0,0,4,0" BorderBrush="Black" BorderThickness="1" VerticalAlignment="Top">
  78. <Border.Background>
  79. <ImageBrush ImageSource="{Binding Path=Image}" Stretch="UniformToFill" />
  80. </Border.Background>
  81. </Border>
  82. <CheckBox Grid.Row="0" Grid.Column="1" Margin="0,0,4,0" VerticalAlignment="Center"
  83. IsChecked="{Binding Path=Checked}" Checked="CheckBox_Checked"
  84. Unchecked="CheckBox_Checked" Tag="{Binding}" />
  85. <TextBlock Grid.Row="0" Grid.Column="2" Margin="0,0,0,0" FontWeight="DemiBold" FontSize="12"
  86. VerticalAlignment="Center">
  87. <Run Text="{Binding Path=Number}" /><Run Text=": " /><Run Text="{Binding Path=Title}" />
  88. </TextBlock>
  89. <TextBlock Grid.Row="0" Grid.Column="3" FontSize="12" Margin="4,0,0,0" Text="{Binding Path=Type.Code}"
  90. FontWeight="DemiBold" VerticalAlignment="Center" HorizontalAlignment="Center" />
  91. <Image Grid.Row="0" Grid.Column="4" Margin="4,0,4,0"
  92. Source="pack://application:,,,Resources/attachment.png"
  93. Visibility="{Binding Path=Attachments, Converter={StaticResource BoolToVisibilityConverter}}"
  94. Width="16" Height="16" VerticalAlignment="Center" />
  95. <TextBlock Grid.Row="0" Grid.Column="5" Text="{Binding DueDate, StringFormat='{}{0:dd MMM yy}'}"
  96. FontWeight="Bold" FontSize="12" VerticalAlignment="Center" HorizontalAlignment="Center" />
  97. <TextBlock Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="5" Margin="0,0,0,0" FontSize="12"
  98. HorizontalAlignment="Left" Text="{Binding Path=Description}" VerticalAlignment="Stretch"
  99. TextWrapping="Wrap" />
  100. <DockPanel Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="5">
  101. <TextBlock DockPanel.Dock="Right" x:Name="Job" Margin="0" FontWeight="DemiBold" FontSize="12"
  102. VerticalAlignment="Center" TextAlignment="Right" Style="{StaticResource jobStyle}">
  103. <Run Text="{Binding JobNumber}" /><Run Text=": " /><Run Text="{Binding JobName}" />
  104. </TextBlock>
  105. <TextBlock DockPanel.Dock="Left" x:Name="Staff" FontWeight="DemiBold" FontSize="12"
  106. VerticalAlignment="Center" Text="{Binding AssignedTo}"
  107. Style="{StaticResource employeeStyle}" />
  108. </DockPanel>
  109. <Image Grid.Row="2" Grid.Column="0" Margin="0,0,4,0"
  110. Source="pack://application:,,,Resources/lock.png"
  111. Visibility="{Binding Path=Locked, Converter={StaticResource BoolToVisibilityConverter}}"
  112. Width="20" Height="20" VerticalAlignment="Center" HorizontalAlignment="Center" />
  113. </Grid>
  114. <Border.ToolTip>
  115. <Grid>
  116. <Grid.RowDefinitions>
  117. <RowDefinition Height="Auto"/>
  118. <RowDefinition Height="Auto"/>
  119. <RowDefinition Height="Auto"/>
  120. </Grid.RowDefinitions>
  121. <Grid.ColumnDefinitions>
  122. <ColumnDefinition Width="Auto"/>
  123. </Grid.ColumnDefinitions>
  124. <TextBlock Grid.Row="0" Grid.Column="0">
  125. <Run FontWeight="DemiBold" Text="{Binding Path=Title}"/>
  126. </TextBlock>
  127. <TextBlock Grid.Row="1" Grid.Column="0" Style="{StaticResource descriptionStyle}">
  128. <Run Text="{Binding Path=Description}"/>
  129. </TextBlock>
  130. <TextBlock Grid.Row="2" Grid.Column="0" Style="{StaticResource notesStyle}">
  131. <LineBreak/>
  132. <Run Text="{Binding Path=Notes}"/>
  133. </TextBlock>
  134. </Grid>
  135. </Border.ToolTip>
  136. <Border.ContextMenu>
  137. <ContextMenu x:Name="TaskMenu" Tag="{Binding}"/>
  138. </Border.ContextMenu>
  139. </Border>
  140. </DataTemplate>
  141. <DataTemplate x:Key="CompactKanban">
  142. <Border BorderBrush="Gray" BorderThickness="0.75" CornerRadius="5" Margin="0,2,0,2"
  143. MouseLeftButtonDown="Border_MouseLeftButtonDown" Tag="{Binding}"
  144. MouseMove="Border_MouseMove" ContextMenuOpening="TaskMenu_Opened">
  145. <Border.Background>
  146. <SolidColorBrush Color="{Binding Color}"/>
  147. </Border.Background>
  148. <DockPanel Margin="4">
  149. <TextBlock DockPanel.Dock="Right" Text="{Binding DueDate, StringFormat='{}{0:dd MMM yy}'}" FontWeight="Bold" FontSize="12" VerticalAlignment="Center" HorizontalAlignment="Center" />
  150. <CheckBox DockPanel.Dock="Left" Margin="0,0,4,0" VerticalAlignment="Center" IsChecked="{Binding Path=Checked}" Checked="CheckBox_Checked" Unchecked="CheckBox_Checked" Tag="{Binding}" />
  151. <TextBlock DockPanel.Dock="Left" x:Name="JobNumber" Margin="0" FontWeight="DemiBold" FontSize="12" VerticalAlignment="Center" Style="{StaticResource jobStyle}">
  152. <Run Text="{Binding JobNumber}"/><Run Text="/"/>
  153. </TextBlock>
  154. <TextBlock DockPanel.Dock="Left" Margin="0,0,0,0" FontWeight="DemiBold" FontSize="12" VerticalAlignment="Center">
  155. <Run Text="{Binding Path=Number}"/><Run Text=": "/>
  156. </TextBlock>
  157. <TextBlock DockPanel.Dock="Left" Margin="0,0,0,0" FontWeight="DemiBold" FontSize="12" VerticalAlignment="Center" Text="{Binding Path=Title}" />
  158. <TextBlock DockPanel.Dock="Left" x:Name="Manager" Margin="0"
  159. FontWeight="DemiBold" FontSize="12" VerticalAlignment="Center"
  160. Style="{StaticResource managerStyle}">
  161. <Run Text=" ("/><Run Text="{Binding Manager}"/><Run Text=")"/>
  162. </TextBlock>
  163. <TextBlock DockPanel.Dock="Left" x:Name="Employee" Margin="0"
  164. FontWeight="DemiBold" FontSize="12" VerticalAlignment="Center"
  165. Style="{StaticResource employeeStyle}">
  166. <Run Text=" ("/><Run Text="{Binding AssignedTo}"/><Run Text=")"/>
  167. </TextBlock>
  168. </DockPanel>
  169. <Border.ToolTip>
  170. <Grid>
  171. <Grid.RowDefinitions>
  172. <RowDefinition Height="Auto"/>
  173. <RowDefinition Height="Auto"/>
  174. <RowDefinition Height="Auto"/>
  175. </Grid.RowDefinitions>
  176. <Grid.ColumnDefinitions>
  177. <ColumnDefinition Width="Auto"/>
  178. </Grid.ColumnDefinitions>
  179. <TextBlock Grid.Row="0" Grid.Column="0">
  180. <Run FontWeight="DemiBold" Text="{Binding Path=Title}"/>
  181. </TextBlock>
  182. <TextBlock Grid.Row="1" Grid.Column="0" Style="{StaticResource descriptionStyle}">
  183. <Run Text="{Binding Path=Description}"/>
  184. </TextBlock>
  185. <TextBlock Grid.Row="2" Grid.Column="0" Style="{StaticResource notesStyle}">
  186. <LineBreak/>
  187. <Run Text="{Binding Path=Notes}"/>
  188. </TextBlock>
  189. </Grid>
  190. </Border.ToolTip>
  191. <Border.ContextMenu>
  192. <ContextMenu x:Name="TaskMenu" Tag="{Binding}"/>
  193. </Border.ContextMenu>
  194. </Border>
  195. </DataTemplate>
  196. </ResourceDictionary>