Currently this works by loading the HAML partials via XHR. While this is
not the nicest setup it _is_ the easiest setup using the tools we
currently have.
Loading this data asynchronously doesn't make loading the related
MRs/branches itself faster, it merely ensures that loading the issue
itself is not slowed down.
Fixesgitlab-org/gitlab-ce#14949
Updated UI for new merge request
Closes#2540


See merge request !3228
Location aware search
Closes#3400#14217
Introduces suggestion grouping on the search box and adds the ability to the user to remove the location to search on.
**Notes**
- Suggestions are now grouped by category.
- Suggestions are displayed when no location is set.
- Would be great to provide suggestions for the specified location which could be a project or group.
- A location is set from the server for projects/groups related urls.
**Default Apparence**

**When location badge is present**

**Suggestions**

**Suggestions when location badge is present**

Closes#3400
See merge request !3212
Improve performance of viewing individual issues
This MR does two things:
1. `Issue#related_branches` no longer performs Git operations that aren't needed
2. The output of `Repository#exists?` is now cached and flushed properly
Combined these two changes should further cut down the amount of Git operations performed when viewing individual issues (and possibly other pages).
See merge request !3296
These tests would check if the "This project is empty" banner would
contain SSH clone URLs. Oddly enough this should have never passed (as
far as I can tell) as SSH clone URLs in this banner are _only_ displayed
if the current user has at least 1 SSH key attached. Since the tests
never seem to create any they never should have passed, yet somehow they
did. To solve this the Spinach tests in question now ensure at least 1
SSH key is present.
Adds small AJAX optimistic functionality to todos.
Fixes#13656 <br/>
A good first step and boring solution. <br/>
Will make ajax call to remove each issue. <br/>
If issue is last in group of issues will refresh page. <br/>
If issues remain in group will remove row with JS. <br/>
Adds loading spinner to button and disables. <br/>
 <br/>
cc @dzaporozhets @JobV @dbalexandre
See merge request !2946