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
e676a0ca
Commit
e676a0ca
authored
Dec 07, 2017
by
Annabel Dunstone Gray
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Port of 35724-animate-sidebar to EE
parent
a6158aa0
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
43 additions
and
33 deletions
+43
-33
app/assets/javascripts/contextual_sidebar.js
app/assets/javascripts/contextual_sidebar.js
+4
-4
app/assets/javascripts/fly_out_nav.js
app/assets/javascripts/fly_out_nav.js
+1
-1
app/assets/stylesheets/framework/contextual-sidebar.scss
app/assets/stylesheets/framework/contextual-sidebar.scss
+22
-16
app/assets/stylesheets/framework/variables.scss
app/assets/stylesheets/framework/variables.scss
+1
-2
app/assets/stylesheets/pages/boards.scss
app/assets/stylesheets/pages/boards.scss
+3
-3
app/assets/stylesheets/pages/issuable.scss
app/assets/stylesheets/pages/issuable.scss
+1
-1
app/views/layouts/nav/sidebar/_admin.html.haml
app/views/layouts/nav/sidebar/_admin.html.haml
+1
-1
app/views/layouts/nav/sidebar/_group.html.haml
app/views/layouts/nav/sidebar/_group.html.haml
+1
-1
app/views/layouts/nav/sidebar/_profile.html.haml
app/views/layouts/nav/sidebar/_profile.html.haml
+1
-1
app/views/layouts/nav/sidebar/_project.html.haml
app/views/layouts/nav/sidebar/_project.html.haml
+1
-1
changelogs/unreleased/35724-animate-sidebar.yml
changelogs/unreleased/35724-animate-sidebar.yml
+5
-0
spec/javascripts/fly_out_nav_spec.js
spec/javascripts/fly_out_nav_spec.js
+2
-2
No files found.
app/assets/javascripts/contextual_sidebar.js
View file @
e676a0ca
...
...
@@ -28,7 +28,7 @@ export default class ContextualSidebar {
this
.
$closeSidebar
.
on
(
'
click
'
,
()
=>
this
.
toggleSidebarNav
(
false
));
this
.
$overlay
.
on
(
'
click
'
,
()
=>
this
.
toggleSidebarNav
(
false
));
this
.
$sidebarToggle
.
on
(
'
click
'
,
()
=>
{
const
value
=
!
this
.
$sidebar
.
hasClass
(
'
sidebar-
icons-only
'
);
const
value
=
!
this
.
$sidebar
.
hasClass
(
'
sidebar-
collapsed-desktop
'
);
this
.
toggleCollapsedSidebar
(
value
);
});
...
...
@@ -43,16 +43,16 @@ export default class ContextualSidebar {
}
toggleSidebarNav
(
show
)
{
this
.
$sidebar
.
toggleClass
(
'
nav-sidebar-expanded
'
,
show
);
this
.
$sidebar
.
toggleClass
(
'
sidebar-expanded-mobile
'
,
show
);
this
.
$overlay
.
toggleClass
(
'
mobile-nav-open
'
,
show
);
this
.
$sidebar
.
removeClass
(
'
sidebar-
icons-only
'
);
this
.
$sidebar
.
removeClass
(
'
sidebar-
collapsed-desktop
'
);
}
toggleCollapsedSidebar
(
collapsed
)
{
const
breakpoint
=
bp
.
getBreakpointSize
();
if
(
this
.
$sidebar
.
length
)
{
this
.
$sidebar
.
toggleClass
(
'
sidebar-
icons-only
'
,
collapsed
);
this
.
$sidebar
.
toggleClass
(
'
sidebar-
collapsed-desktop
'
,
collapsed
);
this
.
$page
.
toggleClass
(
'
page-with-icon-sidebar
'
,
breakpoint
===
'
sm
'
?
true
:
collapsed
);
}
ContextualSidebar
.
setCollapsedCookie
(
collapsed
);
...
...
app/assets/javascripts/fly_out_nav.js
View file @
e676a0ca
...
...
@@ -21,7 +21,7 @@ let headerHeight = 50;
export
const
getHeaderHeight
=
()
=>
headerHeight
;
export
const
isSidebarCollapsed
=
()
=>
sidebar
&&
sidebar
.
classList
.
contains
(
'
sidebar-
icons-only
'
);
export
const
isSidebarCollapsed
=
()
=>
sidebar
&&
sidebar
.
classList
.
contains
(
'
sidebar-
collapsed-desktop
'
);
export
const
canShowActiveSubItems
=
(
el
)
=>
{
if
(
el
.
classList
.
contains
(
'
active
'
)
&&
!
isSidebarCollapsed
())
{
...
...
app/assets/stylesheets/framework/contextual-sidebar.scss
View file @
e676a0ca
.page-with-contextual-sidebar
{
transition
:
padding-left
$sidebar-transition-duration
;
@media
(
min-width
:
$screen-md-min
)
{
padding-left
:
$contextual-sidebar-collapsed-width
;
}
...
...
@@ -27,8 +29,10 @@
.context-header
{
position
:
relative
;
margin-right
:
2px
;
width
:
$contextual-sidebar-width
;
a
{
transition
:
padding
$sidebar-transition-duration
;
font-weight
:
$gl-font-weight-bold
;
display
:
flex
;
align-items
:
center
;
...
...
@@ -63,10 +67,10 @@
}
.nav-sidebar
{
transition
:
width
$sidebar-transition-duration
,
left
$sidebar-transition-duration
;
position
:
fixed
;
z-index
:
400
;
width
:
$contextual-sidebar-width
;
transition
:
left
$sidebar-transition-duration
;
top
:
$header-height
;
bottom
:
0
;
left
:
0
;
...
...
@@ -74,16 +78,15 @@
box-shadow
:
inset
-2px
0
0
$border-color
;
transform
:
translate3d
(
0
,
0
,
0
);
&
:not
(
.sidebar-
icons-only
)
{
&
:not
(
.sidebar-
collapsed-desktop
)
{
@media
(
min-width
:
$screen-sm-min
)
and
(
max-width
:
$screen-md-max
)
{
box-shadow
:
inset
-2px
0
0
$border-color
,
2px
1px
3px
$dropdown-shadow-color
;
}
}
&
.sidebar-icons-only
{
width
:
auto
;
min-width
:
$contextual-sidebar-collapsed-width
;
&
.sidebar-collapsed-desktop
{
width
:
$contextual-sidebar-collapsed-width
;
.nav-sidebar-inner-scroll
{
overflow-x
:
hidden
;
...
...
@@ -108,12 +111,11 @@
}
}
&
.
nav-sidebar-expanded
{
&
.
sidebar-expanded-mobile
{
left
:
0
;
}
a
{
transition
:
none
;
text-decoration
:
none
;
}
...
...
@@ -126,9 +128,10 @@
white-space
:
nowrap
;
a
{
transition
:
padding
$sidebar-transition-duration
;
display
:
flex
;
align-items
:
center
;
padding
:
12px
1
6
px
;
padding
:
12px
1
5
px
;
color
:
$gl-text-color-secondary
;
}
...
...
@@ -288,7 +291,8 @@
>
a
{
margin-left
:
4px
;
padding-left
:
12px
;
// Subtract width of left border on active element
padding-left
:
11px
;
}
.badge
{
...
...
@@ -313,6 +317,7 @@
.toggle-sidebar-button
,
.close-nav-button
{
width
:
$contextual-sidebar-width
-
2px
;
transition
:
width
$sidebar-transition-duration
;
position
:
fixed
;
bottom
:
0
;
padding
:
16px
;
...
...
@@ -343,20 +348,21 @@
}
}
.collapse-text
{
white-space
:
nowrap
;
overflow
:
hidden
;
}
.sidebar-
icons-only
{
.sidebar-
collapsed-desktop
{
.context-header
{
height
:
61px
;
height
:
60px
;
width
:
$contextual-sidebar-collapsed-width
;
a
{
padding
:
10px
4px
;
}
}
li
a
{
padding
:
12px
15px
;
}
.sidebar-top-level-items
>
li
{
&
.active
a
{
padding-left
:
12px
;
...
...
@@ -374,8 +380,8 @@
}
.toggle-sidebar-button
{
width
:
$contextual-sidebar-collapsed-width
-
2px
;
padding
:
16px
;
width
:
$contextual-sidebar-collapsed-width
-
2px
;
.collapse-text
,
.icon-angle-double-left
{
...
...
app/assets/stylesheets/framework/variables.scss
View file @
e676a0ca
...
...
@@ -5,10 +5,9 @@ $grid-size: 8px;
$gutter_collapsed_width
:
62px
;
$gutter_width
:
290px
;
$gutter_inner_width
:
250px
;
$sidebar-transition-duration
:
.
15
s
;
$sidebar-transition-duration
:
.
3
s
;
$sidebar-breakpoint
:
1024px
;
$default-transition-duration
:
.15s
;
$right-sidebar-transition-duration
:
.3s
;
$contextual-sidebar-width
:
220px
;
$contextual-sidebar-collapsed-width
:
50px
;
...
...
app/assets/stylesheets/pages/boards.scss
View file @
e676a0ca
...
...
@@ -92,7 +92,7 @@
position
:
relative
;
@media
(
min-width
:
$screen-sm-min
)
{
transition
:
width
$
right-
sidebar-transition-duration
;
transition
:
width
$sidebar-transition-duration
;
width
:
100%
;
&
.is-compact
{
...
...
@@ -520,8 +520,8 @@
.right-sidebar.right-sidebar-expanded
{
&
.boards-sidebar-slide-enter-active
,
&
.boards-sidebar-slide-leave-active
{
transition
:
width
$
right-
sidebar-transition-duration
,
padding
$
right-
sidebar-transition-duration
;
transition
:
width
$sidebar-transition-duration
,
padding
$sidebar-transition-duration
;
}
&
.boards-sidebar-slide-enter
,
...
...
app/assets/stylesheets/pages/issuable.scss
View file @
e676a0ca
...
...
@@ -126,7 +126,7 @@
top
:
$header-height
;
bottom
:
0
;
right
:
0
;
transition
:
width
$
right-
sidebar-transition-duration
;
transition
:
width
$sidebar-transition-duration
;
background
:
$gray-light
;
z-index
:
200
;
overflow
:
hidden
;
...
...
app/views/layouts/nav/sidebar/_admin.html.haml
View file @
e676a0ca
.nav-sidebar
{
class:
(
"sidebar-
icons-only
"
if
collapsed_sidebar?
)
}
.nav-sidebar
{
class:
(
"sidebar-
collapsed-desktop
"
if
collapsed_sidebar?
)
}
.nav-sidebar-inner-scroll
.context-header
=
link_to
admin_root_path
,
title:
'Admin Overview'
do
...
...
app/views/layouts/nav/sidebar/_group.html.haml
View file @
e676a0ca
...
...
@@ -5,7 +5,7 @@
-
if
@group
.
feature_available?
(
:group_issue_boards
)
-
issues_sub_menu_items
.
push
(
'boards#index'
,
'boards#show'
)
.nav-sidebar
{
class:
(
"sidebar-
icons-only
"
if
collapsed_sidebar?
)
}
.nav-sidebar
{
class:
(
"sidebar-
collapsed-desktop
"
if
collapsed_sidebar?
)
}
.nav-sidebar-inner-scroll
.context-header
=
link_to
group_path
(
@group
),
title:
@group
.
name
do
...
...
app/views/layouts/nav/sidebar/_profile.html.haml
View file @
e676a0ca
.nav-sidebar
{
class:
(
"sidebar-
icons-only
"
if
collapsed_sidebar?
)
}
.nav-sidebar
{
class:
(
"sidebar-
collapsed-desktop
"
if
collapsed_sidebar?
)
}
.nav-sidebar-inner-scroll
.context-header
=
link_to
profile_path
,
title:
'Profile Settings'
do
...
...
app/views/layouts/nav/sidebar/_project.html.haml
View file @
e676a0ca
.nav-sidebar
{
class:
(
"sidebar-
icons-only
"
if
collapsed_sidebar?
)
}
.nav-sidebar
{
class:
(
"sidebar-
collapsed-desktop
"
if
collapsed_sidebar?
)
}
.nav-sidebar-inner-scroll
-
can_edit
=
can?
(
current_user
,
:admin_project
,
@project
)
.context-header
...
...
changelogs/unreleased/35724-animate-sidebar.yml
0 → 100644
View file @
e676a0ca
---
title
:
Animate contextual sidebar on collapse/expand
merge_request
:
author
:
type
:
changed
spec/javascripts/fly_out_nav_spec.js
View file @
e676a0ca
...
...
@@ -253,7 +253,7 @@ describe('Fly out sidebar navigation', () => {
it
(
'
shows collapsed only sub-items if icon only sidebar
'
,
()
=>
{
const
subItems
=
el
.
querySelector
(
'
.sidebar-sub-level-items
'
);
const
sidebar
=
document
.
createElement
(
'
div
'
);
sidebar
.
classList
.
add
(
'
sidebar-
icons-only
'
);
sidebar
.
classList
.
add
(
'
sidebar-
collapsed-desktop
'
);
subItems
.
classList
.
add
(
'
is-fly-out-only
'
);
setSidebar
(
sidebar
);
...
...
@@ -343,7 +343,7 @@ describe('Fly out sidebar navigation', () => {
it
(
'
returns true when active & collapsed sidebar
'
,
()
=>
{
const
sidebar
=
document
.
createElement
(
'
div
'
);
sidebar
.
classList
.
add
(
'
sidebar-
icons-only
'
);
sidebar
.
classList
.
add
(
'
sidebar-
collapsed-desktop
'
);
el
.
classList
.
add
(
'
active
'
);
setSidebar
(
sidebar
);
...
...
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