Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added bugfix actions. #75

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions GitFlow.VS.Extension/GitFlow.VS.Extension.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="GitFlowActionSection.cs" />
<Compile Include="GitFlowBugfixesSection.cs" />
<Compile Include="GitFlowReleasesSection.cs" />
<Compile Include="GitFlowFeaturesSection.cs" />
<Compile Include="GitFlowInitSection.cs" />
Expand All @@ -215,6 +216,9 @@
<Compile Include="IGitFlowSection.cs" />
<Compile Include="Logger.cs" />
<Compile Include="UI\Commands.cs" />
<Compile Include="UI\BugfixesUI.xaml.cs">
<DependentUpon>BugfixesUI.xaml</DependentUpon>
</Compile>
<Compile Include="UI\ReleasesUI.xaml.cs">
<DependentUpon>ReleasesUI.xaml</DependentUpon>
</Compile>
Expand All @@ -231,6 +235,7 @@
<DependentUpon>InstallGitFlowUI.xaml</DependentUpon>
</Compile>
<Compile Include="ViewModels\ActionViewModel.cs" />
<Compile Include="ViewModels\BugfixesViewModel.cs" />
<Compile Include="ViewModels\ReleasesViewModel.cs" />
<Compile Include="ViewModels\FeaturesViewModel.cs" />
<Compile Include="ViewModels\GitFlowPageModel.cs" />
Expand Down Expand Up @@ -491,6 +496,10 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Page Include="UI\BugfixesUI.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\ReleasesUI.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
Expand Down
56 changes: 56 additions & 0 deletions GitFlow.VS.Extension/GitFlowBugfixesSection.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
using GitFlowVS.Extension.UI;
using GitFlowVS.Extension.ViewModels;
using Microsoft.TeamFoundation.Controls;
using TeamExplorer.Common;

namespace GitFlowVS.Extension
{
[TeamExplorerSection(GuidList.GitFlowBugfixesSection, GuidList.GitFlowPage, 115)]
public class GitFlowBugfixesSection : TeamExplorerBaseSection, IGitFlowSection
{
private readonly BugfixesViewModel model;

public GitFlowBugfixesSection()
{
Title = "Current Bugfixes";
IsVisible = false;
model = new BugfixesViewModel(this);
UpdateVisibleState();
}

public override void Refresh()
{
var service = GetService<ITeamExplorerPage>();
service.Refresh();
}

public void UpdateVisibleState()
{
if (!GitFlowPage.GitFlowIsInstalled)
{
IsVisible = false;
return;
}

var gf = new VsGitFlowWrapper(GitFlowPage.ActiveRepo.RepositoryPath, GitFlowPage.OutputWindow);
if (gf.IsInitialized)
{
if (!IsVisible)
{
SectionContent = new BugfixesUI(model);
IsVisible = true;
}
model.Update();
}
else
{
IsVisible = false;
}
}

public void ShowErrorNotification(string message)
{
ShowNotification(message, NotificationType.Error);
}
}
}
12 changes: 6 additions & 6 deletions GitFlow.VS.Extension/GitFlowInstallSection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ public GitFlowInstallSection()
}
}

private void HandleException(Exception ex)
{
Logger.Exception(ex);
ShowNotification(ex.Message, NotificationType.Error);
}
private void HandleException(Exception ex)
{
Logger.Exception(ex);
ShowNotification(ex.Message, NotificationType.Error);
}

public override void Refresh()
public override void Refresh()
{
var service = GetService<ITeamExplorerPage>();
service.Refresh();
Expand Down
7 changes: 4 additions & 3 deletions GitFlow.VS.Extension/Guids.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace GitFlowVS.Extension
{
static class GuidList
internal static class GuidList
{
public const string GuidGitFlowVsExtensionPkgString = "19ffe08d-8c71-4125-a024-6296bd27fce8";
public const string GuidGitFlowVsExtensionCmdSetString = "9be3ffde-c8d0-4d89-824b-f310e4d05ca1";
Expand All @@ -11,9 +11,10 @@ static class GuidList

public const string GitFlowPage = "1F9974CD-16C3-4AEF-AED2-0CE37988E2F1";
public const string GitFlowActionSection = "F63C9A55-E0A2-4E7C-A78B-C37512EAEE5D";
public const string GitFlowBugfixesSection = "6E1F4634-C123-4EA1-9FB7-0F56FAC88095";
public const string GitFlowFeaturesSection = "FED30B30-AEB3-4CCA-963B-1D044A9B90E5";
public const string GitFlowInitSection = "12760882-D1DE-46FF-8965-045017C7472D";
public const string GitFlowInstallSection = "9D57DC9D-5B59-4B0B-B581-809E6C973D57";
public const string GitFlowReleasesSection = "C75DDD57-0FD1-425D-A06F-B18F24968EA2";
};
public const string GitFlowReleasesSection = "C75DDD57-0FD1-425D-A06F-B18F24968EA2";
};
}
82 changes: 82 additions & 0 deletions GitFlow.VS.Extension/UI/BugfixesUI.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<UserControl x:Class="GitFlowVS.Extension.UI.BugfixesUI"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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"
mc:Ignorable="d"
xmlns:clr="clr-namespace:GitFlowVS.Extension.UI"
d:DesignHeight="300" d:DesignWidth="300">

<UserControl.Resources>
<ResourceDictionary Source="/GitFlowVS.Extension;component/Resources/Dictionary.xaml" />
</UserControl.Resources>

<Grid Background="{StaticResource ItemBrushKey}">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>

<TextBlock FontStyle="Italic" Visibility="{Binding NoItemsMessageVisibility}">No bugfixes available</TextBlock>
<DataGrid Grid.Row="1" Name="BugfixesGrid" Margin="6,6,6,6" Padding="0,5,0,0" ItemsSource="{Binding AllBugfixes}" AutoGenerateColumns="False" GridLinesVisibility="None" HeadersVisibility="None" BorderThickness="0" SelectedItem="{Binding SelectedBugfix}" CanUserAddRows="False" Background="{StaticResource ItemBrushKey}" clr:Commands.DataGridDoubleClickCommand="{Binding CheckoutBugfixBranchCommand}">
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsCurrentBranch}" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
<Trigger Property="UIElement.IsMouseOver" Value="true">
<Setter Property="Control.Foreground" Value="{StaticResource ItemHoverTextBrushKey}"/>
<Setter Property="Control.Background" Value="{StaticResource ItemHoverBrushKey}"/>
</Trigger>
</Style.Triggers>
<Setter Property="ToolTip">
<Setter.Value>
<TextBlock Text="{Binding ToolTip}" />
</Setter.Value>
</Setter>
<Setter Property="Background" Value="{StaticResource ItemBrushKey}"></Setter>
<Setter Property="Foreground" Value="{StaticResource ItemTextBrushKey}"></Setter>
<Setter Property="Margin" Value="0,0,0,5"></Setter>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTemplateColumn Header="" IsReadOnly="True" Width="30">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="/GitFlowVS.Extension;component/Resources/upstreambranch.png" Width="21px" Height="14px" ToolTip="Remote branch. Select Track to create a local branch that tracks this remote branch" Visibility="{Binding IsRemoteBranchVisibility}"></Image>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Name" IsReadOnly="True" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{Binding Name}" />
<Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" Margin="10,0,10,0" />
<TextBlock Text="{Binding Author}"></TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

<DataGridTemplateColumn Header="Changed" IsReadOnly="True" Width="80">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding LastCommitAsString}" HorizontalAlignment="Right" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Command="{Binding Path=PublishBugfixBranchCommand}" Header="Publish" ></MenuItem>
<MenuItem Command="{Binding Path=TrackBugfixBranchCommand}" Header="Track" ></MenuItem>
<MenuItem Command="{Binding Path=CheckoutBugfixBranchCommand}" Header="Checkout" />
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
<ProgressBar Grid.Row="2" Margin="0,10,0,0" Visibility="{Binding Path=ProgressVisibility}" Height="15" Minimum="0" Maximum="100" IsIndeterminate="True" />
</Grid>
</UserControl>
25 changes: 25 additions & 0 deletions GitFlow.VS.Extension/UI/BugfixesUI.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using GitFlowVS.Extension.ViewModels;

namespace GitFlowVS.Extension.UI
{
/// <summary>
/// Interaction logic for BugfixesUI.xaml
/// </summary>
public partial class BugfixesUI : UserControl
{
public BugfixesUI(BugfixesViewModel model)
{
InitializeComponent();
DataContext = model;
}

private void BugfixesGrid_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var model = (BugfixesViewModel)DataContext;
model.CheckoutBugfixBranch();
}
}
}
70 changes: 65 additions & 5 deletions GitFlow.VS.Extension/UI/GitFlowActionsUI.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,16 @@
<Separator Style="{StaticResource VerticalSeparator}" Visibility="{Binding Path=StartReleaseVisible}" Margin="4,0,-1,0"/>
<teamExplorer:DropDownLink Text="Start Hotfix" DropDownMenuCommand="{Binding Path=StartHotfixDropDownCommand}" Visibility="{Binding Path=StartHotfixVisible}"/>
<Separator Style="{StaticResource VerticalSeparator}" Visibility="{Binding Path=StartHotfixVisible}" Margin="4,0,-1,0"/>
<teamExplorer:DropDownLink Text="Start Bugfix" DropDownMenuCommand="{Binding Path=StartBugfixDropDownCommand}" Visibility="{Binding Path=StartBugfixVisible}" />
<Separator Style="{StaticResource VerticalSeparator}" Visibility="{Binding Path=StartBugfixVisible}" Margin="4,0,-1,0"/>
<teamExplorer:DropDownLink Text="Finish Feature" DropDownMenuCommand="{Binding Path=FinishFeatureDropDownCommand}" Visibility="{Binding Path=FinishFeatureVisible}" />
<Separator Style="{StaticResource VerticalSeparator}" Visibility="{Binding Path=FinishFeatureVisible}" Margin="4,0,-1,0"/>
<teamExplorer:DropDownLink Text="Finish Release" DropDownMenuCommand="{Binding Path=FinishReleaseDropDownCommand}" Visibility="{Binding Path=FinishReleaseVisible}" />
<Separator Style="{StaticResource VerticalSeparator}" Visibility="{Binding Path=FinishReleaseVisible}" Margin="4,0,-1,0"/>
<teamExplorer:DropDownLink Text="Finish Hotfix" DropDownMenuCommand="{Binding Path=FinishHotfixDropDownCommand}" Visibility="{Binding Path=FinishHotfixVisible}" />
<Separator Style="{StaticResource VerticalSeparator}" Visibility="{Binding Path=FinishHotfixVisible}" Margin="4,0,-1,0"/>
<teamExplorer:DropDownLink Text="Finish Bugfix" DropDownMenuCommand="{Binding Path=FinishBugfixDropDownCommand}" Visibility="{Binding Path=FinishBugfixVisible}" />
<Separator Style="{StaticResource VerticalSeparator}" Visibility="{Binding Path=FinishBugfixVisible}" Margin="4,0,-1,0"/>
<teamExplorer:DropDownLink Name="OtherActions" Text="Other" >
<teamExplorer:DropDownLink.DropDownMenu>
<ContextMenu>
Expand All @@ -46,6 +50,9 @@
<Separator/>
<MenuItem Header="Start Hotfix" Command="{Binding Path=StartHotfixDropDownCommand}" Visibility="{Binding Path=OtherStartHotfixVisible}"></MenuItem>
<MenuItem Header="Finish Hotfix" Command="{Binding Path=FinishHotfixDropDownCommand}" Visibility="{Binding Path=OtherFinishHotfixVisible}"></MenuItem>
<Separator/>
<MenuItem Header="Start Bugfix" Command="{Binding Path=StartBugfixDropDownCommand}" Visibility="{Binding Path=OtherStartBugfixVisible}"></MenuItem>
<MenuItem Header="Finish Bugfix" Command="{Binding Path=FinishBugfixDropDownCommand}" Visibility="{Binding Path=OtherFinishBugfixVisible}"></MenuItem>
</ContextMenu>
</teamExplorer:DropDownLink.DropDownMenu>
</teamExplorer:DropDownLink>
Expand Down Expand Up @@ -123,7 +130,31 @@
</WrapPanel>
</Grid >
</Border>
<Border Grid.Row="4" Visibility="{Binding ShowFinishFeature}" Style="{StaticResource EmbeddedDialog}">
<Border Grid.Row="4" Visibility="{Binding ShowStartBugfix}" Style="{StaticResource EmbeddedDialog}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<wpf:LabeledTextBox Grid.Row="0" Margin="-2,0,0,6"
HintText="Enter a bugfix name &lt;Required&gt;" NameAndAutomationId="Bugfix name"
Localization.Attributes="HintText (Modifiable Readable Text) NameAndAutomationId (Modifiable Readable Text)"
IsRequired="true" AcceptsReturn="false" Text="{Binding Path=BugfixName, Mode=TwoWay}">
<wpf:LabeledTextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding StartBugfixCommand}"/>
</wpf:LabeledTextBox.InputBindings>
</wpf:LabeledTextBox>
<WrapPanel x:Uid="bugfixActionsPanel" Grid.Row="1" Margin="0,0,0,0">
<Button x:Uid="createReleaseButton" VerticalAlignment="Center" Margin="0" Padding="6,2,6,2" MinWidth="75"
MinHeight="23" Command="{Binding Path=StartBugfixCommand}">Create _Bugfix</Button>

<teamExplorer:TextLink x:Uid="cancelCreateBugfixLink" VerticalAlignment="Center" Margin="6,0,0,0" Text="Cancel"
Localization.Attributes="Text (Modifiable Readable Text)"
Command="{Binding Path=CancelStartBugfixCommand}"/>
</WrapPanel>
</Grid>
</Border>
<Border Grid.Row="5" Visibility="{Binding ShowFinishFeature}" Style="{StaticResource EmbeddedDialog}">
<Grid >
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
Expand Down Expand Up @@ -151,8 +182,8 @@
Command="{Binding Path=CancelFinishFeatureCommand}"/>
</StackPanel>
</Grid>
</Border>
<Border Grid.Row="5" Visibility="{Binding ShowFinishRelease}" Style="{StaticResource EmbeddedDialog}">
</Border>
<Border Grid.Row="6" Visibility="{Binding ShowFinishRelease}" Style="{StaticResource EmbeddedDialog}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
Expand Down Expand Up @@ -185,7 +216,7 @@
</StackPanel>
</Grid>
</Border>
<Border Grid.Row="6" Visibility="{Binding ShowFinishHotfix}" Style="{StaticResource EmbeddedDialog}">
<Border Grid.Row="7" Visibility="{Binding ShowFinishHotfix}" Style="{StaticResource EmbeddedDialog}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
Expand Down Expand Up @@ -216,6 +247,35 @@
</StackPanel>
</Grid>
</Border>
<ProgressBar Grid.Row="7" Margin="0,10,0,0" Visibility="{Binding Path=ProgressVisibility}" Height="15" Minimum="0" Maximum="100" IsIndeterminate="True" />
<Border Grid.Row="8" Visibility="{Binding ShowFinishBugfix}" Style="{StaticResource EmbeddedDialog}">
<Grid >
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<ComboBox Grid.Row="0" Margin="-2,0,0,6" VerticalAlignment="Center"
IsEditable="false" IsReadOnly="true" DisplayMemberPath="Name"
ItemsSource="{Binding Path=AllBugfixes, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding Path=SelectedBugfix, Mode=TwoWay}"/>
<CheckBox Grid.Row="1" IsChecked="{Binding BugfixRebaseOnDevelopmentBranch}">Rebase on development branch</CheckBox>
<CheckBox Grid.Row="2" IsChecked="{Binding BugfixDeleteLocalBranch}">Delete local branch</CheckBox>
<CheckBox Grid.Row="3" IsChecked="{Binding BugfixDeleteRemoteBranch}">Delete remote branch</CheckBox>
<CheckBox Grid.Row="4" IsChecked="{Binding Squash}">Squash bugfix during merge</CheckBox>
<CheckBox Grid.Row="5" IsChecked="{Binding NoFastForward}">Never fast-forward during the merge</CheckBox>
<StackPanel Grid.Row="6" Grid.ColumnSpan="2" Orientation="Horizontal" Margin="0,10,0,0" >
<Button Command="{Binding FinishBugfixCommand}">OK</Button>
<teamExplorer:TextLink x:Uid="cancelBugfixFeature" VerticalAlignment="Center" Margin="6,0,0,0" Text="Cancel"
Localization.Attributes="Text (Modifiable Readable Text)"
Command="{Binding Path=CancelFinishBugfixCommand}"/>
</StackPanel>
</Grid>
</Border>
<ProgressBar Grid.Row="9" Margin="0,10,0,0" Visibility="{Binding Path=ProgressVisibility}" Height="15" Minimum="0" Maximum="100" IsIndeterminate="True" />
</Grid>
</UserControl>
Loading