From 38cae06ac63d44e3f8a760ca9d0b1012a5eadc61 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 26 Oct 2018 12:13:34 +0200 Subject: [PATCH 01/64] Show document pane for PR conversation. It's currently empty, but it shows. Only supported method of showing is currently right-click on PR list. --- .../PullRequestListViewModelDesigner.cs | 1 + .../Documents/IssueishPaneViewModel.cs | 22 ++++++ .../GitHubPane/PullRequestListViewModel.cs | 21 ++++- .../GitHubPane/IPullRequestListViewModel.cs | 7 +- .../Commands/IOpenIssueishDocumentCommand.cs | 11 +++ .../Commands/OpenIssueishParams.cs | 23 ++++++ .../IGitHubToolWindowManager.cs | 10 ++- src/GitHub.Exports/Settings/PkgCmdID.cs | 1 + .../Documents/IIssueishPaneViewModel.cs | 26 +++++++ .../ViewModels/IPaneViewModel.cs | 19 +++++ src/GitHub.Resources/Resources.Designer.cs | 9 +++ src/GitHub.Resources/Resources.resx | 3 + .../Views/Documents/IssueishPaneView.xaml | 10 +++ .../Views/Documents/IssueishPaneView.xaml.cs | 17 +++++ .../Views/GitHubPane/PullRequestListView.xaml | 1 + .../Commands/OpenIssueishDocumentCommand.cs | 61 +++++++++++++++ .../GitHub.VisualStudio.csproj | 3 + src/GitHub.VisualStudio/GitHubPackage.cs | 10 ++- src/GitHub.VisualStudio/UI/AsyncPaneBase.cs | 76 +++++++++++++++++++ .../UI/IssueishDocumentPane.cs | 16 ++++ .../PullRequestListViewModelTests.cs | 9 ++- 21 files changed, 350 insertions(+), 6 deletions(-) create mode 100644 src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs create mode 100644 src/GitHub.Exports/Commands/IOpenIssueishDocumentCommand.cs create mode 100644 src/GitHub.Exports/Commands/OpenIssueishParams.cs rename src/GitHub.Exports/{ViewModels/GitHubPane => Services}/IGitHubToolWindowManager.cs (62%) create mode 100644 src/GitHub.Exports/ViewModels/Documents/IIssueishPaneViewModel.cs create mode 100644 src/GitHub.Exports/ViewModels/IPaneViewModel.cs create mode 100644 src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml create mode 100644 src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml.cs create mode 100644 src/GitHub.VisualStudio/Commands/OpenIssueishDocumentCommand.cs create mode 100644 src/GitHub.VisualStudio/UI/AsyncPaneBase.cs create mode 100644 src/GitHub.VisualStudio/UI/IssueishDocumentPane.cs diff --git a/src/GitHub.App/SampleData/PullRequestListViewModelDesigner.cs b/src/GitHub.App/SampleData/PullRequestListViewModelDesigner.cs index 34c90b8525..40371cf87f 100644 --- a/src/GitHub.App/SampleData/PullRequestListViewModelDesigner.cs +++ b/src/GitHub.App/SampleData/PullRequestListViewModelDesigner.cs @@ -63,6 +63,7 @@ public PullRequestListViewModelDesigner() public IReadOnlyList States { get; } public Uri WebUrl => null; public ReactiveCommand CreatePullRequest { get; } + public ReactiveCommand OpenConversation { get; } public ReactiveCommand OpenItem { get; } public ReactiveCommand OpenItemInBrowser { get; } diff --git a/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs new file mode 100644 index 0000000000..4acf75e660 --- /dev/null +++ b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs @@ -0,0 +1,22 @@ +using System; +using System.ComponentModel.Composition; +using System.Threading.Tasks; +using GitHub.Models; + +namespace GitHub.ViewModels.Documents +{ + [Export(typeof(IIssueishPaneViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] + public class IssueishPaneViewModel : ViewModelBase, IIssueishPaneViewModel + { + public Task InitializeAsync(IServiceProvider paneServiceProvider) + { + return Task.CompletedTask; + } + + public Task Load(IConnection connection, string owner, string name, int number) + { + return Task.CompletedTask; + } + } +} diff --git a/src/GitHub.App/ViewModels/GitHubPane/PullRequestListViewModel.cs b/src/GitHub.App/ViewModels/GitHubPane/PullRequestListViewModel.cs index 7468367837..4f3d7db663 100644 --- a/src/GitHub.App/ViewModels/GitHubPane/PullRequestListViewModel.cs +++ b/src/GitHub.App/ViewModels/GitHubPane/PullRequestListViewModel.cs @@ -6,6 +6,7 @@ using System.Reactive.Linq; using System.Threading.Tasks; using GitHub.Collections; +using GitHub.Commands; using GitHub.Extensions; using GitHub.Models; using GitHub.Primitives; @@ -26,6 +27,7 @@ public class PullRequestListViewModel : IssueListViewModelBase, IPullRequestList readonly IPullRequestSessionManager sessionManager; readonly IPullRequestService service; readonly IDisposable subscription; + readonly IOpenIssueishDocumentCommand openDocumentCommand; ObservableAsPropertyHelper webUrl; /// @@ -38,20 +40,24 @@ public class PullRequestListViewModel : IssueListViewModelBase, IPullRequestList public PullRequestListViewModel( IPullRequestSessionManager sessionManager, IRepositoryService repositoryService, - IPullRequestService service) + IPullRequestService service, + IOpenIssueishDocumentCommand openDocumentCommand) : base(repositoryService) { Guard.ArgumentNotNull(sessionManager, nameof(sessionManager)); Guard.ArgumentNotNull(service, nameof(service)); + Guard.ArgumentNotNull(openDocumentCommand, nameof(openDocumentCommand)); this.sessionManager = sessionManager; this.service = service; + this.openDocumentCommand = openDocumentCommand; subscription = sessionManager.WhenAnyValue(x => x.CurrentSession.PullRequest.Number).Subscribe(UpdateCurrent); webUrl = this.WhenAnyValue(x => x.RemoteRepository) .Select(x => x?.CloneUrl?.ToRepositoryUrl().Append("pulls")) .ToProperty(this, x => x.WebUrl); CreatePullRequest = ReactiveCommand.Create(() => NavigateTo("pull/new")); + OpenConversation = ReactiveCommand.Create(DoOpenConversation); OpenItemInBrowser = ReactiveCommand.Create(x => x); } @@ -64,6 +70,9 @@ public PullRequestListViewModel( /// public ReactiveCommand CreatePullRequest { get; } + /// + public ReactiveCommand OpenConversation { get; } + /// public ReactiveCommand OpenItemInBrowser { get; } @@ -91,6 +100,16 @@ protected override Task> LoadAuthors(string after) after); } + void DoOpenConversation(IIssueListItemViewModelBase item) + { + var p = new OpenIssueishParams( + HostAddress.Create(LocalRepository.CloneUrl), + RemoteRepository.Owner, + RemoteRepository.Name, + item.Number); + openDocumentCommand.Execute(p); + } + void UpdateCurrent(int number) { if (Items != null) diff --git a/src/GitHub.Exports.Reactive/ViewModels/GitHubPane/IPullRequestListViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/GitHubPane/IPullRequestListViewModel.cs index e347329812..f3f3208363 100644 --- a/src/GitHub.Exports.Reactive/ViewModels/GitHubPane/IPullRequestListViewModel.cs +++ b/src/GitHub.Exports.Reactive/ViewModels/GitHubPane/IPullRequestListViewModel.cs @@ -15,7 +15,12 @@ public interface IPullRequestListViewModel : IIssueListViewModelBase, IOpenInBro ReactiveCommand CreatePullRequest { get; } /// - /// Gets a command that opens pull request item on GitHub. + /// Gets a command that opens the pull request conversation in a document pane. + /// + ReactiveCommand OpenConversation { get; } + + /// + /// Gets a command that opens the pull request item on GitHub. /// ReactiveCommand OpenItemInBrowser { get; } } diff --git a/src/GitHub.Exports/Commands/IOpenIssueishDocumentCommand.cs b/src/GitHub.Exports/Commands/IOpenIssueishDocumentCommand.cs new file mode 100644 index 0000000000..4f767cc503 --- /dev/null +++ b/src/GitHub.Exports/Commands/IOpenIssueishDocumentCommand.cs @@ -0,0 +1,11 @@ +using System; + +namespace GitHub.Commands +{ + /// + /// Opens an issue or pull request in a new document window. + /// + public interface IOpenIssueishDocumentCommand : IVsCommand + { + } +} \ No newline at end of file diff --git a/src/GitHub.Exports/Commands/OpenIssueishParams.cs b/src/GitHub.Exports/Commands/OpenIssueishParams.cs new file mode 100644 index 0000000000..2c3d7e6ea2 --- /dev/null +++ b/src/GitHub.Exports/Commands/OpenIssueishParams.cs @@ -0,0 +1,23 @@ +using GitHub.Primitives; + +namespace GitHub.Commands +{ + public class OpenIssueishParams + { + public OpenIssueishParams( + HostAddress address, + string owner, + string repository, + int number) + { + Address = address; + Owner = owner; + Repository = repository; + Number = number; + } + public HostAddress Address { get; } + public string Owner { get; } + public string Repository { get; } + public int Number { get; } + } +} diff --git a/src/GitHub.Exports/ViewModels/GitHubPane/IGitHubToolWindowManager.cs b/src/GitHub.Exports/Services/IGitHubToolWindowManager.cs similarity index 62% rename from src/GitHub.Exports/ViewModels/GitHubPane/IGitHubToolWindowManager.cs rename to src/GitHub.Exports/Services/IGitHubToolWindowManager.cs index cd1c71701b..9d9b9fdf99 100644 --- a/src/GitHub.Exports/ViewModels/GitHubPane/IGitHubToolWindowManager.cs +++ b/src/GitHub.Exports/Services/IGitHubToolWindowManager.cs @@ -1,8 +1,10 @@ using System; using System.Threading.Tasks; using System.Runtime.InteropServices; +using GitHub.ViewModels.GitHubPane; +using GitHub.ViewModels.Documents; -namespace GitHub.ViewModels.GitHubPane +namespace GitHub.Services { /// /// The Visual Studio service interface for accessing the GitHub Pane. @@ -16,5 +18,11 @@ public interface IGitHubToolWindowManager /// /// The view model for the GitHub Pane. Task ShowGitHubPane(); + + /// + /// Opens a new issue or pull request document pane. + /// + /// >The view model for the document pane. + Task OpenIssueishDocumentPane(); } } diff --git a/src/GitHub.Exports/Settings/PkgCmdID.cs b/src/GitHub.Exports/Settings/PkgCmdID.cs index 636905c377..64160c738e 100644 --- a/src/GitHub.Exports/Settings/PkgCmdID.cs +++ b/src/GitHub.Exports/Settings/PkgCmdID.cs @@ -13,6 +13,7 @@ public static class PkgCmdIDList public const int syncSubmodulesCommand = 0x203; public const int openFromUrlCommand = 0x204; public const int openFromClipboardCommand = 0x205; + public const int showIssueishDocumentCommand = 0x206; public const int backCommand = 0x300; public const int forwardCommand = 0x301; diff --git a/src/GitHub.Exports/ViewModels/Documents/IIssueishPaneViewModel.cs b/src/GitHub.Exports/ViewModels/Documents/IIssueishPaneViewModel.cs new file mode 100644 index 0000000000..abfaf9ec75 --- /dev/null +++ b/src/GitHub.Exports/ViewModels/Documents/IIssueishPaneViewModel.cs @@ -0,0 +1,26 @@ +using System; +using System.Threading.Tasks; +using GitHub.Models; + +namespace GitHub.ViewModels.Documents +{ + /// + /// View model for an issue or pull request document pane. + /// + public interface IIssueishPaneViewModel : IPaneViewModel + { + /// + /// Loads an issue or pull request into the view model. + /// + /// The connection to use. + /// The repository owner. + /// The repository name. + /// The issue or pull request number. + /// A task that will complete when the load has finished. + Task Load( + IConnection connection, + string owner, + string name, + int number); + } +} diff --git a/src/GitHub.Exports/ViewModels/IPaneViewModel.cs b/src/GitHub.Exports/ViewModels/IPaneViewModel.cs new file mode 100644 index 0000000000..57944405f9 --- /dev/null +++ b/src/GitHub.Exports/ViewModels/IPaneViewModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Threading.Tasks; + +namespace GitHub.ViewModels +{ + /// + /// Represents the top-level content in a Visual Studio ToolWindowPane. + /// + public interface IPaneViewModel : IViewModel + { + /// + /// Initializes the view model. + /// + /// + /// The service provider for the containing ToolWindowPane. + /// + Task InitializeAsync(IServiceProvider paneServiceProvider); + } +} \ No newline at end of file diff --git a/src/GitHub.Resources/Resources.Designer.cs b/src/GitHub.Resources/Resources.Designer.cs index ff8f5b2516..e1841c8615 100644 --- a/src/GitHub.Resources/Resources.Designer.cs +++ b/src/GitHub.Resources/Resources.Designer.cs @@ -1197,6 +1197,15 @@ public static string Open { } } + /// + /// Looks up a localized string similar to Open Conversation. + /// + public static string OpenConversation { + get { + return ResourceManager.GetString("OpenConversation", resourceCulture); + } + } + /// /// Looks up a localized string similar to Open File as Default Action. /// diff --git a/src/GitHub.Resources/Resources.resx b/src/GitHub.Resources/Resources.resx index d8ff9d14ba..0566b17754 100644 --- a/src/GitHub.Resources/Resources.resx +++ b/src/GitHub.Resources/Resources.resx @@ -836,4 +836,7 @@ https://git-scm.com/download/win You have already cloned to this location. Click 'Open' to open the local repository. + + Open Conversation + \ No newline at end of file diff --git a/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml b/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml new file mode 100644 index 0000000000..0ea1f25861 --- /dev/null +++ b/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml @@ -0,0 +1,10 @@ + + Content Here + diff --git a/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml.cs b/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml.cs new file mode 100644 index 0000000000..adda01de05 --- /dev/null +++ b/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml.cs @@ -0,0 +1,17 @@ +using System.ComponentModel.Composition; +using System.Windows.Controls; +using GitHub.Exports; +using GitHub.ViewModels.Documents; + +namespace GitHub.VisualStudio.UI.Views.Documents +{ + [ExportViewFor(typeof(IIssueishPaneViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] + public partial class IssueishPaneView : UserControl + { + public IssueishPaneView() + { + InitializeComponent(); + } + } +} diff --git a/src/GitHub.VisualStudio.UI/Views/GitHubPane/PullRequestListView.xaml b/src/GitHub.VisualStudio.UI/Views/GitHubPane/PullRequestListView.xaml index 442c6e58b9..f019c8236e 100644 --- a/src/GitHub.VisualStudio.UI/Views/GitHubPane/PullRequestListView.xaml +++ b/src/GitHub.VisualStudio.UI/Views/GitHubPane/PullRequestListView.xaml @@ -112,6 +112,7 @@ + diff --git a/src/GitHub.VisualStudio/Commands/OpenIssueishDocumentCommand.cs b/src/GitHub.VisualStudio/Commands/OpenIssueishDocumentCommand.cs new file mode 100644 index 0000000000..a78bac40bc --- /dev/null +++ b/src/GitHub.VisualStudio/Commands/OpenIssueishDocumentCommand.cs @@ -0,0 +1,61 @@ +using System; +using System.ComponentModel.Composition; +using System.Threading.Tasks; +using GitHub.Commands; +using GitHub.Logging; +using GitHub.Services; +using GitHub.Services.Vssdk.Commands; +using Serilog; + +namespace GitHub.VisualStudio.Commands +{ + /// + /// Opens an issue or pull request in a new document window. + /// + [Export(typeof(IOpenIssueishDocumentCommand))] + public class OpenIssueishDocumentCommand : VsCommand, IOpenIssueishDocumentCommand + { + static readonly ILogger log = LogManager.ForContext(); + readonly IConnectionManager connectionManager; + readonly IGitHubServiceProvider serviceProvider; + + [ImportingConstructor] + protected OpenIssueishDocumentCommand( + IConnectionManager connectionManager, + IGitHubServiceProvider serviceProvider) + : base(CommandSet, CommandId) + { + this.connectionManager = connectionManager; + this.serviceProvider = serviceProvider; + } + + /// + /// Gets the GUID of the group the command belongs to. + /// + public static readonly Guid CommandSet = Guids.guidGitHubCmdSet; + + /// + /// Gets the numeric identifier of the command. + /// + public const int CommandId = PkgCmdIDList.showIssueishDocumentCommand; + + /// + /// Opens the issue or pull request. + /// + public override async Task Execute(OpenIssueishParams p) + { + try + { + var m = serviceProvider.GetService(); + var vm = await m.OpenIssueishDocumentPane(); + var connection = await connectionManager.GetConnection(p.Address); + await vm.Load(connection, p.Owner, p.Repository, p.Number); + } + catch (Exception ex) + { + log.Error(ex, "Error opening issueish document pane"); + } + } + } +} + diff --git a/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj b/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj index 54088cfa9b..753f807da1 100644 --- a/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj +++ b/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj @@ -338,6 +338,7 @@ + @@ -373,7 +374,9 @@ + + OptionsControl.xaml diff --git a/src/GitHub.VisualStudio/GitHubPackage.cs b/src/GitHub.VisualStudio/GitHubPackage.cs index 741b9ccfe8..5ed01c7534 100644 --- a/src/GitHub.VisualStudio/GitHubPackage.cs +++ b/src/GitHub.VisualStudio/GitHubPackage.cs @@ -23,6 +23,7 @@ using Microsoft.VisualStudio.Shell.Interop; using Serilog; using Task = System.Threading.Tasks.Task; +using GitHub.ViewModels.Documents; namespace GitHub.VisualStudio { @@ -161,6 +162,7 @@ public ServiceProviderExports([Import(typeof(SVsServiceProvider))] IServiceProvi [ProvideService(typeof(IUsageService), IsAsyncQueryable = true)] [ProvideService(typeof(IVSGitExt), IsAsyncQueryable = true)] [ProvideService(typeof(IGitHubToolWindowManager))] + [ProvideToolWindow(typeof(IssueishDocumentPane), DocumentLikeTool = true)] [Guid(ServiceProviderPackageId)] public sealed class ServiceProviderPackage : AsyncPackage, IServiceProviderPackage, IGitHubToolWindowManager { @@ -215,6 +217,12 @@ public async Task ShowGitHubPane() return await gitHubPane.GetViewModelAsync(); } + public async Task OpenIssueishDocumentPane() + { + var pane = (IssueishDocumentPane)ShowToolWindow(new Guid(IssueishDocumentPane.IssueishDocumentPaneGuid)); + return await pane.GetViewModelAsync(); + } + static ToolWindowPane ShowToolWindow(Guid windowGuid) { IVsWindowFrame frame; @@ -236,7 +244,7 @@ static ToolWindowPane ShowToolWindow(Guid windowGuid) log.Error("Unable to grab instance of GitHubPane '{Guid}'", UI.GitHubPane.GitHubPaneGuid); return null; } - return docView as GitHubPane; + return docView as ToolWindowPane; } async Task CreateService(IAsyncServiceContainer container, CancellationToken cancellationToken, Type serviceType) diff --git a/src/GitHub.VisualStudio/UI/AsyncPaneBase.cs b/src/GitHub.VisualStudio/UI/AsyncPaneBase.cs new file mode 100644 index 0000000000..d3eadf4405 --- /dev/null +++ b/src/GitHub.VisualStudio/UI/AsyncPaneBase.cs @@ -0,0 +1,76 @@ +using System; +using System.ComponentModel.Composition; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using GitHub.Factories; +using GitHub.Services; +using GitHub.ViewModels; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Threading; + +namespace GitHub.VisualStudio.UI +{ + public class AsyncPaneBase : ToolWindowPane + where TViewModel : IPaneViewModel + { + readonly ContentPresenter contentPresenter; + JoinableTask viewModelTask; + + public AsyncPaneBase() + { + Content = contentPresenter = new ContentPresenter(); + } + + public virtual FrameworkElement View + { + get => (FrameworkElement)contentPresenter.Content; + set => contentPresenter.Content = value; + } + + protected override void Initialize() + { + // Using JoinableTaskFactory from parent AsyncPackage. That way if VS shuts down before this + // work is done, we won't risk crashing due to arbitrary work going on in background threads. + var asyncPackage = (AsyncPackage)Package; + viewModelTask = asyncPackage.JoinableTaskFactory.RunAsync(() => InitializeAsync(asyncPackage)); + } + + public Task GetViewModelAsync() => viewModelTask.JoinAsync(); + + async Task InitializeAsync(AsyncPackage asyncPackage) + { + try + { + // Allow MEF to initialize its cache asynchronously + var provider = (IGitHubServiceProvider)await asyncPackage.GetServiceAsync(typeof(IGitHubServiceProvider)); + var teServiceHolder = provider.GetService(); + teServiceHolder.ServiceProvider = this; + var factory = provider.GetService(); + var viewModel = provider.ExportProvider.GetExportedValue(); + await viewModel.InitializeAsync(this); + View = factory.CreateView(); + if (View == null) + { + throw new CompositionException("Could not find view for " + typeof(TViewModel).FullName); + } + View.DataContext = viewModel; + return viewModel; + } + catch (Exception e) + { + ShowError(e); + throw; + } + } + + void ShowError(Exception e) + { + View = new TextBox + { + Text = e.ToString(), + IsReadOnly = true, + }; + } + } +} \ No newline at end of file diff --git a/src/GitHub.VisualStudio/UI/IssueishDocumentPane.cs b/src/GitHub.VisualStudio/UI/IssueishDocumentPane.cs new file mode 100644 index 0000000000..0ac53ce955 --- /dev/null +++ b/src/GitHub.VisualStudio/UI/IssueishDocumentPane.cs @@ -0,0 +1,16 @@ +using System; +using System.Runtime.InteropServices; +using GitHub.ViewModels.Documents; +using Microsoft.VisualStudio.Shell; + +namespace GitHub.VisualStudio.UI +{ + /// + /// A which displays an issue or pull request in a document window. + /// + [Guid(IssueishDocumentPaneGuid)] + public class IssueishDocumentPane : AsyncPaneBase + { + public const string IssueishDocumentPaneGuid = "9506846C-4CEC-4DDA-87E7-A99CDCD4E35B"; + } +} diff --git a/test/GitHub.App.UnitTests/ViewModels/GitHubPane/PullRequestListViewModelTests.cs b/test/GitHub.App.UnitTests/ViewModels/GitHubPane/PullRequestListViewModelTests.cs index adb8654359..d02d140b65 100644 --- a/test/GitHub.App.UnitTests/ViewModels/GitHubPane/PullRequestListViewModelTests.cs +++ b/test/GitHub.App.UnitTests/ViewModels/GitHubPane/PullRequestListViewModelTests.cs @@ -1,9 +1,11 @@ using System; using System.Reactive.Linq; using System.Threading.Tasks; +using GitHub.Commands; using GitHub.Models; using GitHub.Services; using GitHub.ViewModels.GitHubPane; +using NSubstitute; using NUnit.Framework; namespace UnitTests.GitHub.App.ViewModels.GitHubPane @@ -29,16 +31,19 @@ public async Task OpenItem_Navigates_To_Correct_Fork_Url() static PullRequestListViewModel CreateTarget( IPullRequestSessionManager sessionManager = null, IRepositoryService repositoryService = null, - IPullRequestService service = null) + IPullRequestService service = null, + IOpenIssueishDocumentCommand openDocumentCommand = null) { sessionManager = sessionManager ?? CreateSessionManager(); repositoryService = repositoryService ?? CreateRepositoryService(); service = service ?? CreatePullRequestService(); + openDocumentCommand = openDocumentCommand ?? Substitute.For(); return new PullRequestListViewModel( sessionManager, repositoryService, - service); + service, + openDocumentCommand); } static async Task CreateTargetAndInitialize( From 50b04ac99b7bbf232e2d31cdc3851fd05140d672 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 26 Oct 2018 13:59:48 +0200 Subject: [PATCH 02/64] Display PR details in document pane. Next need to refactor out a common base class and create 2 different PR detail view models. --- src/GitHub.App/ViewModels/CommentViewModel.cs | 2 +- .../Documents/IssueishPaneViewModel.cs | 49 ++++++++++++++++++- src/GitHub.App/ViewModels/SpinnerViewModel.cs | 14 ++++++ src/GitHub.Exports/Models/CommentModel.cs | 8 --- .../Models/PullRequestDetailModel.cs | 5 ++ .../Models/PullRequestReviewCommentModel.cs | 10 ++++ .../Documents/IIssueishPaneViewModel.cs | 5 ++ .../ViewModels/ISpinnerViewModel.cs | 11 +++++ .../Services/PullRequestSessionService.cs | 13 +++++ .../GitHub.VisualStudio.UI.csproj | 4 ++ .../Views/Documents/IssueishPaneView.xaml | 14 ++++-- .../Views/SpinnerView.xaml | 21 ++++++++ .../Views/SpinnerView.xaml.cs | 17 +++++++ 13 files changed, 158 insertions(+), 15 deletions(-) create mode 100644 src/GitHub.App/ViewModels/SpinnerViewModel.cs create mode 100644 src/GitHub.Exports/ViewModels/ISpinnerViewModel.cs create mode 100644 src/GitHub.VisualStudio.UI/Views/SpinnerView.xaml create mode 100644 src/GitHub.VisualStudio.UI/Views/SpinnerView.xaml.cs diff --git a/src/GitHub.App/ViewModels/CommentViewModel.cs b/src/GitHub.App/ViewModels/CommentViewModel.cs index fade1742f0..77dcd9da8a 100644 --- a/src/GitHub.App/ViewModels/CommentViewModel.cs +++ b/src/GitHub.App/ViewModels/CommentViewModel.cs @@ -195,7 +195,7 @@ protected Task InitializeAsync( CurrentUser = new ActorViewModel(currentUser); Id = comment?.Id; DatabaseId = comment?.DatabaseId ?? 0; - PullRequestId = comment?.PullRequestId ?? 0; + PullRequestId = (comment as PullRequestReviewCommentModel)?.PullRequestId ?? 0; Body = comment?.Body; EditState = state; Author = comment != null ? new ActorViewModel(comment.Author) : CurrentUser; diff --git a/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs index 4acf75e660..01bc4755e7 100644 --- a/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs @@ -1,7 +1,12 @@ using System; using System.ComponentModel.Composition; using System.Threading.Tasks; +using GitHub.Extensions; +using GitHub.Factories; using GitHub.Models; +using GitHub.Services; +using GitHub.ViewModels.GitHubPane; +using ReactiveUI; namespace GitHub.ViewModels.Documents { @@ -9,14 +14,54 @@ namespace GitHub.ViewModels.Documents [PartCreationPolicy(CreationPolicy.NonShared)] public class IssueishPaneViewModel : ViewModelBase, IIssueishPaneViewModel { + readonly IViewViewModelFactory factory; + readonly IPullRequestSessionManager sessionManager; + IViewModel content; + + [ImportingConstructor] + public IssueishPaneViewModel( + IViewViewModelFactory factory, + IPullRequestSessionManager sessionManager) + { + Guard.ArgumentNotNull(factory, nameof(factory)); + Guard.ArgumentNotNull(sessionManager, nameof(sessionManager)); + + this.factory = factory; + this.sessionManager = sessionManager; + } + + public IViewModel Content + { + get => content; + private set => this.RaiseAndSetIfChanged(ref content, value); + } + public Task InitializeAsync(IServiceProvider paneServiceProvider) { return Task.CompletedTask; } - public Task Load(IConnection connection, string owner, string name, int number) + public async Task Load(IConnection connection, string owner, string name, int number) { - return Task.CompletedTask; + Content = new SpinnerViewModel(); + + // TODO: We will eventually support loading issues here as well. + try + { + var session = await sessionManager.GetSession(owner, name, number).ConfigureAwait(true); + var vm = factory.CreateViewModel(); + await vm.InitializeAsync( + session.LocalRepository, + connection, + owner, + name, + number).ConfigureAwait(true); + Content = vm; + } + catch (Exception ex) + { + // TODO: Show exception. + } } } } diff --git a/src/GitHub.App/ViewModels/SpinnerViewModel.cs b/src/GitHub.App/ViewModels/SpinnerViewModel.cs new file mode 100644 index 0000000000..3395ca8789 --- /dev/null +++ b/src/GitHub.App/ViewModels/SpinnerViewModel.cs @@ -0,0 +1,14 @@ +using System; +using System.ComponentModel.Composition; + +namespace GitHub.ViewModels +{ + /// + /// View model which displays a spinner. + /// + [Export(typeof(ISpinnerViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] + public class SpinnerViewModel : ViewModelBase, ISpinnerViewModel + { + } +} diff --git a/src/GitHub.Exports/Models/CommentModel.cs b/src/GitHub.Exports/Models/CommentModel.cs index 2b601714dd..902bf5263a 100644 --- a/src/GitHub.Exports/Models/CommentModel.cs +++ b/src/GitHub.Exports/Models/CommentModel.cs @@ -17,14 +17,6 @@ public class CommentModel /// public int DatabaseId { get; set; } - /// - /// Gets the PullRequestId of the comment. - /// - public int PullRequestId { get; set; } - // The GraphQL Api does not allow for deleting of pull request comments. - // REST Api must be used, and PullRequestId is needed to reload the pull request. - // This field should be removed with better GraphQL support. - /// /// Gets the author of the comment. /// diff --git a/src/GitHub.Exports/Models/PullRequestDetailModel.cs b/src/GitHub.Exports/Models/PullRequestDetailModel.cs index 975c6511d2..28290c669d 100644 --- a/src/GitHub.Exports/Models/PullRequestDetailModel.cs +++ b/src/GitHub.Exports/Models/PullRequestDetailModel.cs @@ -78,6 +78,11 @@ public class PullRequestDetailModel /// public IReadOnlyList ChangedFiles { get; set; } + /// + /// Gets or sets a collection of comments on the pull request. + /// + public IReadOnlyList Comments { get; set; } + /// /// Gets or sets a collection of pull request reviews. /// diff --git a/src/GitHub.Exports/Models/PullRequestReviewCommentModel.cs b/src/GitHub.Exports/Models/PullRequestReviewCommentModel.cs index ef224242e1..535429d3c5 100644 --- a/src/GitHub.Exports/Models/PullRequestReviewCommentModel.cs +++ b/src/GitHub.Exports/Models/PullRequestReviewCommentModel.cs @@ -7,6 +7,16 @@ namespace GitHub.Models /// public class PullRequestReviewCommentModel : CommentModel { + /// + /// Gets the PullRequestId of the comment. + /// + /// + /// The GraphQL Api does not allow for deleting of pull request comments. + /// REST Api must be used, and PullRequestId is needed to reload the pull request. + /// This field should be removed with better GraphQL support. + /// + public int PullRequestId { get; set; } + /// /// Gets or sets the associated thread that contains the comment. /// diff --git a/src/GitHub.Exports/ViewModels/Documents/IIssueishPaneViewModel.cs b/src/GitHub.Exports/ViewModels/Documents/IIssueishPaneViewModel.cs index abfaf9ec75..a4d3795936 100644 --- a/src/GitHub.Exports/ViewModels/Documents/IIssueishPaneViewModel.cs +++ b/src/GitHub.Exports/ViewModels/Documents/IIssueishPaneViewModel.cs @@ -9,6 +9,11 @@ namespace GitHub.ViewModels.Documents /// public interface IIssueishPaneViewModel : IPaneViewModel { + /// + /// Gets the content to display in the document pane. + /// + IViewModel Content { get; } + /// /// Loads an issue or pull request into the view model. /// diff --git a/src/GitHub.Exports/ViewModels/ISpinnerViewModel.cs b/src/GitHub.Exports/ViewModels/ISpinnerViewModel.cs new file mode 100644 index 0000000000..2478ed572b --- /dev/null +++ b/src/GitHub.Exports/ViewModels/ISpinnerViewModel.cs @@ -0,0 +1,11 @@ +using System; + +namespace GitHub.ViewModels +{ + /// + /// View model which displays a spinner. + /// + public interface ISpinnerViewModel : IViewModel + { + } +} diff --git a/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs b/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs index 56f8570903..57b1561cb1 100644 --- a/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs +++ b/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs @@ -304,6 +304,19 @@ public virtual async Task ReadPullRequestDetail(HostAddr HeadRepositoryOwner = pr.HeadRepositoryOwner != null ? pr.HeadRepositoryOwner.Login : null, State = pr.State.FromGraphQl(), UpdatedAt = pr.UpdatedAt, + Comments = pr.Comments(null, null, null, null).AllPages().Select(comment => new CommentModel + { + Id = comment.Id.Value, + Author = new ActorModel + { + Login = comment.Author.Login, + AvatarUrl = comment.Author.AvatarUrl(null), + }, + Body = comment.Body, + CreatedAt = comment.CreatedAt, + DatabaseId = comment.DatabaseId.Value, + Url = comment.Url, + }).ToList(), Reviews = pr.Reviews(null, null, null, null, null, null).AllPages().Select(review => new PullRequestReviewModel { Id = review.Id.Value, diff --git a/src/GitHub.VisualStudio.UI/GitHub.VisualStudio.UI.csproj b/src/GitHub.VisualStudio.UI/GitHub.VisualStudio.UI.csproj index a6da12883b..30c53c1b17 100644 --- a/src/GitHub.VisualStudio.UI/GitHub.VisualStudio.UI.csproj +++ b/src/GitHub.VisualStudio.UI/GitHub.VisualStudio.UI.csproj @@ -29,4 +29,8 @@ + + + + \ No newline at end of file diff --git a/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml b/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml index 0ea1f25861..ff1b357e56 100644 --- a/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml +++ b/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml @@ -3,8 +3,14 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:local="clr-namespace:GitHub.VisualStudio.UI.Views.Documents" - mc:Ignorable="d" - d:DesignHeight="450" d:DesignWidth="800"> - Content Here + xmlns:ghfvs="https://github.com/github/VisualStudio" + xmlns:views="clr-namespace:GitHub.VisualStudio.Views" + mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" + Content="{Binding Content}"> + + + + + + diff --git a/src/GitHub.VisualStudio.UI/Views/SpinnerView.xaml b/src/GitHub.VisualStudio.UI/Views/SpinnerView.xaml new file mode 100644 index 0000000000..6d7600c780 --- /dev/null +++ b/src/GitHub.VisualStudio.UI/Views/SpinnerView.xaml @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/src/GitHub.VisualStudio.UI/Views/SpinnerView.xaml.cs b/src/GitHub.VisualStudio.UI/Views/SpinnerView.xaml.cs new file mode 100644 index 0000000000..fb45eee377 --- /dev/null +++ b/src/GitHub.VisualStudio.UI/Views/SpinnerView.xaml.cs @@ -0,0 +1,17 @@ +using System.ComponentModel.Composition; +using System.Windows.Controls; +using GitHub.Exports; +using GitHub.ViewModels; + +namespace GitHub.VisualStudio.UI.Views +{ + [ExportViewFor(typeof(ISpinnerViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] + public partial class SpinnerView : UserControl + { + public SpinnerView() + { + InitializeComponent(); + } + } +} From cfb1dd3a33b383fb87529654afc6cb5ab062b762 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 26 Oct 2018 15:32:49 +0200 Subject: [PATCH 03/64] Initial implementation of PR conversation view. --- src/GitHub.App/Models/PullRequestModel.cs | 8 +- src/GitHub.App/Properties/AssemblyInfo.cs | 1 + .../SampleData/CommentViewModelDesigner.cs | 7 ++ .../IssueishCommentThreadViewModelDesigner.cs | 19 ++++ .../PullRequestPageViewModelDesigner.cs | 72 +++++++++++++++ .../Services/FromGraphQlExtensions.cs | 14 +-- src/GitHub.App/Services/ModelService.cs | 12 +-- src/GitHub.App/Services/PullRequestService.cs | 4 +- src/GitHub.App/ViewModels/CommentViewModel.cs | 18 ++-- .../Documents/CommitSummaryViewModel.cs | 18 ++++ .../IssueishCommentThreadViewModel.cs | 86 ++++++++++++++++++ .../Documents/IssueishPaneViewModel.cs | 10 +- .../Documents/PullRequestPageViewModel.cs | 55 +++++++++++ .../Documents/PullRequestTimelineViewModel.cs | 11 +++ .../GitHubPane/PullRequestListViewModel.cs | 8 +- .../ViewModels/IssueishViewModel.cs | 78 ++++++++++++++++ .../ViewModels/PullRequestViewModelBase.cs | 68 ++++++++++++++ .../Services/IPullRequestService.cs | 2 +- .../IIssueishCommentThreadViewModel.cs | 25 +++++ .../Documents/IPullRequestPageViewModel.cs | 23 +++++ .../ViewModels/ICommentViewModel.cs | 19 +++- .../ViewModels/IIssueishViewModel.cs | 48 ++++++++++ .../ViewModels/IPullRequestViewModelBase.cs | 25 +++++ src/GitHub.Exports/Models/CommitModel.cs | 20 ++++ .../Models/IPullRequestModel.cs | 6 +- .../Models/IssueishDetailModel.cs | 46 ++++++++++ .../Models/PullRequestDetailModel.cs | 58 +++--------- .../Models/PullRequestListItemModel.cs | 2 +- .../Services/PullRequestSessionService.cs | 5 + .../GitHub.VisualStudio.UI.csproj | 5 +- .../Views/Documents/IssueishPaneView.xaml | 7 +- .../Views/Documents/PullRequestPageView.xaml | 91 +++++++++++++++++++ .../Documents/PullRequestPageView.xaml.cs | 20 ++++ .../PullRequestDetailViewModelTests.cs | 2 +- 34 files changed, 793 insertions(+), 100 deletions(-) create mode 100644 src/GitHub.App/SampleData/Documents/IssueishCommentThreadViewModelDesigner.cs create mode 100644 src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs create mode 100644 src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs create mode 100644 src/GitHub.App/ViewModels/Documents/IssueishCommentThreadViewModel.cs create mode 100644 src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs create mode 100644 src/GitHub.App/ViewModels/Documents/PullRequestTimelineViewModel.cs create mode 100644 src/GitHub.App/ViewModels/IssueishViewModel.cs create mode 100644 src/GitHub.App/ViewModels/PullRequestViewModelBase.cs create mode 100644 src/GitHub.Exports.Reactive/ViewModels/Documents/IIssueishCommentThreadViewModel.cs create mode 100644 src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs create mode 100644 src/GitHub.Exports.Reactive/ViewModels/IIssueishViewModel.cs create mode 100644 src/GitHub.Exports.Reactive/ViewModels/IPullRequestViewModelBase.cs create mode 100644 src/GitHub.Exports/Models/CommitModel.cs create mode 100644 src/GitHub.Exports/Models/IssueishDetailModel.cs create mode 100644 src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml create mode 100644 src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml.cs diff --git a/src/GitHub.App/Models/PullRequestModel.cs b/src/GitHub.App/Models/PullRequestModel.cs index 6a560fa2ea..c1f6bd3837 100644 --- a/src/GitHub.App/Models/PullRequestModel.cs +++ b/src/GitHub.App/Models/PullRequestModel.cs @@ -110,8 +110,8 @@ public string Title } } - PullRequestStateEnum status; - public PullRequestStateEnum State + PullRequestState status; + public PullRequestState State { get { return status; } set @@ -126,8 +126,8 @@ public PullRequestStateEnum State } // TODO: Remove these property once maintainer workflow has been merged to master. - public bool IsOpen => State == PullRequestStateEnum.Open; - public bool Merged => State == PullRequestStateEnum.Merged; + public bool IsOpen => State == PullRequestState.Open; + public bool Merged => State == PullRequestState.Merged; int commentCount; public int CommentCount diff --git a/src/GitHub.App/Properties/AssemblyInfo.cs b/src/GitHub.App/Properties/AssemblyInfo.cs index 20fe17f77f..3cafbcc0d5 100644 --- a/src/GitHub.App/Properties/AssemblyInfo.cs +++ b/src/GitHub.App/Properties/AssemblyInfo.cs @@ -2,6 +2,7 @@ [assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.SampleData")] [assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.SampleData.Dialog.Clone")] +[assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.SampleData.Documents")] [assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.ViewModels")] [assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.ViewModels.Dialog")] [assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.ViewModels.Dialog.Clone")] diff --git a/src/GitHub.App/SampleData/CommentViewModelDesigner.cs b/src/GitHub.App/SampleData/CommentViewModelDesigner.cs index 425f536ad7..606312a3a7 100644 --- a/src/GitHub.App/SampleData/CommentViewModelDesigner.cs +++ b/src/GitHub.App/SampleData/CommentViewModelDesigner.cs @@ -1,6 +1,8 @@ using System; using System.Diagnostics.CodeAnalysis; using System.Reactive; +using System.Threading.Tasks; +using GitHub.Models; using GitHub.ViewModels; using ReactiveUI; @@ -33,5 +35,10 @@ public CommentViewModelDesigner() public ReactiveCommand CommitEdit { get; } public ReactiveCommand OpenOnGitHub { get; } public ReactiveCommand Delete { get; } + + public Task InitializeAsync(ICommentThreadViewModel thread, ActorModel currentUser, CommentModel comment, CommentEditState state) + { + return Task.CompletedTask; + } } } diff --git a/src/GitHub.App/SampleData/Documents/IssueishCommentThreadViewModelDesigner.cs b/src/GitHub.App/SampleData/Documents/IssueishCommentThreadViewModelDesigner.cs new file mode 100644 index 0000000000..c3bdc3530a --- /dev/null +++ b/src/GitHub.App/SampleData/Documents/IssueishCommentThreadViewModelDesigner.cs @@ -0,0 +1,19 @@ +using System; +using System.Threading.Tasks; +using GitHub.Models; +using GitHub.ViewModels; +using GitHub.ViewModels.Documents; +using ReactiveUI; + +namespace GitHub.SampleData.Documents +{ + public class IssueishCommentThreadViewModelDesigner : ViewModelBase, IIssueishCommentThreadViewModel + { + public IReadOnlyReactiveList Comments { get; set; } + public IActorViewModel CurrentUser { get; } = new ActorViewModelDesigner("grokys"); + public Task DeleteComment(int pullRequestId, int commentId) => Task.CompletedTask; + public Task EditComment(string id, string body) => Task.CompletedTask; + public Task InitializeAsync(ActorModel currentUser, IssueishDetailModel model, bool addPlaceholder) => Task.CompletedTask; + public Task PostComment(string body) => Task.CompletedTask; + } +} diff --git a/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs b/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs new file mode 100644 index 0000000000..c17ca5b3d3 --- /dev/null +++ b/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs @@ -0,0 +1,72 @@ +using System; +using System.Reactive; +using System.Threading.Tasks; +using GitHub.Models; +using GitHub.ViewModels; +using GitHub.ViewModels.Documents; +using ReactiveUI; + +namespace GitHub.SampleData.Documents +{ + public class PullRequestPageViewModelDesigner : ViewModelBase, IPullRequestPageViewModel + { + public PullRequestPageViewModelDesigner() + { + Body = @"Save drafts of inline comments, PR reviews and PRs. + +> Note: This feature required a refactoring of the comment view models because they now need async initialization and to be available from GitHub.App. This part of the PR has been submitted separately as #1993 to ease review. The two PRs can alternatively be reviewed as one if that's more convenient. + +As described in #1905, it is easy to lose a comment that you're working on if you close the diff view accidentally. This PR saves drafts of comments as they are being written to an SQLite database. + +In addition to saving drafts of inline comments, it also saves comments to PR reviews and PRs themselves. + +The comments are written to an SQLite database directly instead of going through Akavache because in the case of inline reviews, there can be many drafts in progress on a separate file. When a diff is opened we need to look for any comments present on that file and show the most recent. That use-case didn't fit well with Akavache (being a pure key/value store). + +## Testing + +### Inline Comments + +- Open a PR +- Open the diff of a file +- Start adding a comment +- Close the comment by closing the peek view, or the document tab +- Reopen the diff +- You should see the comment displayed in edit mode with the draft of the comment you were previously writing + +### PR reviews + +- Open a PR +- Click ""Add your review"" +- Start adding a review +- Click the ""Back"" button and navigate to a different PR +- Click the ""Back"" button and navigate to the original PR +- Click ""Add your review"" +- You should see the the draft of the review you were previously writing + +### PRs + +-Click ""Create new"" at the top of the PR list +- Start adding a PR title/ description +- Close VS +- Restart VS and click ""Create new"" again +- You should see the the draft of the PR you were previously writing + +Depends on #1993 +Fixes #1905"; + } + + public PullRequestState State { get; set; } = PullRequestState.Open; + public IIssueishCommentThreadViewModel Thread { get; set; } + public string SourceBranchDisplayName { get; set; } = "feature/save-drafts"; + public string TargetBranchDisplayName { get; set; } = "master"; + public IActorViewModel Author { get; set; } = new ActorViewModelDesigner("grokys"); + public string Body { get; set; } + public int Number { get; set; } = 1994; + public IRepositoryModel Repository { get; set; } + public string Title { get; set; } = "Save drafts of comments"; + public Uri WebUrl { get; set; } + public ReactiveCommand OpenOnGitHub { get; } + + public Task InitializeAsync(ActorModel currentUser, PullRequestDetailModel model) => Task.CompletedTask; + } +} diff --git a/src/GitHub.App/Services/FromGraphQlExtensions.cs b/src/GitHub.App/Services/FromGraphQlExtensions.cs index d56a63ae93..fa279b6218 100644 --- a/src/GitHub.App/Services/FromGraphQlExtensions.cs +++ b/src/GitHub.App/Services/FromGraphQlExtensions.cs @@ -33,16 +33,16 @@ public static class FromGraphQlExtensions } } - public static PullRequestStateEnum FromGraphQl(this PullRequestState value) + public static Models.PullRequestState FromGraphQl(this Octokit.GraphQL.Model.PullRequestState value) { switch (value) { - case PullRequestState.Open: - return PullRequestStateEnum.Open; - case PullRequestState.Closed: - return PullRequestStateEnum.Closed; - case PullRequestState.Merged: - return PullRequestStateEnum.Merged; + case Octokit.GraphQL.Model.PullRequestState.Open: + return Models.PullRequestState.Open; + case Octokit.GraphQL.Model.PullRequestState.Closed: + return Models.PullRequestState.Closed; + case Octokit.GraphQL.Model.PullRequestState.Merged: + return Models.PullRequestState.Merged; default: throw new ArgumentOutOfRangeException(nameof(value), value, null); } diff --git a/src/GitHub.App/Services/ModelService.cs b/src/GitHub.App/Services/ModelService.cs index e35169d29c..65ed2e1ca9 100644 --- a/src/GitHub.App/Services/ModelService.cs +++ b/src/GitHub.App/Services/ModelService.cs @@ -442,7 +442,7 @@ IPullRequestModel Create(PullRequestCacheItem prCacheItem) Head = Create(prCacheItem.Head), State = prCacheItem.State.HasValue ? prCacheItem.State.Value : - prCacheItem.IsOpen.Value ? PullRequestStateEnum.Open : PullRequestStateEnum.Closed, + prCacheItem.IsOpen.Value ? PullRequestState.Open : PullRequestState.Closed, }; } @@ -576,25 +576,25 @@ public PullRequestCacheItem(PullRequest pr) public string Body { get; set; } // Nullable for compatibility with old caches. - public PullRequestStateEnum? State { get; set; } + public PullRequestState? State { get; set; } // This fields exists only for compatibility with old caches. The State property should be used. public bool? IsOpen { get; set; } public bool? Merged { get; set; } - static PullRequestStateEnum GetState(PullRequest pullRequest) + static PullRequestState GetState(PullRequest pullRequest) { if (pullRequest.State == ItemState.Open) { - return PullRequestStateEnum.Open; + return PullRequestState.Open; } else if (pullRequest.Merged) { - return PullRequestStateEnum.Merged; + return PullRequestState.Merged; } else { - return PullRequestStateEnum.Closed; + return PullRequestState.Closed; } } } diff --git a/src/GitHub.App/Services/PullRequestService.cs b/src/GitHub.App/Services/PullRequestService.cs index 1790a43cd8..9eb6f51b02 100644 --- a/src/GitHub.App/Services/PullRequestService.cs +++ b/src/GitHub.App/Services/PullRequestService.cs @@ -80,7 +80,7 @@ public async Task> ReadPullRequests( string owner, string name, string after, - PullRequestStateEnum[] states) + Models.PullRequestState[] states) { ICompiledQuery> query; @@ -204,7 +204,7 @@ public async Task> ReadPullRequests( { nameof(owner), owner }, { nameof(name), name }, { nameof(after), after }, - { nameof(states), states.Select(x => (PullRequestState)x).ToList() }, + { nameof(states), states.Select(x => (Octokit.GraphQL.Model.PullRequestState)x).ToList() }, }; var result = await graphql.Run(query, vars); diff --git a/src/GitHub.App/ViewModels/CommentViewModel.cs b/src/GitHub.App/ViewModels/CommentViewModel.cs index 77dcd9da8a..1e10cc71a9 100644 --- a/src/GitHub.App/ViewModels/CommentViewModel.cs +++ b/src/GitHub.App/ViewModels/CommentViewModel.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.Composition; using System.Linq; using System.Reactive; using System.Reactive.Linq; @@ -13,9 +14,11 @@ namespace GitHub.ViewModels { /// - /// Base view model for an issue or pull request comment. + /// An issue or pull request comment. /// - public abstract class CommentViewModel : ReactiveObject, ICommentViewModel + [Export(typeof(ICommentViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] + public class CommentViewModel : ReactiveObject, ICommentViewModel { static readonly ILogger log = LogManager.ForContext(); readonly ICommentService commentService; @@ -36,6 +39,7 @@ public abstract class CommentViewModel : ReactiveObject, ICommentViewModel /// Initializes a new instance of the class. /// /// The comment service. + [ImportingConstructor] public CommentViewModel(ICommentService commentService) { Guard.ArgumentNotNull(commentService, nameof(commentService)); @@ -175,14 +179,8 @@ public ICommentThreadViewModel Thread /// public ReactiveCommand Delete { get; } - /// - /// Initializes the view model with data. - /// - /// The thread that the comment is a part of. - /// The current user. - /// The comment model. May be null. - /// The comment edit state. - protected Task InitializeAsync( + /// + public Task InitializeAsync( ICommentThreadViewModel thread, ActorModel currentUser, CommentModel comment, diff --git a/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs b/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs new file mode 100644 index 0000000000..e1b3ffa8de --- /dev/null +++ b/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs @@ -0,0 +1,18 @@ +using System; +using GitHub.Models; +using GitHub.ViewModels; + +namespace GitHub.App.ViewModels.Documents +{ + public class CommitSummaryViewModel : ViewModelBase + { + public CommitSummaryViewModel(CommitModel model) + { + AbbreviatedOid = model.AbbreviatedOid; + Header = model.MessageHeadline; + } + + public string AbbreviatedOid { get; } + public string Header { get; } + } +} diff --git a/src/GitHub.App/ViewModels/Documents/IssueishCommentThreadViewModel.cs b/src/GitHub.App/ViewModels/Documents/IssueishCommentThreadViewModel.cs new file mode 100644 index 0000000000..a2d2e583dd --- /dev/null +++ b/src/GitHub.App/ViewModels/Documents/IssueishCommentThreadViewModel.cs @@ -0,0 +1,86 @@ +using System; +using System.ComponentModel.Composition; +using System.Threading.Tasks; +using GitHub.Extensions; +using GitHub.Factories; +using GitHub.Models; + +namespace GitHub.ViewModels.Documents +{ + /// + /// A thread of issue or pull request comments. + /// + [Export(typeof(IIssueishCommentThreadViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] + public class IssueishCommentThreadViewModel : CommentThreadViewModel, IIssueishCommentThreadViewModel + { + readonly IViewViewModelFactory factory; + + /// + /// Initializes a new instance of the class. + /// + /// The view model factory. + [ImportingConstructor] + public IssueishCommentThreadViewModel(IViewViewModelFactory factory) + { + Guard.ArgumentNotNull(factory, nameof(factory)); + this.factory = factory; + } + + /// + public async Task InitializeAsync( + ActorModel currentUser, + IssueishDetailModel model, + bool addPlaceholder) + { + Guard.ArgumentNotNull(model, nameof(model)); + + await base.InitializeAsync(currentUser).ConfigureAwait(false); + + foreach (var comment in model.Comments) + { + var vm = factory.CreateViewModel(); + await vm.InitializeAsync( + this, + currentUser, + comment, + CommentEditState.None).ConfigureAwait(true); + Comments.Add(vm); + } + + if (addPlaceholder) + { + var vm = factory.CreateViewModel(); + await vm.InitializeAsync( + this, + currentUser, + null, + CommentEditState.Placeholder).ConfigureAwait(true); + Comments.Add(vm); + } + } + + /// + public override Task PostComment(string body) + { + Guard.ArgumentNotNull(body, nameof(body)); + + throw new NotImplementedException(); + } + + /// + public override Task EditComment(string id, string body) + { + Guard.ArgumentNotNull(id, nameof(id)); + Guard.ArgumentNotNull(body, nameof(body)); + + throw new NotImplementedException(); + } + + /// + public override Task DeleteComment(int pullRequestId, int commentId) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs index 01bc4755e7..6a4c913711 100644 --- a/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs @@ -5,7 +5,6 @@ using GitHub.Factories; using GitHub.Models; using GitHub.Services; -using GitHub.ViewModels.GitHubPane; using ReactiveUI; namespace GitHub.ViewModels.Documents @@ -49,13 +48,8 @@ public async Task Load(IConnection connection, string owner, string name, int nu try { var session = await sessionManager.GetSession(owner, name, number).ConfigureAwait(true); - var vm = factory.CreateViewModel(); - await vm.InitializeAsync( - session.LocalRepository, - connection, - owner, - name, - number).ConfigureAwait(true); + var vm = factory.CreateViewModel(); + await vm.InitializeAsync(session.User, session.PullRequest).ConfigureAwait(true); Content = vm; } catch (Exception ex) diff --git a/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs new file mode 100644 index 0000000000..0a0c2389fb --- /dev/null +++ b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs @@ -0,0 +1,55 @@ +using System; +using System.ComponentModel.Composition; +using System.Threading.Tasks; +using GitHub.Extensions; +using GitHub.Factories; +using GitHub.Models; +using GitHub.Services; + +namespace GitHub.ViewModels.Documents +{ + /// + /// View model for displaying a pull request in a document window. + /// + [Export(typeof(IPullRequestPageViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] + public class PullRequestPageViewModel : PullRequestViewModelBase, IPullRequestPageViewModel + { + readonly IViewViewModelFactory factory; + readonly IPullRequestSessionManager sessionManager; + + /// + /// Initializes a new instance of the class. + /// + /// The view model factory. + [ImportingConstructor] + public PullRequestPageViewModel( + IViewViewModelFactory factory, + IPullRequestSessionManager sessionManager) + { + Guard.ArgumentNotNull(factory, nameof(factory)); + Guard.ArgumentNotNull(sessionManager, nameof(sessionManager)); + + this.factory = factory; + this.sessionManager = sessionManager; + } + + /// + public IIssueishCommentThreadViewModel Thread { get; private set; } + + /// + public async Task InitializeAsync( + ActorModel currentUser, + PullRequestDetailModel model) + { + await base.InitializeAsync(model).ConfigureAwait(true); + + var thread = factory.CreateViewModel(); + await thread.InitializeAsync( + currentUser, + model, + true).ConfigureAwait(true); + Thread = thread; + } + } +} diff --git a/src/GitHub.App/ViewModels/Documents/PullRequestTimelineViewModel.cs b/src/GitHub.App/ViewModels/Documents/PullRequestTimelineViewModel.cs new file mode 100644 index 0000000000..0a2b6eb8f5 --- /dev/null +++ b/src/GitHub.App/ViewModels/Documents/PullRequestTimelineViewModel.cs @@ -0,0 +1,11 @@ +using System; +using GitHub.ViewModels; +using ReactiveUI; + +namespace GitHub.App.ViewModels.Documents +{ + public class PullRequestTimelineViewModel + { + public IReadOnlyReactiveList Items { get; } + } +} diff --git a/src/GitHub.App/ViewModels/GitHubPane/PullRequestListViewModel.cs b/src/GitHub.App/ViewModels/GitHubPane/PullRequestListViewModel.cs index 4f3d7db663..2c5c408f86 100644 --- a/src/GitHub.App/ViewModels/GitHubPane/PullRequestListViewModel.cs +++ b/src/GitHub.App/ViewModels/GitHubPane/PullRequestListViewModel.cs @@ -144,18 +144,18 @@ protected override IIssueListItemViewModelBase CreateViewModel(PullRequestListIt protected override async Task> LoadPage(string after) { - PullRequestStateEnum[] states; + PullRequestState[] states; switch (owner.SelectedState) { case "Open": - states = new[] { PullRequestStateEnum.Open }; + states = new[] { PullRequestState.Open }; break; case "Closed": - states = new[] { PullRequestStateEnum.Closed, PullRequestStateEnum.Merged }; + states = new[] { PullRequestState.Closed, PullRequestState.Merged }; break; default: - states = new[] { PullRequestStateEnum.Open, PullRequestStateEnum.Closed, PullRequestStateEnum.Merged }; + states = new[] { PullRequestState.Open, PullRequestState.Closed, PullRequestState.Merged }; break; } diff --git a/src/GitHub.App/ViewModels/IssueishViewModel.cs b/src/GitHub.App/ViewModels/IssueishViewModel.cs new file mode 100644 index 0000000000..79d8ee177e --- /dev/null +++ b/src/GitHub.App/ViewModels/IssueishViewModel.cs @@ -0,0 +1,78 @@ +using System; +using System.ComponentModel.Composition; +using System.Reactive; +using System.Threading.Tasks; +using GitHub.Logging; +using GitHub.Models; +using ReactiveUI; +using Serilog; + +namespace GitHub.ViewModels +{ + /// + /// Base class for issue and pull request view models. + /// + public class IssueishViewModel : ViewModelBase, IIssueishViewModel + { + static readonly ILogger log = LogManager.ForContext(); + + IActorViewModel author; + string body; + string title; + Uri webUrl; + + /// + /// Initializes a new instance of the class. + /// + [ImportingConstructor] + public IssueishViewModel() + { + } + + /// + public IRepositoryModel Repository { get; private set; } + + /// + public int Number { get; private set; } + + /// + public IActorViewModel Author + { + get => author; + private set => this.RaiseAndSetIfChanged(ref author, value); + } + + /// + public string Body + { + get => body; + protected set => this.RaiseAndSetIfChanged(ref body, value); + } + + /// + public string Title + { + get => title; + protected set => this.RaiseAndSetIfChanged(ref title, value); + } + + /// + public Uri WebUrl + { + get { return webUrl; } + private set { this.RaiseAndSetIfChanged(ref webUrl, value); } + } + + /// + public ReactiveCommand OpenOnGitHub { get; } + + protected Task InitializeAsync(IssueishDetailModel model) + { + Author = new ActorViewModel(model.Author); + Body = model.Body; + Number = model.Number; + Title = model.Title; + return Task.CompletedTask; + } + } +} diff --git a/src/GitHub.App/ViewModels/PullRequestViewModelBase.cs b/src/GitHub.App/ViewModels/PullRequestViewModelBase.cs new file mode 100644 index 0000000000..e2b59738c4 --- /dev/null +++ b/src/GitHub.App/ViewModels/PullRequestViewModelBase.cs @@ -0,0 +1,68 @@ +using System; +using System.ComponentModel.Composition; +using System.Threading.Tasks; +using GitHub.Logging; +using GitHub.Models; +using ReactiveUI; +using Serilog; + +namespace GitHub.ViewModels +{ + /// + /// Base class for pull request view models. + /// + public class PullRequestViewModelBase : IssueishViewModel, IPullRequestViewModelBase + { + static readonly ILogger log = LogManager.ForContext(); + PullRequestState state; + string sourceBranchDisplayName; + string targetBranchDisplayName; + + /// + /// Initializes a new instance of the class. + /// + [ImportingConstructor] + public PullRequestViewModelBase() + { + } + + public PullRequestState State + { + get => state; + private set => this.RaiseAndSetIfChanged(ref state, value); + } + + public string SourceBranchDisplayName + { + get => sourceBranchDisplayName; + private set => this.RaiseAndSetIfChanged(ref sourceBranchDisplayName, value); + } + + public string TargetBranchDisplayName + { + get => targetBranchDisplayName; + private set => this.RaiseAndSetIfChanged(ref targetBranchDisplayName, value); + } + + protected virtual async Task InitializeAsync(PullRequestDetailModel model) + { + await base.InitializeAsync(model).ConfigureAwait(true); + + var fork = model.BaseRepositoryOwner != model.HeadRepositoryOwner; + SourceBranchDisplayName = GetBranchDisplayName(fork, model.HeadRepositoryOwner, model.HeadRefName); + TargetBranchDisplayName = GetBranchDisplayName(fork, model.BaseRepositoryOwner, model.BaseRefName); + } + + static string GetBranchDisplayName(bool isFromFork, string owner, string label) + { + if (owner != null) + { + return isFromFork ? owner + ':' + label : label; + } + else + { + return Resources.InvalidBranchName; + } + } + } +} diff --git a/src/GitHub.Exports.Reactive/Services/IPullRequestService.cs b/src/GitHub.Exports.Reactive/Services/IPullRequestService.cs index 72ac6ec532..8eba9d507b 100644 --- a/src/GitHub.Exports.Reactive/Services/IPullRequestService.cs +++ b/src/GitHub.Exports.Reactive/Services/IPullRequestService.cs @@ -25,7 +25,7 @@ Task> ReadPullRequests( string owner, string name, string after, - PullRequestStateEnum[] states); + PullRequestState[] states); /// /// Reads a page of users that can be assigned to pull requests. diff --git a/src/GitHub.Exports.Reactive/ViewModels/Documents/IIssueishCommentThreadViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/Documents/IIssueishCommentThreadViewModel.cs new file mode 100644 index 0000000000..171d456859 --- /dev/null +++ b/src/GitHub.Exports.Reactive/ViewModels/Documents/IIssueishCommentThreadViewModel.cs @@ -0,0 +1,25 @@ +using System; +using System.Threading.Tasks; +using GitHub.Models; + +namespace GitHub.ViewModels.Documents +{ + /// + /// A thread of issue or pull request comments. + /// + public interface IIssueishCommentThreadViewModel : ICommentThreadViewModel + { + /// + /// Initializes the view model with data. + /// + /// The currently logged in user. + /// The issue or pull request model. + /// + /// Whether to add a placeholder comment at the end of the thread. + /// + Task InitializeAsync( + ActorModel currentUser, + IssueishDetailModel model, + bool addPlaceholder); + } +} diff --git a/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs new file mode 100644 index 0000000000..03f939a929 --- /dev/null +++ b/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs @@ -0,0 +1,23 @@ +using System.Threading.Tasks; +using GitHub.Models; + +namespace GitHub.ViewModels.Documents +{ + /// + /// View model for displaying a pull request in a document window. + /// + public interface IPullRequestPageViewModel : IPullRequestViewModelBase + { + /// + /// Gets the pull request's comment thread. + /// + IIssueishCommentThreadViewModel Thread { get; } + + /// + /// Initializes the view model with data. + /// + /// The currently logged in user. + /// The pull request model. + Task InitializeAsync(ActorModel currentUser, PullRequestDetailModel model); + } +} \ No newline at end of file diff --git a/src/GitHub.Exports.Reactive/ViewModels/ICommentViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/ICommentViewModel.cs index 5914b0ddbd..b81a10c10f 100644 --- a/src/GitHub.Exports.Reactive/ViewModels/ICommentViewModel.cs +++ b/src/GitHub.Exports.Reactive/ViewModels/ICommentViewModel.cs @@ -1,5 +1,7 @@ using System; using System.Reactive; +using System.Threading.Tasks; +using GitHub.Models; using ReactiveUI; namespace GitHub.ViewModels @@ -11,8 +13,8 @@ public enum CommentEditState Placeholder, } - /// - /// View model for an issue or pull request comment. + /// + /// View model for an issue, pull request or pull request review comment. /// public interface ICommentViewModel : IViewModel { @@ -106,5 +108,18 @@ public interface ICommentViewModel : IViewModel /// Deletes a comment. /// ReactiveCommand Delete { get; } + + /// + /// Initializes the view model with data. + /// + /// The thread that the comment is a part of. + /// The current user. + /// The comment model. May be null. + /// The comment edit state. + Task InitializeAsync( + ICommentThreadViewModel thread, + ActorModel currentUser, + CommentModel comment, + CommentEditState state); } } \ No newline at end of file diff --git a/src/GitHub.Exports.Reactive/ViewModels/IIssueishViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/IIssueishViewModel.cs new file mode 100644 index 0000000000..98156df6e2 --- /dev/null +++ b/src/GitHub.Exports.Reactive/ViewModels/IIssueishViewModel.cs @@ -0,0 +1,48 @@ +using System; +using System.Reactive; +using GitHub.Models; +using ReactiveUI; + +namespace GitHub.ViewModels +{ + /// + /// Base interface for issue and pull request view models. + /// + public interface IIssueishViewModel : IViewModel + { + /// + /// Gets the issue or pull request author. + /// + IActorViewModel Author { get; } + + /// + /// Gets the issue or pull request body. + /// + string Body { get; } + + /// + /// Gets the issue or pull request number. + /// + int Number { get; } + + /// + /// Gets the repository that the issue or pull request comes from. + /// + IRepositoryModel Repository { get; } + + /// + /// Gets the issue or pull request title. + /// + string Title { get; } + + /// + /// Gets the URL of the issue or pull request. + /// + Uri WebUrl { get; } + + /// + /// Gets a command which opens the issue or pull request in a browser. + /// + ReactiveCommand OpenOnGitHub { get; } + } +} \ No newline at end of file diff --git a/src/GitHub.Exports.Reactive/ViewModels/IPullRequestViewModelBase.cs b/src/GitHub.Exports.Reactive/ViewModels/IPullRequestViewModelBase.cs new file mode 100644 index 0000000000..13b092a12e --- /dev/null +++ b/src/GitHub.Exports.Reactive/ViewModels/IPullRequestViewModelBase.cs @@ -0,0 +1,25 @@ +using GitHub.Models; + +namespace GitHub.ViewModels +{ + /// + /// Base class for pull request view models. + /// + public interface IPullRequestViewModelBase : IIssueishViewModel + { + /// + /// Gets the pull request state. + /// + PullRequestState State { get; } + + /// + /// Gets a the pull request's source (head) branch display. + /// + string SourceBranchDisplayName { get; } + + /// + /// Gets a the pull request's target (base) branch display. + /// + string TargetBranchDisplayName { get; } + } +} \ No newline at end of file diff --git a/src/GitHub.Exports/Models/CommitModel.cs b/src/GitHub.Exports/Models/CommitModel.cs new file mode 100644 index 0000000000..6b62558700 --- /dev/null +++ b/src/GitHub.Exports/Models/CommitModel.cs @@ -0,0 +1,20 @@ +using System; + +namespace GitHub.Models +{ + /// + /// Holds the details of a commit. + /// + public class CommitModel + { + /// + /// Gets the abbreviated git object ID for the commit. + /// + public string AbbreviatedOid { get; set; } + + /// + /// Gets the commit headline. + /// + public string MessageHeadline { get; set; } + } +} diff --git a/src/GitHub.Exports/Models/IPullRequestModel.cs b/src/GitHub.Exports/Models/IPullRequestModel.cs index 4d78de08ab..289fc8e66d 100644 --- a/src/GitHub.Exports/Models/IPullRequestModel.cs +++ b/src/GitHub.Exports/Models/IPullRequestModel.cs @@ -4,9 +4,7 @@ namespace GitHub.Models { - /// TODO: A PullRequestState class already exists hence the ugly naming of this. - /// Merge the two when the maintainer workflow has been merged to master. - public enum PullRequestStateEnum + public enum PullRequestState { Open, Closed, @@ -26,7 +24,7 @@ public interface IPullRequestModel : ICopyable, { int Number { get; } string Title { get; } - PullRequestStateEnum State { get; } + PullRequestState State { get; } int CommentCount { get; } int CommitCount { get; } bool IsOpen { get; } diff --git a/src/GitHub.Exports/Models/IssueishDetailModel.cs b/src/GitHub.Exports/Models/IssueishDetailModel.cs new file mode 100644 index 0000000000..1b4618e503 --- /dev/null +++ b/src/GitHub.Exports/Models/IssueishDetailModel.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; + +namespace GitHub.Models +{ + /// + /// Base class for issue and pull request detail models. + /// + public class IssueishDetailModel + { + /// + /// Gets or sets the GraphQL ID of the issue or pull request. + /// + public string Id { get; set; } + + /// + /// Gets or sets the issue or pull request number. + /// + public int Number { get; set; } + + /// + /// Gets or sets the issue or pull request author. + /// + public ActorModel Author { get; set; } + + /// + /// Gets or sets the issue or pull request title. + /// + public string Title { get; set; } + + /// + /// Gets or sets the issue or pull request body. + /// + public string Body { get; set; } + + /// + /// Gets or sets the date/time at which the issue or pull request was last updated. + /// + public DateTimeOffset UpdatedAt { get; set; } + + /// + /// Gets or sets the comments on the issue or pull request. + /// + public IReadOnlyList Comments { get; set; } + } +} diff --git a/src/GitHub.Exports/Models/PullRequestDetailModel.cs b/src/GitHub.Exports/Models/PullRequestDetailModel.cs index 28290c669d..0f325efb1c 100644 --- a/src/GitHub.Exports/Models/PullRequestDetailModel.cs +++ b/src/GitHub.Exports/Models/PullRequestDetailModel.cs @@ -6,37 +6,12 @@ namespace GitHub.Models /// /// Holds the details of a Pull Request. /// - public class PullRequestDetailModel + public class PullRequestDetailModel : IssueishDetailModel { - /// - /// Gets or sets the GraphQL ID of the pull request. - /// - public string Id { get; set; } - - /// - /// Gets or sets the pull request number. - /// - public int Number { get; set; } - - /// - /// Gets or sets the pull request author. - /// - public ActorModel Author { get; set; } - - /// - /// Gets or sets the pull request title. - /// - public string Title { get; set; } - /// /// Gets or sets the pull request state (open, closed, merged). /// - public PullRequestStateEnum State { get; set; } - - /// - /// Gets or sets the pull request body markdown. - /// - public string Body { get; set; } + public PullRequestState State { get; set; } /// /// Gets or sets the name of the base branch (e.g. "master"). @@ -67,11 +42,6 @@ public class PullRequestDetailModel /// Gets or sets the owner login of the repository containing the head branch. /// public string HeadRepositoryOwner { get; set; } - - /// - /// Gets or sets the date/time at which the pull request was last updated. - /// - public DateTimeOffset UpdatedAt { get; set; } /// /// Gets or sets a collection of files changed by the pull request. @@ -79,9 +49,19 @@ public class PullRequestDetailModel public IReadOnlyList ChangedFiles { get; set; } /// - /// Gets or sets a collection of comments on the pull request. + /// Gets or sets a collection of pull request Checks Suites. /// - public IReadOnlyList Comments { get; set; } + public IReadOnlyList CheckSuites { get; set; } + + /// + /// Gets or sets a collection of pull request commits. + /// + public IReadOnlyList Commits { get; set; } + + /// + /// Gets or sets a collection of pull request Statuses + /// + public IReadOnlyList Statuses { get; set; } /// /// Gets or sets a collection of pull request reviews. @@ -96,15 +76,5 @@ public class PullRequestDetailModel /// into threads, as such each pull request review comment will appear in both collections. /// public IReadOnlyList Threads { get; set; } - - /// - /// Gets or sets a collection of pull request Checks Suites - /// - public IReadOnlyList CheckSuites { get; set; } - - /// - /// Gets or sets a collection of pull request Statuses - /// - public IReadOnlyList Statuses { get; set; } } } diff --git a/src/GitHub.Exports/Models/PullRequestListItemModel.cs b/src/GitHub.Exports/Models/PullRequestListItemModel.cs index f6a9a7fe55..dbc0a5aad6 100644 --- a/src/GitHub.Exports/Models/PullRequestListItemModel.cs +++ b/src/GitHub.Exports/Models/PullRequestListItemModel.cs @@ -35,7 +35,7 @@ public class PullRequestListItemModel /// /// Gets or sets the pull request state (open, closed, merged). /// - public PullRequestStateEnum State { get; set; } + public PullRequestState State { get; set; } /// /// Gets the pull request checks and statuses summary diff --git a/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs b/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs index 57b1561cb1..de4d4f320b 100644 --- a/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs +++ b/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs @@ -317,6 +317,11 @@ public virtual async Task ReadPullRequestDetail(HostAddr DatabaseId = comment.DatabaseId.Value, Url = comment.Url, }).ToList(), + Commits = pr.Commits(null, null, null, null).AllPages().Select(commit => new CommitModel + { + AbbreviatedOid = commit.Commit.AbbreviatedOid, + MessageHeadline = commit.Commit.MessageHeadline, + }).ToList(), Reviews = pr.Reviews(null, null, null, null, null, null).AllPages().Select(review => new PullRequestReviewModel { Id = review.Id.Value, diff --git a/src/GitHub.VisualStudio.UI/GitHub.VisualStudio.UI.csproj b/src/GitHub.VisualStudio.UI/GitHub.VisualStudio.UI.csproj index 30c53c1b17..472c76dd5d 100644 --- a/src/GitHub.VisualStudio.UI/GitHub.VisualStudio.UI.csproj +++ b/src/GitHub.VisualStudio.UI/GitHub.VisualStudio.UI.csproj @@ -10,6 +10,7 @@ + @@ -29,8 +30,4 @@ - - - - \ No newline at end of file diff --git a/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml b/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml index ff1b357e56..d015435347 100644 --- a/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml +++ b/src/GitHub.VisualStudio.UI/Views/Documents/IssueishPaneView.xaml @@ -5,12 +5,15 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:ghfvs="https://github.com/github/VisualStudio" xmlns:views="clr-namespace:GitHub.VisualStudio.Views" - mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" - Content="{Binding Content}"> + mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> + + + diff --git a/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml b/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml new file mode 100644 index 0000000000..50d9c6491f --- /dev/null +++ b/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (#) + + + + + + + + + + + + + + + wants to merge + + into + + + + + + from + + + + + + + + + + + + + + + + + + + diff --git a/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml.cs b/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml.cs new file mode 100644 index 0000000000..83fe45aa0c --- /dev/null +++ b/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml.cs @@ -0,0 +1,20 @@ +using System.ComponentModel.Composition; +using System.Windows.Controls; +using GitHub.Exports; +using GitHub.ViewModels.Documents; +using GitHub.VisualStudio.UI.Helpers; + +namespace GitHub.VisualStudio.UI.Views.Documents +{ + [ExportViewFor(typeof(IPullRequestPageViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] + public partial class PullRequestPageView : UserControl + { + public PullRequestPageView() + { + InitializeComponent(); + + bodyMarkdown.PreviewMouseWheel += ScrollViewerUtilities.FixMouseWheelScroll; + } + } +} diff --git a/test/GitHub.App.UnitTests/ViewModels/GitHubPane/PullRequestDetailViewModelTests.cs b/test/GitHub.App.UnitTests/ViewModels/GitHubPane/PullRequestDetailViewModelTests.cs index ac24f57097..58f305920f 100644 --- a/test/GitHub.App.UnitTests/ViewModels/GitHubPane/PullRequestDetailViewModelTests.cs +++ b/test/GitHub.App.UnitTests/ViewModels/GitHubPane/PullRequestDetailViewModelTests.cs @@ -627,7 +627,7 @@ static PullRequestDetailModel CreatePullRequestModel( Number = number, Title = "PR 1", Author = new ActorModel(), - State = PullRequestStateEnum.Open, + State = PullRequestState.Open, Body = string.Empty, BaseRefName = "master", BaseRefSha = "BASE_REF", From 02bc4ee88509e125bbe3a2b83f4c242ead321d93 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 30 Oct 2018 13:00:15 +0100 Subject: [PATCH 04/64] Display sample data in PR conversation page. --- src/GitHub.App/Properties/AssemblyInfo.cs | 1 + .../SampleData/CommentViewModelDesigner.cs | 2 +- .../PullRequestPageViewModelDesigner.cs | 31 ++++++++++++- .../Documents/CommitSummariesViewModel.cs | 14 ++++++ .../Documents/CommitSummaryViewModel.cs | 2 +- .../Documents/PullRequestPageViewModel.cs | 39 ++++++++++++++--- .../Documents/PullRequestTimelineViewModel.cs | 11 ----- .../Documents/IPullRequestPageViewModel.cs | 7 +-- src/GitHub.Exports/Models/CommitModel.cs | 5 +++ .../Views/CommentView.xaml | 6 +-- .../Views/Documents/PullRequestPageView.xaml | 43 +++++++++++++++++-- 11 files changed, 131 insertions(+), 30 deletions(-) create mode 100644 src/GitHub.App/ViewModels/Documents/CommitSummariesViewModel.cs delete mode 100644 src/GitHub.App/ViewModels/Documents/PullRequestTimelineViewModel.cs diff --git a/src/GitHub.App/Properties/AssemblyInfo.cs b/src/GitHub.App/Properties/AssemblyInfo.cs index 3cafbcc0d5..0ad9954b61 100644 --- a/src/GitHub.App/Properties/AssemblyInfo.cs +++ b/src/GitHub.App/Properties/AssemblyInfo.cs @@ -6,4 +6,5 @@ [assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.ViewModels")] [assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.ViewModels.Dialog")] [assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.ViewModels.Dialog.Clone")] +[assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.ViewModels.Documents")] [assembly: XmlnsDefinition("https://github.com/github/VisualStudio", "GitHub.ViewModels.GitHubPane")] diff --git a/src/GitHub.App/SampleData/CommentViewModelDesigner.cs b/src/GitHub.App/SampleData/CommentViewModelDesigner.cs index 606312a3a7..1fcec6720d 100644 --- a/src/GitHub.App/SampleData/CommentViewModelDesigner.cs +++ b/src/GitHub.App/SampleData/CommentViewModelDesigner.cs @@ -33,7 +33,7 @@ public CommentViewModelDesigner() public ReactiveCommand BeginEdit { get; } public ReactiveCommand CancelEdit { get; } public ReactiveCommand CommitEdit { get; } - public ReactiveCommand OpenOnGitHub { get; } + public ReactiveCommand OpenOnGitHub { get; } = ReactiveCommand.Create(() => { }); public ReactiveCommand Delete { get; } public Task InitializeAsync(ICommentThreadViewModel thread, ActorModel currentUser, CommentModel comment, CommentEditState state) diff --git a/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs b/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs index c17ca5b3d3..13010eb210 100644 --- a/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs +++ b/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Reactive; using System.Threading.Tasks; using GitHub.Models; @@ -53,10 +54,38 @@ public PullRequestPageViewModelDesigner() Depends on #1993 Fixes #1905"; + Timeline = new IViewModel[] + { + new CommitSummariesViewModel( + new CommitSummaryViewModel(new CommitModel + { + Author = new ActorModel { Login = "grokys" }, + AbbreviatedOid = "c7c7d25", + MessageHeadline = "Refactor comment view models." + }), + new CommitSummaryViewModel(new CommitModel + { + Author = new ActorModel { Login = "grokys" }, + AbbreviatedOid = "04e6a90", + MessageHeadline = "Refactor comment view models.", + })), + new CommentViewModelDesigner + { + Author = new ActorViewModelDesigner("meaghanlewis"), + Body = @"This is looking great! Really enjoying using this feature so far. + +When leaving an inline comment, the comment posts successfully and then a new comment is drafted with the same text.", + }, + new CommentViewModelDesigner + { + Author = new ActorViewModelDesigner("grokys"), + Body = @"Oops, sorry about that @meaghanlewis - I was sure I tested those things, but must have got messed up again at some point. Should be fixed now.", + }, + }; } public PullRequestState State { get; set; } = PullRequestState.Open; - public IIssueishCommentThreadViewModel Thread { get; set; } + public IReadOnlyList Timeline { get; } public string SourceBranchDisplayName { get; set; } = "feature/save-drafts"; public string TargetBranchDisplayName { get; set; } = "master"; public IActorViewModel Author { get; set; } = new ActorViewModelDesigner("grokys"); diff --git a/src/GitHub.App/ViewModels/Documents/CommitSummariesViewModel.cs b/src/GitHub.App/ViewModels/Documents/CommitSummariesViewModel.cs new file mode 100644 index 0000000000..b59d82c43e --- /dev/null +++ b/src/GitHub.App/ViewModels/Documents/CommitSummariesViewModel.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; + +namespace GitHub.ViewModels.Documents +{ + public class CommitSummariesViewModel : ViewModelBase + { + public CommitSummariesViewModel(params CommitSummaryViewModel[] commits) + { + Commits = commits; + } + + public IReadOnlyList Commits { get; } + } +} diff --git a/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs b/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs index e1b3ffa8de..383a0c8846 100644 --- a/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs @@ -2,7 +2,7 @@ using GitHub.Models; using GitHub.ViewModels; -namespace GitHub.App.ViewModels.Documents +namespace GitHub.ViewModels.Documents { public class CommitSummaryViewModel : ViewModelBase { diff --git a/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs index 0a0c2389fb..79304a2583 100644 --- a/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs @@ -1,10 +1,13 @@ using System; +using System.Collections.Generic; using System.ComponentModel.Composition; using System.Threading.Tasks; using GitHub.Extensions; using GitHub.Factories; using GitHub.Models; +using GitHub.SampleData; using GitHub.Services; +using ReactiveUI; namespace GitHub.ViewModels.Documents { @@ -35,7 +38,7 @@ public PullRequestPageViewModel( } /// - public IIssueishCommentThreadViewModel Thread { get; private set; } + public IReadOnlyList Timeline { get; private set; } /// public async Task InitializeAsync( @@ -44,12 +47,34 @@ public async Task InitializeAsync( { await base.InitializeAsync(model).ConfigureAwait(true); - var thread = factory.CreateViewModel(); - await thread.InitializeAsync( - currentUser, - model, - true).ConfigureAwait(true); - Thread = thread; + Timeline = new IViewModel[] + { + new CommitSummariesViewModel( + new CommitSummaryViewModel(new CommitModel + { + Author = new ActorModel { Login = "grokys" }, + AbbreviatedOid = "c7c7d25", + MessageHeadline = "Refactor comment view models." + }), + new CommitSummaryViewModel(new CommitModel + { + Author = new ActorModel { Login = "grokys" }, + AbbreviatedOid = "04e6a90", + MessageHeadline = "Refactor comment view models.", + })), + new CommentViewModelDesigner + { + Author = new ActorViewModelDesigner("meaghanlewis"), + Body = @"This is looking great! Really enjoying using this feature so far. + +When leaving an inline comment, the comment posts successfully and then a new comment is drafted with the same text.", + }, + new CommentViewModelDesigner + { + Author = new ActorViewModelDesigner("grokys"), + Body = @"Oops, sorry about that @meaghanlewis - I was sure I tested those things, but must have got messed up again at some point. Should be fixed now.", + }, + }; } } } diff --git a/src/GitHub.App/ViewModels/Documents/PullRequestTimelineViewModel.cs b/src/GitHub.App/ViewModels/Documents/PullRequestTimelineViewModel.cs deleted file mode 100644 index 0a2b6eb8f5..0000000000 --- a/src/GitHub.App/ViewModels/Documents/PullRequestTimelineViewModel.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using GitHub.ViewModels; -using ReactiveUI; - -namespace GitHub.App.ViewModels.Documents -{ - public class PullRequestTimelineViewModel - { - public IReadOnlyReactiveList Items { get; } - } -} diff --git a/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs index 03f939a929..7e8008aec0 100644 --- a/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs +++ b/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Threading.Tasks; using GitHub.Models; namespace GitHub.ViewModels.Documents @@ -9,9 +10,9 @@ namespace GitHub.ViewModels.Documents public interface IPullRequestPageViewModel : IPullRequestViewModelBase { /// - /// Gets the pull request's comment thread. + /// Gets the pull request's timeline. /// - IIssueishCommentThreadViewModel Thread { get; } + IReadOnlyList Timeline { get; } /// /// Initializes the view model with data. diff --git a/src/GitHub.Exports/Models/CommitModel.cs b/src/GitHub.Exports/Models/CommitModel.cs index 6b62558700..8a766d602f 100644 --- a/src/GitHub.Exports/Models/CommitModel.cs +++ b/src/GitHub.Exports/Models/CommitModel.cs @@ -7,6 +7,11 @@ namespace GitHub.Models /// public class CommitModel { + /// + /// Gets or sets the author of the commit. + /// + public ActorModel Author { get; set; } + /// /// Gets the abbreviated git object ID for the commit. /// diff --git a/src/GitHub.VisualStudio.UI/Views/CommentView.xaml b/src/GitHub.VisualStudio.UI/Views/CommentView.xaml index 9bf463a44a..6cb47cd049 100644 --- a/src/GitHub.VisualStudio.UI/Views/CommentView.xaml +++ b/src/GitHub.VisualStudio.UI/Views/CommentView.xaml @@ -51,9 +51,9 @@ - + @@ -84,8 +84,45 @@ - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + From 102e3378da5f94c817cba2b5d783875aa12e187c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 30 Oct 2018 16:03:37 +0100 Subject: [PATCH 05/64] Load PR timeline from GraphQL. And display its commits and comments in the conversation view. --- lib/Octokit.GraphQL.0.1.1-beta.nupkg | Bin 198441 -> 0 bytes lib/Octokit.GraphQL.0.2.0-beta.nupkg | Bin 0 -> 218595 bytes src/GitHub.Api/GitHub.Api.csproj | 2 +- src/GitHub.App/GitHub.App.csproj | 2 +- src/GitHub.App/Services/PullRequestService.cs | 6 +- .../Services/RepositoryCloneService.cs | 4 +- src/GitHub.App/Services/RepositoryService.cs | 2 +- .../Documents/CommitSummariesViewModel.cs | 6 ++ .../Documents/CommitSummaryViewModel.cs | 2 + .../Documents/PullRequestPageViewModel.cs | 75 ++++++++++++------ .../Models/PullRequestDetailModel.cs | 5 ++ .../GitHub.InlineReviews.csproj | 8 +- .../Services/PullRequestSessionService.cs | 36 +++++++-- src/GitHub.InlineReviews/packages.config | 2 +- .../Views/CommentView.xaml | 3 +- .../Views/CommentView.xaml.cs | 6 ++ .../Views/Documents/PullRequestPageView.xaml | 17 +++- .../GitHub.VisualStudio.csproj | 8 +- src/GitHub.VisualStudio/packages.config | 2 +- 19 files changed, 132 insertions(+), 54 deletions(-) delete mode 100644 lib/Octokit.GraphQL.0.1.1-beta.nupkg create mode 100644 lib/Octokit.GraphQL.0.2.0-beta.nupkg diff --git a/lib/Octokit.GraphQL.0.1.1-beta.nupkg b/lib/Octokit.GraphQL.0.1.1-beta.nupkg deleted file mode 100644 index ac2678367240f87fbf3b67d63ecb6b3843f90477..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198441 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

G(vN~J`z!*HBr*Gp`s!`h2`fvQBn1a_UI=} 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


?rfIVMr; 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%0D1DgK}*m*LsR~mss=-bYJg#uZAj| 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 z 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
-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�=v=?^IM{ISg-kHMYI4 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 ULjFSt74~(8d0;XkY=i;-2R0&{lK=n! diff --git a/lib/Octokit.GraphQL.0.2.0-beta.nupkg b/lib/Octokit.GraphQL.0.2.0-beta.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..0d8273e88df41903a1aceef5cdebaea8c2507479 GIT binary patch literal 218595 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ⅆTe$y&4{Ne9RVv+M8jI|Yt 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 z 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 p5H{wB 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 V*ncho@w=w~<|j7g-v9vk{{T7?ky8Kw literal 0 HcmV?d00001 diff --git a/src/GitHub.Api/GitHub.Api.csproj b/src/GitHub.Api/GitHub.Api.csproj index 6ccbdba718..3fbc82d395 100644 --- a/src/GitHub.Api/GitHub.Api.csproj +++ b/src/GitHub.Api/GitHub.Api.csproj @@ -30,6 +30,6 @@ - + diff --git a/src/GitHub.App/GitHub.App.csproj b/src/GitHub.App/GitHub.App.csproj index 8c025cbf00..2b4cbfe768 100644 --- a/src/GitHub.App/GitHub.App.csproj +++ b/src/GitHub.App/GitHub.App.csproj @@ -49,7 +49,7 @@ - + diff --git a/src/GitHub.App/Services/PullRequestService.cs b/src/GitHub.App/Services/PullRequestService.cs index 9eb6f51b02..97aaf673ae 100644 --- a/src/GitHub.App/Services/PullRequestService.cs +++ b/src/GitHub.App/Services/PullRequestService.cs @@ -90,7 +90,7 @@ public async Task> ReadPullRequests( if (readPullRequests == null) { readPullRequests = new Query() - .Repository(Var(nameof(owner)), Var(nameof(name))) + .Repository(owner: Var(nameof(owner)), name: Var(nameof(name))) .PullRequests( first: 100, after: Var(nameof(after)), @@ -151,7 +151,7 @@ public async Task> ReadPullRequests( if (readPullRequestsEnterprise == null) { readPullRequestsEnterprise = new Query() - .Repository(Var(nameof(owner)), Var(nameof(name))) + .Repository(owner: Var(nameof(owner)), name: Var(nameof(name))) .PullRequests( first: 100, after: Var(nameof(after)), @@ -290,7 +290,7 @@ public async Task> ReadAssignableUsers( if (readAssignableUsers == null) { readAssignableUsers = new Query() - .Repository(Var(nameof(owner)), Var(nameof(name))) + .Repository(owner: Var(nameof(owner)), name: Var(nameof(name))) .AssignableUsers(first: 100, after: Var(nameof(after))) .Select(connection => new Page { diff --git a/src/GitHub.App/Services/RepositoryCloneService.cs b/src/GitHub.App/Services/RepositoryCloneService.cs index a8bde09b5b..648f3f18a8 100644 --- a/src/GitHub.App/Services/RepositoryCloneService.cs +++ b/src/GitHub.App/Services/RepositoryCloneService.cs @@ -88,13 +88,13 @@ public async Task ReadViewerRepositories(HostAddress ad .Select(viewer => new ViewerRepositoriesModel { Owner = viewer.Login, - Repositories = viewer.Repositories(null, null, null, null, null, order, affiliation, null, null) + Repositories = viewer.Repositories(null, null, null, null, affiliation, null, null, order, null, null) .AllPages() .Select(repositorySelection).ToList(), OrganizationRepositories = viewer.Organizations(null, null, null, null).AllPages().Select(org => new { org.Login, - Repositories = org.Repositories(null, null, null, null, null, order, null, null, null) + Repositories = org.Repositories(null, null, null, null, null, null, null, order, null, null) .AllPages() .Select(repositorySelection).ToList() }).ToDictionary(x => x.Login, x => (IReadOnlyList)x.Repositories), diff --git a/src/GitHub.App/Services/RepositoryService.cs b/src/GitHub.App/Services/RepositoryService.cs index 36b729fe3e..f713cabbb7 100644 --- a/src/GitHub.App/Services/RepositoryService.cs +++ b/src/GitHub.App/Services/RepositoryService.cs @@ -34,7 +34,7 @@ public RepositoryService(IGraphQLClientFactory graphqlFactory) if (readParentOwnerLogin == null) { readParentOwnerLogin = new Query() - .Repository(Var(nameof(owner)), Var(nameof(name))) + .Repository(owner: Var(nameof(owner)), name: Var(nameof(name))) .Select(r => r.Parent != null ? Tuple.Create(r.Parent.Owner.Login, r.Parent.Name) : null) .Compile(); } diff --git a/src/GitHub.App/ViewModels/Documents/CommitSummariesViewModel.cs b/src/GitHub.App/ViewModels/Documents/CommitSummariesViewModel.cs index b59d82c43e..c0c02b4ff7 100644 --- a/src/GitHub.App/ViewModels/Documents/CommitSummariesViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/CommitSummariesViewModel.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; namespace GitHub.ViewModels.Documents { @@ -9,6 +10,11 @@ public CommitSummariesViewModel(params CommitSummaryViewModel[] commits) Commits = commits; } + public CommitSummariesViewModel(IEnumerable commits) + { + Commits = commits.ToList(); + } + public IReadOnlyList Commits { get; } } } diff --git a/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs b/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs index 383a0c8846..03ed07969b 100644 --- a/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs @@ -9,10 +9,12 @@ public class CommitSummaryViewModel : ViewModelBase public CommitSummaryViewModel(CommitModel model) { AbbreviatedOid = model.AbbreviatedOid; + Author = new ActorViewModel(model.Author); Header = model.MessageHeadline; } public string AbbreviatedOid { get; } + public IActorViewModel Author { get; } public string Header { get; } } } diff --git a/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs index 79304a2583..6353503cb3 100644 --- a/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs @@ -16,7 +16,7 @@ namespace GitHub.ViewModels.Documents ///

[Export(typeof(IPullRequestPageViewModel))] [PartCreationPolicy(CreationPolicy.NonShared)] - public class PullRequestPageViewModel : PullRequestViewModelBase, IPullRequestPageViewModel + public class PullRequestPageViewModel : PullRequestViewModelBase, IPullRequestPageViewModel, ICommentThreadViewModel { readonly IViewViewModelFactory factory; readonly IPullRequestSessionManager sessionManager; @@ -37,9 +37,15 @@ public PullRequestPageViewModel( this.sessionManager = sessionManager; } + /// + public IActorViewModel CurrentUser { get; private set; } + /// public IReadOnlyList Timeline { get; private set; } + /// + IReadOnlyReactiveList ICommentThreadViewModel.Comments => throw new NotImplementedException(); + /// public async Task InitializeAsync( ActorModel currentUser, @@ -47,34 +53,53 @@ public async Task InitializeAsync( { await base.InitializeAsync(model).ConfigureAwait(true); - Timeline = new IViewModel[] + CurrentUser = new ActorViewModel(currentUser); + + var timeline = new ReactiveList(); + var commits = new List(); + + foreach (var i in model.Timeline) { - new CommitSummariesViewModel( - new CommitSummaryViewModel(new CommitModel - { - Author = new ActorModel { Login = "grokys" }, - AbbreviatedOid = "c7c7d25", - MessageHeadline = "Refactor comment view models." - }), - new CommitSummaryViewModel(new CommitModel - { - Author = new ActorModel { Login = "grokys" }, - AbbreviatedOid = "04e6a90", - MessageHeadline = "Refactor comment view models.", - })), - new CommentViewModelDesigner + if (!(i is CommitModel) && commits.Count > 0) { - Author = new ActorViewModelDesigner("meaghanlewis"), - Body = @"This is looking great! Really enjoying using this feature so far. + timeline.Add(new CommitSummariesViewModel(commits)); + commits.Clear(); + } -When leaving an inline comment, the comment posts successfully and then a new comment is drafted with the same text.", - }, - new CommentViewModelDesigner + switch (i) { - Author = new ActorViewModelDesigner("grokys"), - Body = @"Oops, sorry about that @meaghanlewis - I was sure I tested those things, but must have got messed up again at some point. Should be fixed now.", - }, - }; + case CommitModel commit: + commits.Add(new CommitSummaryViewModel(commit)); + break; + case CommentModel comment: + var vm = factory.CreateViewModel(); + await vm.InitializeAsync(this, currentUser, comment, CommentEditState.None).ConfigureAwait(true); + timeline.Add(vm); + break; + } + } + + if (commits.Count > 0) + { + timeline.Add(new CommitSummariesViewModel(commits)); + } + + Timeline = timeline; + } + + Task ICommentThreadViewModel.DeleteComment(int pullRequestId, int commentId) + { + throw new NotImplementedException(); + } + + Task ICommentThreadViewModel.EditComment(string id, string body) + { + throw new NotImplementedException(); + } + + Task ICommentThreadViewModel.PostComment(string body) + { + throw new NotImplementedException(); } } } diff --git a/src/GitHub.Exports/Models/PullRequestDetailModel.cs b/src/GitHub.Exports/Models/PullRequestDetailModel.cs index 0f325efb1c..128ee7fde7 100644 --- a/src/GitHub.Exports/Models/PullRequestDetailModel.cs +++ b/src/GitHub.Exports/Models/PullRequestDetailModel.cs @@ -76,5 +76,10 @@ public class PullRequestDetailModel : IssueishDetailModel /// into threads, as such each pull request review comment will appear in both collections. /// public IReadOnlyList Threads { get; set; } + + /// + /// Gets or sets the pull request timeline entries. + /// + public IReadOnlyList Timeline { get; set; } } } diff --git a/src/GitHub.InlineReviews/GitHub.InlineReviews.csproj b/src/GitHub.InlineReviews/GitHub.InlineReviews.csproj index 7404ed2695..db7114e8c6 100644 --- a/src/GitHub.InlineReviews/GitHub.InlineReviews.csproj +++ b/src/GitHub.InlineReviews/GitHub.InlineReviews.csproj @@ -356,11 +356,11 @@ ..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll - - ..\..\packages\Octokit.GraphQL.0.1.1-beta\lib\netstandard1.1\Octokit.GraphQL.dll + + ..\..\packages\Octokit.GraphQL.0.2.0-beta\lib\netstandard1.1\Octokit.GraphQL.dll - - ..\..\packages\Octokit.GraphQL.0.1.1-beta\lib\netstandard1.1\Octokit.GraphQL.Core.dll + + ..\..\packages\Octokit.GraphQL.0.2.0-beta\lib\netstandard1.1\Octokit.GraphQL.Core.dll diff --git a/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs b/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs index de4d4f320b..8bab8baf64 100644 --- a/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs +++ b/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs @@ -283,8 +283,8 @@ public virtual async Task ReadPullRequestDetail(HostAddr if (readPullRequest == null) { readPullRequest = new Query() - .Repository(Var(nameof(owner)), Var(nameof(name))) - .PullRequest(Var(nameof(number))) + .Repository(owner: Var(nameof(owner)), name: Var(nameof(name))) + .PullRequest(number: Var(nameof(number))) .Select(pr => new PullRequestDetailModel { Id = pr.Id.Value, @@ -356,6 +356,30 @@ public virtual async Task ReadPullRequestDetail(HostAddr Url = comment.Url, }).ToList(), }).ToList(), + Timeline = pr.Timeline(null, null, null, null, null).AllPages().Select(item => item.Switch(when => + when.Commit(commit => new CommitModel + { + AbbreviatedOid = commit.AbbreviatedOid, + // TODO: commit.Author.User can be null + Author = new ActorModel + { + Login = commit.Author.User.Login, + AvatarUrl = commit.Author.User.AvatarUrl(null), + }, + MessageHeadline = commit.MessageHeadline, + }).IssueComment(comment => new CommentModel + { + Author = new ActorModel + { + Login = comment.Author.Login, + AvatarUrl = comment.Author.AvatarUrl(null), + }, + Body = comment.Body, + CreatedAt = comment.CreatedAt, + DatabaseId = comment.DatabaseId.Value, + Id = comment.Id.Value, + Url = comment.Url, + }))).ToList() }).Compile(); } @@ -778,8 +802,8 @@ async Task GetPullRequestLastCommitAdapter(HostAddress addres if (readCommitStatuses == null) { readCommitStatuses = new Query() - .Repository(Var(nameof(owner)), Var(nameof(name))) - .PullRequest(Var(nameof(number))).Commits(last: 1).Nodes.Select( + .Repository(owner: Var(nameof(owner)), name: Var(nameof(name))) + .PullRequest(number: Var(nameof(number))).Commits(last: 1).Nodes.Select( commit => new LastCommitAdapter { CheckSuites = commit.Commit.CheckSuites(null, null, null, null, null).AllPages(10) @@ -816,8 +840,8 @@ async Task GetPullRequestLastCommitAdapter(HostAddress addres if (readCommitStatusesEnterprise == null) { readCommitStatusesEnterprise = new Query() - .Repository(Var(nameof(owner)), Var(nameof(name))) - .PullRequest(Var(nameof(number))).Commits(last: 1).Nodes.Select( + .Repository(owner: Var(nameof(owner)), name: Var(nameof(name))) + .PullRequest(number: Var(nameof(number))).Commits(last: 1).Nodes.Select( commit => new LastCommitAdapter { Statuses = commit.Commit.Status diff --git a/src/GitHub.InlineReviews/packages.config b/src/GitHub.InlineReviews/packages.config index 68889b5182..31b04eb1f1 100644 --- a/src/GitHub.InlineReviews/packages.config +++ b/src/GitHub.InlineReviews/packages.config @@ -36,7 +36,7 @@ - + diff --git a/src/GitHub.VisualStudio.UI/Views/CommentView.xaml b/src/GitHub.VisualStudio.UI/Views/CommentView.xaml index 6cb47cd049..be9a8ea1a4 100644 --- a/src/GitHub.VisualStudio.UI/Views/CommentView.xaml +++ b/src/GitHub.VisualStudio.UI/Views/CommentView.xaml @@ -89,7 +89,8 @@ - diff --git a/src/GitHub.VisualStudio.UI/Views/CommentView.xaml.cs b/src/GitHub.VisualStudio.UI/Views/CommentView.xaml.cs index 7adba505d4..14de45f081 100644 --- a/src/GitHub.VisualStudio.UI/Views/CommentView.xaml.cs +++ b/src/GitHub.VisualStudio.UI/Views/CommentView.xaml.cs @@ -1,8 +1,11 @@ using System; +using System.ComponentModel.Composition; using System.Windows.Input; +using GitHub.Exports; using GitHub.Services; using GitHub.UI; using GitHub.ViewModels; +using GitHub.VisualStudio.UI.Helpers; using Microsoft.VisualStudio.Shell; using ReactiveUI; @@ -10,12 +13,15 @@ namespace GitHub.VisualStudio.Views { public class GenericCommentView : ViewBase { } + [ExportViewFor(typeof(ICommentViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] public partial class CommentView : GenericCommentView { public CommentView() { InitializeComponent(); this.Loaded += CommentView_Loaded; + bodyMarkdown.PreviewMouseWheel += ScrollViewerUtilities.FixMouseWheelScroll; this.WhenActivated(d => { diff --git a/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml b/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml index 04335399b6..0bb9fc858f 100644 --- a/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml +++ b/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml @@ -7,7 +7,7 @@ xmlns:markdig="clr-namespace:Markdig.Wpf;assembly=Markdig.Wpf" xmlns:vsui="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.14.0" xmlns:v="clr-namespace:GitHub.VisualStudio.Views" - mc:Ignorable="d" d:DesignHeight="2048" d:DesignWidth="800" + mc:Ignorable="d" d:DesignHeight="1200" d:DesignWidth="800" MaxWidth="800"> @@ -100,15 +100,24 @@ Height="16" Margin="2" ViewModel="{Binding Author}"/> - + - + - + + + + + diff --git a/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj b/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj index 753f807da1..310990aee9 100644 --- a/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj +++ b/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj @@ -243,11 +243,11 @@ ..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll - - ..\..\packages\Octokit.GraphQL.0.1.1-beta\lib\netstandard1.1\Octokit.GraphQL.dll + + ..\..\packages\Octokit.GraphQL.0.2.0-beta\lib\netstandard1.1\Octokit.GraphQL.dll - - ..\..\packages\Octokit.GraphQL.0.1.1-beta\lib\netstandard1.1\Octokit.GraphQL.Core.dll + + ..\..\packages\Octokit.GraphQL.0.2.0-beta\lib\netstandard1.1\Octokit.GraphQL.Core.dll ..\..\packages\Rothko.0.0.3-ghfvs\lib\net45\rothko.dll diff --git a/src/GitHub.VisualStudio/packages.config b/src/GitHub.VisualStudio/packages.config index 204ea96a69..50ec3250d1 100644 --- a/src/GitHub.VisualStudio/packages.config +++ b/src/GitHub.VisualStudio/packages.config @@ -38,7 +38,7 @@ - + From 424439dc0ac9a9f2d7f934abf3aa036a045169a0 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 31 Oct 2018 14:59:41 +0100 Subject: [PATCH 06/64] Show commit in TE when OID clicked. --- .../Models/RemoteRepositoryModel.cs | 1 - .../PullRequestPageViewModelDesigner.cs | 10 ++++-- src/GitHub.App/Services/GitClient.cs | 5 +++ src/GitHub.App/Services/PullRequestService.cs | 15 ++++++++ .../Documents/CommitSummaryViewModel.cs | 31 +++++++++++------ .../Documents/IssueishPaneViewModel.cs | 16 ++++++++- .../Documents/PullRequestPageViewModel.cs | 34 ++++++++++++++++--- .../ViewModels/IssueishViewModel.cs | 7 ++-- .../ViewModels/PullRequestViewModelBase.cs | 11 ++++-- .../Services/IGitClient.cs | 8 +++++ .../Services/IPullRequestService.cs | 9 +++++ .../Documents/IPullRequestPageViewModel.cs | 15 +++++++- .../ViewModels/IIssueishViewModel.cs | 2 +- .../ViewModels/IPullRequestViewModelBase.cs | 5 +++ src/GitHub.Exports/Models/CommitModel.cs | 9 +++-- .../Models/PullRequestDetailModel.cs | 5 --- .../Services/ITeamExplorerServices.cs | 1 + .../Services/PullRequestSessionService.cs | 6 +--- .../Services/TeamExplorerServices.cs | 6 ++++ .../Views/Documents/PullRequestPageView.xaml | 5 +-- 20 files changed, 162 insertions(+), 39 deletions(-) diff --git a/src/GitHub.App/Models/RemoteRepositoryModel.cs b/src/GitHub.App/Models/RemoteRepositoryModel.cs index 64ec5bda4a..b38e0fa59b 100644 --- a/src/GitHub.App/Models/RemoteRepositoryModel.cs +++ b/src/GitHub.App/Models/RemoteRepositoryModel.cs @@ -25,7 +25,6 @@ public RemoteRepositoryModel(long id, string name, UriString cloneUrl, bool isPr : base(name, cloneUrl) { Guard.ArgumentNotEmptyString(name, nameof(name)); - Guard.ArgumentNotNull(ownerAccount, nameof(ownerAccount)); Id = id; OwnerAccount = ownerAccount; diff --git a/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs b/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs index 13010eb210..d8a56bf5fa 100644 --- a/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs +++ b/src/GitHub.App/SampleData/Documents/PullRequestPageViewModelDesigner.cs @@ -91,11 +91,17 @@ Depends on #1993 public IActorViewModel Author { get; set; } = new ActorViewModelDesigner("grokys"); public string Body { get; set; } public int Number { get; set; } = 1994; - public IRepositoryModel Repository { get; set; } + public ILocalRepositoryModel LocalRepository { get; } + public IRemoteRepositoryModel Repository { get; set; } public string Title { get; set; } = "Save drafts of comments"; public Uri WebUrl { get; set; } public ReactiveCommand OpenOnGitHub { get; } + public ReactiveCommand ShowCommit { get; } - public Task InitializeAsync(ActorModel currentUser, PullRequestDetailModel model) => Task.CompletedTask; + + public Task InitializeAsync(IRemoteRepositoryModel repository, ILocalRepositoryModel localRepository, ActorModel currentUser, PullRequestDetailModel model) + { + throw new NotImplementedException(); + } } } diff --git a/src/GitHub.App/Services/GitClient.cs b/src/GitHub.App/Services/GitClient.cs index 6114d82169..0216d187bf 100644 --- a/src/GitHub.App/Services/GitClient.cs +++ b/src/GitHub.App/Services/GitClient.cs @@ -181,6 +181,11 @@ public Task Checkout(IRepository repository, string branchName) }); } + public async Task CommitExists(IRepository repository, string sha) + { + return await Task.Run(() => repository.Lookup(sha) != null).ConfigureAwait(false); + } + public Task CreateBranch(IRepository repository, string branchName) { Guard.ArgumentNotNull(repository, nameof(repository)); diff --git a/src/GitHub.App/Services/PullRequestService.cs b/src/GitHub.App/Services/PullRequestService.cs index 97aaf673ae..16adadadc4 100644 --- a/src/GitHub.App/Services/PullRequestService.cs +++ b/src/GitHub.App/Services/PullRequestService.cs @@ -567,6 +567,21 @@ public IObservable Checkout(ILocalRepositoryModel repository, PullRequestD }); } + public async Task FetchCommit(ILocalRepositoryModel localRepository, IRepositoryModel remoteRepository, string sha) + { + using (var repo = gitService.GetRepository(localRepository.LocalPath)) + { + if (!await gitClient.CommitExists(repo, sha).ConfigureAwait(false)) + { + var remote = await CreateRemote(repo, remoteRepository.CloneUrl).ConfigureAwait(false); + await gitClient.Fetch(repo, remote).ConfigureAwait(false); + return await gitClient.CommitExists(repo, sha).ConfigureAwait(false); + } + + return true; + } + } + public IObservable GetDefaultLocalBranchName(ILocalRepositoryModel repository, int pullRequestNumber, string pullRequestTitle) { return Observable.Defer(() => diff --git a/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs b/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs index 03ed07969b..b4009a12df 100644 --- a/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/CommitSummaryViewModel.cs @@ -1,20 +1,31 @@ -using System; -using GitHub.Models; -using GitHub.ViewModels; +using GitHub.Models; namespace GitHub.ViewModels.Documents { public class CommitSummaryViewModel : ViewModelBase { - public CommitSummaryViewModel(CommitModel model) + /// + /// Initializes a new instance of the class. + /// + /// The commit model. + public CommitSummaryViewModel(CommitModel commit) { - AbbreviatedOid = model.AbbreviatedOid; - Author = new ActorViewModel(model.Author); - Header = model.MessageHeadline; + AbbreviatedOid = commit.AbbreviatedOid; + Author = new ActorViewModel(commit.Author); + Header = commit.MessageHeadline; + Oid = commit.Oid; } - public string AbbreviatedOid { get; } - public IActorViewModel Author { get; } - public string Header { get; } + /// + public string AbbreviatedOid { get; private set; } + + /// + public IActorViewModel Author { get; private set; } + + /// + public string Header { get; private set; } + + /// + public string Oid { get; private set; } } } diff --git a/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs index 6a4c913711..8ed30e3ab9 100644 --- a/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs @@ -49,7 +49,21 @@ public async Task Load(IConnection connection, string owner, string name, int nu { var session = await sessionManager.GetSession(owner, name, number).ConfigureAwait(true); var vm = factory.CreateViewModel(); - await vm.InitializeAsync(session.User, session.PullRequest).ConfigureAwait(true); + + var repository = new RemoteRepositoryModel( + 0, + name, + session.LocalRepository.CloneUrl.WithOwner(session.PullRequest.HeadRepositoryOwner), + false, + false, + null, + null); + + await vm.InitializeAsync( + repository, + session.LocalRepository, + session.User, + session.PullRequest).ConfigureAwait(true); Content = vm; } catch (Exception ex) diff --git a/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs index 6353503cb3..96ad6782af 100644 --- a/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.Composition; +using System.Reactive; using System.Threading.Tasks; using GitHub.Extensions; using GitHub.Factories; @@ -19,7 +20,9 @@ namespace GitHub.ViewModels.Documents public class PullRequestPageViewModel : PullRequestViewModelBase, IPullRequestPageViewModel, ICommentThreadViewModel { readonly IViewViewModelFactory factory; + readonly IPullRequestService service; readonly IPullRequestSessionManager sessionManager; + readonly ITeamExplorerServices teServices; /// /// Initializes a new instance of the class. @@ -28,13 +31,21 @@ public class PullRequestPageViewModel : PullRequestViewModelBase, IPullRequestPa [ImportingConstructor] public PullRequestPageViewModel( IViewViewModelFactory factory, - IPullRequestSessionManager sessionManager) + IPullRequestService service, + IPullRequestSessionManager sessionManager, + ITeamExplorerServices teServices) { Guard.ArgumentNotNull(factory, nameof(factory)); + Guard.ArgumentNotNull(service, nameof(service)); Guard.ArgumentNotNull(sessionManager, nameof(sessionManager)); + Guard.ArgumentNotNull(teServices, nameof(teServices)); this.factory = factory; + this.service = service; this.sessionManager = sessionManager; + this.teServices = teServices; + + ShowCommit = ReactiveCommand.CreateFromTask(DoShowCommit); } /// @@ -43,15 +54,20 @@ public PullRequestPageViewModel( /// public IReadOnlyList Timeline { get; private set; } + /// + public ReactiveCommand ShowCommit { get; } + /// IReadOnlyReactiveList ICommentThreadViewModel.Comments => throw new NotImplementedException(); /// public async Task InitializeAsync( + IRemoteRepositoryModel repository, + ILocalRepositoryModel localRepository, ActorModel currentUser, PullRequestDetailModel model) { - await base.InitializeAsync(model).ConfigureAwait(true); + await base.InitializeAsync(repository, localRepository, model).ConfigureAwait(true); CurrentUser = new ActorViewModel(currentUser); @@ -72,9 +88,11 @@ public async Task InitializeAsync( commits.Add(new CommitSummaryViewModel(commit)); break; case CommentModel comment: - var vm = factory.CreateViewModel(); - await vm.InitializeAsync(this, currentUser, comment, CommentEditState.None).ConfigureAwait(true); - timeline.Add(vm); + { + var vm = factory.CreateViewModel(); + await vm.InitializeAsync(this, currentUser, comment, CommentEditState.None).ConfigureAwait(true); + timeline.Add(vm); + } break; } } @@ -101,5 +119,11 @@ Task ICommentThreadViewModel.PostComment(string body) { throw new NotImplementedException(); } + + async Task DoShowCommit(string oid) + { + await service.FetchCommit(LocalRepository, Repository, oid).ConfigureAwait(true); + teServices.ShowCommitDetails(oid); + } } } diff --git a/src/GitHub.App/ViewModels/IssueishViewModel.cs b/src/GitHub.App/ViewModels/IssueishViewModel.cs index 79d8ee177e..ff555f05e1 100644 --- a/src/GitHub.App/ViewModels/IssueishViewModel.cs +++ b/src/GitHub.App/ViewModels/IssueishViewModel.cs @@ -30,7 +30,7 @@ public IssueishViewModel() } /// - public IRepositoryModel Repository { get; private set; } + public IRemoteRepositoryModel Repository { get; private set; } /// public int Number { get; private set; } @@ -66,8 +66,11 @@ public Uri WebUrl /// public ReactiveCommand OpenOnGitHub { get; } - protected Task InitializeAsync(IssueishDetailModel model) + protected Task InitializeAsync( + IRemoteRepositoryModel repository, + IssueishDetailModel model) { + Repository = repository; Author = new ActorViewModel(model.Author); Body = model.Body; Number = model.Number; diff --git a/src/GitHub.App/ViewModels/PullRequestViewModelBase.cs b/src/GitHub.App/ViewModels/PullRequestViewModelBase.cs index e2b59738c4..775e359f23 100644 --- a/src/GitHub.App/ViewModels/PullRequestViewModelBase.cs +++ b/src/GitHub.App/ViewModels/PullRequestViewModelBase.cs @@ -26,6 +26,9 @@ public PullRequestViewModelBase() { } + /// + public ILocalRepositoryModel LocalRepository { get; private set; } + public PullRequestState State { get => state; @@ -44,11 +47,15 @@ public string TargetBranchDisplayName private set => this.RaiseAndSetIfChanged(ref targetBranchDisplayName, value); } - protected virtual async Task InitializeAsync(PullRequestDetailModel model) + protected virtual async Task InitializeAsync( + IRemoteRepositoryModel repository, + ILocalRepositoryModel localRepository, + PullRequestDetailModel model) { - await base.InitializeAsync(model).ConfigureAwait(true); + await base.InitializeAsync(repository, model).ConfigureAwait(true); var fork = model.BaseRepositoryOwner != model.HeadRepositoryOwner; + LocalRepository = localRepository; SourceBranchDisplayName = GetBranchDisplayName(fork, model.HeadRepositoryOwner, model.HeadRefName); TargetBranchDisplayName = GetBranchDisplayName(fork, model.BaseRepositoryOwner, model.BaseRefName); } diff --git a/src/GitHub.Exports.Reactive/Services/IGitClient.cs b/src/GitHub.Exports.Reactive/Services/IGitClient.cs index 81fbbafebe..8579ab683a 100644 --- a/src/GitHub.Exports.Reactive/Services/IGitClient.cs +++ b/src/GitHub.Exports.Reactive/Services/IGitClient.cs @@ -64,6 +64,14 @@ public interface IGitClient /// Task Checkout(IRepository repository, string branchName); + /// + /// Checks if a commit exists a the repository. + /// + /// The repository. + /// The SHA of the commit. + /// + Task CommitExists(IRepository repository, string sha); + /// /// Creates a new branch. /// diff --git a/src/GitHub.Exports.Reactive/Services/IPullRequestService.cs b/src/GitHub.Exports.Reactive/Services/IPullRequestService.cs index 8eba9d507b..72c9f80e20 100644 --- a/src/GitHub.Exports.Reactive/Services/IPullRequestService.cs +++ b/src/GitHub.Exports.Reactive/Services/IPullRequestService.cs @@ -69,6 +69,15 @@ IObservable CreatePullRequest(IModelService modelService, /// IObservable Checkout(ILocalRepositoryModel repository, PullRequestDetailModel pullRequest, string localBranchName); + /// + /// Checks if a commit is available and if not tries to fetch the commit. + /// + /// The local repository. + /// The remote repository. + /// The SHA of the commit. + /// True if the commit was found, otherwise false. + Task FetchCommit(ILocalRepositoryModel localRepository, IRepositoryModel remoteRepository, string sha); + /// /// Carries out a pull on the current branch. /// diff --git a/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs index 7e8008aec0..dcfa86c941 100644 --- a/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs +++ b/src/GitHub.Exports.Reactive/ViewModels/Documents/IPullRequestPageViewModel.cs @@ -1,6 +1,8 @@ using System.Collections.Generic; +using System.Reactive; using System.Threading.Tasks; using GitHub.Models; +using ReactiveUI; namespace GitHub.ViewModels.Documents { @@ -14,11 +16,22 @@ public interface IPullRequestPageViewModel : IPullRequestViewModelBase /// IReadOnlyList Timeline { get; } + /// + /// Gets a command that will open a commit in Team Explorer. + /// + ReactiveCommand ShowCommit { get; } + /// /// Initializes the view model with data. /// + /// The repository to which the pull request belongs. + /// The local repository. /// The currently logged in user. /// The pull request model. - Task InitializeAsync(ActorModel currentUser, PullRequestDetailModel model); + Task InitializeAsync( + IRemoteRepositoryModel repository, + ILocalRepositoryModel localRepository, + ActorModel currentUser, + PullRequestDetailModel model); } } \ No newline at end of file diff --git a/src/GitHub.Exports.Reactive/ViewModels/IIssueishViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/IIssueishViewModel.cs index 98156df6e2..36e0551d64 100644 --- a/src/GitHub.Exports.Reactive/ViewModels/IIssueishViewModel.cs +++ b/src/GitHub.Exports.Reactive/ViewModels/IIssueishViewModel.cs @@ -28,7 +28,7 @@ public interface IIssueishViewModel : IViewModel /// /// Gets the repository that the issue or pull request comes from. /// - IRepositoryModel Repository { get; } + IRemoteRepositoryModel Repository { get; } /// /// Gets the issue or pull request title. diff --git a/src/GitHub.Exports.Reactive/ViewModels/IPullRequestViewModelBase.cs b/src/GitHub.Exports.Reactive/ViewModels/IPullRequestViewModelBase.cs index 13b092a12e..9601322220 100644 --- a/src/GitHub.Exports.Reactive/ViewModels/IPullRequestViewModelBase.cs +++ b/src/GitHub.Exports.Reactive/ViewModels/IPullRequestViewModelBase.cs @@ -7,6 +7,11 @@ namespace GitHub.ViewModels /// public interface IPullRequestViewModelBase : IIssueishViewModel { + /// + /// Gets the local repository. + /// + ILocalRepositoryModel LocalRepository { get; } + /// /// Gets the pull request state. /// diff --git a/src/GitHub.Exports/Models/CommitModel.cs b/src/GitHub.Exports/Models/CommitModel.cs index 8a766d602f..370c38cb1f 100644 --- a/src/GitHub.Exports/Models/CommitModel.cs +++ b/src/GitHub.Exports/Models/CommitModel.cs @@ -13,13 +13,18 @@ public class CommitModel public ActorModel Author { get; set; } /// - /// Gets the abbreviated git object ID for the commit. + /// Gets or sets the abbreviated git object ID for the commit. /// public string AbbreviatedOid { get; set; } /// - /// Gets the commit headline. + /// Gets or sets the commit headline. /// public string MessageHeadline { get; set; } + + /// + /// Gets or sets the git object ID for the commit. + /// + public string Oid { get; set; } } } diff --git a/src/GitHub.Exports/Models/PullRequestDetailModel.cs b/src/GitHub.Exports/Models/PullRequestDetailModel.cs index 128ee7fde7..28cf560a0b 100644 --- a/src/GitHub.Exports/Models/PullRequestDetailModel.cs +++ b/src/GitHub.Exports/Models/PullRequestDetailModel.cs @@ -53,11 +53,6 @@ public class PullRequestDetailModel : IssueishDetailModel /// public IReadOnlyList CheckSuites { get; set; } - /// - /// Gets or sets a collection of pull request commits. - /// - public IReadOnlyList Commits { get; set; } - /// /// Gets or sets a collection of pull request Statuses /// diff --git a/src/GitHub.Exports/Services/ITeamExplorerServices.cs b/src/GitHub.Exports/Services/ITeamExplorerServices.cs index 45c204f36b..d463bb1dec 100644 --- a/src/GitHub.Exports/Services/ITeamExplorerServices.cs +++ b/src/GitHub.Exports/Services/ITeamExplorerServices.cs @@ -5,6 +5,7 @@ namespace GitHub.Services public interface ITeamExplorerServices : INotificationService { void ShowConnectPage(); + void ShowCommitDetails(string oid); void ShowHomePage(); void ShowPublishSection(); void ClearNotifications(); diff --git a/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs b/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs index 8bab8baf64..ed96d15f43 100644 --- a/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs +++ b/src/GitHub.InlineReviews/Services/PullRequestSessionService.cs @@ -317,11 +317,6 @@ public virtual async Task ReadPullRequestDetail(HostAddr DatabaseId = comment.DatabaseId.Value, Url = comment.Url, }).ToList(), - Commits = pr.Commits(null, null, null, null).AllPages().Select(commit => new CommitModel - { - AbbreviatedOid = commit.Commit.AbbreviatedOid, - MessageHeadline = commit.Commit.MessageHeadline, - }).ToList(), Reviews = pr.Reviews(null, null, null, null, null, null).AllPages().Select(review => new PullRequestReviewModel { Id = review.Id.Value, @@ -367,6 +362,7 @@ public virtual async Task ReadPullRequestDetail(HostAddr AvatarUrl = commit.Author.User.AvatarUrl(null), }, MessageHeadline = commit.MessageHeadline, + Oid = commit.Oid, }).IssueComment(comment => new CommentModel { Author = new ActorModel diff --git a/src/GitHub.TeamFoundation.14/Services/TeamExplorerServices.cs b/src/GitHub.TeamFoundation.14/Services/TeamExplorerServices.cs index b859e66084..cf459de020 100644 --- a/src/GitHub.TeamFoundation.14/Services/TeamExplorerServices.cs +++ b/src/GitHub.TeamFoundation.14/Services/TeamExplorerServices.cs @@ -44,6 +44,12 @@ public void ShowConnectPage() te.NavigateToPage(new Guid(TeamExplorerPageIds.Connect), null); } + public void ShowCommitDetails(string oid) + { + var te = serviceProvider.TryGetService(); + te.NavigateToPage(new Guid(TeamExplorerPageIds.GitCommitDetails), oid); + } + public void ShowHomePage() { var te = serviceProvider.TryGetService(); diff --git a/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml b/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml index 0bb9fc858f..b13733084e 100644 --- a/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml +++ b/src/GitHub.VisualStudio.UI/Views/Documents/PullRequestPageView.xaml @@ -84,7 +84,7 @@ - + @@ -104,7 +104,8 @@ FontFamily="Consolas" Margin="0,0,0,2" VerticalAlignment="Center"> - + From f97641282a274fadbf69aa0ae1b272d4b1746521 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 1 Nov 2018 09:27:58 +0100 Subject: [PATCH 07/64] Display PR title as pane caption. --- .../ViewModels/Documents/IssueishPaneViewModel.cs | 9 +++++++++ src/GitHub.Exports/ViewModels/IPaneViewModel.cs | 5 +++++ src/GitHub.VisualStudio/UI/AsyncPaneBase.cs | 14 ++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs index 8ed30e3ab9..f24283b9e5 100644 --- a/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/IssueishPaneViewModel.cs @@ -16,6 +16,7 @@ public class IssueishPaneViewModel : ViewModelBase, IIssueishPaneViewModel readonly IViewViewModelFactory factory; readonly IPullRequestSessionManager sessionManager; IViewModel content; + string paneCaption; [ImportingConstructor] public IssueishPaneViewModel( @@ -35,6 +36,12 @@ public IViewModel Content private set => this.RaiseAndSetIfChanged(ref content, value); } + public string PaneCaption + { + get => paneCaption; + private set => this.RaiseAndSetIfChanged(ref paneCaption, value); + } + public Task InitializeAsync(IServiceProvider paneServiceProvider) { return Task.CompletedTask; @@ -43,6 +50,7 @@ public Task InitializeAsync(IServiceProvider paneServiceProvider) public async Task Load(IConnection connection, string owner, string name, int number) { Content = new SpinnerViewModel(); + PaneCaption = "#" + number; // TODO: We will eventually support loading issues here as well. try @@ -65,6 +73,7 @@ await vm.InitializeAsync( session.User, session.PullRequest).ConfigureAwait(true); Content = vm; + PaneCaption += " " + vm.Title; } catch (Exception ex) { diff --git a/src/GitHub.Exports/ViewModels/IPaneViewModel.cs b/src/GitHub.Exports/ViewModels/IPaneViewModel.cs index 57944405f9..142ada1f77 100644 --- a/src/GitHub.Exports/ViewModels/IPaneViewModel.cs +++ b/src/GitHub.Exports/ViewModels/IPaneViewModel.cs @@ -8,6 +8,11 @@ namespace GitHub.ViewModels /// public interface IPaneViewModel : IViewModel { + /// + /// Gets the caption for the tool window. + /// + string PaneCaption { get; } + /// /// Initializes the view model. /// diff --git a/src/GitHub.VisualStudio/UI/AsyncPaneBase.cs b/src/GitHub.VisualStudio/UI/AsyncPaneBase.cs index d3eadf4405..5781483051 100644 --- a/src/GitHub.VisualStudio/UI/AsyncPaneBase.cs +++ b/src/GitHub.VisualStudio/UI/AsyncPaneBase.cs @@ -8,6 +8,7 @@ using GitHub.ViewModels; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Threading; +using ReactiveUI; namespace GitHub.VisualStudio.UI { @@ -15,6 +16,7 @@ public class AsyncPaneBase : ToolWindowPane where TViewModel : IPaneViewModel { readonly ContentPresenter contentPresenter; + IDisposable subscription; JoinableTask viewModelTask; public AsyncPaneBase() @@ -38,6 +40,17 @@ protected override void Initialize() public Task GetViewModelAsync() => viewModelTask.JoinAsync(); + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + { + subscription?.Dispose(); + subscription = null; + } + } + async Task InitializeAsync(AsyncPackage asyncPackage) { try @@ -55,6 +68,7 @@ async Task InitializeAsync(AsyncPackage asyncPackage) throw new CompositionException("Could not find view for " + typeof(TViewModel).FullName); } View.DataContext = viewModel; + subscription = viewModel.WhenAnyValue(x => x.PaneCaption).Subscribe(x => Caption = x); return viewModel; } catch (Exception e) From abeb1b8f125e6f46bd03cc04481c35a70aae543b Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 1 Nov 2018 18:41:34 +0100 Subject: [PATCH 08/64] Display an "Add comment" box at the bottom of a PR. --- .../SampleData/CommentViewModelDesigner.cs | 2 + src/GitHub.App/ViewModels/CommentViewModel.cs | 19 ++++ .../Documents/IIssueishCommentViewModel.cs | 45 ++++++++++ .../IssueishCommentThreadViewModel.cs | 86 ------------------- .../Documents/IssueishCommentViewModel.cs | 55 ++++++++++++ .../Documents/PullRequestPageViewModel.cs | 12 ++- .../PullRequestReviewCommentViewModel.cs | 25 +++--- .../ViewModels/ICommentViewModel.cs | 30 +++---- .../IPullRequestReviewCommentViewModel.cs | 9 -- src/GitHub.Resources/Resources.Designer.cs | 27 ++++++ src/GitHub.Resources/Resources.resx | 9 ++ .../Views/CommentView.xaml | 16 +++- .../ViewModels/CommentViewModelTests.cs | 75 ++++++++++++++++ 13 files changed, 280 insertions(+), 130 deletions(-) create mode 100644 src/GitHub.App/ViewModels/Documents/IIssueishCommentViewModel.cs delete mode 100644 src/GitHub.App/ViewModels/Documents/IssueishCommentThreadViewModel.cs create mode 100644 src/GitHub.App/ViewModels/Documents/IssueishCommentViewModel.cs create mode 100644 test/GitHub.App.UnitTests/ViewModels/CommentViewModelTests.cs diff --git a/src/GitHub.App/SampleData/CommentViewModelDesigner.cs b/src/GitHub.App/SampleData/CommentViewModelDesigner.cs index 1fcec6720d..b060088de9 100644 --- a/src/GitHub.App/SampleData/CommentViewModelDesigner.cs +++ b/src/GitHub.App/SampleData/CommentViewModelDesigner.cs @@ -24,7 +24,9 @@ public CommentViewModelDesigner() public CommentEditState EditState { get; set; } public bool IsReadOnly { get; set; } public bool IsSubmitting { get; set; } + public bool CanCancel { get; } = true; public bool CanDelete { get; } = true; + public string CommitCaption { get; set; } = "Comment"; public ICommentThreadViewModel Thread { get; } public DateTimeOffset CreatedAt => DateTime.Now.Subtract(TimeSpan.FromDays(3)); public IActorViewModel Author { get; set; } diff --git a/src/GitHub.App/ViewModels/CommentViewModel.cs b/src/GitHub.App/ViewModels/CommentViewModel.cs index 1e10cc71a9..5bb120c39b 100644 --- a/src/GitHub.App/ViewModels/CommentViewModel.cs +++ b/src/GitHub.App/ViewModels/CommentViewModel.cs @@ -22,7 +22,9 @@ public class CommentViewModel : ReactiveObject, ICommentViewModel { static readonly ILogger log = LogManager.ForContext(); readonly ICommentService commentService; + readonly ObservableAsPropertyHelper canCancel; readonly ObservableAsPropertyHelper canDelete; + ObservableAsPropertyHelper commitCaption; string id; IActorViewModel author; IActorViewModel currentUser; @@ -74,6 +76,9 @@ public CommentViewModel(ICommentService commentService) (ro, body) => !ro && !string.IsNullOrWhiteSpace(body))); AddErrorHandler(CommitEdit); + canCancel = this.WhenAnyValue(x => x.Id) + .Select(id => id != null) + .ToProperty(this, x => x.CanCancel); CancelEdit = ReactiveCommand.Create(DoCancelEdit, CommitEdit.IsExecuting.Select(x => !x)); AddErrorHandler(CancelEdit); @@ -144,6 +149,9 @@ public bool IsSubmitting protected set => this.RaiseAndSetIfChanged(ref isSubmitting, value); } + /// + public bool CanCancel => canCancel.Value; + /// public bool CanDelete => canDelete.Value; @@ -154,6 +162,9 @@ public DateTimeOffset CreatedAt private set => this.RaiseAndSetIfChanged(ref createdAt, value); } + /// + public string CommitCaption => commitCaption.Value; + /// public ICommentThreadViewModel Thread { @@ -200,6 +211,8 @@ public Task InitializeAsync( CreatedAt = comment?.CreatedAt ?? DateTimeOffset.MinValue; WebUrl = comment?.Url != null ? new Uri(comment.Url) : null; + commitCaption = GetCommitCaptionObservable().ToProperty(this, x => x.CommitCaption); + return Task.CompletedTask; } @@ -208,6 +221,12 @@ protected void AddErrorHandler(ReactiveCommand command) command.ThrownExceptions.Subscribe(x => ErrorMessage = x.Message); } + protected virtual IObservable GetCommitCaptionObservable() + { + return this.WhenAnyValue(x => x.Id) + .Select(x => x == null ? Resources.Comment : Resources.UpdateComment); + } + async Task DoDelete() { if (commentService.ConfirmCommentDelete()) diff --git a/src/GitHub.App/ViewModels/Documents/IIssueishCommentViewModel.cs b/src/GitHub.App/ViewModels/Documents/IIssueishCommentViewModel.cs new file mode 100644 index 0000000000..b3c74b2dd3 --- /dev/null +++ b/src/GitHub.App/ViewModels/Documents/IIssueishCommentViewModel.cs @@ -0,0 +1,45 @@ +using System.Reactive; +using System.Threading.Tasks; +using GitHub.Models; +using ReactiveUI; + +namespace GitHub.ViewModels.Documents +{ + /// + /// View model for comments on an issue or pull request. + /// + public interface IIssueishCommentViewModel : ICommentViewModel + { + /// + /// Gets a value indicating whether the comment will show a + /// a button for . + /// + bool CanCloseIssueish { get; } + + /// + /// Gets a a caption for the command. + /// + string CloseIssueishCaption { get; } + + /// + /// Gets a command which when executed will close the issue or pull request. + /// + ReactiveCommand CloseIssueish { get; } + + /// + /// Initializes the view model with data. + /// + /// The thread that the comment is a part of. + /// The current user. + /// The comment model. May be null. + /// + /// The caption for the command, or null if the user cannot + /// close the issue/pr from this comment. + /// + Task InitializeAsync( + ICommentThreadViewModel thread, + ActorModel currentUser, + CommentModel comment, + string closeCaption); + } +} \ No newline at end of file diff --git a/src/GitHub.App/ViewModels/Documents/IssueishCommentThreadViewModel.cs b/src/GitHub.App/ViewModels/Documents/IssueishCommentThreadViewModel.cs deleted file mode 100644 index a2d2e583dd..0000000000 --- a/src/GitHub.App/ViewModels/Documents/IssueishCommentThreadViewModel.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.ComponentModel.Composition; -using System.Threading.Tasks; -using GitHub.Extensions; -using GitHub.Factories; -using GitHub.Models; - -namespace GitHub.ViewModels.Documents -{ - /// - /// A thread of issue or pull request comments. - /// - [Export(typeof(IIssueishCommentThreadViewModel))] - [PartCreationPolicy(CreationPolicy.NonShared)] - public class IssueishCommentThreadViewModel : CommentThreadViewModel, IIssueishCommentThreadViewModel - { - readonly IViewViewModelFactory factory; - - /// - /// Initializes a new instance of the class. - /// - /// The view model factory. - [ImportingConstructor] - public IssueishCommentThreadViewModel(IViewViewModelFactory factory) - { - Guard.ArgumentNotNull(factory, nameof(factory)); - this.factory = factory; - } - - /// - public async Task InitializeAsync( - ActorModel currentUser, - IssueishDetailModel model, - bool addPlaceholder) - { - Guard.ArgumentNotNull(model, nameof(model)); - - await base.InitializeAsync(currentUser).ConfigureAwait(false); - - foreach (var comment in model.Comments) - { - var vm = factory.CreateViewModel(); - await vm.InitializeAsync( - this, - currentUser, - comment, - CommentEditState.None).ConfigureAwait(true); - Comments.Add(vm); - } - - if (addPlaceholder) - { - var vm = factory.CreateViewModel(); - await vm.InitializeAsync( - this, - currentUser, - null, - CommentEditState.Placeholder).ConfigureAwait(true); - Comments.Add(vm); - } - } - - /// - public override Task PostComment(string body) - { - Guard.ArgumentNotNull(body, nameof(body)); - - throw new NotImplementedException(); - } - - /// - public override Task EditComment(string id, string body) - { - Guard.ArgumentNotNull(id, nameof(id)); - Guard.ArgumentNotNull(body, nameof(body)); - - throw new NotImplementedException(); - } - - /// - public override Task DeleteComment(int pullRequestId, int commentId) - { - throw new NotImplementedException(); - } - } -} diff --git a/src/GitHub.App/ViewModels/Documents/IssueishCommentViewModel.cs b/src/GitHub.App/ViewModels/Documents/IssueishCommentViewModel.cs new file mode 100644 index 0000000000..0d9f541033 --- /dev/null +++ b/src/GitHub.App/ViewModels/Documents/IssueishCommentViewModel.cs @@ -0,0 +1,55 @@ +using System; +using System.ComponentModel.Composition; +using System.Reactive; +using System.Threading.Tasks; +using GitHub.Models; +using GitHub.Services; +using ReactiveUI; + +namespace GitHub.ViewModels.Documents +{ + /// + /// View model for comments on an issue or pull request. + /// + [Export(typeof(IIssueishCommentViewModel))] + [PartCreationPolicy(CreationPolicy.NonShared)] + public class IssueishCommentViewModel : CommentViewModel, IIssueishCommentViewModel + { + /// + /// Initializes a new instance of the class. + /// + /// The comment service. + [ImportingConstructor] + public IssueishCommentViewModel(ICommentService commentService) + : base(commentService) + { + } + + /// + public bool CanCloseIssueish { get; private set; } + + /// + public string CloseIssueishCaption { get; private set; } + + /// + public ReactiveCommand CloseIssueish { get; } + + /// + public async Task InitializeAsync( + ICommentThreadViewModel thread, + ActorModel currentUser, + CommentModel comment, + string closeCaption) + { + await base.InitializeAsync( + thread, + currentUser, + comment, + comment == null ? CommentEditState.Editing : CommentEditState.None) + .ConfigureAwait(true); + + CanCloseIssueish = closeCaption != null; + CloseIssueishCaption = closeCaption; + } + } +} diff --git a/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs index 96ad6782af..dd5249fe76 100644 --- a/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs +++ b/src/GitHub.App/ViewModels/Documents/PullRequestPageViewModel.cs @@ -89,8 +89,8 @@ public async Task InitializeAsync( break; case CommentModel comment: { - var vm = factory.CreateViewModel(); - await vm.InitializeAsync(this, currentUser, comment, CommentEditState.None).ConfigureAwait(true); + var vm = factory.CreateViewModel(); + await vm.InitializeAsync(this, currentUser, comment, null).ConfigureAwait(true); timeline.Add(vm); } break; @@ -102,6 +102,14 @@ public async Task InitializeAsync( timeline.Add(new CommitSummariesViewModel(commits)); } + var placeholder = factory.CreateViewModel(); + await placeholder.InitializeAsync( + this, + currentUser, + null, + Resources.ClosePullRequest).ConfigureAwait(true); + timeline.Add(placeholder); + Timeline = timeline; } diff --git a/src/GitHub.App/ViewModels/PullRequestReviewCommentViewModel.cs b/src/GitHub.App/ViewModels/PullRequestReviewCommentViewModel.cs index 8a90eaaae3..6fcb195346 100644 --- a/src/GitHub.App/ViewModels/PullRequestReviewCommentViewModel.cs +++ b/src/GitHub.App/ViewModels/PullRequestReviewCommentViewModel.cs @@ -19,7 +19,6 @@ namespace GitHub.ViewModels public class PullRequestReviewCommentViewModel : CommentViewModel, IPullRequestReviewCommentViewModel { readonly ObservableAsPropertyHelper canStartReview; - readonly ObservableAsPropertyHelper commitCaption; IPullRequestSession session; bool isPending; @@ -31,19 +30,12 @@ public class PullRequestReviewCommentViewModel : CommentViewModel, IPullRequestR public PullRequestReviewCommentViewModel(ICommentService commentService) : base(commentService) { - var pendingAndIsNew = this.WhenAnyValue( + canStartReview = this.WhenAnyValue( x => x.IsPending, x => x.Id, - (isPending, id) => (isPending, isNewComment: id == null)); - - canStartReview = pendingAndIsNew - .Select(arg => !arg.isPending && arg.isNewComment) + (isPending, id) => !isPending && id == null) .ToProperty(this, x => x.CanStartReview); - commitCaption = pendingAndIsNew - .Select(arg => !arg.isNewComment ? Resources.UpdateComment : arg.isPending ? Resources.AddReviewComment : Resources.AddSingleComment) - .ToProperty(this, x => x.CommitCaption); - StartReview = ReactiveCommand.CreateFromTask(DoStartReview, CommitEdit.CanExecute); AddErrorHandler(StartReview); } @@ -82,9 +74,6 @@ await InitializeAsync( /// public bool CanStartReview => canStartReview.Value; - /// - public string CommitCaption => commitCaption.Value; - /// public bool IsPending { @@ -95,6 +84,16 @@ public bool IsPending /// public ReactiveCommand StartReview { get; } + protected override IObservable GetCommitCaptionObservable() + { + return this.WhenAnyValue( + x => x.IsPending, + x => x.Id, + (pending, id) => id != null ? + Resources.UpdateComment : + pending ? Resources.AddReviewComment : Resources.AddSingleComment); + } + async Task DoStartReview() { IsSubmitting = true; diff --git a/src/GitHub.Exports.Reactive/ViewModels/ICommentViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/ICommentViewModel.cs index b81a10c10f..ce35d8a3ff 100644 --- a/src/GitHub.Exports.Reactive/ViewModels/ICommentViewModel.cs +++ b/src/GitHub.Exports.Reactive/ViewModels/ICommentViewModel.cs @@ -1,7 +1,5 @@ using System; using System.Reactive; -using System.Threading.Tasks; -using GitHub.Models; using ReactiveUI; namespace GitHub.ViewModels @@ -65,7 +63,12 @@ public interface ICommentViewModel : IViewModel bool IsSubmitting { get; } /// - /// Gets a value indicating whether the comment can be edited or deleted by the current user + /// Gets a value indicating whether the comment edit state can be canceled. + /// + bool CanCancel { get; } + + /// + /// Gets a value indicating whether the comment can be edited or deleted by the current user. /// bool CanDelete { get; } @@ -74,6 +77,14 @@ public interface ICommentViewModel : IViewModel /// DateTimeOffset CreatedAt { get; } + /// + /// Gets the caption for the "Commit" button. + /// + /// + /// This will be "Comment" when editing a new comment and "Update" when editing an existing comment. + /// + string CommitCaption { get; } + /// /// Gets the thread that the comment is a part of. /// @@ -108,18 +119,5 @@ public interface ICommentViewModel : IViewModel /// Deletes a comment. /// ReactiveCommand Delete { get; } - - /// - /// Initializes the view model with data. - /// - /// The thread that the comment is a part of. - /// The current user. - /// The comment model. May be null. - /// The comment edit state. - Task InitializeAsync( - ICommentThreadViewModel thread, - ActorModel currentUser, - CommentModel comment, - CommentEditState state); } } \ No newline at end of file diff --git a/src/GitHub.Exports.Reactive/ViewModels/IPullRequestReviewCommentViewModel.cs b/src/GitHub.Exports.Reactive/ViewModels/IPullRequestReviewCommentViewModel.cs index 175c09f3f0..0d9e1ddce5 100644 --- a/src/GitHub.Exports.Reactive/ViewModels/IPullRequestReviewCommentViewModel.cs +++ b/src/GitHub.Exports.Reactive/ViewModels/IPullRequestReviewCommentViewModel.cs @@ -16,15 +16,6 @@ public interface IPullRequestReviewCommentViewModel : ICommentViewModel /// bool CanStartReview { get; } - /// - /// Gets the caption for the "Commit" button. - /// - /// - /// This will be "Add a single comment" when not in review mode and "Add review comment" - /// when in review mode. - /// - string CommitCaption { get; } - /// /// Gets a value indicating whether this comment is part of a pending pull request review. /// diff --git a/src/GitHub.Resources/Resources.Designer.cs b/src/GitHub.Resources/Resources.Designer.cs index e1841c8615..acbe80752e 100644 --- a/src/GitHub.Resources/Resources.Designer.cs +++ b/src/GitHub.Resources/Resources.Designer.cs @@ -303,6 +303,33 @@ public static string CloneTitle { } } + /// + /// Looks up a localized string similar to Close issue. + /// + public static string CloseIssue { + get { + return ResourceManager.GetString("CloseIssue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close pull request. + /// + public static string ClosePullRequest { + get { + return ResourceManager.GetString("ClosePullRequest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Comment. + /// + public static string Comment { + get { + return ResourceManager.GetString("Comment", resourceCulture); + } + } + /// /// Looks up a localized string similar to Commented. /// diff --git a/src/GitHub.Resources/Resources.resx b/src/GitHub.Resources/Resources.resx index 0566b17754..6ab1a4cb2e 100644 --- a/src/GitHub.Resources/Resources.resx +++ b/src/GitHub.Resources/Resources.resx @@ -839,4 +839,13 @@ https://git-scm.com/download/win Open Conversation + + Comment + + + Close pull request + + + Close issue + \ No newline at end of file diff --git a/src/GitHub.VisualStudio.UI/Views/CommentView.xaml b/src/GitHub.VisualStudio.UI/Views/CommentView.xaml index be9a8ea1a4..61bf848fd0 100644 --- a/src/GitHub.VisualStudio.UI/Views/CommentView.xaml +++ b/src/GitHub.VisualStudio.UI/Views/CommentView.xaml @@ -11,7 +11,7 @@ xmlns:views="clr-namespace:GitHub.VisualStudio.Views" mc:Ignorable="d" d:DesignWidth="300"> - + You can use a `CompositeDisposable` type here, it's designed to handle disposables in an optimal way (you can just call `Dispose()` on it and it will handle disposing everything it holds). @@ -213,12 +213,20 @@ -