Issues empty state
## What does this MR do?
Adds the empty state for the project, dashboard and group issues.
## Are there points in the code the reviewer needs to double check?
## Why was this MR needed?
## Screenshots (if relevant)
### Filtered to show no issues (on group issues page in this case but also dashboard and projects)

### Project with no issues


### Group with no projects with any issues

## Does this MR meet the acceptance criteria?
- [ ] [Changelog entry](https://docs.gitlab.com/ce/development/changelog.html) added
- [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- [ ] API support added
- Tests
- [ ] Added for this feature/bug
- [ ] All builds are passing
- [ ] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html)
- [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [ ] Branch has no merge conflicts with `master` (if it does - rebase it please)
- [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
## What are the relevant issue numbers?
Closes#20840Closes#20850
See merge request !7309
Added new spec step
Added empty state to dashboard
Split empty and filtered empty states
Moved empty_state icons into their own folder and DRY up empty state html
Fixed failing spec
Added to groups page
Review changes
This commit moves the `search_snippets.feature` Spinach test to a
Rspec feature, as part of deprecating the Spinach test suite.
- Remove Spinach discover snippets feature and steps
- Remove unused `SharedSearch` module
- Add Rspec feature scenarios
Right now, the following naming scheme for diff files is used: diff-1, diff-2, ... and also we have "internal" format which is file-path-HASH, where HASH is sha1 of file path.
Besides, we have HASH_lineA_lineB format to link exact line number in MR diff. It makes sence to unify the way we link diff from outside, while leave "file-path-HASH" format for internal (js) usage.
Changes in this commit allow to link diff just by HASH, if we don't want specify exact lines, also it changes "file-path-HASH" and "diff-NUMBER" links in code to this unified format.
Inspired by #24010 and !7298
This commit moves the `snippets/discover.feature` Spinach test to a
Rspec feature, as part of deprecating the Spinach test suite.
The original feature was called 'Discover Snippets', but the UI no
longer reflects this wording. The new Rspec feature is called
'Explore Snippets' to reflect UI/Controller/View naming in use.
- Remove Spinach discover snippets feature and steps
- Add Rspec feature test
No matter which environment Gitlab was running as, the admin/logs view
always showed production.log. This commit selects the logfile based
on Rails.env.
- Rename ProductionLogger to EnvironmentLogger
- Make EnvironmentLogger logfile depend on env
- Update spinach test for log tabs
Add Rake task to create/repair GitLab Shell hooks symlinks
## What does this MR do?
Adds a Rake task wrapper around `gitlab-shell` `bin/create_hooks` script. This makes it easier for an administrator to repair hooks symlinks without worrying about where repository data is located, etc. Just run this task and it takes care of everything based on current configuration.
## Are there points in the code the reviewer needs to double check?
No.
## Why was this MR needed?
`bin/create_hooks` was not well-documented. It requires parameters specifying where repository data is located. It also needs to be run by the `git` user. Wrapping it in a Rake task allows us to take current configuration in to account and makes it easier on the administrator.
See merge request !5634
At the moment we cannot see weather a user left a project due to their
membership expiring of if they themselves opted to leave the project.
This adds a new event type that allows us to make this differentiation.
Note that is not really feasable to go back and reliably fix up the
previous events. As a result the events for previous expire removals
will remain the same however events of this nature going forward will be
correctly represented.
Fix trending projects Spinach failure
The trending projects list is now pre-calculated. To make this work with the Spinach test, we have to manually refresh the list.
Partial fix to #23378
See merge request !6911
gitlab-git-test `master` was updated in ff076d88, and this caused
the merge request diffs to change in a way that broke assumptions in the
Spinach tests.
Partial fix to #23378
The percentages in the language match changed by a tenth of a percentage point
for Ruby and JavaScript, which led to this failure.
Partial fix to #23378