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
Boxiang Sun
gitlab-ce
Commits
c082d92f
Commit
c082d92f
authored
Jul 06, 2016
by
Sean McGivern
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow expanding all diffs at once
parent
90a6be19
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
1 deletion
+45
-1
app/helpers/diff_helper.rb
app/helpers/diff_helper.rb
+4
-0
app/views/projects/diffs/_content.html.haml
app/views/projects/diffs/_content.html.haml
+1
-1
app/views/projects/diffs/_diffs.html.haml
app/views/projects/diffs/_diffs.html.haml
+2
-0
spec/features/merge_requests/expand_collapse_diffs_spec.rb
spec/features/merge_requests/expand_collapse_diffs_spec.rb
+38
-0
No files found.
app/helpers/diff_helper.rb
View file @
c082d92f
...
@@ -8,6 +8,10 @@ module DiffHelper
...
@@ -8,6 +8,10 @@ module DiffHelper
[
marked_old_line
,
marked_new_line
]
[
marked_old_line
,
marked_new_line
]
end
end
def
expand_all?
@expand_all
||
params
[
:expand
].
present?
end
def
render_diff_for_path
(
diffs
,
diff_refs
,
project
)
def
render_diff_for_path
(
diffs
,
diff_refs
,
project
)
diff_file
=
safe_diff_files
(
diffs
,
diff_refs
).
first
diff_file
=
safe_diff_files
(
diffs
,
diff_refs
).
first
...
...
app/views/projects/diffs/_content.html.haml
View file @
c082d92f
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
-
if
!
project
.
repository
.
diffable?
(
blob
)
-
if
!
project
.
repository
.
diffable?
(
blob
)
.nothing-here-block
This diff was suppressed by a .gitattributes entry.
.nothing-here-block
This diff was suppressed by a .gitattributes entry.
-
elsif
diff_file
.
diff_lines
.
length
>
0
-
elsif
diff_file
.
diff_lines
.
length
>
0
-
if
diff_file
.
collapsed_by_default?
&&
!
@expand_all
-
if
diff_file
.
collapsed_by_default?
&&
!
expand_all?
-
url
=
url_for
(
params
.
merge
(
action: :diff_for_path
,
path:
diff_file
.
file_path
,
format:
nil
))
-
url
=
url_for
(
params
.
merge
(
action: :diff_for_path
,
path:
diff_file
.
file_path
,
format:
nil
))
.nothing-here-block.diff-collapsed
{
data:
{
diff_for_path:
url
}
}
.nothing-here-block.diff-collapsed
{
data:
{
diff_for_path:
url
}
}
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
...
...
app/views/projects/diffs/_diffs.html.haml
View file @
c082d92f
...
@@ -6,6 +6,8 @@
...
@@ -6,6 +6,8 @@
.content-block.oneline-block.files-changed
.content-block.oneline-block.files-changed
.inline-parallel-buttons
.inline-parallel-buttons
-
unless
expand_all?
=
link_to
'Expand all'
,
url_for
(
params
.
merge
(
expand:
1
,
format:
'html'
)),
class:
'btn btn-default'
-
if
show_whitespace_toggle
-
if
show_whitespace_toggle
-
if
current_controller?
(
:commit
)
-
if
current_controller?
(
:commit
)
=
commit_diff_whitespace_link
(
@project
,
@commit
,
class:
'hidden-xs'
)
=
commit_diff_whitespace_link
(
@project
,
@commit
,
class:
'hidden-xs'
)
...
...
spec/features/merge_requests/expand_collapse_diffs_spec.rb
View file @
c082d92f
...
@@ -135,4 +135,42 @@ feature 'Expand and collapse diffs', js: true, feature: true do
...
@@ -135,4 +135,42 @@ feature 'Expand and collapse diffs', js: true, feature: true do
end
end
end
end
end
end
context
'expanding all diffs'
do
before
do
click_link
(
'Expand all'
)
wait_for_ajax
execute_script
(
'window.ajaxUris = []; $(document).ajaxSend(function(event, xhr, settings) { ajaxUris.push(settings.url) });'
)
end
it
'reloads the page with all diffs expanded'
do
expect
(
small_diff
).
to
have_selector
(
'.code'
)
expect
(
small_diff
).
not_to
have_selector
(
'.nothing-here-block'
)
expect
(
large_diff
).
to
have_selector
(
'.code'
)
expect
(
large_diff
).
not_to
have_selector
(
'.nothing-here-block'
)
end
context
'collapsing an expanded diff'
do
before
{
click_link
(
'small_diff.md'
)
}
it
'hides the diff content'
do
expect
(
small_diff
).
not_to
have_selector
(
'.code'
)
expect
(
small_diff
).
to
have_selector
(
'.nothing-here-block'
)
end
context
're-expanding the same diff'
do
before
{
click_link
(
'small_diff.md'
)
}
it
'shows the diff content'
do
expect
(
small_diff
).
to
have_selector
(
'.code'
)
expect
(
small_diff
).
not_to
have_selector
(
'.nothing-here-block'
)
end
it
'does not make a new HTTP request'
do
expect
(
evaluate_script
(
'ajaxUris'
)).
to
be_empty
end
end
end
end
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