Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
574b3efd
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
574b3efd
编写于
7月 14, 2017
作者:
T
Tiago Botelho
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixes the user order being overriden in the autocomplete controller
上级
60b91b46
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
25 addition
and
6 deletion
+25
-6
app/controllers/autocomplete_controller.rb
app/controllers/autocomplete_controller.rb
+2
-2
app/models/user.rb
app/models/user.rb
+1
-1
changelogs/unreleased/fix-exact-matches-of-username-and-email-on-top-of-the-user-search.yml
...tches-of-username-and-email-on-top-of-the-user-search.yml
+4
-0
spec/controllers/autocomplete_controller_spec.rb
spec/controllers/autocomplete_controller_spec.rb
+15
-0
spec/models/user_spec.rb
spec/models/user_spec.rb
+3
-3
未找到文件。
app/controllers/autocomplete_controller.rb
浏览文件 @
574b3efd
...
...
@@ -5,10 +5,10 @@ class AutocompleteController < ApplicationController
def
users
@users
||=
User
.
none
@users
=
@users
.
search
(
params
[
:search
])
if
params
[
:search
].
present?
@users
=
@users
.
where
.
not
(
id:
params
[
:skip_users
])
if
params
[
:skip_users
].
present?
@users
=
@users
.
active
@users
=
@users
.
reorder
(
:name
)
@users
=
@users
.
search
(
params
[
:search
])
if
params
[
:search
].
present?
@users
=
@users
.
where
.
not
(
id:
params
[
:skip_users
])
if
params
[
:skip_users
].
present?
@users
=
@users
.
page
(
params
[
:page
]).
per
(
params
[
:per_page
])
if
params
[
:todo_filter
].
present?
&&
current_user
...
...
app/models/user.rb
浏览文件 @
574b3efd
...
...
@@ -314,7 +314,7 @@ class User < ActiveRecord::Base
table
[
:name
].
matches
(
pattern
)
.
or
(
table
[
:email
].
matches
(
pattern
))
.
or
(
table
[
:username
].
matches
(
pattern
))
).
reorder
(
order
%
{
query:
ActiveRecord
::
Base
.
connection
.
quote
(
query
)
},
id: :desc
)
).
reorder
(
order
%
{
query:
ActiveRecord
::
Base
.
connection
.
quote
(
query
)
},
:name
)
end
# searches user by given pattern
...
...
changelogs/unreleased/fix-exact-matches-of-username-and-email-on-top-of-the-user-search.yml
0 → 100644
浏览文件 @
574b3efd
---
title
:
Exact matches of username and email are now on top of the user search
merge_request
:
12868
author
:
spec/controllers/autocomplete_controller_spec.rb
浏览文件 @
574b3efd
...
...
@@ -97,6 +97,21 @@ describe AutocompleteController do
it
{
expect
(
body
.
size
).
to
eq
User
.
count
}
end
context
'user order'
do
it
'shows exact matches first'
do
reported_user
=
create
(
:user
,
username:
'reported_user'
,
name:
'Doug'
)
user
=
create
(
:user
,
username:
'user'
,
name:
'User'
)
user1
=
create
(
:user
,
username:
'user1'
,
name:
'Ian'
)
sign_in
(
user
)
get
(
:users
,
search:
'user'
)
response_usernames
=
JSON
.
parse
(
response
.
body
).
map
{
|
user
|
user
[
'username'
]
}
expect
(
response_usernames
.
take
(
3
)).
to
match_array
([
user
.
username
,
reported_user
.
username
,
user1
.
username
])
end
end
context
'limited users per page'
do
let
(
:per_page
)
{
2
}
...
...
spec/models/user_spec.rb
浏览文件 @
574b3efd
...
...
@@ -763,7 +763,7 @@ describe User, models: true do
end
it
'returns users with a partially matching name'
do
expect
(
described_class
.
search
(
user
.
name
[
0
..
2
])).
to
eq
([
user
2
,
user
])
expect
(
described_class
.
search
(
user
.
name
[
0
..
2
])).
to
eq
([
user
,
user2
])
end
it
'returns users with a matching name regardless of the casing'
do
...
...
@@ -777,7 +777,7 @@ describe User, models: true do
end
it
'returns users with a partially matching Email'
do
expect
(
described_class
.
search
(
user
.
email
[
0
..
2
])).
to
eq
([
user
2
,
user
])
expect
(
described_class
.
search
(
user
.
email
[
0
..
2
])).
to
eq
([
user
,
user2
])
end
it
'returns users with a matching Email regardless of the casing'
do
...
...
@@ -791,7 +791,7 @@ describe User, models: true do
end
it
'returns users with a partially matching username'
do
expect
(
described_class
.
search
(
user
.
username
[
0
..
2
])).
to
eq
([
user
2
,
user
])
expect
(
described_class
.
search
(
user
.
username
[
0
..
2
])).
to
eq
([
user
,
user2
])
end
it
'returns users with a matching username regardless of the casing'
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录