DailyReport.xaml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  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. HeaderVisibility="Collapsed"
  101. />
  102. </Grid>
  103. <Grid Grid.Column="2">
  104. <Grid.RowDefinitions>
  105. <RowDefinition Height="Auto" />
  106. <RowDefinition Height="*" />
  107. <RowDefinition Height="*" />
  108. </Grid.RowDefinitions>
  109. <Border Grid.Row="0" CornerRadius="0,0,0,0" BorderBrush="Gray" BorderThickness="0.75"
  110. Background="WhiteSmoke" MinHeight="35">
  111. <Label Content="Activity Details" HorizontalContentAlignment="Center"
  112. VerticalContentAlignment="Center" />
  113. </Border>
  114. <Border Grid.Row="1" Padding="5" Margin="0,2,0,1" BorderBrush="Gray" BorderThickness="0.75"
  115. Background="WhiteSmoke" KeyboardNavigation.TabNavigation="Local">
  116. <Grid x:Name="Editors">
  117. <Grid.RowDefinitions>
  118. <RowDefinition Height="40" />
  119. <RowDefinition Height="*" />
  120. <RowDefinition Height="40" />
  121. <RowDefinition Height="40" />
  122. <RowDefinition Height="40" />
  123. <RowDefinition Height="40" />
  124. <RowDefinition Height="40" />
  125. </Grid.RowDefinitions>
  126. <Grid.ColumnDefinitions>
  127. <ColumnDefinition Width="Auto" />
  128. <ColumnDefinition Width="*" />
  129. <ColumnDefinition Width="Auto" />
  130. <ColumnDefinition Width="*" />
  131. <ColumnDefinition Width="Auto" />
  132. <ColumnDefinition Width="*" />
  133. </Grid.ColumnDefinitions>
  134. <Label Content="Title" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" />
  135. <dynamicgrid:TextBoxEditorControl x:Name="Title" Grid.Row="0" Grid.Column="1"
  136. Grid.ColumnSpan="5" Margin="5"
  137. OnEditorValueChanged="EditorValueChanged"
  138. ColumnName="Title" Color="LightYellow"
  139. KeyboardNavigation.TabIndex="1" />
  140. <Label Content="Notes" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" />
  141. <dynamicgrid:MemoEditorControl Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="5"
  142. x:Name="ActivityNotes" Margin="5" Color="LightYellow"
  143. ColumnName="Description"
  144. OnEditorValueChanged="EditorValueChanged"
  145. KeyboardNavigation.TabIndex="2" />
  146. <Label Content="Start Time" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" />
  147. <dynamicgrid:TimeOfDayEditorControl x:Name="Start" Grid.Row="2" Grid.Column="1" Margin="5"
  148. Color="LightYellow" ColumnName="Actual.Start"
  149. OnEditorValueChanged="EditorValueChanged"
  150. NowButtonVisible="False" HorizontalAlignment="Stretch"
  151. MaxWidth="Infinity" KeyboardNavigation.TabIndex="3" />
  152. <Label Content="Duration" Grid.Row="2" Grid.Column="2" VerticalAlignment="Center" />
  153. <dynamicgrid:TimeOfDayEditorControl x:Name="Duration" Grid.Row="2" Grid.Column="3"
  154. Margin="5" Color="LightYellow" ColumnName="Actual.Duration"
  155. OnEditorValueChanged="EditorValueChanged"
  156. NowButtonVisible="False" HorizontalAlignment="Stretch"
  157. MaxWidth="Infinity" KeyboardNavigation.TabIndex="4" />
  158. <Label Content="Finish Time" Grid.Row="2" Grid.Column="4" VerticalAlignment="Center" />
  159. <dynamicgrid:TimeOfDayEditorControl x:Name="Finish" Grid.Row="2" Grid.Column="5" Margin="5"
  160. Color="LightYellow" ColumnName="Actual.Finish"
  161. OnEditorValueChanged="EditorValueChanged"
  162. NowButtonVisible="False" HorizontalAlignment="Stretch"
  163. MaxWidth="Infinity" KeyboardNavigation.TabIndex="5" />
  164. <Label Content="Task" Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" />
  165. <dynamicgrid:LookupEditorControl x:Name="Kanban" Grid.Row="3" Grid.Column="1"
  166. Grid.ColumnSpan="5" Margin="5" Color="LightYellow"
  167. ColumnName="Task.ID"
  168. OnEditorValueChanged="EditorValueChanged"
  169. KeyboardNavigation.TabIndex="8" />
  170. <Label Content="Job" Grid.Row="4" Grid.Column="0" VerticalAlignment="Center" />
  171. <dynamicgrid:CodePopupEditorControl x:Name="Job" Grid.Row="4" Grid.Column="1"
  172. Grid.ColumnSpan="5" Margin="5" Color="LightYellow"
  173. ColumnName="JobLink.ID"
  174. OnEditorValueChanged="EditorValueChanged"
  175. CodeColumn="JobNumber" KeyboardNavigation.TabIndex="6" />
  176. <Label Content="ITP" Grid.Row="5" Grid.Column="0" VerticalAlignment="Center" />
  177. <dynamicgrid:LookupEditorControl x:Name="ITP" Grid.Row="5" Grid.Column="1"
  178. Grid.ColumnSpan="5" Margin="5" Color="LightYellow"
  179. ColumnName="ITP.ID"
  180. OnEditorValueChanged="EditorValueChanged"
  181. KeyboardNavigation.TabIndex="7" />
  182. <Label Content="Activity" Grid.Row="6" Grid.Column="0" VerticalAlignment="Center" />
  183. <dynamicgrid:LookupEditorControl x:Name="Activity" Grid.Row="6" Grid.Column="1"
  184. Grid.ColumnSpan="5" Margin="5" Color="LightYellow"
  185. ColumnName="ActivityLink.ID"
  186. OnEditorValueChanged="EditorValueChanged"
  187. KeyboardNavigation.TabIndex="8" />
  188. </Grid>
  189. </Border>
  190. <DockPanel Grid.Row="3">
  191. <Border DockPanel.Dock="Top" BorderBrush="Gray" BorderThickness="0.75" Background="WhiteSmoke"
  192. MinHeight="35" Margin="0,1,0,0">
  193. <Label Content="Overall Notes for Today" HorizontalContentAlignment="Center"
  194. VerticalContentAlignment="Center" />
  195. </Border>
  196. <DockPanel DockPanel.Dock="Bottom" x:Name="ConfirmDock">
  197. <Button x:Name="ProcessWindowTrackers" DockPanel.Dock="Left" Width="150" Height="35"
  198. Margin="0,2,0,0" Click="ProcessWindowTrackerMenu_Click" BorderBrush="Gray" Padding="4">
  199. <StackPanel Orientation="Horizontal">
  200. <Image x:Name="ImportHistoryImage" Source="pack://application:,,,/Resources/target.png" />
  201. <Label Content="Import History" VerticalContentAlignment="Center" />
  202. </StackPanel>
  203. </Button>
  204. <Button x:Name="ImportEmails" DockPanel.Dock="Left" Width="150" Height="35" Margin="5,2,0,0"
  205. Click="ViewEmailInterfaceForm_Click" BorderBrush="Gray" Padding="4">
  206. <StackPanel Orientation="Horizontal">
  207. <Image x:Name="ImportEmailsImage" Source="pack://application:,,,/Resources/email.png" />
  208. <Label Content="Import Emails" VerticalContentAlignment="Center" />
  209. </StackPanel>
  210. </Button>
  211. <Button x:Name="ConfirmTimesheet" DockPanel.Dock="Right" Width="150" Height="35"
  212. Margin="0,2,0,0" Click="ConfirmTimesheet_Click" BorderBrush="Gray" Padding="4">
  213. <StackPanel Orientation="Horizontal">
  214. <Image x:Name="ConfirmTimeSheetImage"
  215. Source="pack://application:,,,/Resources/tick.png" />
  216. <Label Content="Confirm TimeSheet" VerticalContentAlignment="Center" />
  217. </StackPanel>
  218. </Button>
  219. <Label Content="" DockPanel.Dock="Left" />
  220. </DockPanel>
  221. <dynamicgrid:MemoEditorControl Margin="0,4,0,0" x:Name="Notes" DockPanel.Dock="Top"
  222. Color="LightYellow" ColumnName="Notes"
  223. OnEditorValueChanged="TimeSheetEditorValueChanged" />
  224. </DockPanel>
  225. </Grid>
  226. <Grid Grid.Column="5" >
  227. <Grid.RowDefinitions>
  228. <RowDefinition Height="Auto" />
  229. <RowDefinition Height="Auto" />
  230. <RowDefinition Height="Auto" />
  231. <RowDefinition Height="Auto" />
  232. <RowDefinition Height="Auto" />
  233. <RowDefinition Height="*" />
  234. <RowDefinition Height="Auto" />
  235. <RowDefinition Height="Auto" />
  236. <RowDefinition Height="Auto" />
  237. </Grid.RowDefinitions>
  238. <DockPanel Grid.Row="0" Height="35">
  239. <Button x:Name="NewTask" DockPanel.Dock="Right" Content="New Task" Margin="2,0,0,0" Padding="5,0,5,0"
  240. Click="NewTask_Click" />
  241. <Border DockPanel.Dock="Left" BorderBrush="Gray" BorderThickness="0.75" Background="WhiteSmoke">
  242. <DockPanel>
  243. <CheckBox Content="Include Public?" x:Name="ShowPublicTasks" DockPanel.Dock="Left"
  244. VerticalContentAlignment="Center" Margin="5,0,5,0" IsThreeState="False"
  245. Checked="ShowPublicTasks_Checked" Unchecked="ShowPublicTasks_Checked" />
  246. <Label Content="My Task List" DockPanel.Dock="Left" HorizontalContentAlignment="Center"
  247. VerticalContentAlignment="Center" />
  248. </DockPanel>
  249. </Border>
  250. </DockPanel>
  251. <ListView x:Name="Tasks" Grid.Row="5" Margin="0,2,0,0"
  252. PreviewMouseLeftButtonDown="Tasks_PreviewMouseLeftButtonDown" PreviewMouseMove="Tasks_MouseMove"
  253. MouseDoubleClick="Tasks_MouseDoubleClick">
  254. <ListView.ItemTemplate>
  255. <DataTemplate>
  256. <Border BorderBrush="Gray" BorderThickness="0.75" CornerRadius="5" Padding="5"
  257. Background="{Binding Path='DueDate', Converter={StaticResource DueDateToColorConverter}}"
  258. Margin="0" Tag="{Binding}" Width="388" ContextMenuOpening="TaskMenu_ContextMenuOpening">
  259. <DockPanel>
  260. <TextBlock DockPanel.Dock="Right"
  261. Text="{Binding DueDate, StringFormat='{}{0:dd MMM yy}'}" FontWeight="Bold"
  262. FontSize="12" VerticalAlignment="Center" HorizontalAlignment="Center" />
  263. <TextBlock DockPanel.Dock="Left" FontWeight="DemiBold" FontSize="12"
  264. VerticalAlignment="Center">
  265. <Run Text="{Binding Path=Number}" /><Run Text=": " />
  266. <Run Text="{Binding Path=Title}" />
  267. </TextBlock>
  268. </DockPanel>
  269. <Border.ContextMenu>
  270. <ContextMenu x:Name="TaskMenu">
  271. <MenuItem x:Name="MoveTaskMenu" Header="Move To.." />
  272. </ContextMenu>
  273. </Border.ContextMenu>
  274. </Border>
  275. </DataTemplate>
  276. </ListView.ItemTemplate>
  277. </ListView>
  278. <Button x:Name="OpenTasks" Grid.Row="1" Click="OpenTasks_Click" Content="Open Tasks" Height="35"
  279. BorderBrush="Gray" BorderThickness="0.75" Margin="0,2,0,0" />
  280. <Button x:Name="CurrentTasks" Grid.Row="6" Click="CurrentTasks_Click" Content="Tasks In Progress"
  281. Height="35" Margin="0,2,0,0" BorderBrush="Gray" BorderThickness="0.75" />
  282. <Button x:Name="WaitingTasks" Grid.Row="7" Click="WaitingTasks_Click" Content="Waiting For Others"
  283. Height="35" Margin="0,2,0,0" BorderBrush="Gray" BorderThickness="0.75" />
  284. <Button x:Name="ClosedTasks" Grid.Row="8" Click="ClosedTasks_Click" Content="Completed Tasks" Height="35"
  285. Margin="0,2,0,0" BorderBrush="Gray" BorderThickness="0.75" />
  286. </Grid>
  287. </Grid>
  288. </UserControl>