| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
| |
The todos page limit is 20, and both that and a user's pending todo count are
integers. Using integer division means that the result's floor will be taken,
defeating the point of the later call to `#ceil`.
So we need to convert one side of the division to a float first, otherwise the
last page won't be treated as available.
|
| | |
|
| |\ |
|
| | |
| |
| |
| | |
Closes #38808
|
| | |
| |
| |
| |
| |
| | |
When there are no filters, we can get the total todos count from the cached
count on the user object, instead of performing a DB query. This query takes
about 80ms for me on GitLab.com.
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
The children are lazy-loaded when expanding
|
| |/ |
|
| |
|
|
|
| |
This solves an N+1 query problem where we'd run multiple queries when
getting the namespace owners of the displayed projects.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes various controllers to use the new EventCollection class
for retrieving events. This class uses a JOIN LATERAL query on
PostgreSQL to retrieve queries in a more efficient way, while falling
back to a simpler / less efficient query for MySQL.
The EventCollection class also includes a limit on the number of events
to display to prevent malicious users from cycling through all events,
as doing so could put a lot of pressure on the database.
JOIN LATERAL is only supported on PostgreSQL starting with version 9.3.0
and as such this optimisation is only used when using PostgreSQL 9.3 or
newer.
|
| |
|
|
|
| |
This solves an N+1 query problem where for every project we'd query the
creator separately just to figure out what avatar to display.
|
| |
|
|
|
|
|
|
| |
TodoService should not call `.select(&:id)` on todos, because this is
bad performance. So instead use sub-queries, which will result in a
single SQL query to the database.
https://docs.gitlab.com/ee/development/sql.html#plucking-ids
|
| |
|
|
|
| |
[9.3 security fix] Renders 404 if given project is not readable by the user on Todos dashboard
See merge request !2118
|
| | |
|
| | |
|
| |\
| |
| |
| |
| | |
Refactor atom builder by using a layout
See merge request !12114
|
| | | |
|
| |/
|
|
|
| |
Instead of an integration test that creates 101 Todo records to test a
simple view helper, just unit test the helper.
|
| |\
| |
| |
| |
| |
| |
| | |
Fixed dashboard milestone tabs not loading
Closes #33477
See merge request !12023
|
| | |
| |
| |
| | |
Closes #33477
|
| | | |
|
| |\ \
| |/ |
|
| | |
| |
| |
| | |
explicitly set 'status' in 'destroy' actions of controllers
|
| |\ \
| |/
| |
| | |
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
Refactor snippets finder & dont return internal snippets for external users
See merge request !2094
|
| | | |
|
| |/
|
|
| |
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
|
| |
|
| |
This reverts merge request !10845
|
| |
|
|
|
|
|
|
| |
TodoService should not call `.select(&:id)` on todos, because this is
bad performance. So instead use sub-queries, which will result in a
single SQL query to the database.
https://docs.gitlab.com/ee/development/sql.html#plucking-ids
|
| |\
| |
| |
| |
| |
| |
| | |
ProjectsFinder should handle more options
Closes #28810
See merge request !9682
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Extended ProjectFinder in order to handle the following options:
- current_user - which user use
- project_ids_relation: int[] - project ids to use
- params:
- trending: boolean
- non_public: boolean
- starred: boolean
- sort: string
- visibility_level: int
- tags: string[]
- personal: boolean
- search: string
- non_archived: boolean
GroupProjectsFinder now inherits from ProjectsFinder.
Changed the code in order to use the new available options.
|
| |/
|
|
|
| |
Fix for three open redirect vulns using redirect_to url_for(params.merge)))
See merge request !2082
|
| |
|
| |
This reverts merge request !10076
|
| | |
|
| |\
| |
| |
| |
| | |
Speed up several project lists
See merge request !9903
|
| | | |
|
| |/
|
|
|
|
| |
Added the ability to 'Undo mark all as done' todos marked as complete with 'Mark all as done'
in the 'Todo' tab of the Todo dashboard.
The operation undos only the todo previously marked as done with the 'Mark al as done' button.
|
| | |
|
| |
|
|
| |
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
|
| | |
|
| | |
|
| |
|
|
|
|
| |
The Done button will change to an Undo button and the line item will be greyed out.
Bold links will be unbolded.
The user can undo the task by clicking the Undo button.
|
| |
|
|
|
|
| |
Also, don't use limit in subquery, MySQL don't like that.
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
| |
|
|
| |
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
|
| |
|
|
| |
Dashboard::ProjectsController#index
|
| |
|
|
|
|
|
|
|
|
|
| |
authorized projects
It improves performance in dashboard milestone index page by passing a
hint to "IssuesFinder". "IssuesFinder" generates a more performant query
when it is limited to authorized projects for user.
In the dashboard we already limit the projects to these authorized for
user (see "Dashboard::ApplicationController#projects"), so we can safely
pass this option to "IssuesFinder".
|