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
dc90e040
Commit
dc90e040
authored
May 29, 2020
by
GitLab Bot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add latest changes from gitlab-org/gitlab@13-0-stable-ee
parent
6a4f265c
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
58 additions
and
40 deletions
+58
-40
app/assets/javascripts/issue.js
app/assets/javascripts/issue.js
+4
-6
app/models/concerns/cache_markdown_field.rb
app/models/concerns/cache_markdown_field.rb
+1
-1
app/views/projects/issues/show.html.haml
app/views/projects/issues/show.html.haml
+1
-1
app/views/shared/issuable/_close_reopen_report_toggle.html.haml
...ews/shared/issuable/_close_reopen_report_toggle.html.haml
+1
-1
changelogs/unreleased/218745-single-issue-api-performance-regression-degraded-by-8000ms-after-u.yml
...api-performance-regression-degraded-by-8000ms-after-u.yml
+5
-0
changelogs/unreleased/219323-no-event-fired-at-clicking-close-issue-button-in-issue-page.yml
...nt-fired-at-clicking-close-issue-button-in-issue-page.yml
+5
-0
spec/frontend/fixtures/static/issue_with_mermaid_graph.html
spec/frontend/fixtures/static/issue_with_mermaid_graph.html
+2
-2
spec/models/concerns/cache_markdown_field_spec.rb
spec/models/concerns/cache_markdown_field_spec.rb
+4
-4
spec/support/shared_examples/models/mentionable_shared_examples.rb
...ort/shared_examples/models/mentionable_shared_examples.rb
+35
-25
No files found.
app/assets/javascripts/issue.js
View file @
dc90e040
...
...
@@ -89,9 +89,10 @@ export default class Issue {
initIssueBtnEventListeners
()
{
const
issueFailMessage
=
__
(
'
Unable to update this issue at this time.
'
);
return
$
(
document
).
on
(
// NOTE: data attribute seems unnecessary but is actually necessary
return
$
(
'
.js-issuable-buttons[data-action="close-reopen"]
'
).
on
(
'
click
'
,
'
.js-issuable-actions a.btn-close, .js-issuable-actions
a.btn-reopen, a.btn-close-anyway
'
,
'
a.btn-close,
a.btn-reopen, a.btn-close-anyway
'
,
e
=>
{
e
.
preventDefault
();
e
.
stopImmediatePropagation
();
...
...
@@ -108,10 +109,7 @@ export default class Issue {
}
else
{
this
.
disableCloseReopenButton
(
$button
);
const
url
=
$button
.
data
(
'
close-reopen-url
'
);
if
(
!
url
)
{
return
;
}
const
url
=
$button
.
attr
(
'
href
'
);
return
axios
.
put
(
url
)
...
...
app/models/concerns/cache_markdown_field.rb
View file @
dc90e040
...
...
@@ -102,7 +102,7 @@ module CacheMarkdownField
def
updated_cached_html_for
(
markdown_field
)
return
unless
cached_markdown_fields
.
markdown_fields
.
include?
(
markdown_field
)
refresh_markdown_cache
if
attribute_invalidated?
(
cached_markdown_fields
.
html_field
(
markdown_field
))
refresh_markdown_cache
!
if
attribute_invalidated?
(
cached_markdown_fields
.
html_field
(
markdown_field
))
cached_html_for
(
markdown_field
)
end
...
...
app/views/projects/issues/show.html.haml
View file @
dc90e040
...
...
@@ -32,7 +32,7 @@
%a
.btn.btn-default.float-right.d-block.d-sm-none.gutter-toggle.issuable-gutter-toggle.js-sidebar-toggle
{
href:
"#"
}
=
icon
(
'angle-double-left'
)
.detail-page-header-actions.js-issuable-actions
.detail-page-header-actions.js-issuable-actions
.js-issuable-buttons
{
data:
{
"action"
:
"close-reopen"
}
}
.clearfix.issue-btn-group.dropdown
%button
.btn.btn-default.float-left.d-md-none.d-lg-none.d-xl-none
{
type:
"button"
,
data:
{
toggle:
"dropdown"
}
}
Options
...
...
app/views/shared/issuable/_close_reopen_report_toggle.html.haml
View file @
dc90e040
...
...
@@ -11,7 +11,7 @@
.float-left.btn-group.prepend-left-10.issuable-close-dropdown.droplab-dropdown.js-issuable-close-dropdown
=
link_to
"
#{
display_button_action
}
#{
display_issuable_type
}
"
,
close_reopen_issuable_path
(
issuable
),
method:
button_method
,
class:
"
#{
button_class
}
btn-
#{
button_action
}
#{
(
add_blocked_class
?
'btn-issue-blocked'
:
''
)
}
"
,
title:
"
#{
display_button_action
}
#{
display_issuable_type
}
"
,
data:
{
qa_selector:
'close_issue_button'
,
'close-reopen-url'
:
close_reopen_issuable_path
(
issuable
)
}
method:
button_method
,
class:
"
#{
button_class
}
btn-
#{
button_action
}
#{
(
add_blocked_class
?
'btn-issue-blocked'
:
''
)
}
"
,
title:
"
#{
display_button_action
}
#{
display_issuable_type
}
"
,
data:
{
qa_selector:
'close_issue_button'
}
=
button_tag
type:
'button'
,
class:
"
#{
toggle_class
}
btn-
#{
button_action
}
-color"
,
data:
{
'dropdown-trigger'
=>
'#issuable-close-menu'
},
'aria-label'
=>
_
(
'Toggle dropdown'
)
do
...
...
changelogs/unreleased/218745-single-issue-api-performance-regression-degraded-by-8000ms-after-u.yml
0 → 100644
View file @
dc90e040
---
title
:
Fix issue and MR API performance regression when Markdown cache is stale
merge_request
:
33235
author
:
type
:
fixed
changelogs/unreleased/219323-no-event-fired-at-clicking-close-issue-button-in-issue-page.yml
0 → 100644
View file @
dc90e040
---
title
:
Fix close issue when user created the issue
merge_request
:
33294
author
:
type
:
fixed
spec/frontend/fixtures/static/issue_with_mermaid_graph.html
View file @
dc90e040
...
...
@@ -15,14 +15,14 @@
<g
class=
"edgeLabels"
></g>
<g
class=
"nodes"
>
<g
class=
"node js-issuable-
acti
ons btn-close clickable"
class=
"node js-issuable-
butt
ons btn-close clickable"
style=
"opacity: 1;"
id=
"A"
transform=
"translate(92.67500305175781,25.25)"
title=
"click to PUT"
>
<a
class=
"js-issuable-
acti
ons btn-close clickable"
class=
"js-issuable-
butt
ons btn-close clickable"
href=
"https://invalid"
rel=
"noopener"
>
...
...
spec/models/concerns/cache_markdown_field_spec.rb
View file @
dc90e040
...
...
@@ -209,8 +209,8 @@ describe CacheMarkdownField, :clean_gitlab_redis_cache do
thing
.
cached_markdown_version
+=
1
end
it
'calls #refresh_markdown_cache'
do
expect
(
thing
).
to
receive
(
:refresh_markdown_cache
)
it
'calls #refresh_markdown_cache
!
'
do
expect
(
thing
).
to
receive
(
:refresh_markdown_cache
!
)
expect
(
thing
.
updated_cached_html_for
(
:description
)).
to
eq
(
html
)
end
...
...
@@ -227,8 +227,8 @@ describe CacheMarkdownField, :clean_gitlab_redis_cache do
thing
.
try
(
:save
)
end
it
'does not call #refresh_markdown_cache'
do
expect
(
thing
).
not_to
receive
(
:refresh_markdown_cache
)
it
'does not call #refresh_markdown_cache
!
'
do
expect
(
thing
).
not_to
receive
(
:refresh_markdown_cache
!
)
expect
(
thing
.
updated_cached_html_for
(
:description
)).
to
eq
(
html
)
end
...
...
spec/support/shared_examples/models/mentionable_shared_examples.rb
View file @
dc90e040
...
...
@@ -80,25 +80,21 @@ RSpec.shared_examples 'a mentionable' do
context
'when there are cached markdown fields'
do
before
do
if
subject
.
is_a?
(
CacheMarkdownField
)
subject
.
refresh_markdown_cache
end
skip
unless
subject
.
is_a?
(
CacheMarkdownField
)
end
it
'sends in cached markdown fields when appropriate'
do
if
subject
.
is_a?
(
CacheMarkdownField
)
&&
subject
.
extractors
[
author
].
blank?
expect_next_instance_of
(
Gitlab
::
ReferenceExtractor
)
do
|
ext
|
attrs
=
subject
.
class
.
mentionable_attrs
.
collect
(
&
:first
)
&
subject
.
cached_markdown_fields
.
markdown_fields
attrs
.
each
do
|
field
|
expect
(
ext
).
to
receive
(
:analyze
).
with
(
subject
.
send
(
field
),
hash_including
(
rendered:
anything
))
end
subject
.
extractors
[
author
]
=
nil
expect_next_instance_of
(
Gitlab
::
ReferenceExtractor
)
do
|
ext
|
attrs
=
subject
.
class
.
mentionable_attrs
.
collect
(
&
:first
)
&
subject
.
cached_markdown_fields
.
markdown_fields
attrs
.
each
do
|
field
|
expect
(
ext
).
to
receive
(
:analyze
).
with
(
subject
.
send
(
field
),
hash_including
(
rendered:
anything
))
end
end
expect
(
subject
).
not_to
receive
(
:refresh_markdown_cache
)
expect
(
subject
).
to
receive
(
:cached_markdown_fields
).
at_least
(
:once
).
and_call_original
expect
(
subject
).
to
receive
(
:cached_markdown_fields
).
at_least
(
:once
).
and_call_original
subject
.
all_references
(
author
)
end
subject
.
all_references
(
author
)
end
end
...
...
@@ -126,26 +122,40 @@ RSpec.shared_examples 'an editable mentionable' do
context
'when there are cached markdown fields'
do
before
do
if
subject
.
is_a?
(
CacheMarkdownField
)
subject
.
refresh_markdown_cache
end
end
skip
unless
subject
.
is_a?
(
CacheMarkdownField
)
it
'refreshes markdown cache if necessary'
do
subject
.
save!
end
it
'refreshes markdown cache if necessary'
do
set_mentionable_text
.
call
(
'This is a text'
)
if
subject
.
is_a?
(
CacheMarkdownField
)
&&
subject
.
extractors
[
author
].
blank?
expect_next_instance_of
(
Gitlab
::
ReferenceExtractor
)
do
|
ext
|
subject
.
cached_markdown_fields
.
markdown_fields
.
each
do
|
field
|
expect
(
ext
).
to
receive
(
:analyze
).
with
(
subject
.
send
(
field
),
hash_including
(
rendered:
anything
))
end
subject
.
extractors
[
author
]
=
nil
expect_next_instance_of
(
Gitlab
::
ReferenceExtractor
)
do
|
ext
|
subject
.
cached_markdown_fields
.
markdown_fields
.
each
do
|
field
|
expect
(
ext
).
to
receive
(
:analyze
).
with
(
subject
.
send
(
field
),
hash_including
(
rendered:
anything
))
end
end
expect
(
subject
).
to
receive
(
:refresh_markdown_cache
)
expect
(
subject
).
to
receive
(
:cached_markdown_fields
).
at_least
(
:once
).
and_call_original
expect
(
subject
).
to
receive
(
:refresh_markdown_cache
).
and_call_original
expect
(
subject
).
to
receive
(
:cached_markdown_fields
).
at_least
(
:once
).
and_call_original
subject
.
all_references
(
author
)
end
context
'when the markdown cache is stale'
do
before
do
expect
(
subject
).
to
receive
(
:latest_cached_markdown_version
).
at_least
(
:once
)
do
(
Gitlab
::
MarkdownCache
::
CACHE_COMMONMARK_VERSION
+
1
)
<<
16
end
end
it
'persists the refreshed cache so that it does not have to be refreshed every time'
do
expect
(
subject
).
to
receive
(
:refresh_markdown_cache
).
once
.
and_call_original
subject
.
all_references
(
author
)
subject
.
reload
subject
.
all_references
(
author
)
end
end
...
...
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