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
0
Merge Requests
0
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
Jérome Perrin
gitlab-ce
Commits
35c8fd55
Commit
35c8fd55
authored
7 years ago
by
Jacob Schatz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update to jQuery 3.
parent
86c9c93d
Changes
74
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
74 changed files
with
1106 additions
and
238 deletions
+1106
-238
app/assets/javascripts/awards_handler.js
app/assets/javascripts/awards_handler.js
+1
-1
app/assets/javascripts/behaviors/copy_to_clipboard.js
app/assets/javascripts/behaviors/copy_to_clipboard.js
+1
-1
app/assets/javascripts/behaviors/quick_submit.js
app/assets/javascripts/behaviors/quick_submit.js
+1
-1
app/assets/javascripts/behaviors/requires_input.js
app/assets/javascripts/behaviors/requires_input.js
+1
-1
app/assets/javascripts/blob_edit/blob_bundle.js
app/assets/javascripts/blob_edit/blob_bundle.js
+4
-4
app/assets/javascripts/blob_edit/edit_blob.js
app/assets/javascripts/blob_edit/edit_blob.js
+1
-1
app/assets/javascripts/boards/components/new_list_dropdown.js
...assets/javascripts/boards/components/new_list_dropdown.js
+1
-1
app/assets/javascripts/commons/bootstrap.js
app/assets/javascripts/commons/bootstrap.js
+2
-2
app/assets/javascripts/compare.js
app/assets/javascripts/compare.js
+1
-1
app/assets/javascripts/compare_autocomplete.js
app/assets/javascripts/compare_autocomplete.js
+2
-2
app/assets/javascripts/diff.js
app/assets/javascripts/diff.js
+2
-2
app/assets/javascripts/due_date_select.js
app/assets/javascripts/due_date_select.js
+3
-3
app/assets/javascripts/files_comment_button.js
app/assets/javascripts/files_comment_button.js
+1
-1
app/assets/javascripts/gl_dropdown.js
app/assets/javascripts/gl_dropdown.js
+1
-1
app/assets/javascripts/gl_form.js
app/assets/javascripts/gl_form.js
+2
-2
app/assets/javascripts/gpg_badges.js
app/assets/javascripts/gpg_badges.js
+1
-1
app/assets/javascripts/groups_select.js
app/assets/javascripts/groups_select.js
+2
-2
app/assets/javascripts/integrations/integration_settings_form.js
...ets/javascripts/integrations/integration_settings_form.js
+2
-2
app/assets/javascripts/issue_show/components/description.vue
app/assets/javascripts/issue_show/components/description.vue
+1
-0
app/assets/javascripts/issue_status_select.js
app/assets/javascripts/issue_status_select.js
+1
-1
app/assets/javascripts/labels_select.js
app/assets/javascripts/labels_select.js
+9
-9
app/assets/javascripts/layout_nav.js
app/assets/javascripts/layout_nav.js
+1
-1
app/assets/javascripts/lib/utils/text_markdown.js
app/assets/javascripts/lib/utils/text_markdown.js
+1
-1
app/assets/javascripts/line_highlighter.js
app/assets/javascripts/line_highlighter.js
+1
-1
app/assets/javascripts/main.js
app/assets/javascripts/main.js
+1
-1
app/assets/javascripts/members.js
app/assets/javascripts/members.js
+2
-2
app/assets/javascripts/merge_request_tabs.js
app/assets/javascripts/merge_request_tabs.js
+1
-1
app/assets/javascripts/milestone_select.js
app/assets/javascripts/milestone_select.js
+12
-12
app/assets/javascripts/notes.js
app/assets/javascripts/notes.js
+17
-17
app/assets/javascripts/notifications_dropdown.js
app/assets/javascripts/notifications_dropdown.js
+2
-2
app/assets/javascripts/pager.js
app/assets/javascripts/pager.js
+1
-1
app/assets/javascripts/pages/admin/abuse_reports/abuse_reports.js
...ts/javascripts/pages/admin/abuse_reports/abuse_reports.js
+6
-6
app/assets/javascripts/pages/admin/admin.js
app/assets/javascripts/pages/admin/admin.js
+2
-2
app/assets/javascripts/pages/admin/broadcast_messages/broadcast_message.js
...ripts/pages/admin/broadcast_messages/broadcast_message.js
+1
-1
app/assets/javascripts/pages/projects/project.js
app/assets/javascripts/pages/projects/project.js
+3
-3
app/assets/javascripts/pages/search/show/search.js
app/assets/javascripts/pages/search/show/search.js
+3
-3
app/assets/javascripts/project_select.js
app/assets/javascripts/project_select.js
+7
-7
app/assets/javascripts/prometheus_metrics/prometheus_metrics.js
...sets/javascripts/prometheus_metrics/prometheus_metrics.js
+1
-1
app/assets/javascripts/protected_branches/protected_branch_access_dropdown.js
...ts/protected_branches/protected_branch_access_dropdown.js
+2
-2
app/assets/javascripts/protected_branches/protected_branch_create.js
...javascripts/protected_branches/protected_branch_create.js
+1
-1
app/assets/javascripts/protected_branches/protected_branch_edit.js
...s/javascripts/protected_branches/protected_branch_edit.js
+2
-2
app/assets/javascripts/protected_tags/protected_tag_access_dropdown.js
...vascripts/protected_tags/protected_tag_access_dropdown.js
+2
-2
app/assets/javascripts/protected_tags/protected_tag_create.js
...assets/javascripts/protected_tags/protected_tag_create.js
+1
-1
app/assets/javascripts/protected_tags/protected_tag_edit.js
app/assets/javascripts/protected_tags/protected_tag_edit.js
+1
-1
app/assets/javascripts/ref_select_dropdown.js
app/assets/javascripts/ref_select_dropdown.js
+2
-2
app/assets/javascripts/right_sidebar.js
app/assets/javascripts/right_sidebar.js
+7
-7
app/assets/javascripts/search_autocomplete.js
app/assets/javascripts/search_autocomplete.js
+12
-12
app/assets/javascripts/sidebar/lib/sidebar_move_issue.js
app/assets/javascripts/sidebar/lib/sidebar_move_issue.js
+1
-1
app/assets/javascripts/single_file_diff.js
app/assets/javascripts/single_file_diff.js
+1
-1
app/assets/javascripts/star.js
app/assets/javascripts/star.js
+12
-13
app/assets/javascripts/subscription_select.js
app/assets/javascripts/subscription_select.js
+1
-1
app/assets/javascripts/task_list.js
app/assets/javascripts/task_list.js
+1
-1
app/assets/javascripts/templates/issuable_template_selector.js
...ssets/javascripts/templates/issuable_template_selector.js
+3
-3
app/assets/javascripts/user_callout.js
app/assets/javascripts/user_callout.js
+1
-1
app/assets/javascripts/users_select.js
app/assets/javascripts/users_select.js
+42
-42
app/assets/javascripts/vue_shared/components/markdown/field.vue
...sets/javascripts/vue_shared/components/markdown/field.vue
+1
-1
app/views/projects/buttons/_star.html.haml
app/views/projects/buttons/_star.html.haml
+1
-1
package.json
package.json
+1
-1
spec/features/projects/members/share_with_group_spec.rb
spec/features/projects/members/share_with_group_spec.rb
+5
-0
spec/javascripts/ajax_loading_spinner_spec.js
spec/javascripts/ajax_loading_spinner_spec.js
+0
-2
spec/javascripts/awards_handler_spec.js
spec/javascripts/awards_handler_spec.js
+6
-6
spec/javascripts/behaviors/requires_input_spec.js
spec/javascripts/behaviors/requires_input_spec.js
+1
-1
spec/javascripts/feature_highlight/feature_highlight_spec.js
spec/javascripts/feature_highlight/feature_highlight_spec.js
+23
-12
spec/javascripts/gl_dropdown_spec.js
spec/javascripts/gl_dropdown_spec.js
+2
-2
spec/javascripts/merge_request_notes_spec.js
spec/javascripts/merge_request_notes_spec.js
+2
-2
spec/javascripts/pages/admin/abuse_reports/abuse_reports_spec.js
...vascripts/pages/admin/abuse_reports/abuse_reports_spec.js
+3
-3
spec/javascripts/projects/project_new_spec.js
spec/javascripts/projects/project_new_spec.js
+2
-2
spec/javascripts/sidebar/sidebar_move_issue_spec.js
spec/javascripts/sidebar/sidebar_move_issue_spec.js
+3
-3
spec/javascripts/test_bundle.js
spec/javascripts/test_bundle.js
+4
-1
vendor/assets/javascripts/jasmine-jquery.js
vendor/assets/javascripts/jasmine-jquery.js
+851
-0
vendor/assets/javascripts/jquery.atwho.js
vendor/assets/javascripts/jquery.atwho.js
+2
-2
vendor/assets/javascripts/jquery.endless-scroll.js
vendor/assets/javascripts/jquery.endless-scroll.js
+1
-1
vendor/assets/javascripts/peek.js
vendor/assets/javascripts/peek.js
+1
-1
yarn.lock
yarn.lock
+3
-3
No files found.
app/assets/javascripts/awards_handler.js
View file @
35c8fd55
...
...
@@ -312,7 +312,7 @@ class AwardsHandler {
}
getAwardUrl
()
{
return
this
.
getVotesBlock
().
data
(
'
award
-u
rl
'
);
return
this
.
getVotesBlock
().
data
(
'
award
U
rl
'
);
}
checkMutuality
(
votesBlock
,
emoji
)
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/behaviors/copy_to_clipboard.js
View file @
35c8fd55
...
...
@@ -2,7 +2,7 @@ import Clipboard from 'clipboard';
function
showTooltip
(
target
,
title
)
{
const
$target
=
$
(
target
);
const
originalTitle
=
$target
.
data
(
'
original
-t
itle
'
);
const
originalTitle
=
$target
.
data
(
'
original
T
itle
'
);
if
(
!
$target
.
data
(
'
hideTooltip
'
))
{
$target
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/behaviors/quick_submit.js
View file @
35c8fd55
...
...
@@ -43,7 +43,7 @@ $(document).on('keydown.quick_submit', '.js-quick-submit', (e) => {
const
$form
=
$
(
e
.
target
).
closest
(
'
form
'
);
const
$submitButton
=
$form
.
find
(
'
input[type=submit], button[type=submit]
'
).
first
();
if
(
!
$submitButton
.
attr
(
'
disabled
'
))
{
if
(
!
$submitButton
.
prop
(
'
disabled
'
))
{
$submitButton
.
trigger
(
'
click
'
,
[
e
]);
if
(
!
isInIssuePage
())
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/behaviors/requires_input.js
View file @
35c8fd55
...
...
@@ -40,7 +40,7 @@ $.fn.requiresInput = function requiresInput() {
// based on the option selected
function
hideOrShowHelpBlock
(
form
)
{
const
selected
=
$
(
'
.js-select-namespace option:selected
'
);
if
(
selected
.
length
&&
selected
.
data
(
'
options
-p
arent
'
)
===
'
groups
'
)
{
if
(
selected
.
length
&&
selected
.
data
(
'
options
P
arent
'
)
===
'
groups
'
)
{
form
.
find
(
'
.help-block
'
).
hide
();
}
else
if
(
selected
.
length
)
{
form
.
find
(
'
.help-block
'
).
show
();
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/blob_edit/blob_bundle.js
View file @
35c8fd55
...
...
@@ -10,10 +10,10 @@ $(() => {
const
deleteBlobForm
=
$
(
'
.js-delete-blob-form
'
);
if
(
editBlobForm
.
length
)
{
const
urlRoot
=
editBlobForm
.
data
(
'
relative
-url-r
oot
'
);
const
assetsPath
=
editBlobForm
.
data
(
'
assets
-p
refix
'
);
const
blobLanguage
=
editBlobForm
.
data
(
'
blob
-l
anguage
'
);
const
currentAction
=
$
(
'
.js-file-title
'
).
data
(
'
current
-a
ction
'
);
const
urlRoot
=
editBlobForm
.
data
(
'
relative
UrlR
oot
'
);
const
assetsPath
=
editBlobForm
.
data
(
'
assets
P
refix
'
);
const
blobLanguage
=
editBlobForm
.
data
(
'
blob
L
anguage
'
);
const
currentAction
=
$
(
'
.js-file-title
'
).
data
(
'
current
A
ction
'
);
new
EditBlob
(
`
${
urlRoot
}${
assetsPath
}
`
,
blobLanguage
,
currentAction
);
new
NewCommitForm
(
editBlobForm
);
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/blob_edit/edit_blob.js
View file @
35c8fd55
...
...
@@ -59,7 +59,7 @@ export default class EditBlob {
if
(
paneId
===
'
#preview
'
)
{
this
.
$toggleButton
.
hide
();
axios
.
post
(
currentLink
.
data
(
'
preview
-u
rl
'
),
{
axios
.
post
(
currentLink
.
data
(
'
preview
U
rl
'
),
{
content
:
this
.
editor
.
getValue
(),
})
.
then
(({
data
})
=>
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/boards/components/new_list_dropdown.js
View file @
35c8fd55
...
...
@@ -25,7 +25,7 @@ $(document).off('created.label').on('created.label', (e, label) => {
gl
.
issueBoards
.
newListDropdownInit
=
()
=>
{
$
(
'
.js-new-board-list
'
).
each
(
function
()
{
const
$this
=
$
(
this
);
new
CreateLabelDropdown
(
$this
.
closest
(
'
.dropdown
'
).
find
(
'
.dropdown-new-label
'
),
$this
.
data
(
'
namespace
-path
'
),
$this
.
data
(
'
project-p
ath
'
));
new
CreateLabelDropdown
(
$this
.
closest
(
'
.dropdown
'
).
find
(
'
.dropdown-new-label
'
),
$this
.
data
(
'
namespace
Path
'
),
$this
.
data
(
'
projectP
ath
'
));
$this
.
glDropdown
({
data
(
term
,
callback
)
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/commons/bootstrap.js
View file @
35c8fd55
...
...
@@ -13,6 +13,6 @@ import 'bootstrap-sass/assets/javascripts/bootstrap/popover';
// custom jQuery functions
$
.
fn
.
extend
({
disable
()
{
return
$
(
this
).
attr
(
'
disabled
'
,
'
disabled
'
).
addClass
(
'
disabled
'
);
},
enable
()
{
return
$
(
this
).
removeAttr
(
'
disabled
'
).
removeClass
(
'
disabled
'
);
},
disable
()
{
return
$
(
this
).
prop
(
'
disabled
'
,
true
).
addClass
(
'
disabled
'
);
},
enable
()
{
return
$
(
this
).
prop
(
'
disabled
'
,
false
).
removeClass
(
'
disabled
'
);
},
});
This diff is collapsed.
Click to expand it.
app/assets/javascripts/compare.js
View file @
35c8fd55
...
...
@@ -13,7 +13,7 @@ export default class Compare {
$dropdown
=
$
(
dropdown
);
return
$dropdown
.
glDropdown
({
selectable
:
true
,
fieldName
:
$dropdown
.
data
(
'
field
-n
ame
'
),
fieldName
:
$dropdown
.
data
(
'
field
N
ame
'
),
filterable
:
true
,
id
:
function
(
obj
,
$el
)
{
return
$el
.
data
(
'
id
'
);
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/compare_autocomplete.js
View file @
35c8fd55
...
...
@@ -9,7 +9,7 @@ export default function initCompareAutocomplete() {
$dropdown
=
$
(
this
);
selected
=
$dropdown
.
data
(
'
selected
'
);
const
$dropdownContainer
=
$dropdown
.
closest
(
'
.dropdown
'
);
const
$fieldInput
=
$
(
`input[name="
${
$dropdown
.
data
(
'
field
-n
ame
'
)}
"]`
,
$dropdownContainer
);
const
$fieldInput
=
$
(
`input[name="
${
$dropdown
.
data
(
'
field
N
ame
'
)}
"]`
,
$dropdownContainer
);
const
$filterInput
=
$
(
'
input[type="search"]
'
,
$dropdownContainer
);
$dropdown
.
glDropdown
({
data
:
function
(
term
,
callback
)
{
...
...
@@ -25,7 +25,7 @@ export default function initCompareAutocomplete() {
selectable
:
true
,
filterable
:
true
,
filterRemote
:
true
,
fieldName
:
$dropdown
.
data
(
'
field
-n
ame
'
),
fieldName
:
$dropdown
.
data
(
'
field
N
ame
'
),
filterInput
:
'
input[type="search"]
'
,
renderRow
:
function
(
ref
)
{
var
link
;
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/diff.js
View file @
35c8fd55
...
...
@@ -68,7 +68,7 @@ export default class Diff {
}
const
file
=
$target
.
parents
(
'
.diff-file
'
);
const
link
=
file
.
data
(
'
blob
-diff-p
ath
'
);
const
link
=
file
.
data
(
'
blob
DiffP
ath
'
);
const
view
=
file
.
data
(
'
view
'
);
const
params
=
{
since
,
to
,
bottom
,
offset
,
unfold
,
view
};
...
...
@@ -121,7 +121,7 @@ export default class Diff {
}
// eslint-disable-next-line class-methods-use-this
diffViewType
()
{
return
$
(
'
.inline-parallel-buttons a.active
'
).
data
(
'
view
-t
ype
'
);
return
$
(
'
.inline-parallel-buttons a.active
'
).
data
(
'
view
T
ype
'
);
}
// eslint-disable-next-line class-methods-use-this
lineNumbers
(
line
)
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/due_date_select.js
View file @
35c8fd55
...
...
@@ -17,9 +17,9 @@ class DueDateSelect {
this
.
$value
=
$block
.
find
(
'
.value
'
);
this
.
$valueContent
=
$block
.
find
(
'
.value-content
'
);
this
.
$sidebarValue
=
$
(
'
.js-due-date-sidebar-value
'
,
$block
);
this
.
fieldName
=
$dropdown
.
data
(
'
field
-n
ame
'
);
this
.
abilityName
=
$dropdown
.
data
(
'
ability
-n
ame
'
);
this
.
issueUpdateURL
=
$dropdown
.
data
(
'
issue
-u
pdate
'
);
this
.
fieldName
=
$dropdown
.
data
(
'
field
N
ame
'
);
this
.
abilityName
=
$dropdown
.
data
(
'
ability
N
ame
'
);
this
.
issueUpdateURL
=
$dropdown
.
data
(
'
issue
U
pdate
'
);
this
.
rawSelectedDate
=
null
;
this
.
displayedDate
=
null
;
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/files_comment_button.js
View file @
35c8fd55
...
...
@@ -25,7 +25,7 @@ export default {
if
(
!
this
.
userCanCreateNote
)
{
// data-can-create-note is an empty string when true, otherwise undefined
this
.
userCanCreateNote
=
$diffFile
.
closest
(
DIFF_CONTAINER_SELECTOR
).
data
(
'
can
-create-n
ote
'
)
===
''
;
this
.
userCanCreateNote
=
$diffFile
.
closest
(
DIFF_CONTAINER_SELECTOR
).
data
(
'
can
CreateN
ote
'
)
===
''
;
}
this
.
isParallelView
=
Cookies
.
get
(
'
diff_view
'
)
===
'
parallel
'
;
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/gl_dropdown.js
View file @
35c8fd55
...
...
@@ -485,7 +485,7 @@ GitLabDropdown = (function() {
$target
=
$
(
e
.
target
);
if
(
$target
&&
!
$target
.
hasClass
(
'
dropdown-menu-close
'
)
&&
!
$target
.
hasClass
(
'
dropdown-menu-close-icon
'
)
&&
!
$target
.
data
(
'
is
-l
ink
'
))
{
!
$target
.
data
(
'
is
L
ink
'
))
{
e
.
stopPropagation
();
return
false
;
}
else
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/gl_form.js
View file @
35c8fd55
...
...
@@ -12,7 +12,7 @@ export default class GLForm {
this
.
destroy
();
// Setup the form
this
.
setupForm
();
this
.
form
.
data
(
'
gl
-f
orm
'
,
this
);
this
.
form
.
data
(
'
gl
F
orm
'
,
this
);
}
destroy
()
{
...
...
@@ -21,7 +21,7 @@ export default class GLForm {
if
(
this
.
autoComplete
)
{
this
.
autoComplete
.
destroy
();
}
this
.
form
.
data
(
'
gl
-f
orm
'
,
null
);
this
.
form
.
data
(
'
gl
F
orm
'
,
null
);
}
setupForm
()
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/gpg_badges.js
View file @
35c8fd55
...
...
@@ -11,7 +11,7 @@ export default class GpgBadges {
badges
.
html
(
'
<i class="fa fa-spinner fa-spin"></i>
'
);
const
params
=
parseQueryStringIntoObject
(
form
.
serialize
());
return
axios
.
get
(
form
.
data
(
'
signatures
-p
ath
'
),
{
params
})
return
axios
.
get
(
form
.
data
(
'
signatures
P
ath
'
),
{
params
})
.
then
(({
data
})
=>
{
data
.
signatures
.
forEach
((
signature
)
=>
{
badges
.
filter
(
`[data-commit-sha="
${
signature
.
commit_sha
}
"]`
).
replaceWith
(
signature
.
html
);
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/groups_select.js
View file @
35c8fd55
...
...
@@ -7,8 +7,8 @@ export default function groupsSelect() {
window
.
GROUP_SELECT_PER_PAGE
=
20
;
$
(
'
.ajax-groups-select
'
).
each
(
function
setAjaxGroupsSelect2
()
{
const
$select
=
$
(
this
);
const
allAvailable
=
$select
.
data
(
'
all
-a
vailable
'
);
const
skipGroups
=
$select
.
data
(
'
skip
-g
roups
'
)
||
[];
const
allAvailable
=
$select
.
data
(
'
all
A
vailable
'
);
const
skipGroups
=
$select
.
data
(
'
skip
G
roups
'
)
||
[];
$select
.
select2
({
placeholder
:
'
Search for a group
'
,
multiple
:
$select
.
hasClass
(
'
multiselect
'
),
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/integrations/integration_settings_form.js
View file @
35c8fd55
...
...
@@ -6,8 +6,8 @@ export default class IntegrationSettingsForm {
this
.
$form
=
$
(
formSelector
);
// Form Metadata
this
.
canTestService
=
this
.
$form
.
data
(
'
can
-t
est
'
);
this
.
testEndPoint
=
this
.
$form
.
data
(
'
test
-u
rl
'
);
this
.
canTestService
=
this
.
$form
.
data
(
'
can
T
est
'
);
this
.
testEndPoint
=
this
.
$form
.
data
(
'
test
U
rl
'
);
// Form Child Elements
this
.
$serviceToggle
=
this
.
$form
.
find
(
'
#service_active
'
);
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/issue_show/components/description.vue
View file @
35c8fd55
...
...
@@ -78,6 +78,7 @@
taskListUpdateSuccess
(
data
)
{
try
{
this
.
checkForSpam
(
data
);
this
.
closeRecaptcha
();
}
catch
(
error
)
{
if
(
error
&&
error
.
name
===
'
SpamError
'
)
this
.
openRecaptcha
();
}
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/issue_status_select.js
View file @
35c8fd55
export
default
function
issueStatusSelect
()
{
$
(
'
.js-issue-status
'
).
each
((
i
,
el
)
=>
{
const
fieldName
=
$
(
el
).
data
(
'
field
-n
ame
'
);
const
fieldName
=
$
(
el
).
data
(
'
field
N
ame
'
);
return
$
(
el
).
glDropdown
({
selectable
:
true
,
fieldName
,
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/labels_select.js
View file @
35c8fd55
...
...
@@ -25,19 +25,19 @@ export default class LabelsSelect {
$dropdown
=
$
(
dropdown
);
$dropdownContainer
=
$dropdown
.
closest
(
'
.labels-filter
'
);
$toggleText
=
$dropdown
.
find
(
'
.dropdown-toggle-text
'
);
namespacePath
=
$dropdown
.
data
(
'
namespace
-p
ath
'
);
projectPath
=
$dropdown
.
data
(
'
project
-p
ath
'
);
namespacePath
=
$dropdown
.
data
(
'
namespace
P
ath
'
);
projectPath
=
$dropdown
.
data
(
'
project
P
ath
'
);
labelUrl
=
$dropdown
.
data
(
'
labels
'
);
issueUpdateURL
=
$dropdown
.
data
(
'
issueUpdate
'
);
selectedLabel
=
$dropdown
.
data
(
'
selected
'
);
if
((
selectedLabel
!=
null
)
&&
!
$dropdown
.
hasClass
(
'
js-multiselect
'
))
{
selectedLabel
=
selectedLabel
.
split
(
'
,
'
);
}
showNo
=
$dropdown
.
data
(
'
show
-n
o
'
);
showAny
=
$dropdown
.
data
(
'
show
-a
ny
'
);
showNo
=
$dropdown
.
data
(
'
show
N
o
'
);
showAny
=
$dropdown
.
data
(
'
show
A
ny
'
);
showMenuAbove
=
$dropdown
.
data
(
'
showMenuAbove
'
);
defaultLabel
=
$dropdown
.
data
(
'
default
-l
abel
'
);
abilityName
=
$dropdown
.
data
(
'
ability
-n
ame
'
);
defaultLabel
=
$dropdown
.
data
(
'
default
L
abel
'
);
abilityName
=
$dropdown
.
data
(
'
ability
N
ame
'
);
$selectbox
=
$dropdown
.
closest
(
'
.selectbox
'
);
$block
=
$selectbox
.
closest
(
'
.block
'
);
$form
=
$dropdown
.
closest
(
'
form, .js-issuable-update
'
);
...
...
@@ -45,11 +45,11 @@ export default class LabelsSelect {
$sidebarLabelTooltip
=
$block
.
find
(
'
.js-sidebar-labels-tooltip
'
);
$value
=
$block
.
find
(
'
.value
'
);
$loading
=
$block
.
find
(
'
.block-loading
'
).
fadeOut
();
fieldName
=
$dropdown
.
data
(
'
field
-n
ame
'
);
fieldName
=
$dropdown
.
data
(
'
field
N
ame
'
);
useId
=
$dropdown
.
is
(
'
.js-issuable-form-dropdown, .js-filter-bulk-update, .js-label-sidebar-dropdown
'
);
propertyName
=
useId
?
'
id
'
:
'
title
'
;
initialSelected
=
$selectbox
.
find
(
'
input[name="
'
+
$dropdown
.
data
(
'
field
-n
ame
'
)
+
'
"]
'
)
.
find
(
'
input[name="
'
+
$dropdown
.
data
(
'
field
N
ame
'
)
+
'
"]
'
)
.
map
(
function
()
{
return
this
.
value
;
}).
get
();
...
...
@@ -268,7 +268,7 @@ export default class LabelsSelect {
return
defaultLabel
;
}
},
fieldName
:
$dropdown
.
data
(
'
field
-n
ame
'
),
fieldName
:
$dropdown
.
data
(
'
field
N
ame
'
),
id
:
function
(
label
)
{
if
(
label
.
id
<=
0
)
return
label
.
title
;
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/layout_nav.js
View file @
35c8fd55
...
...
@@ -4,7 +4,7 @@ import initFlyOutNav from './fly_out_nav';
function
hideEndFade
(
$scrollingTabs
)
{
$scrollingTabs
.
each
(
function
scrollTabsLoop
()
{
const
$this
=
$
(
this
);
$this
.
siblings
(
'
.fade-right
'
).
toggleClass
(
'
scrolling
'
,
$this
.
width
(
)
<
$this
.
prop
(
'
scrollWidth
'
));
$this
.
siblings
(
'
.fade-right
'
).
toggleClass
(
'
scrolling
'
,
Math
.
round
(
$this
.
width
()
)
<
$this
.
prop
(
'
scrollWidth
'
));
});
}
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/lib/utils/text_markdown.js
View file @
35c8fd55
...
...
@@ -138,7 +138,7 @@ textUtils.init = function(form) {
return
$
(
'
.js-md
'
,
form
).
off
(
'
click
'
).
on
(
'
click
'
,
function
()
{
var
$this
;
$this
=
$
(
this
);
return
self
.
updateText
(
$this
.
closest
(
'
.md-area
'
).
find
(
'
textarea
'
),
$this
.
data
(
'
md
-tag
'
),
$this
.
data
(
'
md-block
'
),
!
$this
.
data
(
'
md-p
repend
'
));
return
self
.
updateText
(
$this
.
closest
(
'
.md-area
'
).
find
(
'
textarea
'
),
$this
.
data
(
'
md
Tag
'
),
$this
.
data
(
'
mdBlock
'
),
!
$this
.
data
(
'
mdP
repend
'
));
});
};
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/line_highlighter.js
View file @
35c8fd55
...
...
@@ -83,7 +83,7 @@ LineHighlighter.prototype.clickHandler = function(event) {
var
current
,
lineNumber
,
range
;
event
.
preventDefault
();
this
.
clearHighlight
();
lineNumber
=
$
(
event
.
target
).
closest
(
'
a
'
).
data
(
'
line
-n
umber
'
);
lineNumber
=
$
(
event
.
target
).
closest
(
'
a
'
).
data
(
'
line
N
umber
'
);
current
=
this
.
hashToRange
(
this
.
_hash
);
if
(
!
(
current
[
0
]
&&
event
.
shiftKey
))
{
// If there's no current selection, or there is but Shift wasn't held,
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/main.js
View file @
35c8fd55
...
...
@@ -220,7 +220,7 @@ $(() => {
$document
.
on
(
'
click
'
,
'
.js-confirm-danger
'
,
(
e
)
=>
{
const
btn
=
$
(
e
.
target
);
const
form
=
btn
.
closest
(
'
form
'
);
const
text
=
btn
.
data
(
'
confirm
-danger-m
essage
'
);
const
text
=
btn
.
data
(
'
confirm
DangerM
essage
'
);
e
.
preventDefault
();
// eslint-disable-next-line no-new
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/members.js
View file @
35c8fd55
...
...
@@ -19,7 +19,7 @@ export default class Members {
isSelectable
(
selected
,
$el
)
{
return
!
$el
.
hasClass
(
'
is-active
'
);
},
fieldName
:
$btn
.
data
(
'
field
-n
ame
'
),
fieldName
:
$btn
.
data
(
'
field
N
ame
'
),
id
(
selected
,
$el
)
{
return
$el
.
data
(
'
id
'
);
},
...
...
@@ -51,7 +51,7 @@ export default class Members {
}
// eslint-disable-next-line class-methods-use-this
getMemberListItems
(
$el
)
{
const
$memberListItem
=
$el
.
is
(
'
.member
'
)
?
$el
:
$
(
`#
${
$el
.
data
(
'
el
-i
d
'
)}
`
);
const
$memberListItem
=
$el
.
is
(
'
.member
'
)
?
$el
:
$
(
`#
${
$el
.
data
(
'
el
I
d
'
)}
`
);
return
{
$memberListItem
,
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/merge_request_tabs.js
View file @
35c8fd55
...
...
@@ -361,7 +361,7 @@ export default class MergeRequestTabs {
}
diffViewType
()
{
return
$
(
'
.inline-parallel-buttons a.active
'
).
data
(
'
view
-t
ype
'
);
return
$
(
'
.inline-parallel-buttons a.active
'
).
data
(
'
view
T
ype
'
);
}
isDiffAction
(
action
)
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/milestone_select.js
View file @
35c8fd55
...
...
@@ -24,19 +24,19 @@ export default class MilestoneSelect {
$els
.
each
((
i
,
dropdown
)
=>
{
let
collapsedSidebarLabelTemplate
,
milestoneLinkNoneTemplate
,
milestoneLinkTemplate
,
selectedMilestone
,
selectedMilestoneDefault
;
const
$dropdown
=
$
(
dropdown
);
const
projectId
=
$dropdown
.
data
(
'
project
-i
d
'
);
const
projectId
=
$dropdown
.
data
(
'
project
I
d
'
);
const
milestonesUrl
=
$dropdown
.
data
(
'
milestones
'
);
const
issueUpdateURL
=
$dropdown
.
data
(
'
issueUpdate
'
);
const
showNo
=
$dropdown
.
data
(
'
show
-n
o
'
);
const
showAny
=
$dropdown
.
data
(
'
show
-a
ny
'
);
const
showNo
=
$dropdown
.
data
(
'
show
N
o
'
);
const
showAny
=
$dropdown
.
data
(
'
show
A
ny
'
);
const
showMenuAbove
=
$dropdown
.
data
(
'
showMenuAbove
'
);
const
showUpcoming
=
$dropdown
.
data
(
'
show
-u
pcoming
'
);
const
showStarted
=
$dropdown
.
data
(
'
show
-s
tarted
'
);
const
useId
=
$dropdown
.
data
(
'
use
-i
d
'
);
const
defaultLabel
=
$dropdown
.
data
(
'
default
-l
abel
'
);
const
defaultNo
=
$dropdown
.
data
(
'
default
-n
o
'
);
const
issuableId
=
$dropdown
.
data
(
'
issuable
-i
d
'
);
const
abilityName
=
$dropdown
.
data
(
'
ability
-n
ame
'
);
const
showUpcoming
=
$dropdown
.
data
(
'
show
U
pcoming
'
);
const
showStarted
=
$dropdown
.
data
(
'
show
S
tarted
'
);
const
useId
=
$dropdown
.
data
(
'
use
I
d
'
);
const
defaultLabel
=
$dropdown
.
data
(
'
default
L
abel
'
);
const
defaultNo
=
$dropdown
.
data
(
'
default
N
o
'
);
const
issuableId
=
$dropdown
.
data
(
'
issuable
I
d
'
);
const
abilityName
=
$dropdown
.
data
(
'
ability
N
ame
'
);
const
$selectBox
=
$dropdown
.
closest
(
'
.selectbox
'
);
const
$block
=
$selectBox
.
closest
(
'
.block
'
);
const
$sidebarCollapsedValue
=
$block
.
find
(
'
.sidebar-collapsed-icon
'
);
...
...
@@ -114,7 +114,7 @@ export default class MilestoneSelect {
}
},
defaultLabel
:
defaultLabel
,
fieldName
:
$dropdown
.
data
(
'
field
-n
ame
'
),
fieldName
:
$dropdown
.
data
(
'
field
N
ame
'
),
text
:
milestone
=>
_
.
escape
(
milestone
.
title
),
id
:
(
milestone
)
=>
{
if
(
!
useId
&&
!
$dropdown
.
is
(
'
.js-issuable-form-dropdown
'
))
{
...
...
@@ -166,7 +166,7 @@ export default class MilestoneSelect {
}
if
(
boardsStore
)
{
boardsStore
[
$dropdown
.
data
(
'
field
-n
ame
'
)]
=
selected
.
name
;
boardsStore
[
$dropdown
.
data
(
'
field
N
ame
'
)]
=
selected
.
name
;
e
.
preventDefault
();
}
else
if
(
$dropdown
.
hasClass
(
'
js-filter-submit
'
)
&&
(
isIssueIndex
||
isMRIndex
))
{
return
Issuable
.
filterResults
(
$dropdown
.
closest
(
'
form
'
));
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/notes.js
View file @
35c8fd55
...
...
@@ -219,7 +219,7 @@ export default class Notes {
}
editNote
=
$textarea
.
closest
(
'
.note
'
);
if
(
editNote
.
length
)
{
originalText
=
$textarea
.
closest
(
'
form
'
).
data
(
'
original
-n
ote
'
);
originalText
=
$textarea
.
closest
(
'
form
'
).
data
(
'
original
N
ote
'
);
newText
=
$textarea
.
val
();
if
(
originalText
!==
newText
)
{
if
(
!
confirm
(
'
Are you sure you want to cancel editing this comment?
'
))
{
...
...
@@ -609,9 +609,9 @@ export default class Notes {
*/
addDiscussionNote
(
$form
,
note
,
isNewDiffComment
)
{
if
(
$form
.
attr
(
'
data-resolve-all
'
)
!=
null
)
{
var
projectPath
=
$form
.
data
(
'
project
-p
ath
'
);
var
discussionId
=
$form
.
data
(
'
discussion
-i
d
'
);
var
mergeRequestId
=
$form
.
data
(
'
noteable
-i
id
'
);
var
projectPath
=
$form
.
data
(
'
project
P
ath
'
);
var
discussionId
=
$form
.
data
(
'
discussion
I
d
'
);
var
mergeRequestId
=
$form
.
data
(
'
noteable
I
id
'
);
if
(
ResolveService
!=
null
)
{
ResolveService
.
toggleResolveForDiscussion
(
mergeRequestId
,
discussionId
);
...
...
@@ -751,7 +751,7 @@ export default class Notes {
form
.
removeClass
(
'
current-note-edit-form
'
);
form
.
find
(
'
.js-finish-edit-warning
'
).
hide
();
// Replace markdown textarea text with original note text.
return
form
.
find
(
'
.js-note-text
'
).
val
(
form
.
find
(
'
form.edit-note
'
).
data
(
'
original
-n
ote
'
));
return
form
.
find
(
'
.js-note-text
'
).
val
(
form
.
find
(
'
form.edit-note
'
).
data
(
'
original
N
ote
'
));
}
/**
...
...
@@ -776,7 +776,7 @@ export default class Notes {
var
$note
,
$notes
;
$note
=
$
(
el
);
$notes
=
$note
.
closest
(
'
.discussion-notes
'
);
const
discussionId
=
$
(
'
.notes
'
,
$notes
).
data
(
'
discussion
-i
d
'
);
const
discussionId
=
$
(
'
.notes
'
,
$notes
).
data
(
'
discussion
I
d
'
);
if
(
typeof
gl
.
diffNotesCompileComponents
!==
'
undefined
'
)
{
if
(
gl
.
diffNoteApps
[
noteElId
])
{
...
...
@@ -897,7 +897,7 @@ export default class Notes {
// DiffNote
form
.
find
(
'
#note_position
'
).
val
(
dataHolder
.
attr
(
'
data-position
'
));
form
.
find
(
'
.js-note-discard
'
).
show
().
removeClass
(
'
js-note-discard
'
).
addClass
(
'
js-close-discussion-note-form
'
).
text
(
form
.
find
(
'
.js-close-discussion-note-form
'
).
data
(
'
cancel
-t
ext
'
));
form
.
find
(
'
.js-note-discard
'
).
show
().
removeClass
(
'
js-note-discard
'
).
addClass
(
'
js-close-discussion-note-form
'
).
text
(
form
.
find
(
'
.js-close-discussion-note-form
'
).
data
(
'
cancel
T
ext
'
));
form
.
find
(
'
.js-note-target-close
'
).
remove
();
form
.
find
(
'
.js-note-new-discussion
'
).
remove
();
this
.
setupNoteForm
(
form
);
...
...
@@ -1037,7 +1037,7 @@ export default class Notes {
removeDiscussionNoteForm
(
form
)
{
var
glForm
,
row
;
row
=
form
.
closest
(
'
tr
'
);
glForm
=
form
.
data
(
'
gl
-f
orm
'
);
glForm
=
form
.
data
(
'
gl
F
orm
'
);
glForm
.
destroy
();
form
.
find
(
'
.js-note-text
'
).
data
(
'
autosave
'
).
reset
();
// show the reply button (will only work for replies)
...
...
@@ -1122,8 +1122,8 @@ export default class Notes {
return
discardbtn
.
show
();
}
}
else
{
reopentext
=
reopenbtn
.
data
(
'
original
-t
ext
'
);
closetext
=
closebtn
.
data
(
'
original
-t
ext
'
);
reopentext
=
reopenbtn
.
data
(
'
original
T
ext
'
);
closetext
=
closebtn
.
data
(
'
original
T
ext
'
);
if
(
reopenbtn
.
text
()
!==
reopentext
)
{
reopenbtn
.
text
(
reopentext
);
}
...
...
@@ -1150,9 +1150,9 @@ export default class Notes {
var
$originalContentEl
=
$note
.
find
(
'
.original-note-content
'
);
var
originalContent
=
$originalContentEl
.
text
().
trim
();
var
postUrl
=
$originalContentEl
.
data
(
'
post
-u
rl
'
);
var
targetId
=
$originalContentEl
.
data
(
'
target
-i
d
'
);
var
targetType
=
$originalContentEl
.
data
(
'
target
-t
ype
'
);
var
postUrl
=
$originalContentEl
.
data
(
'
post
U
rl
'
);
var
targetId
=
$originalContentEl
.
data
(
'
target
I
d
'
);
var
targetType
=
$originalContentEl
.
data
(
'
target
T
ype
'
);
this
.
glForm
=
new
GLForm
(
$editForm
.
find
(
'
form
'
),
this
.
enableGFM
);
...
...
@@ -1513,9 +1513,9 @@ export default class Notes {
// If comment intends to resolve discussion, do the same.
if
(
isDiscussionResolve
)
{
$form
.
attr
(
'
data-discussion-id
'
,
$submitBtn
.
data
(
'
discussion
-i
d
'
))
.
attr
(
'
data-discussion-id
'
,
$submitBtn
.
data
(
'
discussion
I
d
'
))
.
attr
(
'
data-resolve-all
'
,
'
true
'
)
.
attr
(
'
data-project-path
'
,
$submitBtn
.
data
(
'
project
-p
ath
'
));
.
attr
(
'
data-project-path
'
,
$submitBtn
.
data
(
'
project
P
ath
'
));
}
// Show final note element on UI
...
...
@@ -1587,7 +1587,7 @@ export default class Notes {
this
.
addNoteError
(
$form
);
});
return
$closeBtn
.
text
(
$closeBtn
.
data
(
'
original
-t
ext
'
));
return
$closeBtn
.
text
(
$closeBtn
.
data
(
'
original
T
ext
'
));
}
/**
...
...
@@ -1642,7 +1642,7 @@ export default class Notes {
this
.
updateNoteError
();
});
return
$closeBtn
.
text
(
$closeBtn
.
data
(
'
original
-t
ext
'
));
return
$closeBtn
.
text
(
$closeBtn
.
data
(
'
original
T
ext
'
));
}
}
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/notifications_dropdown.js
View file @
35c8fd55
...
...
@@ -3,11 +3,11 @@ import Flash from './flash';
export
default
function
notificationsDropdown
()
{
$
(
document
).
on
(
'
click
'
,
'
.update-notification
'
,
function
updateNotificationCallback
(
e
)
{
e
.
preventDefault
();
if
(
$
(
this
).
is
(
'
.is-active
'
)
&&
$
(
this
).
data
(
'
notification
-l
evel
'
)
===
'
custom
'
)
{
if
(
$
(
this
).
is
(
'
.is-active
'
)
&&
$
(
this
).
data
(
'
notification
L
evel
'
)
===
'
custom
'
)
{
return
;
}
const
notificationLevel
=
$
(
this
).
data
(
'
notification
-l
evel
'
);
const
notificationLevel
=
$
(
this
).
data
(
'
notification
L
evel
'
);
const
form
=
$
(
this
).
parents
(
'
.notification-form:first
'
);
form
.
find
(
'
.js-notification-loading
'
).
toggleClass
(
'
fa-bell fa-spin fa-spinner
'
);
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/pager.js
View file @
35c8fd55
...
...
@@ -56,7 +56,7 @@ export default {
},
initLoadMore
()
{
$
(
document
).
unbind
(
'
scroll
'
);
$
(
document
).
off
(
'
scroll
'
);
$
(
document
).
endlessScroll
({
bottomPixels
:
ENDLESS_SCROLL_BOTTOM_PX
,
fireDelay
:
ENDLESS_SCROLL_FIRE_DELAY_MS
,
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/pages/admin/abuse_reports/abuse_reports.js
View file @
35c8fd55
...
...
@@ -15,21 +15,21 @@ export default class AbuseReports {
const
$messageCellElement
=
$
(
this
);
const
reportMessage
=
$messageCellElement
.
text
();
if
(
reportMessage
.
length
>
MAX_MESSAGE_LENGTH
)
{
$messageCellElement
.
data
(
'
original
-m
essage
'
,
reportMessage
);
$messageCellElement
.
data
(
'
message
-t
runcated
'
,
'
true
'
);
$messageCellElement
.
data
(
'
original
M
essage
'
,
reportMessage
);
$messageCellElement
.
data
(
'
message
T
runcated
'
,
'
true
'
);
$messageCellElement
.
text
(
truncate
(
reportMessage
,
MAX_MESSAGE_LENGTH
));
}
}
toggleMessageTruncation
()
{
const
$messageCellElement
=
$
(
this
);
const
originalMessage
=
$messageCellElement
.
data
(
'
original
-m
essage
'
);
const
originalMessage
=
$messageCellElement
.
data
(
'
original
M
essage
'
);
if
(
!
originalMessage
)
return
;
if
(
$messageCellElement
.
data
(
'
message
-t
runcated
'
)
===
'
true
'
)
{
$messageCellElement
.
data
(
'
message
-t
runcated
'
,
'
false
'
);
if
(
$messageCellElement
.
data
(
'
message
T
runcated
'
)
===
'
true
'
)
{
$messageCellElement
.
data
(
'
message
T
runcated
'
,
'
false
'
);
$messageCellElement
.
text
(
originalMessage
);
}
else
{
$messageCellElement
.
data
(
'
message
-t
runcated
'
,
'
true
'
);
$messageCellElement
.
data
(
'
message
T
runcated
'
,
'
true
'
);
$messageCellElement
.
text
(
`
${
originalMessage
.
substr
(
0
,
(
MAX_MESSAGE_LENGTH
-
3
))}
...`
);
}
}
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/pages/admin/admin.js
View file @
35c8fd55
...
...
@@ -16,9 +16,9 @@ export default function adminInit() {
$
(
'
input#user_force_random_password
'
).
on
(
'
change
'
,
function
randomPasswordClick
()
{
const
$elems
=
$
(
'
#user_password, #user_password_confirmation
'
);
if
(
$
(
this
).
attr
(
'
checked
'
))
{
$elems
.
val
(
''
).
attr
(
'
disabled
'
,
true
);
$elems
.
val
(
''
).
prop
(
'
disabled
'
,
true
);
}
else
{
$elems
.
removeAttr
(
'
disabled
'
);
$elems
.
prop
(
'
disabled
'
,
false
);
}
});
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/pages/admin/broadcast_messages/broadcast_message.js
View file @
35c8fd55
...
...
@@ -14,7 +14,7 @@ export default function initBroadcastMessagesForm() {
$
(
'
div.broadcast-message-preview
'
).
css
(
'
color
'
,
previewColor
);
});
const
previewPath
=
$
(
'
textarea#broadcast_message_message
'
).
data
(
'
preview
-p
ath
'
);
const
previewPath
=
$
(
'
textarea#broadcast_message_message
'
).
data
(
'
preview
P
ath
'
);
$
(
'
textarea#broadcast_message_message
'
).
on
(
'
input
'
,
_
.
debounce
(
function
onMessageInput
()
{
const
message
=
$
(
this
).
val
();
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/pages/projects/project.js
View file @
35c8fd55
...
...
@@ -71,7 +71,7 @@ export default class Project {
selected
=
$dropdown
.
data
(
'
selected
'
);
return
$dropdown
.
glDropdown
({
data
(
term
,
callback
)
{
axios
.
get
(
$dropdown
.
data
(
'
refs
-u
rl
'
),
{
axios
.
get
(
$dropdown
.
data
(
'
refs
U
rl
'
),
{
params
:
{
ref
:
$dropdown
.
data
(
'
ref
'
),
search
:
term
,
...
...
@@ -84,8 +84,8 @@ export default class Project {
filterable
:
true
,
filterRemote
:
true
,
filterByText
:
true
,
inputFieldName
:
$dropdown
.
data
(
'
input
-field-n
ame
'
),
fieldName
:
$dropdown
.
data
(
'
field
-n
ame
'
),
inputFieldName
:
$dropdown
.
data
(
'
input
FieldN
ame
'
),
fieldName
:
$dropdown
.
data
(
'
field
N
ame
'
),
renderRow
:
function
(
ref
)
{
var
li
=
refListItem
.
cloneNode
(
false
);
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/pages/search/show/search.js
View file @
35c8fd55
...
...
@@ -9,7 +9,7 @@ export default class Search {
this
.
searchInput
=
'
.js-search-input
'
;
this
.
searchClear
=
'
.js-search-clear
'
;
this
.
groupId
=
$groupDropdown
.
data
(
'
group
-i
d
'
);
this
.
groupId
=
$groupDropdown
.
data
(
'
group
I
d
'
);
this
.
eventListeners
();
$groupDropdown
.
glDropdown
({
...
...
@@ -36,7 +36,7 @@ export default class Search {
return
obj
.
full_name
;
},
toggleLabel
(
obj
)
{
return
`
${(
$groupDropdown
.
data
(
'
default
-l
abel
'
))}
${
obj
.
full_name
}
`
;
return
`
${(
$groupDropdown
.
data
(
'
default
L
abel
'
))}
${
obj
.
full_name
}
`
;
},
clicked
:
()
=>
Search
.
submitSearch
(),
});
...
...
@@ -69,7 +69,7 @@ export default class Search {
return
obj
.
name_with_namespace
;
},
toggleLabel
(
obj
)
{
return
`
${(
$projectDropdown
.
data
(
'
default
-l
abel
'
))}
${
obj
.
name_with_namespace
}
`
;
return
`
${(
$projectDropdown
.
data
(
'
default
L
abel
'
))}
${
obj
.
name_with_namespace
}
`
;
},
clicked
:
()
=>
Search
.
submitSearch
(),
});
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/project_select.js
View file @
35c8fd55
...
...
@@ -5,13 +5,13 @@ import ProjectSelectComboButton from './project_select_combo_button';
export
default
function
projectSelect
()
{
$
(
'
.ajax-project-select
'
).
each
(
function
(
i
,
select
)
{
var
placeholder
;
const
simpleFilter
=
$
(
select
).
data
(
'
simple
-f
ilter
'
)
||
false
;
this
.
groupId
=
$
(
select
).
data
(
'
group
-i
d
'
);
this
.
includeGroups
=
$
(
select
).
data
(
'
include
-g
roups
'
);
this
.
allProjects
=
$
(
select
).
data
(
'
all
-p
rojects
'
)
||
false
;
this
.
orderBy
=
$
(
select
).
data
(
'
order
-b
y
'
)
||
'
id
'
;
this
.
withIssuesEnabled
=
$
(
select
).
data
(
'
with
-issues-e
nabled
'
);
this
.
withMergeRequestsEnabled
=
$
(
select
).
data
(
'
with
-merge-requests-e
nabled
'
);
const
simpleFilter
=
$
(
select
).
data
(
'
simple
F
ilter
'
)
||
false
;
this
.
groupId
=
$
(
select
).
data
(
'
group
I
d
'
);
this
.
includeGroups
=
$
(
select
).
data
(
'
include
G
roups
'
);
this
.
allProjects
=
$
(
select
).
data
(
'
all
P
rojects
'
)
||
false
;
this
.
orderBy
=
$
(
select
).
data
(
'
order
B
y
'
)
||
'
id
'
;
this
.
withIssuesEnabled
=
$
(
select
).
data
(
'
with
IssuesE
nabled
'
);
this
.
withMergeRequestsEnabled
=
$
(
select
).
data
(
'
with
MergeRequestsE
nabled
'
);
placeholder
=
"
Search for project
"
;
if
(
this
.
includeGroups
)
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/prometheus_metrics/prometheus_metrics.js
View file @
35c8fd55
...
...
@@ -19,7 +19,7 @@ export default class PrometheusMetrics {
this
.
$missingEnvVarMetricCount
=
this
.
$missingEnvVarPanel
.
find
(
'
.js-env-var-count
'
);
this
.
$missingEnvVarMetricsList
=
this
.
$missingEnvVarPanel
.
find
(
'
.js-missing-var-metrics-list
'
);
this
.
activeMetricsEndpoint
=
this
.
$monitoredMetricsPanel
.
data
(
'
active
-m
etrics
'
);
this
.
activeMetricsEndpoint
=
this
.
$monitoredMetricsPanel
.
data
(
'
active
M
etrics
'
);
this
.
$panelToggle
.
on
(
'
click
'
,
e
=>
this
.
handlePanelToggle
(
e
));
}
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/protected_branches/protected_branch_access_dropdown.js
View file @
35c8fd55
...
...
@@ -9,8 +9,8 @@ export default class ProtectedBranchAccessDropdown {
$dropdown
.
glDropdown
({
data
,
selectable
:
true
,
inputId
:
$dropdown
.
data
(
'
input
-i
d
'
),
fieldName
:
$dropdown
.
data
(
'
field
-n
ame
'
),
inputId
:
$dropdown
.
data
(
'
input
I
d
'
),
fieldName
:
$dropdown
.
data
(
'
field
N
ame
'
),
toggleLabel
(
item
,
$el
)
{
if
(
$el
.
is
(
'
.is-active
'
))
{
return
item
.
text
;
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/protected_branches/protected_branch_create.js
View file @
35c8fd55
...
...
@@ -59,7 +59,7 @@ export default class ProtectedBranchCreate {
);
this
.
savePreviousSelection
(
$allowedToMergeInput
.
val
(),
$allowedToPushInput
.
val
());
this
.
$form
.
find
(
'
input[type="submit"]
'
).
attr
(
'
disabled
'
,
completedForm
);
this
.
$form
.
find
(
'
input[type="submit"]
'
).
prop
(
'
disabled
'
,
completedForm
);
}
static
getProtectedBranches
(
term
,
callback
)
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/protected_branches/protected_branch_edit.js
View file @
35c8fd55
...
...
@@ -41,11 +41,11 @@ export default class ProtectedBranchEdit {
axios
.
patch
(
this
.
$wrap
.
data
(
'
url
'
),
{
protected_branch
:
{
merge_access_levels_attributes
:
[{
id
:
this
.
$allowedToMergeDropdown
.
data
(
'
access
-level-i
d
'
),
id
:
this
.
$allowedToMergeDropdown
.
data
(
'
access
LevelI
d
'
),
access_level
:
$allowedToMergeInput
.
val
(),
}],
push_access_levels_attributes
:
[{
id
:
this
.
$allowedToPushDropdown
.
data
(
'
access
-level-i
d
'
),
id
:
this
.
$allowedToPushDropdown
.
data
(
'
access
LevelI
d
'
),
access_level
:
$allowedToPushInput
.
val
(),
}],
},
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/protected_tags/protected_tag_access_dropdown.js
View file @
35c8fd55
...
...
@@ -9,8 +9,8 @@ export default class ProtectedTagAccessDropdown {
this
.
options
.
$dropdown
.
glDropdown
({
data
:
this
.
options
.
data
,
selectable
:
true
,
inputId
:
this
.
options
.
$dropdown
.
data
(
'
input
-i
d
'
),
fieldName
:
this
.
options
.
$dropdown
.
data
(
'
field
-n
ame
'
),
inputId
:
this
.
options
.
$dropdown
.
data
(
'
input
I
d
'
),
fieldName
:
this
.
options
.
$dropdown
.
data
(
'
field
N
ame
'
),
toggleLabel
(
item
,
$el
)
{
if
(
$el
.
is
(
'
.is-active
'
))
{
return
item
.
text
;
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/protected_tags/protected_tag_create.js
View file @
35c8fd55
...
...
@@ -39,7 +39,7 @@ export default class ProtectedTagCreate {
const
$tagInput
=
this
.
$form
.
find
(
'
input[name="protected_tag[name]"]
'
);
const
$allowedToCreateInput
=
this
.
$form
.
find
(
'
#create_access_levels_attributes
'
);
this
.
$form
.
find
(
'
input[type="submit"]
'
).
attr
(
'
disabled
'
,
!
(
$tagInput
.
val
()
&&
$allowedToCreateInput
.
length
));
this
.
$form
.
find
(
'
input[type="submit"]
'
).
prop
(
'
disabled
'
,
!
(
$tagInput
.
val
()
&&
$allowedToCreateInput
.
length
));
}
static
getProtectedTags
(
term
,
callback
)
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/protected_tags/protected_tag_edit.js
View file @
35c8fd55
...
...
@@ -31,7 +31,7 @@ export default class ProtectedTagEdit {
axios
.
patch
(
this
.
$wrap
.
data
(
'
url
'
),
{
protected_tag
:
{
create_access_levels_attributes
:
[{
id
:
this
.
$allowedToCreateDropdownButton
.
data
(
'
access
-level-i
d
'
),
id
:
this
.
$allowedToCreateDropdownButton
.
data
(
'
access
LevelI
d
'
),
access_level
:
$allowedToCreateInput
.
val
(),
}],
},
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/ref_select_dropdown.js
View file @
35c8fd55
...
...
@@ -6,7 +6,7 @@ class RefSelectDropdown {
filterable
:
true
,
filterByText
:
true
,
remote
:
false
,
fieldName
:
$dropdownButton
.
data
(
'
field
-n
ame
'
),
fieldName
:
$dropdownButton
.
data
(
'
field
N
ame
'
),
filterInput
:
'
input[type="search"]
'
,
selectable
:
true
,
isSelectable
(
branch
,
$el
)
{
...
...
@@ -24,7 +24,7 @@ class RefSelectDropdown {
});
const
$dropdownContainer
=
$dropdownButton
.
closest
(
'
.dropdown
'
);
const
$fieldInput
=
$
(
`input[name="
${
$dropdownButton
.
data
(
'
field
-n
ame
'
)}
"]`
,
$dropdownContainer
);
const
$fieldInput
=
$
(
`input[name="
${
$dropdownButton
.
data
(
'
field
N
ame
'
)}
"]`
,
$dropdownContainer
);
const
$filterInput
=
$
(
'
input[type="search"]
'
,
$dropdownContainer
);
$filterInput
.
on
(
'
keyup
'
,
(
e
)
=>
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/right_sidebar.js
View file @
35c8fd55
...
...
@@ -76,8 +76,8 @@ Sidebar.prototype.toggleTodo = function(e) {
$
(
'
.js-issuable-todo
'
).
disable
().
addClass
(
'
is-loading
'
);
axios
[
ajaxType
](
url
,
{
issuable_id
:
$this
.
data
(
'
issuable
-i
d
'
),
issuable_type
:
$this
.
data
(
'
issuable
-t
ype
'
),
issuable_id
:
$this
.
data
(
'
issuable
I
d
'
),
issuable_type
:
$this
.
data
(
'
issuable
T
ype
'
),
}).
then
(({
data
})
=>
{
this
.
todoUpdateDone
(
data
);
}).
catch
(()
=>
flash
(
`There was an error
${
ajaxType
===
'
post
'
?
'
adding a
'
:
'
deleting the
'
}
todo.`
));
...
...
@@ -96,18 +96,18 @@ Sidebar.prototype.todoUpdateDone = function(data) {
$el
.
removeClass
(
'
is-loading
'
)
.
enable
()
.
attr
(
'
aria-label
'
,
$el
.
data
(
`
${
attrPrefix
}
-t
ext`
))
.
attr
(
'
aria-label
'
,
$el
.
data
(
`
${
attrPrefix
}
T
ext`
))
.
attr
(
'
data-delete-path
'
,
deletePath
)
.
attr
(
'
title
'
,
$el
.
data
(
`
${
attrPrefix
}
-t
ext`
));
.
attr
(
'
title
'
,
$el
.
data
(
`
${
attrPrefix
}
T
ext`
));
if
(
$el
.
hasClass
(
'
has-tooltip
'
))
{
$el
.
tooltip
(
'
fixTitle
'
);
}
if
(
$el
.
data
(
`
${
attrPrefix
}
-i
con`
))
{
$elText
.
html
(
$el
.
data
(
`
${
attrPrefix
}
-i
con`
));
if
(
$el
.
data
(
`
${
attrPrefix
}
I
con`
))
{
$elText
.
html
(
$el
.
data
(
`
${
attrPrefix
}
I
con`
));
}
else
{
$elText
.
text
(
$el
.
data
(
`
${
attrPrefix
}
-t
ext`
));
$elText
.
text
(
$el
.
data
(
`
${
attrPrefix
}
T
ext`
));
}
});
};
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/search_autocomplete.js
View file @
35c8fd55
...
...
@@ -25,32 +25,32 @@ function setSearchOptions() {
if
(
$projectOptionsDataEl
.
length
)
{
gl
.
projectOptions
=
gl
.
projectOptions
||
{};
var
projectPath
=
$projectOptionsDataEl
.
data
(
'
project
-p
ath
'
);
var
projectPath
=
$projectOptionsDataEl
.
data
(
'
project
P
ath
'
);
gl
.
projectOptions
[
projectPath
]
=
{
name
:
$projectOptionsDataEl
.
data
(
'
name
'
),
issuesPath
:
$projectOptionsDataEl
.
data
(
'
issues
-p
ath
'
),
issuesDisabled
:
$projectOptionsDataEl
.
data
(
'
issues
-d
isabled
'
),
mrPath
:
$projectOptionsDataEl
.
data
(
'
mr
-p
ath
'
),
issuesPath
:
$projectOptionsDataEl
.
data
(
'
issues
P
ath
'
),
issuesDisabled
:
$projectOptionsDataEl
.
data
(
'
issues
D
isabled
'
),
mrPath
:
$projectOptionsDataEl
.
data
(
'
mr
P
ath
'
),
};
}
if
(
$groupOptionsDataEl
.
length
)
{
gl
.
groupOptions
=
gl
.
groupOptions
||
{};
var
groupPath
=
$groupOptionsDataEl
.
data
(
'
group
-p
ath
'
);
var
groupPath
=
$groupOptionsDataEl
.
data
(
'
group
P
ath
'
);
gl
.
groupOptions
[
groupPath
]
=
{
name
:
$groupOptionsDataEl
.
data
(
'
name
'
),
issuesPath
:
$groupOptionsDataEl
.
data
(
'
issues
-p
ath
'
),
mrPath
:
$groupOptionsDataEl
.
data
(
'
mr
-p
ath
'
),
issuesPath
:
$groupOptionsDataEl
.
data
(
'
issues
P
ath
'
),
mrPath
:
$groupOptionsDataEl
.
data
(
'
mr
P
ath
'
),
};
}
if
(
$dashboardOptionsDataEl
.
length
)
{
gl
.
dashboardOptions
=
{
issuesPath
:
$dashboardOptionsDataEl
.
data
(
'
issues
-p
ath
'
),
mrPath
:
$dashboardOptionsDataEl
.
data
(
'
mr
-p
ath
'
),
issuesPath
:
$dashboardOptionsDataEl
.
data
(
'
issues
P
ath
'
),
mrPath
:
$dashboardOptionsDataEl
.
data
(
'
mr
P
ath
'
),
};
}
}
...
...
@@ -61,9 +61,9 @@ export default class SearchAutocomplete {
this
.
bindEventContext
();
this
.
wrap
=
wrap
||
$
(
'
.search
'
);
this
.
optsEl
=
optsEl
||
this
.
wrap
.
find
(
'
.search-autocomplete-opts
'
);
this
.
autocompletePath
=
autocompletePath
||
this
.
optsEl
.
data
(
'
autocomplete
-p
ath
'
);
this
.
projectId
=
projectId
||
(
this
.
optsEl
.
data
(
'
autocomplete
-project-i
d
'
)
||
''
);
this
.
projectRef
=
projectRef
||
(
this
.
optsEl
.
data
(
'
autocomplete
-project-r
ef
'
)
||
''
);
this
.
autocompletePath
=
autocompletePath
||
this
.
optsEl
.
data
(
'
autocomplete
P
ath
'
);
this
.
projectId
=
projectId
||
(
this
.
optsEl
.
data
(
'
autocomplete
ProjectI
d
'
)
||
''
);
this
.
projectRef
=
projectRef
||
(
this
.
optsEl
.
data
(
'
autocomplete
ProjectR
ef
'
)
||
''
);
this
.
dropdown
=
this
.
wrap
.
find
(
'
.dropdown
'
);
this
.
dropdownToggle
=
this
.
wrap
.
find
(
'
.js-dropdown-search-toggle
'
);
this
.
dropdownContent
=
this
.
dropdown
.
find
(
'
.dropdown-content
'
);
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/sidebar/lib/sidebar_move_issue.js
View file @
35c8fd55
...
...
@@ -50,7 +50,7 @@ class SidebarMoveIssue {
const
selectedProjectId
=
options
.
isMarking
?
project
.
id
:
0
;
this
.
mediator
.
setMoveToProjectId
(
selectedProjectId
);
this
.
$confirmButton
.
attr
(
'
disabled
'
,
!
isValidProjectId
(
selectedProjectId
));
this
.
$confirmButton
.
prop
(
'
disabled
'
,
!
isValidProjectId
(
selectedProjectId
));
},
});
}
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/single_file_diff.js
View file @
35c8fd55
...
...
@@ -18,7 +18,7 @@ export default class SingleFileDiff {
this
.
toggleDiff
=
this
.
toggleDiff
.
bind
(
this
);
this
.
content
=
$
(
'
.diff-content
'
,
this
.
file
);
this
.
$toggleIcon
=
$
(
'
.diff-toggle-caret
'
,
this
.
file
);
this
.
diffForPath
=
this
.
content
.
find
(
'
[data-diff-for-path]
'
).
data
(
'
diff
-for-p
ath
'
);
this
.
diffForPath
=
this
.
content
.
find
(
'
[data-diff-for-path]
'
).
data
(
'
diff
ForP
ath
'
);
this
.
isOpen
=
!
this
.
diffForPath
;
if
(
this
.
diffForPath
)
{
this
.
collapsedContent
=
this
.
content
;
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/star.js
View file @
35c8fd55
import
Flash
from
'
./flash
'
;
import
{
__
,
s__
}
from
'
./locale
'
;
import
{
spriteIcon
}
from
'
./lib/utils/common_utils
'
;
import
axios
from
'
./lib/utils/axios_utils
'
;
export
default
class
Star
{
constructor
()
{
$
(
'
.project-home-panel .toggle-star
'
)
.
on
(
'
ajax:success
'
,
function
handleSuccess
(
e
,
data
)
{
$
(
'
.project-home-panel .toggle-star
'
).
on
(
'
click
'
,
function
toggleStarClickCallback
()
{
const
$this
=
$
(
this
);
const
$starSpan
=
$this
.
find
(
'
span
'
);
const
$startIcon
=
$this
.
find
(
'
svg
'
);
function
toggleStar
(
isStarred
)
{
axios
.
post
(
$this
.
data
(
'
endpoint
'
))
.
then
(({
data
})
=>
{
const
isStarred
=
$starSpan
.
hasClass
(
'
starred
'
);
$this
.
parent
().
find
(
'
.star-count
'
).
text
(
data
.
star_count
);
if
(
isStarred
)
{
$starSpan
.
removeClass
(
'
starred
'
).
text
(
s__
(
'
StarProject|Star
'
));
$startIcon
.
remove
();
...
...
@@ -21,12 +24,8 @@ export default class Star {
$startIcon
.
remove
();
$this
.
prepend
(
spriteIcon
(
'
star
'
));
}
}
toggleStar
(
$starSpan
.
hasClass
(
'
starred
'
));
})
.
on
(
'
ajax:error
'
,
()
=>
{
Flash
(
'
Star toggle failed. Try again later.
'
,
'
alert
'
);
.
catch
(()
=>
Flash
(
'
Star toggle failed. Try again later.
'
));
});
}
}
This diff is collapsed.
Click to expand it.
app/assets/javascripts/subscription_select.js
View file @
35c8fd55
export
default
function
subscriptionSelect
()
{
$
(
'
.js-subscription-event
'
).
each
((
i
,
element
)
=>
{
const
fieldName
=
$
(
element
).
data
(
'
field
-n
ame
'
);
const
fieldName
=
$
(
element
).
data
(
'
field
N
ame
'
);
return
$
(
element
).
glDropdown
({
selectable
:
true
,
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/task_list.js
View file @
35c8fd55
...
...
@@ -40,7 +40,7 @@ export default class TaskList {
[
this
.
fieldName
]:
$target
.
val
(),
};
return
axios
.
patch
(
$target
.
data
(
'
update
-u
rl
'
)
||
$
(
'
form.js-issuable-update
'
).
attr
(
'
action
'
),
patchData
)
return
axios
.
patch
(
$target
.
data
(
'
update
U
rl
'
)
||
$
(
'
form.js-issuable-update
'
).
attr
(
'
action
'
),
patchData
)
.
then
(({
data
})
=>
this
.
onSuccess
(
data
))
.
catch
(
err
=>
this
.
onError
(
err
));
}
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/templates/issuable_template_selector.js
View file @
35c8fd55
...
...
@@ -6,9 +6,9 @@ import TemplateSelector from '../blob/template_selector';
export
default
class
IssuableTemplateSelector
extends
TemplateSelector
{
constructor
(...
args
)
{
super
(...
args
);
this
.
projectPath
=
this
.
dropdown
.
data
(
'
project
-p
ath
'
);
this
.
namespacePath
=
this
.
dropdown
.
data
(
'
namespace
-p
ath
'
);
this
.
issuableType
=
this
.
$dropdownContainer
.
data
(
'
issuable
-t
ype
'
);
this
.
projectPath
=
this
.
dropdown
.
data
(
'
project
P
ath
'
);
this
.
namespacePath
=
this
.
dropdown
.
data
(
'
namespace
P
ath
'
);
this
.
issuableType
=
this
.
$dropdownContainer
.
data
(
'
issuable
T
ype
'
);
this
.
titleInput
=
$
(
`#
${
this
.
issuableType
}
_title`
);
const
initialQuery
=
{
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/user_callout.js
View file @
35c8fd55
...
...
@@ -22,7 +22,7 @@ export default class UserCallout {
const
$currentTarget
=
$
(
e
.
currentTarget
);
if
(
this
.
options
.
setCalloutPerProject
)
{
Cookies
.
set
(
this
.
cookieName
,
'
true
'
,
{
expires
:
365
,
path
:
this
.
userCalloutBody
.
data
(
'
project
-p
ath
'
)
});
Cookies
.
set
(
this
.
cookieName
,
'
true
'
,
{
expires
:
365
,
path
:
this
.
userCalloutBody
.
data
(
'
project
P
ath
'
)
});
}
else
{
Cookies
.
set
(
this
.
cookieName
,
'
true
'
,
{
expires
:
365
});
}
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/users_select.js
View file @
35c8fd55
This diff is collapsed.
Click to expand it.
app/assets/javascripts/vue_shared/components/markdown/field.vue
View file @
35c8fd55
...
...
@@ -64,7 +64,7 @@
return
new
GLForm
(
$
(
this
.
$refs
[
'
gl-form
'
]),
this
.
enableAutocomplete
);
},
beforeDestroy
()
{
const
glForm
=
$
(
this
.
$refs
[
'
gl-form
'
]).
data
(
'
gl
-f
orm
'
);
const
glForm
=
$
(
this
.
$refs
[
'
gl-form
'
]).
data
(
'
gl
F
orm
'
);
if
(
glForm
)
{
glForm
.
destroy
();
}
...
...
This diff is collapsed.
Click to expand it.
app/views/projects/buttons/_star.html.haml
View file @
35c8fd55
-
if
current_user
=
link_to
toggle_star_project_path
(
@project
),
{
class:
'btn star-btn toggle-star'
,
method: :post
,
remote:
true
}
do
%button
.btn.btn-default.star-btn.toggle-star
{
type:
"button"
,
data:
{
endpoint:
toggle_star_project_path
(
@project
,
:json
)
}
}
-
if
current_user
.
starred?
(
@project
)
=
sprite_icon
(
'star'
)
%span
.starred
=
_
(
'Unstar'
)
...
...
This diff is collapsed.
Click to expand it.
package.json
View file @
35c8fd55
...
...
@@ -51,7 +51,7 @@
"
glob
"
:
"
^7.1.2
"
,
"
imports-loader
"
:
"
^0.7.1
"
,
"
jed
"
:
"
^1.1.1
"
,
"
jquery
"
:
"
^
2.2.4
"
,
"
jquery
"
:
"
^
3.2.1
"
,
"
jquery-ujs
"
:
"
1.2.2
"
,
"
jquery.waitforimages
"
:
"
^2.2.0
"
,
"
js-cookie
"
:
"
^2.1.3
"
,
...
...
This diff is collapsed.
Click to expand it.
spec/features/projects/members/share_with_group_spec.rb
View file @
35c8fd55
...
...
@@ -149,6 +149,11 @@ feature 'Project > Members > Share with Group', :js do
create
(
:group
).
add_owner
(
master
)
visit
project_settings_members_path
(
project
)
click_link
'Share with group'
find
(
'.ajax-groups-select.select2-container'
)
execute_script
'GROUP_SELECT_PER_PAGE = 1;'
open_select2
'#link_group_id'
end
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/ajax_loading_spinner_spec.js
View file @
35c8fd55
import
'
jquery
'
;
import
'
jquery-ujs
'
;
import
AjaxLoadingSpinner
from
'
~/ajax_loading_spinner
'
;
describe
(
'
Ajax Loading Spinner
'
,
()
=>
{
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/awards_handler_spec.js
View file @
35c8fd55
...
...
@@ -138,7 +138,7 @@ import '~/lib/utils/common_utils';
$thumbsUpEmoji
=
$votesBlock
.
find
(
'
[data-name=thumbsup]
'
).
parent
();
$thumbsUpEmoji
.
attr
(
'
data-title
'
,
'
sam
'
);
awardsHandler
.
userAuthored
(
$thumbsUpEmoji
);
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
-t
itle
"
)).
toBe
(
"
You cannot vote on your own issue, MR and note
"
);
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
T
itle
"
)).
toBe
(
"
You cannot vote on your own issue, MR and note
"
);
});
it
(
'
should restore tooltip back to initial vote list
'
,
function
()
{
var
$thumbsUpEmoji
,
$votesBlock
;
...
...
@@ -149,7 +149,7 @@ import '~/lib/utils/common_utils';
awardsHandler
.
userAuthored
(
$thumbsUpEmoji
);
jasmine
.
clock
().
tick
(
2801
);
jasmine
.
clock
().
uninstall
();
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
-t
itle
"
)).
toBe
(
"
sam
"
);
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
T
itle
"
)).
toBe
(
"
sam
"
);
});
});
describe
(
'
::getAwardUrl
'
,
function
()
{
...
...
@@ -194,7 +194,7 @@ import '~/lib/utils/common_utils';
$thumbsUpEmoji
.
attr
(
'
data-title
'
,
'
sam, jerry, max, and andy
'
);
awardsHandler
.
addAward
(
$votesBlock
,
awardUrl
,
'
thumbsup
'
,
false
);
$thumbsUpEmoji
.
tooltip
();
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
-t
itle
"
)).
toBe
(
'
You, sam, jerry, max, and andy
'
);
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
T
itle
"
)).
toBe
(
'
You, sam, jerry, max, and andy
'
);
});
return
it
(
'
handles the special case where "You" is not cleanly comma seperated
'
,
function
()
{
var
$thumbsUpEmoji
,
$votesBlock
,
awardUrl
;
...
...
@@ -204,7 +204,7 @@ import '~/lib/utils/common_utils';
$thumbsUpEmoji
.
attr
(
'
data-title
'
,
'
sam
'
);
awardsHandler
.
addAward
(
$votesBlock
,
awardUrl
,
'
thumbsup
'
,
false
);
$thumbsUpEmoji
.
tooltip
();
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
-t
itle
"
)).
toBe
(
'
You and sam
'
);
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
T
itle
"
)).
toBe
(
'
You and sam
'
);
});
});
describe
(
'
::removeYouToUserList
'
,
function
()
{
...
...
@@ -217,7 +217,7 @@ import '~/lib/utils/common_utils';
$thumbsUpEmoji
.
addClass
(
'
active
'
);
awardsHandler
.
addAward
(
$votesBlock
,
awardUrl
,
'
thumbsup
'
,
false
);
$thumbsUpEmoji
.
tooltip
();
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
-t
itle
"
)).
toBe
(
'
sam, jerry, max, and andy
'
);
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
T
itle
"
)).
toBe
(
'
sam, jerry, max, and andy
'
);
});
return
it
(
'
handles the special case where "You" is not cleanly comma seperated
'
,
function
()
{
var
$thumbsUpEmoji
,
$votesBlock
,
awardUrl
;
...
...
@@ -228,7 +228,7 @@ import '~/lib/utils/common_utils';
$thumbsUpEmoji
.
addClass
(
'
active
'
);
awardsHandler
.
addAward
(
$votesBlock
,
awardUrl
,
'
thumbsup
'
,
false
);
$thumbsUpEmoji
.
tooltip
();
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
-t
itle
"
)).
toBe
(
'
sam
'
);
return
expect
(
$thumbsUpEmoji
.
data
(
"
original
T
itle
"
)).
toBe
(
'
sam
'
);
});
});
describe
(
'
::searchEmojis
'
,
()
=>
{
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/behaviors/requires_input_spec.js
View file @
35c8fd55
...
...
@@ -15,7 +15,7 @@ describe('requiresInput', () => {
});
it
(
'
enables submit when no field is required
'
,
()
=>
{
$
(
'
*[required=required]
'
).
removeAttr
(
'
required
'
);
$
(
'
*[required=required]
'
).
prop
(
'
required
'
,
false
);
$
(
'
.js-requires-input
'
).
requiresInput
();
expect
(
submitButton
).
not
.
toBeDisabled
();
});
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/feature_highlight/feature_highlight_spec.js
View file @
35c8fd55
import
*
as
featureHighlightHelper
from
'
~/feature_highlight/feature_highlight_helper
'
;
import
*
as
featureHighlight
from
'
~/feature_highlight/feature_highlight
'
;
import
axios
from
'
~/lib/utils/axios_utils
'
;
import
MockAdapter
from
'
axios-mock-adapter
'
;
describe
(
'
feature highlight
'
,
()
=>
{
beforeEach
(()
=>
{
setFixtures
(
`
<div>
<div class="js-feature-highlight" data-highlight="test" data-highlight-priority="10" disabled>
<div class="js-feature-highlight" data-highlight="test" data-highlight-priority="10" d
ata-dismiss-endpoint="/test" d
isabled>
Trigger
</div>
</div>
...
...
@@ -19,13 +21,21 @@ describe('feature highlight', () => {
});
describe
(
'
setupFeatureHighlightPopover
'
,
()
=>
{
let
mock
;
const
selector
=
'
.js-feature-highlight[data-highlight=test]
'
;
beforeEach
(()
=>
{
mock
=
new
MockAdapter
(
axios
);
mock
.
onGet
(
'
/test
'
).
reply
(
200
);
spyOn
(
window
,
'
addEventListener
'
);
spyOn
(
window
,
'
removeEventListener
'
);
featureHighlight
.
setupFeatureHighlightPopover
(
'
test
'
,
0
);
});
afterEach
(()
=>
{
mock
.
restore
();
});
it
(
'
setup popover content
'
,
()
=>
{
const
$popoverContent
=
$
(
'
.feature-highlight-popover-content
'
);
const
outerHTML
=
$popoverContent
.
prop
(
'
outerHTML
'
);
...
...
@@ -51,15 +61,6 @@ describe('feature highlight', () => {
},
0
);
});
it
(
'
setup inserted.bs.popover
'
,
()
=>
{
$
(
selector
).
trigger
(
'
mouseenter
'
);
const
popoverId
=
$
(
selector
).
attr
(
'
aria-describedby
'
);
const
spyEvent
=
spyOnEvent
(
`#
${
popoverId
}
.dismiss-feature-highlight`
,
'
click
'
);
$
(
`#
${
popoverId
}
.dismiss-feature-highlight`
).
click
();
expect
(
spyEvent
).
toHaveBeenTriggered
();
});
it
(
'
setup show.bs.popover
'
,
()
=>
{
$
(
selector
).
trigger
(
'
show.bs.popover
'
);
expect
(
window
.
addEventListener
).
toHaveBeenCalledWith
(
'
scroll
'
,
jasmine
.
any
(
Function
));
...
...
@@ -75,9 +76,19 @@ describe('feature highlight', () => {
});
it
(
'
displays popover
'
,
()
=>
{
expect
(
$
(
selector
).
attr
(
'
aria-describedby
'
)).
toBeFalsy
();
expect
(
document
.
querySelector
(
selector
).
getAttribute
(
'
aria-describedby
'
)).
toBeFalsy
();
$
(
selector
).
trigger
(
'
mouseenter
'
);
expect
(
$
(
selector
).
attr
(
'
aria-describedby
'
)).
toBeTruthy
();
expect
(
document
.
querySelector
(
selector
).
getAttribute
(
'
aria-describedby
'
)).
toBeTruthy
();
});
it
(
'
toggles when clicked
'
,
()
=>
{
$
(
selector
).
trigger
(
'
mouseenter
'
);
const
popoverId
=
$
(
selector
).
attr
(
'
aria-describedby
'
);
const
toggleSpy
=
spyOn
(
featureHighlightHelper
.
togglePopover
,
'
call
'
);
$
(
`#
${
popoverId
}
.dismiss-feature-highlight`
).
click
();
expect
(
toggleSpy
).
toHaveBeenCalled
();
});
});
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/gl_dropdown_spec.js
View file @
35c8fd55
...
...
@@ -64,8 +64,8 @@ describe('glDropdown', function describeDropdown() {
});
afterEach
(()
=>
{
$
(
'
body
'
).
unbind
(
'
keydown
'
);
this
.
dropdownContainerElement
.
unbind
(
'
keyup
'
);
$
(
'
body
'
).
off
(
'
keydown
'
);
this
.
dropdownContainerElement
.
off
(
'
keyup
'
);
});
it
(
'
should open on click
'
,
()
=>
{
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/merge_request_notes_spec.js
View file @
35c8fd55
...
...
@@ -23,7 +23,7 @@ describe('Merge request notes', () => {
gl
.
utils
.
disableButtonIfEmptyField
=
_
.
noop
;
window
.
project_uploads_path
=
'
http://test.host/uploads
'
;
$
(
'
body
'
).
attr
(
'
data-page
'
,
'
projects:merge_requests:show
'
);
window
.
gon
.
current_user_id
=
$
(
'
.note:last
'
).
data
(
'
author
-i
d
'
);
window
.
gon
.
current_user_id
=
$
(
'
.note:last
'
).
data
(
'
author
I
d
'
);
return
new
Notes
(
''
,
[]);
});
...
...
@@ -76,7 +76,7 @@ describe('Merge request notes', () => {
</form>`
;
setFixtures
(
diffsResponse
.
html
+
noteFormHtml
);
$
(
'
body
'
).
attr
(
'
data-page
'
,
'
projects:merge_requests:show
'
);
window
.
gon
.
current_user_id
=
$
(
'
.note:last
'
).
data
(
'
author
-i
d
'
);
window
.
gon
.
current_user_id
=
$
(
'
.note:last
'
).
data
(
'
author
I
d
'
);
return
new
Notes
(
''
,
[]);
});
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/pages/admin/abuse_reports/abuse_reports_spec.js
View file @
35c8fd55
...
...
@@ -22,19 +22,19 @@ describe('Abuse Reports', () => {
it
(
'
should truncate long messages
'
,
()
=>
{
const
$longMessage
=
findMessage
(
'
LONG MESSAGE
'
);
expect
(
$longMessage
.
data
(
'
original
-m
essage
'
)).
toEqual
(
jasmine
.
anything
());
expect
(
$longMessage
.
data
(
'
original
M
essage
'
)).
toEqual
(
jasmine
.
anything
());
assertMaxLength
(
$longMessage
);
});
it
(
'
should not truncate short messages
'
,
()
=>
{
const
$shortMessage
=
findMessage
(
'
SHORT MESSAGE
'
);
expect
(
$shortMessage
.
data
(
'
original
-m
essage
'
)).
not
.
toEqual
(
jasmine
.
anything
());
expect
(
$shortMessage
.
data
(
'
original
M
essage
'
)).
not
.
toEqual
(
jasmine
.
anything
());
});
it
(
'
should allow clicking a truncated message to expand and collapse the full message
'
,
()
=>
{
const
$longMessage
=
findMessage
(
'
LONG MESSAGE
'
);
$longMessage
.
click
();
expect
(
$longMessage
.
data
(
'
original
-m
essage
'
).
length
).
toEqual
(
$longMessage
.
text
().
length
);
expect
(
$longMessage
.
data
(
'
original
M
essage
'
).
length
).
toEqual
(
$longMessage
.
text
().
length
);
$longMessage
.
click
();
assertMaxLength
(
$longMessage
);
});
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/projects/project_new_spec.js
View file @
35c8fd55
...
...
@@ -27,7 +27,7 @@ describe('New Project', () => {
});
it
(
'
does not change project path for disabled $projectImportUrl
'
,
()
=>
{
$projectImportUrl
.
attr
(
'
disabled
'
,
true
);
$projectImportUrl
.
prop
(
'
disabled
'
,
true
);
projectNew
.
deriveProjectPathFromUrl
(
$projectImportUrl
);
...
...
@@ -36,7 +36,7 @@ describe('New Project', () => {
describe
(
'
for enabled $projectImportUrl
'
,
()
=>
{
beforeEach
(()
=>
{
$projectImportUrl
.
attr
(
'
disabled
'
,
false
);
$projectImportUrl
.
prop
(
'
disabled
'
,
false
);
});
it
(
'
does not change project path if it is set by user
'
,
()
=>
{
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/sidebar/sidebar_move_issue_spec.js
View file @
35c8fd55
...
...
@@ -78,7 +78,7 @@ describe('SidebarMoveIssue', () => {
this
.
sidebarMoveIssue
.
onConfirmClicked
();
expect
(
this
.
mediator
.
moveIssue
).
toHaveBeenCalled
();
expect
(
this
.
$confirmButton
.
attr
(
'
disabled
'
)).
toBe
(
'
disabled
'
);
expect
(
this
.
$confirmButton
.
prop
(
'
disabled
'
)).
toBeTruthy
(
);
expect
(
this
.
$confirmButton
.
hasClass
(
'
is-loading
'
)).
toBe
(
true
);
});
...
...
@@ -93,7 +93,7 @@ describe('SidebarMoveIssue', () => {
// Wait for the move issue request to fail
setTimeout
(()
=>
{
expect
(
window
.
Flash
).
toHaveBeenCalled
();
expect
(
this
.
$confirmButton
.
attr
(
'
disabled
'
)).
toBe
(
undefined
);
expect
(
this
.
$confirmButton
.
prop
(
'
disabled
'
)).
toBeFalsy
(
);
expect
(
this
.
$confirmButton
.
hasClass
(
'
is-loading
'
)).
toBe
(
false
);
done
();
});
...
...
@@ -120,7 +120,7 @@ describe('SidebarMoveIssue', () => {
this
.
$content
.
find
(
'
.js-move-issue-dropdown-item
'
).
eq
(
0
).
trigger
(
'
click
'
);
expect
(
this
.
mediator
.
setMoveToProjectId
).
toHaveBeenCalledWith
(
0
);
expect
(
this
.
$confirmButton
.
attr
(
'
disabled
'
)).
toBe
(
'
disabled
'
);
expect
(
this
.
$confirmButton
.
prop
(
'
disabled
'
)).
toBeTruthy
(
);
done
();
},
0
);
});
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/test_bundle.js
View file @
35c8fd55
/* eslint-disable jasmine/no-global-setup */
import
$
from
'
jquery
'
;
import
'
jasmine-jquery
'
;
import
'
vendor/
jasmine-jquery
'
;
import
'
~/commons
'
;
import
Vue
from
'
vue
'
;
...
...
@@ -144,6 +144,9 @@ if (process.env.BABEL_ENV === 'coverage') {
describe
(
'
Uncovered files
'
,
function
()
{
const
sourceFiles
=
require
.
context
(
'
~
'
,
true
,
/
\.
js$/
);
$
.
holdReady
(
true
);
sourceFiles
.
keys
().
forEach
(
function
(
path
)
{
// ignore if there is a matching spec file
if
(
testsContext
.
keys
().
indexOf
(
`
${
path
.
replace
(
/
\.
js$/
,
''
)}
_spec`
)
>
-
1
)
{
...
...
This diff is collapsed.
Click to expand it.
vendor/assets/javascripts/jasmine-jquery.js
0 → 100644
View file @
35c8fd55
This diff is collapsed.
Click to expand it.
vendor/assets/javascripts/jquery.atwho.js
View file @
35c8fd55
...
...
@@ -448,7 +448,7 @@ Controller = (function() {
Controller
.
prototype
.
insertContentFor
=
function
(
$li
)
{
var
data
,
tpl
;
tpl
=
this
.
getOpt
(
'
insertTpl
'
);
data
=
$
.
extend
({},
$li
.
data
(
'
item
-d
ata
'
),
{
data
=
$
.
extend
({},
$li
.
data
(
'
item
D
ata
'
),
{
'
atwho-at
'
:
this
.
at
});
return
this
.
callbacks
(
"
tplEval
"
).
call
(
this
,
tpl
,
data
,
"
onInsert
"
);
...
...
@@ -824,7 +824,7 @@ EditableController = (function(superClass) {
this
.
$inputor
.
focus
();
}
suffix
=
(
suffix
=
this
.
getOpt
(
'
suffix
'
))
===
""
?
suffix
:
suffix
||
"
\
u00A0
"
;
data
=
$li
.
data
(
'
item
-d
ata
'
);
data
=
$li
.
data
(
'
item
D
ata
'
);
this
.
query
.
el
.
removeClass
(
'
atwho-query
'
).
addClass
(
'
atwho-inserted
'
).
html
(
content
).
attr
(
'
data-atwho-at-query
'
,
""
+
data
[
'
atwho-at
'
]
+
this
.
query
.
text
);
if
(
range
=
this
.
_getRange
())
{
range
.
setEndAfter
(
this
.
query
.
el
[
0
]);
...
...
This diff is collapsed.
Click to expand it.
vendor/assets/javascripts/jquery.endless-scroll.js
View file @
35c8fd55
This diff is collapsed.
Click to expand it.
vendor/assets/javascripts/peek.js
View file @
35c8fd55
...
...
@@ -10,7 +10,7 @@
(
function
(
$
)
{
var
fetchRequestResults
,
getRequestId
,
peekEnabled
,
updatePerformanceBar
;
getRequestId
=
function
()
{
return
$
(
'
#peek
'
).
data
(
'
request
-i
d
'
);
return
$
(
'
#peek
'
).
data
(
'
request
I
d
'
);
};
peekEnabled
=
function
()
{
return
$
(
'
#peek
'
).
length
;
...
...
This diff is collapsed.
Click to expand it.
yarn.lock
View file @
35c8fd55
...
...
@@ -4211,9 +4211,9 @@ jquery.waitforimages@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/jquery.waitforimages/-/jquery.waitforimages-2.2.0.tgz#63f23131055a1b060dc913e6d874bcc9b9e6b16b"
"jquery@>= 1.9.1", jquery@>=1.8.0, jquery@^
2.2.4
:
version "
2.2.4
"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-
2.2.4.tgz#2c89d6889b5eac522a7eea32c14521559c6cbf02
"
"jquery@>= 1.9.1", jquery@>=1.8.0, jquery@^
3.2.1
:
version "
3.3.1
"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-
3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca
"
js-base64@^2.1.9:
version "2.1.9"
...
...
This diff is collapsed.
Click to expand it.
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