Fix#3758: Serious performance issues due to timeago()
being called n*(n+1)/2 times instead of n
See bug #3758 for a description. This merge request alters
`time_ago_with_tooltip` to invoke the `timeago()` javascript on the
current timestamp only, instead of each one defined on the page so far.
See merge request !1977
Dont use cached collection for Repository find_branch and find_tag methods
Fix for #3816
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
See merge request !2003
Fix problems with award-emoji-only comment
This fixes a conflict between note with only a single emoji in content
and award-emojis mechanisms.
Closes#3734
cc @vsizov
See merge request !1936
Fix Error 500 when creating global milestones with Unicode characters
Two issues:
1. The constraints in the resources were incorrect. Here's what it was before:
```
group_milestone GET /groups/:group_id/milestones/:id(.:format) groups/milestones#show {:id=>/[a-zA-Z.0-9_\-]+(?<!\.atom)/, :group_id=>/[a-zA-Z.0-9_\-]+(?<!\.atom)/}
```
In this case, id is actually the title of the milestone, which can be anything at the moment.
After:
```
group_milestone GET /groups/:group_id/milestones/:id(.:format) groups/milestones#show {:id=>/[^\/]+/, :group_id=>/[a-zA-Z.0-9_\-]+(?<!\.atom)/}
```
2. `parameterize` would strip all Unicode characters, leaving a blank string. Rails would report something like:
```
ActionView::Template::Error (No route matches {:action=>"show", :controller=>"groups/milestones", :group_id=>#<Group id: 48, name: "ops-dev", path: "ops-dev", owner_id: nil, created_at: "2015-11-15 08:55:30", updated_at: "2015-12-02 06:23:26", type: "Group", description: "", avatar: "sha1.c71e73d51af1865c1bbbf6208e10044d46c9bb93.png", public: false>, :id=>"", :title=>"肯定不是中文的问题"} missing required keys: [:id]):
```
This change uses the babosa library to create a better slug, which surprisingly
isn't actually used by the global milestone controllers. Instead, they use the
title passed as a query string for some reason.
Closes https://github.com/gitlabhq/gitlabhq/issues/9881
See merge request !1983
Style warning about mentioning many people in a comment
Fixes#2885
* Create issue:
Before:

After:

* New merge request:
Before:

After:

* New comment in a merge request:
Before:

After:

* New diff comment:
Before:

After:

See merge request !1971
Two issues:
1. The constraints in the resources were incorrect. Here's what it was before:
```
group_milestone GET /groups/:group_id/milestones/:id(.:format) groups/milestones#show {:id=>/[a-zA-Z.0-9_\-]+(?<!\.atom)/, :group_id=>/[a-zA-Z.0-9_\-]+(?<!\.atom)/}
```
In this case, id is actually the title of the milestone, which can be anything at the moment.
After:
```
group_milestone GET /groups/:group_id/milestones/:id(.:format) groups/milestones#show {:id=>/[^\/]+/, :group_id=>/[a-zA-Z.0-9_\-]+(?<!\.atom)/}
```
2. `parameterize` would strip all Unicode characters, leaving a blank string. Rails would report something like:
ActionView::Template::Error (No route matches {:action=>"show", :controller=>"groups/milestones", :group_id=>#<Group id: 48, name: "ops-dev", path: "ops-dev", owner_id: nil, created_at: "2015-11-15 08:55:30", updated_at: "2015-12-02 06:23:26", type: "Group", description: "", avatar: "sha1.c71e73d51af1865c1bbbf6208e10044d46c9bb93.png", public: false>, :id=>"", :title=>"肯定不是中文的问题"} missing required keys: [:id]):
This change uses the babosa library to create a better slug, which surprisingly
isn't actually used by the global milestone controllers. Instead, they use the
title passed as a query string for some reason.
Closes https://github.com/gitlabhq/gitlabhq/issues/9881
Fix constraints
Ensure "Remove Source Branch" button is not shown when branch is being deleted.
Given the merging of the Merge Request happens in the background, sometimes when the client JS code reloads the page the source branch is not still gone.
This fix appends a new query string parameter that is checked in the view before rendering the `Remove Source Branch` button.
Closes#3583
See merge request !1897
Fix application settings cache not expiring after changes
cache_key is an instance method that relies on updated_at. When changes
were made, the time-dependent key was being used instead of X.application_setting.last.
Closes#3609
See merge request !1972
If a Web hook test fails due to an SSL error or some other error, report
the result back to the user instead of an Error 500.
Closes#3656
Handle response
cache_key is an instance method that relies on updated_at. When changes
were made, the time-dependent key was being used instead of X.application_setting.last.
Closes#3609
UI: Improve form consistency
Depends on !1953
See the commits for more details, the messages mostly speak for themselves.
# Highlights
## Tag form
Before:

After:

See merge request !1955
Add authorization to new branch/tag pages.
The create actions have authorization, the new actions didn't,
so no-one unauthorized could actually do anything, but it was wrong(TM).
See merge request !1979
Fixed invalid link on starred projects dashboard.
Fixes#3468
The MR fixes 'Project' links on a dashboard pages headers. See the issue for the details.
This MR does not include tests since the change is rather trivial and there are no (as far as I have seen) existing tests for checking links validity.
In case tests are required I would like to get some guidance on the implementation first. At least I would like to know what should be covered: changed links, all header links, all navigation?
See merge request !1926
UI: Use new style for wiki
Depends on !1953
See the commits for more details, the messages mostly speak for themselves.
# Highlights
## Wiki Page
Before:

After:

## Edit Wiki Page
Before:

After:

See merge request !1967
UI: New Project form tweaks
Depends on !1953
See the commits for more details, the messages mostly speak for themselves.
Before:

After:

See merge request !1964
UI: Issuable filter tweaks
Depends on !1953
See the commits for more details, the messages mostly speak for themselves.
# Highlights
## Filter bar
Before:

After:

## Bulk edit bar
Before:

After:

See merge request !1963