private async Task HandleEditButton() { try { var page = ViewModel.CurrentWikiPage(Web.Request.Url.AbsoluteString); var wiki = await Task.Run(() => ViewModel.GetApplication().Client.Users[ViewModel.Username].Repositories[ViewModel.Repository].Wikis[page].GetInfo()); var composer = new Composer { Title = "Edit".t() + Title, Text = wiki.Data }; composer.NewComment(this, async (text) => { try { await composer.DoWorkAsync("Saving...", () => Task.Run(() => ViewModel.GetApplication().Client.Users[ViewModel.Username].Repositories[ViewModel.Repository].Wikis[page].Update(text, Uri.UnescapeDataString("/" + page)))); composer.CloseComposer(); Refresh(); } catch (Exception ex) { MonoTouch.Utilities.ShowAlert("Unable to update page!", ex.Message); composer.EnableSendButton = true; }; }); } catch (Exception e) { MonoTouch.Utilities.ShowAlert("Error", e.Message); } }
private void ChangeDescription() { var composer = new Composer { Title = "Description", Text = _model.Description }; composer.NewComment(this, (text) => { _model.Description = text; composer.CloseComposer(); }); }
public override void ViewDidLoad() { Title = "Edit Issue"; base.ViewDidLoad(); _hud = this.CreateHud(); var vm = (IssueEditViewModel)ViewModel; NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.SaveButton, UIBarButtonItemStyle.Plain, (s, e) => { View.EndEditing(true); vm.SaveCommand.Execute(null); }); var title = new InputElement("Title", string.Empty, string.Empty); title.Changed += (object sender, EventArgs e) => vm.Title = title.Value; var assignedTo = new StyledStringElement("Responsible", "Unassigned", UITableViewCellStyle.Value1); assignedTo.Accessory = UITableViewCellAccessory.DisclosureIndicator; assignedTo.Tapped += () => vm.GoToAssigneeCommand.Execute(null); var milestone = new StyledStringElement("Milestone".t(), "None", UITableViewCellStyle.Value1); milestone.Accessory = UITableViewCellAccessory.DisclosureIndicator; milestone.Tapped += () => vm.GoToMilestonesCommand.Execute(null); var labels = new StyledStringElement("Labels".t(), "None", UITableViewCellStyle.Value1); labels.Accessory = UITableViewCellAccessory.DisclosureIndicator; labels.Tapped += () => vm.GoToLabelsCommand.Execute(null); var content = new MultilinedElement("Description"); content.Tapped += () => { var composer = new Composer { Title = "Issue Description", Text = content.Value, ActionButtonText = "Save" }; composer.NewComment(this, (text) => { vm.Content = text; composer.CloseComposer(); }); }; var state = new TrueFalseElement("Open", true); state.ValueChanged += (sender, e) => vm.IsOpen = state.Value; vm.Bind(x => x.Title, x => title.Value = x, true); vm.Bind(x => x.Content, x => content.Value = x, true); vm.Bind(x => x.AssignedTo, x => { assignedTo.Value = x == null ? "Unassigned" : x.Login; if (assignedTo.GetImmediateRootElement() != null) Root.Reload(assignedTo, UITableViewRowAnimation.None); }, true); vm.Bind(x => x.Milestone, x => { milestone.Value = x == null ? "None" : x.Title; if (assignedTo.GetImmediateRootElement() != null) Root.Reload(milestone, UITableViewRowAnimation.None); }, true); vm.BindCollection(x => x.Labels, x => { labels.Value = vm.Labels.Items.Count == 0 ? "None" : string.Join(", ", vm.Labels.Items.Select(i => i.Name)); if (assignedTo.GetImmediateRootElement() != null) Root.Reload(labels, UITableViewRowAnimation.None); }, true); vm.Bind(x => x.IsOpen, x => { state.Value = x; if (assignedTo.GetImmediateRootElement() != null) Root.Reload(state, UITableViewRowAnimation.None); }, true); vm.Bind(x => x.IsSaving, x => { if (x) _hud.Show("Updating..."); else _hud.Hide(); }); Root = new RootElement(Title) { new Section { title, assignedTo, milestone, labels }, new Section { state }, new Section { content } }; }
void AddCommentTapped() { var composer = new Composer(); composer.NewComment(this, async (text) => { try { await composer.DoWorkAsync("Commenting...".t(), () => ViewModel.AddComment(text)); composer.CloseComposer(); } catch (Exception ex) { MonoTouch.Utilities.ShowAlert("Unable to post comment!", ex.Message); } finally { composer.EnableSendButton = true; } }); }
private void ShowCommentComposer(int line) { var composer = new Composer(); composer.NewComment(this, async (text) => { try { await composer.DoWorkAsync("Commenting...", () => ViewModel.PostComment(text, line)); composer.CloseComposer(); } catch (Exception e) { MonoTouch.Utilities.ShowAlert("Unable to Comment".t(), e.Message); composer.EnableSendButton = true; } }); }
public override void ViewDidLoad() { base.ViewDidLoad(); _hud = this.CreateHud(); NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.SaveButton, UIBarButtonItemStyle.Plain, (s, e) => { View.EndEditing(true); ViewModel.SaveCommand.Execute(null); }); var title = new InputElement("Title", string.Empty, string.Empty) { TextAlignment = UITextAlignment.Right }; title.Changed += (object sender, EventArgs e) => ViewModel.Title = title.Value; var assignedTo = new StyledStringElement("Responsible", "Unassigned", UITableViewCellStyle.Value1); assignedTo.Accessory = UITableViewCellAccessory.DisclosureIndicator; assignedTo.Tapped += () => ViewModel.GoToAssigneeCommand.Execute(null); var kind = new StyledStringElement("Issue Type", ViewModel.Kind, UITableViewCellStyle.Value1); kind.Accessory = UITableViewCellAccessory.DisclosureIndicator; kind.Tapped += () => { var ctrl = new IssueAttributesView(IssueModifyViewModel.Kinds, ViewModel.Kind) { Title = "Issue Type" }; ctrl.SelectedValue = x => ViewModel.Kind = x.ToLower(); NavigationController.PushViewController(ctrl, true); }; var priority = new StyledStringElement("Priority", ViewModel.Priority, UITableViewCellStyle.Value1); priority.Accessory = UITableViewCellAccessory.DisclosureIndicator; priority.Tapped += () => { var ctrl = new IssueAttributesView(IssueModifyViewModel.Priorities, ViewModel.Priority) { Title = "Priority" }; ctrl.SelectedValue = x => ViewModel.Priority = x.ToLower(); NavigationController.PushViewController(ctrl, true); }; var milestone = new StyledStringElement("Milestone".t(), "None", UITableViewCellStyle.Value1); milestone.Accessory = UITableViewCellAccessory.DisclosureIndicator; milestone.Tapped += () => ViewModel.GoToMilestonesCommand.Execute(null); var component = new StyledStringElement("Component".t(), "None", UITableViewCellStyle.Value1); component.Accessory = UITableViewCellAccessory.DisclosureIndicator; component.Tapped += () => ViewModel.GoToComponentsCommand.Execute(null); var version = new StyledStringElement("Version".t(), "None", UITableViewCellStyle.Value1); version.Accessory = UITableViewCellAccessory.DisclosureIndicator; version.Tapped += () => ViewModel.GoToVersionsCommand.Execute(null); var content = new MultilinedElement("Description"); content.Tapped += () => { var composer = new Composer { Title = "Issue Description", Text = content.Value }; composer.NewComment(this, (text) => { ViewModel.Content = text; composer.CloseComposer(); }); }; ViewModel.Bind(x => x.IsSaving, x => { if (x) _hud.Show("Saving..."); else _hud.Hide(); }); Root = new RootElement(Title) { new Section { title, assignedTo, kind, priority }, new Section { milestone, component, version }, new Section { content } }; ViewModel.Bind(x => x.Title, x => { title.Value = x; Root.Reload(title, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.AssignedTo, x => { assignedTo.Value = x == null ? "Unassigned" : x.Username; Root.Reload(assignedTo, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Kind, x => { kind.Value = x; Root.Reload(kind, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Priority, x => { priority.Value = x; Root.Reload(priority, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Milestone, x => { milestone.Value = x ?? "None"; Root.Reload(milestone, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Component, x => { component.Value = x ?? "None"; Root.Reload(component, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Version, x => { version.Value = x ?? "None"; Root.Reload(version, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Content, x => { content.Value = x; Root.Reload(content, UITableViewRowAnimation.None); }, true); }