| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Comal.Classes;
- using InABox.Mobile;
- using Xamarin.Forms;
- using Xamarin.Forms.Xaml;
- using XF.Material.Forms.UI.Dialogs;
- namespace PRS.Mobile
- {
- public class KanbanJobNameConverter : AbstractConverter<KanbanShell, String>
- {
- protected override string Convert(KanbanShell value, object? parameter = null)
- {
- return value?.JobID != Guid.Empty
- ? $"Job: {value.JobName}"
- : "Select Job";
- }
- }
- public class KanbanTypeConverter : AbstractConverter<KanbanShell, String>
- {
- protected override string Convert(KanbanShell value, object? parameter = null)
- {
- return value?.TypeID != Guid.Empty
- ? $"Type: {value.TypeName}"
- : "Select Type" ;
- }
- }
-
- public class KanbanEmployeeConverter : AbstractConverter<KanbanShell, String>
- {
- protected override string Convert(KanbanShell value, object? parameter = null)
- {
- return value?.EmployeeID != Guid.Empty
- ? $"Assigned To: {value.EmployeeName}"
- : "Select Employee";
- }
- }
-
- [XamlCompilation(XamlCompilationOptions.Compile)]
- public partial class KanbanEditDetailsView
- {
- public KanbanEditDetailsView()
- {
- InitializeComponent();
- }
- public override void Refresh()
- {
- _description.Text = ViewModel.Item.Summary;
- _description.IsEnabled = ViewModel.Item.ManagerID == App.Data.Me.ID;
- _description.BackgroundColor = _description.IsEnabled
- ? Color.LightYellow
- : Color.Gainsboro;
- }
-
- private async void _selectjob_Clicked(object sender, MobileButtonClickEventArgs args)
- {
- ShowPopup(() => CreateJobSelection("Select Job", (job) =>
- {
- ViewModel.Item.JobID = job.ID;
- ViewModel.Item.JobNumber = job.JobNumber;
- ViewModel.Item.JobName = job.Name;
- DoChanged("JobID");
- }));
- }
-
- private View CreateJobSelection(String caption, Action<JobShell> selected)
- {
- SelectionView selection = new SelectionView
- {
- VerticalOptions = LayoutOptions.Fill,
- HorizontalOptions = LayoutOptions.Fill,
- CanSearch = true
- };
- selection.Configure += (sender, args) =>
- {
- args.Columns
- .BeginUpdate()
- .Clear()
- .Add(new MobileGridTextColumn<JobShell>() { Column = x=>x.JobNumber, Width = GridLength.Auto, Caption = "#"})
- .Add(new MobileGridTextColumn<JobShell>() { Column = x=>x.Name, Width = GridLength.Star, Caption = caption, Alignment = TextAlignment.Start})
- .EndUpdate();
- args.Filters.AddRange(App.Data.Jobs.AvailableFilters().Select(x=>x.Name));
- };
- selection.Refresh += (sender, args) => App.Data.Jobs.Refresh(false);
- selection.SelectionChanged += (sender, args) =>
- {
- selected(args.SelectedItems.FirstOrDefault() as JobShell);
- DismissPopup();
- };
- selection.Load();
- return selection;
- }
- private void _selecttype_OnClicked(object sender, MobileButtonClickEventArgs args)
- {
- ShowPopup(() => CreateKanbanTypeSelection("Select Type", (type) =>
- {
- ViewModel.Item.TypeID = type.ID;
- ViewModel.Item.TypeName = type.Description;
- DoChanged("TypeID");
- }));
- }
-
- private View CreateKanbanTypeSelection(String caption, Action<KanbanTypeShell> selected)
- {
- SelectionView selection = new SelectionView
- {
- VerticalOptions = LayoutOptions.Fill,
- HorizontalOptions = LayoutOptions.Fill,
- CanSearch = false
- };
- selection.Configure += (sender, args) =>
- {
- args.Columns
- .BeginUpdate()
- .Clear()
- .Add(new MobileGridTextColumn<KanbanTypeShell>() { Column = x=>x.Description, Width = GridLength.Star, Caption = caption})
- .EndUpdate();
- };
- selection.Refresh += (sender, args) => App.Data.KanbanTypes.Refresh(false);
- selection.SelectionChanged += (sender, args) =>
- {
- selected(args.SelectedItems.FirstOrDefault() as KanbanTypeShell);
- DismissPopup();
- };
- selection.Load();
- return selection;
- }
- private void _selectemployee_OnClicked(object sender, MobileButtonClickEventArgs args)
- {
- ShowPopup(() => CreateEmployeeSelection("Select Employee", (employee) =>
- {
- ViewModel.Item.EmployeeID = employee.ID;
- ViewModel.Item.EmployeeName = employee.Name;
- DoChanged("EmployeeID");
- }));
- }
-
- private View CreateEmployeeSelection(String caption, Action<EmployeeShell> selected)
- {
- SelectionView selection = new SelectionView
- {
- VerticalOptions = LayoutOptions.Fill,
- HorizontalOptions = LayoutOptions.Fill,
- CanSearch = false
- };
- selection.Configure += (sender, args) =>
- {
- args.Columns
- .BeginUpdate()
- .Clear()
- .Add(new MobileGridTextColumn<EmployeeShell>() { Column = x=>x.Name, Width = GridLength.Star, Caption = caption})
- .EndUpdate();
- };
- selection.Refresh += (sender, args) => App.Data.Employees.Refresh(false);
- selection.SelectionChanged += (sender, args) =>
- {
- selected(args.SelectedItems.FirstOrDefault() as EmployeeShell);
- DismissPopup();
- };
- selection.Load();
- return selection;
- }
-
- private async void _changestatus_OnClicked(object sender, MobileButtonClickEventArgs args)
- {
- var index = await MaterialDialog.Instance.SelectActionAsync(Enum.GetNames(typeof(KanbanStatus)));
- if (index > -1)
- {
- ViewModel.Item.Status = (KanbanStatus)index;
- DoChanged("Category");
- }
- }
-
- private void _duedate_OnChanged(object sender, DateButtonChangedArgs args)
- {
- ViewModel.Item.DueDate = args.Date;
- DoChanged("DueDate");
- }
-
- private void Title_OnTextChanged(object sender, TextChangedEventArgs e)
- {
- DoChanged("Title");
- }
-
- private void _description_OnTextChanged(object sender, TextChangedEventArgs e)
- {
- //ViewModel.Item.Description = _description.Text;
- DoChanged("Description");
- }
- }
- }
|