Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Improved status grid context menu.

  • Loading branch information...
commit 7926540a6a758cd9d6dc29519a9bbcad744cc169 1 parent bf2afd4
@kaisellgren authored
View
1  .gitignore
@@ -3,6 +3,7 @@
*.pdb
*.psess
*.vsp
+*.pfx
#OS junk files
[Tt]humbs.db
View
1  App.xaml
@@ -17,7 +17,6 @@
<ResourceDictionary Source="Styles/Panel.xaml"/>
<ResourceDictionary Source="Styles/GridSplitter.xaml"/>
<ResourceDictionary Source="Styles/DisplayTags.xaml"/>
- <ResourceDictionary Source="Components/StatusGridContextMenu.xaml"/>
<ResourceDictionary Source="Styles/ChangesetHistoryDataGrid.xaml"/>
<ResourceDictionary Source="Styles/TreeView.xaml"/>
</ResourceDictionary.MergedDictionaries>
View
85 Components/StatusGridContextMenu.xaml
@@ -1,85 +0,0 @@
-<ResourceDictionary x:Class="GG.Components.StatusGridContextMenu"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="clr-namespace:GG"
- xmlns:components="clr-namespace:GG.Components">
- <ContextMenu x:Key="StatusGridContextMenu" ContextMenuOpening="OnContextMenuOpening" ContextMenuClosing="ContextMenu_ContextMenuClosing_1">
- <MenuItem Header="Stage" InputGestureText="Enter" Command="{Binding PlacementTarget.Tag.StageUnstageCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/Add.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
-
- <Separator />
-
- <MenuItem Header="Annotate...">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/Annotate.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
-
- <MenuItem Header="File history...">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/History.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
-
- <MenuItem Header="Visual diff...">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/VisualDiff.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
-
- <Separator />
-
- <MenuItem Header="Ignore" InputGestureText="Ctrl+I">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/Ignore.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
-
- <MenuItem Header="Revert...">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/Backout.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
-
- <Separator />
-
- <MenuItem Header="Copy">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/Copy.png" Stretch="None" />
- </MenuItem.Icon>
-
- <MenuItem Header="Copy file">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/Copy.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
-
- <MenuItem Header="Copy patch" InputGestureText="Ctrl+C">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/CopyPatch.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
- </MenuItem>
-
- <MenuItem Header="Delete..." InputGestureText="Delete">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/Delete.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
-
- <MenuItem Header="Edit...">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/Edit.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
-
- <MenuItem Header="Rename...">
- <MenuItem.Icon>
- <Image Source="../Resources/Icons/Rename.png" Stretch="None" />
- </MenuItem.Icon>
- </MenuItem>
- </ContextMenu>
-</ResourceDictionary>
View
24 Components/StatusGridContextMenu.xaml.cs
@@ -1,24 +0,0 @@
-using System;
-using System.Windows;
-using System.Windows.Controls;
-
-namespace GG.Components
-{
- public partial class StatusGridContextMenu : ResourceDictionary
- {
- public StatusGridContextMenu()
- {
- InitializeComponent();
- }
-
- void OnContextMenuOpening(object sender, ContextMenuEventArgs e)
- {
- Console.WriteLine("here i am!");
- }
-
- private void ContextMenu_ContextMenuClosing_1(object sender, ContextMenuEventArgs e)
- {
- Console.WriteLine("here i am2!");
- }
- }
-}
View
77 Git-GUI.csproj
@@ -16,20 +16,27 @@
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
- <IsWebBootstrapper>false</IsWebBootstrapper>
- <PublishUrl>publish\</PublishUrl>
+ <IsWebBootstrapper>true</IsWebBootstrapper>
+ <PublishUrl>C:\Setups\Software\Git-GUI\</PublishUrl>
<Install>true</Install>
- <InstallFrom>Disk</InstallFrom>
- <UpdateEnabled>false</UpdateEnabled>
- <UpdateMode>Foreground</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
+ <InstallFrom>Web</InstallFrom>
+ <UpdateEnabled>true</UpdateEnabled>
+ <UpdateMode>Background</UpdateMode>
+ <UpdateInterval>1</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
- <ApplicationRevision>0</ApplicationRevision>
+ <InstallUrl>http://www.gitgui.com/publish/</InstallUrl>
+ <SupportUrl>http://www.gitgui.com/support</SupportUrl>
+ <TargetCulture>en</TargetCulture>
+ <ProductName>Git-GUI</ProductName>
+ <PublisherName>Kai Sellgren</PublisherName>
+ <ApplicationRevision>1</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
+ <CreateDesktopShortcut>true</CreateDesktopShortcut>
+ <PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
@@ -99,6 +106,18 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
+ <PropertyGroup>
+ <ManifestCertificateThumbprint>CADC8AEAADDC7B593B80E792F4699198601188F0</ManifestCertificateThumbprint>
+ </PropertyGroup>
+ <PropertyGroup>
+ <ManifestKeyFile>Git-GUI_TemporaryKey.pfx</ManifestKeyFile>
+ </PropertyGroup>
+ <PropertyGroup>
+ <GenerateManifests>true</GenerateManifests>
+ </PropertyGroup>
+ <PropertyGroup>
+ <SignManifests>true</SignManifests>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="LibGit2Sharp">
<HintPath>packages\LibGit2Sharp.0.8\lib\net35\LibGit2Sharp.dll</HintPath>
@@ -128,9 +147,6 @@
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="AppTabDataTemplateSelector.cs" />
- <Compile Include="Components\StatusGridContextMenu.xaml.cs">
- <DependentUpon>StatusGridContextMenu.xaml</DependentUpon>
- </Compile>
<Compile Include="Converters\ExtensionToImageConverter.cs" />
<Compile Include="Converters\StatusToCharacterConverter.cs" />
<Compile Include="Converters\StatusToColorConverter.cs" />
@@ -158,6 +174,9 @@
<Compile Include="UserControls\StatusGrid.xaml.cs">
<DependentUpon>StatusGrid.xaml</DependentUpon>
</Compile>
+ <Compile Include="UserControls\StatusGridContextMenu.xaml.cs">
+ <DependentUpon>StatusGridContextMenu.xaml</DependentUpon>
+ </Compile>
<Compile Include="ViewModels\BaseViewModel.cs" />
<Compile Include="ViewModels\RepositoryViewModel.cs" />
<Compile Include="UserControls\ChangesetHistory.xaml.cs">
@@ -239,10 +258,6 @@
<Page Include="Templates\AppTabNew.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
- <Page Include="Components\StatusGridContextMenu.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
<Page Include="UserControls\ChangesetHistory.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -264,6 +279,10 @@
<Page Include="UserControls\StatusGrid.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="UserControls\StatusGridContextMenu.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="UserControls\TopToolbar.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -287,6 +306,7 @@
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="app.config" />
+ <None Include="Git-GUI_TemporaryKey.pfx" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
@@ -310,9 +330,9 @@
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.4.5">
<Visible>False</Visible>
- <ProductName>Windows Installer 3.1</ProductName>
+ <ProductName>Windows Installer 4.5</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
@@ -381,6 +401,31 @@
<Resource Include="Resources\Icons\VisualDiff.png" />
<Resource Include="Resources\Icons\Warning.png" />
</ItemGroup>
+ <ItemGroup>
+ <Resource Include="Resources\Icons\Unstage.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <PublishFile Include="LibGit2Sharp">
+ <Visible>False</Visible>
+ <Group>
+ </Group>
+ <TargetPath>
+ </TargetPath>
+ <PublishState>Include</PublishState>
+ <IncludeHash>True</IncludeHash>
+ <FileType>Assembly</FileType>
+ </PublishFile>
+ <PublishFile Include="Microsoft.Windows.Shell">
+ <Visible>False</Visible>
+ <Group>
+ </Group>
+ <TargetPath>
+ </TargetPath>
+ <PublishState>Include</PublishState>
+ <IncludeHash>True</IncludeHash>
+ <FileType>Assembly</FileType>
+ </PublishFile>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>
View
6 Git-GUI.csproj.user
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
- <PublishUrlHistory>publish\</PublishUrlHistory>
- <InstallUrlHistory />
- <SupportUrlHistory />
+ <PublishUrlHistory>C:\Setups\Software\Git-GUI\|publish\</PublishUrlHistory>
+ <InstallUrlHistory>http://www.gitgui.com/publish/</InstallUrlHistory>
+ <SupportUrlHistory>http://www.gitgui.com/support</SupportUrlHistory>
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
View
11 Models/StatusItem.cs
@@ -41,6 +41,17 @@ public string GenericStatus
}
}
+ /// <summary>
+ /// Returns true whether this status item is staged.
+ /// </summary>
+ public bool IsStaged
+ {
+ get
+ {
+ return GenericStatus == "Staged";
+ }
+ }
+
public string Extension
{
get
View
BIN  Resources/Icons/Unstage.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
26 UserControls/LeftToolbar.xaml
@@ -14,8 +14,8 @@
</Grid.OpacityMask>
<Grid Margin="8" d:DataContext="{d:DesignData Source=../DesignData/Branches.xaml}">
- <TreeView Background="Transparent" BorderThickness="0" Padding="0">
- <TreeViewItem ItemsSource="{Binding Branches}">
+ <TreeView Background="{x:Null}" BorderThickness="0" Padding="0">
+ <TreeViewItem ItemsSource="{Binding Branches}" PreviewMouseRightButtonDown="OnPreviewMouseRightButtonDown">
<TreeViewItem.Header>
<WrapPanel>
<Image Source="../Resources/Icons/Branch.png" Stretch="None" Style="{DynamicResource LeftToolbarTitleImageStyle}" />
@@ -25,7 +25,27 @@
<TreeViewItem.ItemTemplate>
<DataTemplate>
- <TextBlock Text="{Binding Name}" Style="{DynamicResource LeftToolbarTitleStyle}" />
+ <TextBlock Text="{Binding Name}" Style="{DynamicResource LeftToolbarTitleStyle}">
+ <TextBlock.ContextMenu>
+ <ContextMenu>
+ <MenuItem Header="Checkout">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Checkout.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+ <MenuItem Header="Delete">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Delete.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+ <MenuItem Header="Merge with X">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Merge.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+ </ContextMenu>
+ </TextBlock.ContextMenu>
+ </TextBlock>
</DataTemplate>
</TreeViewItem.ItemTemplate>
</TreeViewItem>
View
19 UserControls/LeftToolbar.xaml.cs
@@ -24,5 +24,24 @@ public LeftToolbar()
{
InitializeComponent();
}
+
+ private void OnPreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
+ {
+ TreeViewItem treeViewItem = VisualUpwardSearch(e.OriginalSource as DependencyObject);
+
+ if (treeViewItem != null)
+ {
+ treeViewItem.Focus();
+ e.Handled = true;
+ }
+ }
+
+ static TreeViewItem VisualUpwardSearch(DependencyObject source)
+ {
+ while (source != null && !(source is TreeViewItem))
+ source = VisualTreeHelper.GetParent(source);
+
+ return source as TreeViewItem;
+ }
}
}
View
3  UserControls/StatusGrid.xaml
@@ -11,6 +11,7 @@
<converters:StatusToColorConverter x:Key="statusToColorConverter" />
<converters:StatusToCharacterConverter x:Key="statusToCharacterConverter" />
<converters:ExtensionToImageConverter x:Key="extensionToImageConverter" />
+ <userControls:StatusGridContextMenu x:Key="statusGridContextMenu" />
</UserControl.Resources>
<DockPanel>
<DataGrid SelectionUnit="FullRow"
@@ -23,7 +24,7 @@
CanUserResizeColumns="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling"
- ContextMenu="{DynamicResource StatusGridContextMenu}"
+ ContextMenu="{StaticResource statusGridContextMenu}"
Tag="{Binding}"
x:Name="StatusGridElement">
<DataGrid.InputBindings>
View
89 UserControls/StatusGridContextMenu.xaml
@@ -0,0 +1,89 @@
+<ContextMenu x:Class="GG.UserControls.StatusGridContextMenu"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ Opened="OnOpened">
+
+ <MenuItem x:Name="Stage" Header="Stage" InputGestureText="Enter" Command="{Binding PlacementTarget.Tag.StageUnstageCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Add.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <MenuItem x:Name="Unstage" Header="Unstage" InputGestureText="Enter" Command="{Binding PlacementTarget.Tag.StageUnstageCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Unstage.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <Separator x:Name="StageSeparator" />
+
+ <MenuItem Header="Annotate...">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Annotate.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <MenuItem Header="File history...">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/History.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <MenuItem Header="Visual diff...">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/VisualDiff.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <Separator />
+
+ <MenuItem Header="Ignore" InputGestureText="Ctrl+I">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Ignore.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <MenuItem Header="Revert...">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Backout.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <Separator />
+
+ <MenuItem Header="Copy">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Copy.png" Stretch="None" />
+ </MenuItem.Icon>
+
+ <MenuItem Header="Copy file">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Copy.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <MenuItem Header="Copy patch" InputGestureText="Ctrl+C">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/CopyPatch.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+ </MenuItem>
+
+ <MenuItem Header="Delete..." InputGestureText="Delete">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Delete.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <MenuItem Header="Edit...">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Edit.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+
+ <MenuItem Header="Rename...">
+ <MenuItem.Icon>
+ <Image Source="../Resources/Icons/Rename.png" Stretch="None" />
+ </MenuItem.Icon>
+ </MenuItem>
+</ContextMenu>
View
54 UserControls/StatusGridContextMenu.xaml.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Windows;
+using System.Collections;
+using System.Linq;
+using System.Windows.Controls;
+using GG.Libraries;
+using GG.Models;
+using System.Collections.Generic;
+
+namespace GG.UserControls
+{
+ /// <summary>
+ /// Interaction logic for StatusGridContextMenu.xaml
+ /// </summary>
+ public partial class StatusGridContextMenu : ContextMenu
+ {
+ public StatusGridContextMenu()
+ {
+ InitializeComponent();
+ }
+
+ /// <summary>
+ /// Preprocessing prior to menu opening.
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ private void OnOpened(object sender, System.Windows.RoutedEventArgs e)
+ {
+ MenuItem stage = UIHelper.FindChild<MenuItem>(this, "Stage");
+ MenuItem unstage = UIHelper.FindChild<MenuItem>(this, "Unstage");
+ Separator stageSeparator = UIHelper.FindChild<Separator>(this, "StageSeparator");
+
+ // Retrieve some info regarding what is selected on the grid.
+ DataGrid statusGrid = PlacementTarget as DataGrid;
+
+ bool hasStagedItems = statusGrid.SelectedItems.OfType<StatusItem>().Any(i => ((StatusItem) i).IsStaged);
+ bool hasUnstagedItems = statusGrid.SelectedItems.OfType<StatusItem>().Any(i => ((StatusItem) i).IsStaged == false);
+
+ // Hide/show stage and unstage menu items accordingly.
+ if (hasStagedItems && hasUnstagedItems)
+ {
+ stage.Visibility = Visibility.Collapsed;
+ unstage.Visibility = Visibility.Collapsed;
+ stageSeparator.Visibility = Visibility.Collapsed;
+ }
+ else
+ {
+ stage.Visibility = !hasStagedItems ? Visibility.Visible : Visibility.Collapsed;
+ unstage.Visibility = hasStagedItems ? Visibility.Visible : Visibility.Collapsed;
+ stageSeparator.Visibility = Visibility.Visible;
+ }
+ }
+ }
+}
View
18 ViewModels/RepositoryViewModel.cs
@@ -39,8 +39,15 @@ public class RepositoryViewModel : BaseViewModel
/// <param name="e"></param>
delegate void ReloadStatusDelegate(object sender, FileSystemEventArgs e);
+ /// <summary>
+ /// Commands.
+ /// </summary>
+ #region Commands
+
public DelegateCommand StageUnstageCommand { get; private set; } // TODO
+ #endregion
+
public RepositoryViewModel()
{
// Initialize empty collections.
@@ -54,15 +61,20 @@ public RepositoryViewModel()
CommitsPerPage = 50;
+ // Initialize status item view and group.
StatusItemsGrouped = new ListCollectionView(StatusItems);
StatusItemsGrouped.GroupDescriptions.Add(new PropertyGroupDescription("GenericStatus"));
StatusItemsGrouped.SortDescriptions.Add(new SortDescription("GenericStatus", ListSortDirection.Descending));
- StageUnstageCommand = new DelegateCommand(StageUnstageExecuted); // TODO
+ // Initialize commands.
+ StageUnstageCommand = new DelegateCommand(StageUnstage);
}
- // TODO
- private void StageUnstageExecuted(object action)
+ /// <summary>
+ /// Stages or unstages the selected item.
+ /// </summary>
+ /// <param name="action"></param>
+ private void StageUnstage(object action)
{
DataGrid statusGrid = UIHelper.FindChild<DataGrid>(Application.Current.MainWindow, "StatusGridElement");
StatusItem item = statusGrid.SelectedItem as StatusItem;
Please sign in to comment.
Something went wrong with that request. Please try again.