AssignmentList.xaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <ContentPage
  3. xmlns="http://xamarin.com/schemas/2014/forms"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  5. xmlns:material="clr-namespace:XF.Material.Forms.UI;assembly=XF.Material"
  6. x:Class="comal.timesheets.AssignmentList"
  7. xmlns:local="clr-namespace:comal.timesheets"
  8. xmlns:schedule="clr-namespace:Syncfusion.SfSchedule.XForms;assembly=Syncfusion.SfSchedule.XForms"
  9. >
  10. <ContentPage.Resources>
  11. <ResourceDictionary>
  12. <DataTemplate x:Key="DayViewAppointments">
  13. <Grid>
  14. <Grid.ColumnDefinitions>
  15. <ColumnDefinition Width="*"/>
  16. <ColumnDefinition Width="Auto"/>
  17. </Grid.ColumnDefinitions>
  18. <Grid.RowDefinitions>
  19. <RowDefinition Height="Auto"/>
  20. <RowDefinition Height="*"/>
  21. </Grid.RowDefinitions>
  22. <Frame Grid.ColumnSpan="2" Grid.RowSpan="2" BorderColor="Gray" Margin="1" CornerRadius="5" HasShadow="False" Background="{Binding Color}" />
  23. <Label Grid.Row="0" Grid.Column="0" Margin="5,2,0,0" FontAttributes="Bold" FontSize="Small" Text="{Binding Subject}" />
  24. <Image Grid.Row="0" Grid.Column="1" Margin="0,2,5,0" Source="gear" HeightRequest="32" WidthRequest="32" IsVisible="{Binding Completed}"/>
  25. <Label Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="5,0,2,5" FontSize="Small" Text="{Binding Notes}" />
  26. </Grid>
  27. </DataTemplate>
  28. <schedule:ScheduleAppointmentMapping x:Key="AppointmentMapping"
  29. IdMapping="Id"
  30. SubjectMapping="Subject"
  31. ColorMapping="Color"
  32. StartTimeMapping="StartTime"
  33. EndTimeMapping="EndTime"
  34. NotesMapping="Notes"
  35. TextColorMapping="TextColor"
  36. ResourceIdsMapping="ResourceIds"
  37. >
  38. </schedule:ScheduleAppointmentMapping>
  39. </ResourceDictionary>
  40. </ContentPage.Resources>
  41. <ContentPage.BindingContext>
  42. <local:AssignmentListDataModel x:Name="DataModel"/>
  43. </ContentPage.BindingContext>
  44. <NavigationPage.TitleView>
  45. <Grid Margin="0" Padding="0">
  46. <Grid.ColumnDefinitions>
  47. <ColumnDefinition Width="*"/>
  48. <ColumnDefinition Width="Auto"/>
  49. </Grid.ColumnDefinitions>
  50. <Label
  51. Grid.Column="0"
  52. x:Name="Title"
  53. Text="Assignments"
  54. VerticalOptions="Center"
  55. HorizontalOptions="Center"
  56. HorizontalTextAlignment="Center"
  57. TextColor="White"
  58. FontSize="Medium"
  59. FontAttributes="Bold"
  60. BackgroundColor="Transparent"/>
  61. <StackLayout
  62. Grid.Column="1"
  63. Orientation="Horizontal"
  64. x:Name="Buttons">
  65. <Image
  66. x:Name="SelectDate"
  67. Aspect="AspectFit"
  68. WidthRequest="30"
  69. HorizontalOptions="End"
  70. Margin="5,5,0,5">
  71. <Image.Source>
  72. <OnPlatform x:TypeArguments="ImageSource">
  73. <OnPlatform.Platforms>
  74. <On Platform="iOS" Value="calendar"/>
  75. <On Platform="Android" Value="calendar"/>
  76. </OnPlatform.Platforms>
  77. </OnPlatform>
  78. </Image.Source>
  79. <Image.GestureRecognizers>
  80. <TapGestureRecognizer Tapped="SelectedDate_Tapped"/>
  81. </Image.GestureRecognizers>
  82. </Image>
  83. <DatePicker x:Name="DatePicker" IsVisible="False" DateSelected="DatePicker_OnDateSelected" />
  84. <Image
  85. x:Name="SelectEmployees"
  86. Aspect="AspectFit"
  87. WidthRequest="30"
  88. HorizontalOptions="End"
  89. Margin="5">
  90. <Image.Source>
  91. <OnPlatform x:TypeArguments="ImageSource">
  92. <OnPlatform.Platforms>
  93. <On Platform="iOS" Value="user"/>
  94. <On Platform="Android" Value="user"/>
  95. </OnPlatform.Platforms>
  96. </OnPlatform>
  97. </Image.Source>
  98. <Image.GestureRecognizers>
  99. <TapGestureRecognizer Tapped="SelectEmployees_Tapped"/>
  100. </Image.GestureRecognizers>
  101. </Image>
  102. <Image
  103. x:Name="CollapseButton"
  104. Aspect="AspectFit"
  105. WidthRequest="30"
  106. HorizontalOptions="End"
  107. Margin="5">
  108. <Image.Source>
  109. <OnPlatform x:TypeArguments="ImageSource">
  110. <OnPlatform.Platforms>
  111. <On Platform="iOS" Value="downarrowwhite"/>
  112. <On Platform="Android" Value="downarrowwhite"/>
  113. </OnPlatform.Platforms>
  114. </OnPlatform>
  115. </Image.Source>
  116. <Image.GestureRecognizers>
  117. <TapGestureRecognizer Tapped="CollapseButton_Tapped"/>
  118. </Image.GestureRecognizers>
  119. </Image>
  120. <Image
  121. x:Name="ExpandButton"
  122. Aspect="AspectFit"
  123. WidthRequest="30"
  124. HorizontalOptions="End"
  125. IsVisible="false"
  126. Margin="5">
  127. <Image.Source>
  128. <OnPlatform x:TypeArguments="ImageSource">
  129. <OnPlatform.Platforms>
  130. <On Platform="iOS" Value="rightarrowwhite"/>
  131. <On Platform="Android" Value="rightarrowwhite"/>
  132. </OnPlatform.Platforms>
  133. </OnPlatform>
  134. </Image.Source>
  135. <Image.GestureRecognizers>
  136. <TapGestureRecognizer Tapped="ExpandButton_Tapped"/>
  137. </Image.GestureRecognizers>
  138. </Image>
  139. </StackLayout>
  140. </Grid>
  141. </NavigationPage.TitleView>
  142. <ContentPage.Content>
  143. <Grid>
  144. <Grid.ColumnDefinitions>
  145. <ColumnDefinition Width="*" x:Name="DayViewColumn"/>
  146. <ColumnDefinition Width="0" x:Name="TimeLineViewColumn"/>
  147. <ColumnDefinition Width="150" x:Name="JobColumn" />
  148. </Grid.ColumnDefinitions>
  149. <Grid.RowDefinitions>
  150. <RowDefinition Height="40"/>
  151. <RowDefinition Height="*"/>
  152. </Grid.RowDefinitions>
  153. <Frame
  154. Grid.Row="0"
  155. Grid.Column="0"
  156. Grid.ColumnSpan="2"
  157. CornerRadius="2"
  158. BorderColor="Silver"
  159. BackgroundColor="WhiteSmoke"
  160. HasShadow="False"
  161. Margin="0"
  162. Padding="2"
  163. >
  164. <Label
  165. x:Name="ScheduleType"
  166. HorizontalOptions="Fill"
  167. VerticalOptions="Fill"
  168. VerticalTextAlignment="Center"
  169. HorizontalTextAlignment="Center"
  170. FontSize="Micro"/>
  171. </Frame>
  172. <schedule:SfSchedule
  173. x:Name="DayView"
  174. Grid.Row="1"
  175. Grid.Column="0"
  176. ScheduleView="DayView"
  177. HeaderHeight="0"
  178. ViewHeaderHeight="0"
  179. TimeInterval="30"
  180. Background="White"
  181. EnableNavigation="False"
  182. VerticalOptions="Fill"
  183. ShowResourceView="False"
  184. ResourceViewMode="Absolute"
  185. TimeIntervalHeight="150"
  186. AllowAppointmentDrag="True"
  187. AppointmentMapping="{StaticResource AppointmentMapping}"
  188. AppointmentTemplate="{StaticResource DayViewAppointments}"
  189. CellTapped="Schedule_OnCellTapped"
  190. CellLongPressed="Schedule_OnCellLongPressed"
  191. >
  192. <schedule:SfSchedule.DayViewSettings>
  193. <schedule:DayViewSettings TimeRulerSize="50"/>
  194. </schedule:SfSchedule.DayViewSettings>
  195. </schedule:SfSchedule>
  196. <schedule:SfSchedule
  197. x:Name="TimeLineView"
  198. Grid.Row="1"
  199. Grid.Column="1"
  200. ScheduleView="TimelineView"
  201. HeaderHeight="0"
  202. ViewHeaderHeight="0"
  203. TimeInterval="60"
  204. Background="White"
  205. ShowResourceView="False"
  206. EnableNavigation="False"
  207. ResourceViewHeight="50"
  208. ResourceViewMode="Absolute"
  209. TimeIntervalHeight="150"
  210. AllowAppointmentDrag="True"
  211. AppointmentMapping="{StaticResource AppointmentMapping}"
  212. AppointmentTemplate="{StaticResource DayViewAppointments}"
  213. CellTapped="Schedule_OnCellTapped"
  214. CellLongPressed="Schedule_OnCellLongPressed"
  215. >
  216. <schedule:SfSchedule.TimelineViewSettings>
  217. <schedule:TimelineViewSettings AppointmentHeight="200"/>
  218. </schedule:SfSchedule.TimelineViewSettings>
  219. <schedule:SfSchedule.ResourceItemTemplate>
  220. <DataTemplate>
  221. <Grid >
  222. <Grid.RowDefinitions>
  223. <RowDefinition Height="*"/>
  224. </Grid.RowDefinitions>
  225. <Grid.ColumnDefinitions>
  226. <ColumnDefinition Width="*"/>
  227. </Grid.ColumnDefinitions>
  228. <Label Text="{Binding Name}" Margin="-100,-0,-100,0" FontSize="Micro" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Rotation="-90"/>
  229. </Grid>
  230. </DataTemplate>
  231. </schedule:SfSchedule.ResourceItemTemplate>
  232. </schedule:SfSchedule>
  233. <Frame
  234. Grid.Row="0"
  235. Grid.Column="2"
  236. CornerRadius="2"
  237. BorderColor="Silver"
  238. BackgroundColor="WhiteSmoke"
  239. HasShadow="False"
  240. Margin="0"
  241. Padding="2"
  242. >
  243. <Frame.GestureRecognizers>
  244. <TapGestureRecognizer Tapped="LookupsType_Tapped" />
  245. </Frame.GestureRecognizers>
  246. <Label
  247. x:Name="LookupType"
  248. HorizontalOptions="Fill"
  249. VerticalOptions="Fill"
  250. VerticalTextAlignment="Center"
  251. HorizontalTextAlignment="Center"
  252. FontSize="Micro"/>
  253. </Frame>
  254. <ListView
  255. x:Name="Lookups"
  256. Grid.Row="1"
  257. Grid.Column="2"
  258. HasUnevenRows="True"
  259. ItemTapped="Lookups_OnItemTapped">
  260. <ListView.ItemTemplate>
  261. <DataTemplate>
  262. <ViewCell>
  263. <Frame BorderColor="Silver" CornerRadius="2" HasShadow="False" VerticalOptions="FillAndExpand" BackgroundColor="{Binding Colour}" Margin="0,0,2,2">
  264. <Grid VerticalOptions="FillAndExpand">
  265. <Grid.RowDefinitions>
  266. <RowDefinition Height="Auto"/>
  267. <RowDefinition Height="Auto"/>
  268. </Grid.RowDefinitions>
  269. <Label Text="{Binding Number}" Grid.Row="0" VerticalOptions="FillAndExpand" HorizontalTextAlignment="Center" FontSize="Micro"/>
  270. <Label Text="{Binding Name}" Grid.Row="1" VerticalOptions="FillAndExpand" HorizontalTextAlignment="Center" FontSize="Micro"/>
  271. </Grid>
  272. </Frame>
  273. </ViewCell>
  274. </DataTemplate>
  275. </ListView.ItemTemplate>
  276. </ListView>
  277. </Grid>
  278. </ContentPage.Content>
  279. </ContentPage>