DailyReport.xaml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. <UserControl x:Class="PRSDesktop.DailyReport"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:PRSDesktop"
  7. xmlns:dynamicgrid="clr-namespace:InABox.DynamicGrid;assembly=InABox.Wpf"
  8. mc:Ignorable="d"
  9. d:DesignHeight="450" d:DesignWidth="1200">
  10. <UserControl.Resources>
  11. <local:DueDateToColorConverter x:Key="DueDateToColorConverter" />
  12. <local:DateIsInListConverter x:Key="DateIsInListConverter" />
  13. <local:HighlightedDateDescriptionConverter x:Key="HighlightedDateDescriptionConverter" />
  14. <Style x:Key="CustomCalendarDayButtonStyle" TargetType="{x:Type CalendarDayButton}"
  15. BasedOn="{StaticResource {x:Type CalendarDayButton}}">
  16. <Style.Triggers>
  17. <DataTrigger Value="True">
  18. <DataTrigger.Binding>
  19. <MultiBinding Converter="{StaticResource DateIsInListConverter}">
  20. <Binding />
  21. <Binding
  22. RelativeSource="{RelativeSource FindAncestor, AncestorType=local:HighlightDatePicker}"
  23. Path="HighlightedDates" />
  24. </MultiBinding>
  25. </DataTrigger.Binding>
  26. <Setter Property="FontWeight" Value="Bold" />
  27. <Setter Property="Background"
  28. Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=local:HighlightDatePicker}, Path=HighlightBrush}" />
  29. <Setter Property="ToolTip">
  30. <Setter.Value>
  31. <MultiBinding Converter="{StaticResource HighlightedDateDescriptionConverter}">
  32. <Binding />
  33. <Binding
  34. RelativeSource="{RelativeSource FindAncestor, AncestorType=local:HighlightDatePicker}"
  35. Path="HighlightedDates" />
  36. </MultiBinding>
  37. </Setter.Value>
  38. </Setter>
  39. </DataTrigger>
  40. </Style.Triggers>
  41. </Style>
  42. <Style x:Key="CustomCalendarStyle" TargetType="{x:Type Calendar}" BasedOn="{StaticResource {x:Type Calendar}}">
  43. <Setter Property="CalendarDayButtonStyle" Value="{StaticResource CustomCalendarDayButtonStyle}" />
  44. </Style>
  45. <Style TargetType="local:HighlightDatePicker" BasedOn="{StaticResource {x:Type DatePicker}}">
  46. <Setter Property="CalendarStyle" Value="{StaticResource CustomCalendarStyle}" />
  47. </Style>
  48. </UserControl.Resources>
  49. <Grid>
  50. <Grid.ColumnDefinitions>
  51. <ColumnDefinition Width="*"/>
  52. <ColumnDefinition Width="2"/>
  53. <ColumnDefinition Width="2*"/>
  54. <ColumnDefinition Width="2"/>
  55. <ColumnDefinition Width="*"/>
  56. </Grid.ColumnDefinitions>
  57. <Grid Grid.Column="0">
  58. <Grid.RowDefinitions>
  59. <RowDefinition Height="Auto"/>
  60. <RowDefinition Height="*"/>
  61. </Grid.RowDefinitions>
  62. <Border Grid.Row="0" BorderBrush="Gray" BorderThickness="0.75"
  63. Background="WhiteSmoke" MinHeight="35">
  64. <Grid>
  65. <Grid.ColumnDefinitions>
  66. <ColumnDefinition Width="Auto" />
  67. <ColumnDefinition Width="Auto" />
  68. <ColumnDefinition Width="Auto" />
  69. <ColumnDefinition Width="*" />
  70. <ColumnDefinition Width="Auto" />
  71. <ColumnDefinition Width="Auto" />
  72. </Grid.ColumnDefinitions>
  73. <Button x:Name="FirstDay" BorderThickness="0" Background="Transparent"
  74. Click="FirstDay_Click" Grid.Column="0" Padding="5" Width="32" />
  75. <Button x:Name="PrevDay" BorderThickness="0" Background="Transparent" Click="PrevDay_Click"
  76. Grid.Column="1" Padding="5" Width="32" />
  77. <Label x:Name="ActivityHeader" Grid.Column="2" Content="Activities for" Margin="0,0,5,0"
  78. VerticalContentAlignment="Center" />
  79. <local:HighlightDatePicker x:Name="DatePicker" Grid.Column="3" VerticalAlignment="Stretch"
  80. SelectedDateChanged="DatePicker_SelectedDateChanged" Margin="0,4,0,4"
  81. HighlightBrush="LightSalmon" HorizontalAlignment="Stretch" VerticalContentAlignment="Center"
  82. SelectedDateFormat="Long" Background="LightYellow"/>
  83. <Button x:Name="NextDay" BorderThickness="0" Background="Transparent" Click="NextDay_Click"
  84. Grid.Column="4" Padding="5" Width="32" />
  85. <Button x:Name="LastDay" BorderThickness="0" Background="Transparent" Click="LastDay_Click"
  86. Grid.Column="5" Padding="5" Width="32" />
  87. </Grid>
  88. </Border>
  89. <local:Calendar
  90. Grid.Row="1"
  91. x:Name="Calendar"
  92. Margin="0,2,0,0"
  93. SettingsVisible="Disabled"
  94. SelectionChanged = "Assignments_OnSelectionChanged"
  95. ItemChanged = "Assignments_OnItemChanged"
  96. CustomiseContextMenu = "Assignments_OnCustomiseContextMenu"
  97. LoadSettings="Calendar_OnLoadSettings"
  98. SaveSettings="Calendar_OnSaveSettings"
  99. ItemEditing="Assignments_OnItemEditing"
  100. />
  101. </Grid>
  102. <Grid Grid.Column="2">
  103. <Grid.RowDefinitions>
  104. <RowDefinition Height="Auto" />
  105. <RowDefinition Height="*" />
  106. <RowDefinition Height="*" />
  107. </Grid.RowDefinitions>
  108. <Border Grid.Row="0" CornerRadius="0,0,0,0" BorderBrush="Gray" BorderThickness="0.75"
  109. Background="WhiteSmoke" MinHeight="35">
  110. <Label Content="Activity Details" HorizontalContentAlignment="Center"
  111. VerticalContentAlignment="Center" />
  112. </Border>
  113. <Border Grid.Row="1" Padding="5" Margin="0,2,0,1" BorderBrush="Gray" BorderThickness="0.75"
  114. Background="WhiteSmoke" KeyboardNavigation.TabNavigation="Local">
  115. <Grid x:Name="Editors">
  116. <Grid.RowDefinitions>
  117. <RowDefinition Height="40" />
  118. <RowDefinition Height="*" />
  119. <RowDefinition Height="40" />
  120. <RowDefinition Height="40" />
  121. <RowDefinition Height="40" />
  122. <RowDefinition Height="40" />
  123. <RowDefinition Height="40" />
  124. </Grid.RowDefinitions>
  125. <Grid.ColumnDefinitions>
  126. <ColumnDefinition Width="Auto" />
  127. <ColumnDefinition Width="*" />
  128. <ColumnDefinition Width="Auto" />
  129. <ColumnDefinition Width="*" />
  130. <ColumnDefinition Width="Auto" />
  131. <ColumnDefinition Width="*" />
  132. </Grid.ColumnDefinitions>
  133. <Label Content="Title" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" />
  134. <dynamicgrid:TextBoxEditorControl x:Name="Title" Grid.Row="0" Grid.Column="1"
  135. Grid.ColumnSpan="5" Margin="5"
  136. OnEditorValueChanged="EditorValueChanged"
  137. ColumnName="Title" Color="LightYellow"
  138. KeyboardNavigation.TabIndex="1" />
  139. <Label Content="Notes" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" />
  140. <dynamicgrid:MemoEditorControl Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="5"
  141. x:Name="ActivityNotes" Margin="5" Color="LightYellow"
  142. ColumnName="Description"
  143. OnEditorValueChanged="EditorValueChanged"
  144. KeyboardNavigation.TabIndex="2" />
  145. <Label Content="Start Time" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" />
  146. <dynamicgrid:TimeOfDayEditorControl x:Name="Start" Grid.Row="2" Grid.Column="1" Margin="5"
  147. Color="LightYellow" ColumnName="Actual.Start"
  148. OnEditorValueChanged="EditorValueChanged"
  149. NowButtonVisible="False" HorizontalAlignment="Stretch"
  150. MaxWidth="Infinity" KeyboardNavigation.TabIndex="3" />
  151. <Label Content="Duration" Grid.Row="2" Grid.Column="2" VerticalAlignment="Center" />
  152. <dynamicgrid:TimeOfDayEditorControl x:Name="Duration" Grid.Row="2" Grid.Column="3"
  153. Margin="5" Color="LightYellow" ColumnName="Actual.Duration"
  154. OnEditorValueChanged="EditorValueChanged"
  155. NowButtonVisible="False" HorizontalAlignment="Stretch"
  156. MaxWidth="Infinity" KeyboardNavigation.TabIndex="4" />
  157. <Label Content="Finish Time" Grid.Row="2" Grid.Column="4" VerticalAlignment="Center" />
  158. <dynamicgrid:TimeOfDayEditorControl x:Name="Finish" Grid.Row="2" Grid.Column="5" Margin="5"
  159. Color="LightYellow" ColumnName="Actual.Finish"
  160. OnEditorValueChanged="EditorValueChanged"
  161. NowButtonVisible="False" HorizontalAlignment="Stretch"
  162. MaxWidth="Infinity" KeyboardNavigation.TabIndex="5" />
  163. <Label Content="Task" Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" />
  164. <dynamicgrid:LookupEditorControl x:Name="Kanban" Grid.Row="3" Grid.Column="1"
  165. Grid.ColumnSpan="5" Margin="5" Color="LightYellow"
  166. ColumnName="Task.ID"
  167. OnEditorValueChanged="EditorValueChanged"
  168. KeyboardNavigation.TabIndex="8" />
  169. <Label Content="Job" Grid.Row="4" Grid.Column="0" VerticalAlignment="Center" />
  170. <dynamicgrid:CodePopupEditorControl x:Name="Job" Grid.Row="4" Grid.Column="1"
  171. Grid.ColumnSpan="5" Margin="5" Color="LightYellow"
  172. ColumnName="JobLink.ID"
  173. OnEditorValueChanged="EditorValueChanged"
  174. CodeColumn="JobNumber" KeyboardNavigation.TabIndex="6" />
  175. <Label Content="ITP" Grid.Row="5" Grid.Column="0" VerticalAlignment="Center" />
  176. <dynamicgrid:LookupEditorControl x:Name="ITP" Grid.Row="5" Grid.Column="1"
  177. Grid.ColumnSpan="5" Margin="5" Color="LightYellow"
  178. ColumnName="ITP.ID"
  179. OnEditorValueChanged="EditorValueChanged"
  180. KeyboardNavigation.TabIndex="7" />
  181. <Label Content="Activity" Grid.Row="6" Grid.Column="0" VerticalAlignment="Center" />
  182. <dynamicgrid:LookupEditorControl x:Name="Activity" Grid.Row="6" Grid.Column="1"
  183. Grid.ColumnSpan="5" Margin="5" Color="LightYellow"
  184. ColumnName="ActivityLink.ID"
  185. OnEditorValueChanged="EditorValueChanged"
  186. KeyboardNavigation.TabIndex="8" />
  187. </Grid>
  188. </Border>
  189. <DockPanel Grid.Row="3">
  190. <Border DockPanel.Dock="Top" BorderBrush="Gray" BorderThickness="0.75" Background="WhiteSmoke"
  191. MinHeight="35" Margin="0,1,0,0">
  192. <Label Content="Overall Notes for Today" HorizontalContentAlignment="Center"
  193. VerticalContentAlignment="Center" />
  194. </Border>
  195. <DockPanel DockPanel.Dock="Bottom" x:Name="ConfirmDock">
  196. <Button x:Name="ProcessWindowTrackers" DockPanel.Dock="Left" Width="150" Height="35"
  197. Margin="0,2,0,0" Click="ProcessWindowTrackerMenu_Click" BorderBrush="Gray" Padding="4">
  198. <StackPanel Orientation="Horizontal">
  199. <Image x:Name="ImportHistoryImage" Source="pack://application:,,,/Resources/target.png" />
  200. <Label Content="Import History" VerticalContentAlignment="Center" />
  201. </StackPanel>
  202. </Button>
  203. <Button x:Name="ImportEmails" DockPanel.Dock="Left" Width="150" Height="35" Margin="5,2,0,0"
  204. Click="ViewEmailInterfaceForm_Click" BorderBrush="Gray" Padding="4">
  205. <StackPanel Orientation="Horizontal">
  206. <Image x:Name="ImportEmailsImage" Source="pack://application:,,,/Resources/email.png" />
  207. <Label Content="Import Emails" VerticalContentAlignment="Center" />
  208. </StackPanel>
  209. </Button>
  210. <Button x:Name="ConfirmTimesheet" DockPanel.Dock="Right" Width="150" Height="35"
  211. Margin="0,2,0,0" Click="ConfirmTimesheet_Click" BorderBrush="Gray" Padding="4">
  212. <StackPanel Orientation="Horizontal">
  213. <Image x:Name="ConfirmTimeSheetImage"
  214. Source="pack://application:,,,/Resources/tick.png" />
  215. <Label Content="Confirm TimeSheet" VerticalContentAlignment="Center" />
  216. </StackPanel>
  217. </Button>
  218. <Label Content="" DockPanel.Dock="Left" />
  219. </DockPanel>
  220. <dynamicgrid:MemoEditorControl Margin="0,4,0,0" x:Name="Notes" DockPanel.Dock="Top"
  221. Color="LightYellow" ColumnName="Notes"
  222. OnEditorValueChanged="TimeSheetEditorValueChanged" />
  223. </DockPanel>
  224. </Grid>
  225. <Grid Grid.Column="5" >
  226. <Grid.RowDefinitions>
  227. <RowDefinition Height="Auto" />
  228. <RowDefinition Height="Auto" />
  229. <RowDefinition Height="Auto" />
  230. <RowDefinition Height="Auto" />
  231. <RowDefinition Height="Auto" />
  232. <RowDefinition Height="*" />
  233. <RowDefinition Height="Auto" />
  234. <RowDefinition Height="Auto" />
  235. <RowDefinition Height="Auto" />
  236. </Grid.RowDefinitions>
  237. <DockPanel Grid.Row="0" Height="35">
  238. <Button x:Name="NewTask" DockPanel.Dock="Right" Content="New Task" Margin="2,0,0,0" Padding="5,0,5,0"
  239. Click="NewTask_Click" />
  240. <Border DockPanel.Dock="Left" BorderBrush="Gray" BorderThickness="0.75" Background="WhiteSmoke">
  241. <DockPanel>
  242. <CheckBox Content="Include Public?" x:Name="ShowPublicTasks" DockPanel.Dock="Left"
  243. VerticalContentAlignment="Center" Margin="5,0,5,0" IsThreeState="False"
  244. Checked="ShowPublicTasks_Checked" Unchecked="ShowPublicTasks_Checked" />
  245. <Label Content="My Task List" DockPanel.Dock="Left" HorizontalContentAlignment="Center"
  246. VerticalContentAlignment="Center" />
  247. </DockPanel>
  248. </Border>
  249. </DockPanel>
  250. <ListView x:Name="Tasks" Grid.Row="5" Margin="0,2,0,0"
  251. PreviewMouseLeftButtonDown="Tasks_PreviewMouseLeftButtonDown" PreviewMouseMove="Tasks_MouseMove"
  252. MouseDoubleClick="Tasks_MouseDoubleClick">
  253. <ListView.ItemTemplate>
  254. <DataTemplate>
  255. <Border BorderBrush="Gray" BorderThickness="0.75" CornerRadius="5" Padding="5"
  256. Background="{Binding Path='DueDate', Converter={StaticResource DueDateToColorConverter}}"
  257. Margin="0" Tag="{Binding}" Width="388" ContextMenuOpening="TaskMenu_ContextMenuOpening">
  258. <DockPanel>
  259. <TextBlock DockPanel.Dock="Right"
  260. Text="{Binding DueDate, StringFormat='{}{0:dd MMM yy}'}" FontWeight="Bold"
  261. FontSize="12" VerticalAlignment="Center" HorizontalAlignment="Center" />
  262. <TextBlock DockPanel.Dock="Left" FontWeight="DemiBold" FontSize="12"
  263. VerticalAlignment="Center">
  264. <Run Text="{Binding Path=Number}" /><Run Text=": " />
  265. <Run Text="{Binding Path=Title}" />
  266. </TextBlock>
  267. </DockPanel>
  268. <Border.ContextMenu>
  269. <ContextMenu x:Name="TaskMenu">
  270. <MenuItem x:Name="MoveTaskMenu" Header="Move To.." />
  271. </ContextMenu>
  272. </Border.ContextMenu>
  273. </Border>
  274. </DataTemplate>
  275. </ListView.ItemTemplate>
  276. </ListView>
  277. <Button x:Name="OpenTasks" Grid.Row="1" Click="OpenTasks_Click" Content="Open Tasks" Height="35"
  278. BorderBrush="Gray" BorderThickness="0.75" Margin="0,2,0,0" />
  279. <Button x:Name="CurrentTasks" Grid.Row="6" Click="CurrentTasks_Click" Content="Tasks In Progress"
  280. Height="35" Margin="0,2,0,0" BorderBrush="Gray" BorderThickness="0.75" />
  281. <Button x:Name="WaitingTasks" Grid.Row="7" Click="WaitingTasks_Click" Content="Waiting For Others"
  282. Height="35" Margin="0,2,0,0" BorderBrush="Gray" BorderThickness="0.75" />
  283. <Button x:Name="ClosedTasks" Grid.Row="8" Click="ClosedTasks_Click" Content="Completed Tasks" Height="35"
  284. Margin="0,2,0,0" BorderBrush="Gray" BorderThickness="0.75" />
  285. </Grid>
  286. </Grid>
  287. </UserControl>