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
ff7419b3
Commit
ff7419b3
authored
Mar 22, 2017
by
Clement Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[skip ci] remove unnecessary ajax request
parent
ea048763
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
80 additions
and
71 deletions
+80
-71
app/assets/javascripts/gl_dropdown.js
app/assets/javascripts/gl_dropdown.js
+3
-1
app/assets/javascripts/users_select.js
app/assets/javascripts/users_select.js
+77
-70
No files found.
app/assets/javascripts/gl_dropdown.js
View file @
ff7419b3
...
...
@@ -255,7 +255,8 @@ GitLabDropdown = (function() {
}
};
// Remote data
})(
this
)
})(
this
),
instance
:
this
,
});
}
}
...
...
@@ -269,6 +270,7 @@ GitLabDropdown = (function() {
remote
:
this
.
options
.
filterRemote
,
query
:
this
.
options
.
data
,
keys
:
searchFields
,
instance
:
this
,
elements
:
(
function
(
_this
)
{
return
function
()
{
selector
=
'
.dropdown-content li:not(
'
+
NON_SELECTABLE_CLASSES
+
'
)
'
;
...
...
app/assets/javascripts/users_select.js
View file @
ff7419b3
...
...
@@ -131,81 +131,82 @@
var
isAuthorFilter
;
isAuthorFilter
=
$
(
'
.js-author-search
'
);
return
_this
.
users
(
term
,
options
,
function
(
users
)
{
var
anyUser
,
index
,
j
,
len
,
name
,
obj
,
showDivider
;
if
(
term
.
length
===
0
)
{
showDivider
=
0
;
if
(
firstUser
)
{
// Move current user to the front of the list
for
(
index
=
j
=
0
,
len
=
users
.
length
;
j
<
len
;
index
=
(
j
+=
1
))
{
obj
=
users
[
index
];
if
(
obj
.
username
===
firstUser
)
{
users
.
splice
(
index
,
1
);
users
.
unshift
(
obj
);
break
;
}
}
}
if
(
showNullUser
)
{
showDivider
+=
1
;
users
.
unshift
({
beforeDivider
:
true
,
name
:
'
Unassigned
'
,
id
:
0
});
}
if
(
showAnyUser
)
{
showDivider
+=
1
;
name
=
showAnyUser
;
if
(
name
===
true
)
{
name
=
'
Any User
'
;
const
glDropdown
=
this
.
instance
||
this
.
options
.
instance
;
glDropdown
.
options
.
processData
(
term
,
users
,
callback
);
}.
bind
(
this
));
},
processData
:
function
(
term
,
users
,
callback
)
{
var
anyUser
,
index
,
j
,
len
,
name
,
obj
,
showDivider
;
if
(
term
.
length
===
0
)
{
showDivider
=
0
;
if
(
firstUser
)
{
// Move current user to the front of the list
for
(
index
=
j
=
0
,
len
=
users
.
length
;
j
<
len
;
index
=
(
j
+=
1
))
{
obj
=
users
[
index
];
if
(
obj
.
username
===
firstUser
)
{
users
.
splice
(
index
,
1
);
users
.
unshift
(
obj
);
break
;
}
anyUser
=
{
beforeDivider
:
true
,
name
:
name
,
id
:
null
};
users
.
unshift
(
anyUser
);
}
if
(
showDivider
)
{
users
.
splice
(
showDivider
,
0
,
"
divider
"
);
}
if
(
showNullUser
)
{
showDivider
+=
1
;
users
.
unshift
({
beforeDivider
:
true
,
name
:
'
Unassigned
'
,
id
:
0
});
}
if
(
showAnyUser
)
{
showDivider
+=
1
;
name
=
showAnyUser
;
if
(
name
===
true
)
{
name
=
'
Any User
'
;
}
anyUser
=
{
beforeDivider
:
true
,
name
:
name
,
id
:
null
};
users
.
unshift
(
anyUser
);
}
if
(
showDivider
)
{
users
.
splice
(
showDivider
,
0
,
"
divider
"
);
}
if
(
$dropdown
.
hasClass
(
'
js-multiselect
'
))
{
const
selected
=
$selectbox
.
find
(
'
input[name="
'
+
$dropdown
.
data
(
'
field-name
'
)
+
'
"]
'
)
.
map
(
function
()
{
return
parseInt
(
this
.
value
,
10
);
})
.
get
()
.
filter
((
i
)
=>
i
!==
0
);
// const unassignedSelected = selected.length === 1 && selected[0] === 0;
// && !unassignedSelected
if
(
selected
.
length
>
0
)
{
const
selectedUsers
=
users
.
filter
((
u
)
=>
selected
.
indexOf
(
u
.
id
)
!==
-
1
)
.
sort
((
a
,
b
)
=>
a
.
name
>
b
.
name
);
users
=
users
.
filter
((
u
)
=>
selected
.
indexOf
(
u
.
id
)
===
-
1
);
selectedUsers
.
forEach
((
selectedUser
)
=>
{
showDivider
+=
1
;
users
.
splice
(
showDivider
,
0
,
selectedUser
);
});
if
(
$dropdown
.
hasClass
(
'
js-multiselect
'
))
{
const
selected
=
$selectbox
.
find
(
'
input[name="
'
+
$dropdown
.
data
(
'
field-name
'
)
+
'
"]
'
)
.
map
(
function
()
{
return
parseInt
(
this
.
value
,
10
);
})
.
get
()
.
filter
((
i
)
=>
i
!==
0
);
if
(
selected
.
length
>
0
)
{
const
selectedUsers
=
users
.
filter
((
u
)
=>
selected
.
indexOf
(
u
.
id
)
!==
-
1
)
.
sort
((
a
,
b
)
=>
a
.
name
>
b
.
name
);
users
=
users
.
filter
((
u
)
=>
selected
.
indexOf
(
u
.
id
)
===
-
1
);
selectedUsers
.
forEach
((
selectedUser
)
=>
{
showDivider
+=
1
;
users
.
splice
(
showDivider
,
0
,
selectedUser
);
});
users
.
splice
(
showDivider
+
1
,
0
,
'
divider
'
);
}
users
.
splice
(
showDivider
+
1
,
0
,
'
divider
'
);
}
}
callback
(
users
);
if
(
showMenuAbove
)
{
$dropdown
.
data
(
'
glDropdown
'
).
positionMenuAbove
();
}
});
}
callback
(
users
);
if
(
showMenuAbove
)
{
$dropdown
.
data
(
'
glDropdown
'
).
positionMenuAbove
();
}
},
filterable
:
true
,
filterRemote
:
true
,
...
...
@@ -216,10 +217,16 @@
fieldName
:
$dropdown
.
data
(
'
field-name
'
),
toggleLabel
:
function
(
selected
,
el
,
glDropdown
)
{
if
(
this
.
multiSelect
)
{
// debugger
const
inputValue
=
glDropdown
.
filterInput
.
val
();
const
users
=
glDropdown
.
fullData
.
filter
((
r
)
=>
{
return
typeof
r
===
'
object
'
&&
!
Object
.
prototype
.
hasOwnProperty
.
call
(
r
,
'
beforeDivider
'
);
});
const
callback
=
glDropdown
.
parseData
.
bind
(
glDropdown
);
// Update the data model
// debugger
this
.
data
(
glDropdown
.
filterInput
.
val
(),
glDropdown
.
parseData
.
bind
(
glDropdown
));
this
.
processData
(
inputValue
,
users
,
callback
);
}
if
(
selected
&&
'
id
'
in
selected
&&
$
(
el
).
hasClass
(
'
is-active
'
))
{
...
...
@@ -309,7 +316,7 @@
}
updateIssueBoardsIssue
();
}
else
{
}
else
if
(
!
$dropdown
.
hasClass
(
'
js-multiselect
'
))
{
selected
=
$dropdown
.
closest
(
'
.selectbox
'
).
find
(
"
input[name='
"
+
(
$dropdown
.
data
(
'
field-name
'
))
+
"
']
"
).
val
();
return
assignTo
(
selected
);
}
...
...
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