Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
8803a2f6
Commit
8803a2f6
authored
Nov 14, 2018
by
Felipe Artur
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Save filter option to backend
parent
400314c7
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
56 additions
and
8 deletions
+56
-8
db/migrate/20181114163403_add_epics_sort_to_user_preference.rb
...grate/20181114163403_add_epics_sort_to_user_preference.rb
+9
-0
db/schema.rb
db/schema.rb
+2
-1
ee/app/controllers/concerns/epics_actions.rb
ee/app/controllers/concerns/epics_actions.rb
+1
-0
ee/app/controllers/concerns/epics_sorting.rb
ee/app/controllers/concerns/epics_sorting.rb
+24
-0
ee/app/controllers/groups/epics_controller.rb
ee/app/controllers/groups/epics_controller.rb
+3
-1
ee/app/controllers/groups/roadmap_controller.rb
ee/app/controllers/groups/roadmap_controller.rb
+2
-1
ee/app/helpers/ee/sorting_helper.rb
ee/app/helpers/ee/sorting_helper.rb
+4
-0
ee/app/models/ee/epic.rb
ee/app/models/ee/epic.rb
+5
-0
ee/spec/features/epics/epics_list_spec.rb
ee/spec/features/epics/epics_list_spec.rb
+6
-5
No files found.
db/migrate/20181114163403_add_epics_sort_to_user_preference.rb
0 → 100644
View file @
8803a2f6
class
AddEpicsSortToUserPreference
<
ActiveRecord
::
Migration
include
Gitlab
::
Database
::
MigrationHelpers
DOWNTIME
=
false
def
change
add_column
:user_preferences
,
:epics_sort
,
:string
end
end
db/schema.rb
View file @
8803a2f6
...
...
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
201811
07054254
)
do
ActiveRecord
::
Schema
.
define
(
version:
201811
14163403
)
do
# These are extensions that must be enabled in order to support this database
enable_extension
"plpgsql"
...
...
@@ -2968,6 +2968,7 @@ ActiveRecord::Schema.define(version: 20181107054254) do
t
.
integer
"merge_request_notes_filter"
,
limit:
2
,
default:
0
,
null:
false
t
.
datetime_with_timezone
"created_at"
,
null:
false
t
.
datetime_with_timezone
"updated_at"
,
null:
false
t
.
string
"epics_sort"
end
add_index
"user_preferences"
,
[
"user_id"
],
name:
"index_user_preferences_on_user_id"
,
unique:
true
,
using: :btree
...
...
ee/app/controllers/concerns/epics_actions.rb
View file @
8803a2f6
...
...
@@ -18,6 +18,7 @@ module EpicsActions
case
value
when
'start_date_asc'
then
sort_value_start_date
when
'end_date_asc'
then
sort_value_end_date
when
'end_date_desc'
then
sort_value_end_date_later
else
super
(
value
)
end
...
...
ee/app/controllers/concerns/epics_sorting.rb
0 → 100644
View file @
8803a2f6
module
EpicsSorting
def
set_epics_sorting
if
current_user
set_sort_order_from_user_preference
else
set_sort_order_from_cookie
end
end
def
set_sort_order_from_user_preference
return
params
[
:sort
]
unless
current_user
user_preference
=
current_user
.
user_preference
sort_param
=
params
[
:sort
]
sort_param
||=
user_preference
.
epics_sort
if
user_preference
.
epics_sort
!=
sort_param
user_preference
.
update
(
epics_sort:
sort_param
)
end
params
[
:sort
]
=
sort_param
end
end
ee/app/controllers/groups/epics_controller.rb
View file @
8803a2f6
...
...
@@ -5,6 +5,7 @@ class Groups::EpicsController < Groups::ApplicationController
include
ToggleSubscriptionAction
include
RendersNotes
include
EpicsActions
include
EpicsSorting
before_action
:check_epics_available!
before_action
:epic
,
except:
[
:index
,
:create
]
...
...
@@ -109,7 +110,8 @@ class Groups::EpicsController < Groups::ApplicationController
end
def
filter_params
set_sort_order_from_cookie
set_epics_sorting
super
.
merge
(
start_date:
params
[
:start_date
],
end_date:
params
[
:end_date
])
end
end
ee/app/controllers/groups/roadmap_controller.rb
View file @
8803a2f6
...
...
@@ -2,6 +2,7 @@ module Groups
class
RoadmapController
<
Groups
::
ApplicationController
include
IssuableCollections
include
EpicsActions
include
EpicsSorting
before_action
:check_epics_available!
before_action
:group
...
...
@@ -9,7 +10,7 @@ module Groups
def
show
# show roadmap for a group
set_
sort_order_from_cookie
set_
epics_sorting
@sort
=
params
[
:sort
]
||
default_sort_order
@epics_count
=
EpicsFinder
.
new
(
current_user
,
group_id:
@group
.
id
).
execute
.
count
end
...
...
ee/app/helpers/ee/sorting_helper.rb
View file @
8803a2f6
...
...
@@ -42,6 +42,10 @@ module EE
'end_date_asc'
end
def
sort_value_end_date_later
'end_date_desc'
end
def
sort_value_less_weight
'weight_asc'
end
...
...
ee/app/models/ee/epic.rb
View file @
8803a2f6
...
...
@@ -54,6 +54,10 @@ module EE
reorder
(
::
Gitlab
::
Database
.
nulls_last_order
(
'end_date'
),
'id DESC'
)
end
scope
:order_end_date_desc
,
->
do
reorder
(
::
Gitlab
::
Database
.
nulls_last_order
(
'end_date'
,
'DESC'
),
'id DESC'
)
end
def
etag_caching_enabled?
true
end
...
...
@@ -103,6 +107,7 @@ module EE
when
'start_or_end_date'
then
order_start_or_end_date_asc
when
'start_date_asc'
then
order_start_date_asc
when
'end_date_asc'
then
order_end_date_asc
when
'end_date_desc'
then
order_end_date_desc
else
super
end
...
...
ee/spec/features/epics/epics_list_spec.rb
View file @
8803a2f6
...
...
@@ -43,23 +43,23 @@ describe 'epics list', :js do
end
end
it
'sorts by
end_date A
SC by default'
do
expect
(
page
).
to
have_button
(
'
Due date
'
)
it
'sorts by
created_at DE
SC by default'
do
expect
(
page
).
to
have_button
(
'
Last created
'
)
page
.
within
(
'.content-wrapper .content'
)
do
expect
(
find
(
'.top-area'
)).
to
have_content
(
'All 3'
)
page
.
within
(
".issuable-list"
)
do
page
.
within
(
"li:nth-child(1)"
)
do
expect
(
page
).
to
have_content
(
epic
1
.
title
)
expect
(
page
).
to
have_content
(
epic
3
.
title
)
end
page
.
within
(
"li:nth-child(2)"
)
do
expect
(
page
).
to
have_content
(
epic
3
.
title
)
expect
(
page
).
to
have_content
(
epic
2
.
title
)
end
page
.
within
(
"li:nth-child(3)"
)
do
expect
(
page
).
to
have_content
(
epic
2
.
title
)
expect
(
page
).
to
have_content
(
epic
1
.
title
)
end
end
end
...
...
@@ -67,6 +67,7 @@ describe 'epics list', :js do
it
'sorts by the selected value and stores the selection for epic list & roadmap'
do
page
.
within
(
'.epics-other-filters'
)
do
live_debug
click_button
'Due date'
sort_options
=
find
(
'ul.dropdown-menu-sort li'
).
all
(
'a'
).
collect
(
&
:text
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment