BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
22dc35a6
Commit
22dc35a6
authored
Jan 06, 2017
by
Fatih Acet
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'issue-boards-animate' into 'master'
Added animations to issue boards Closes #25630 See merge request !8417
parents
57652bf5
36fa45e7
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
63 additions
and
27 deletions
+63
-27
board.js.es6
app/assets/javascripts/boards/components/board.js.es6
+20
-6
sortable_default_options.js.es6
...javascripts/boards/mixins/sortable_default_options.js.es6
+1
-0
boards.scss
app/assets/stylesheets/pages/boards.scss
+16
-0
_sidebar.html.haml
app/views/projects/boards/components/_sidebar.html.haml
+22
-21
issue-boards-animate.yml
changelogs/unreleased/issue-boards-animate.yml
+4
-0
No files found.
app/assets/javascripts/boards/components/board.js.es6
View file @
22dc35a6
...
...
@@ -45,14 +45,28 @@
const issue = this.list.findIssue(this.detailIssue.issue.id);
if (issue) {
const offsetLeft = this.$el.offsetLeft;
const boardsList = document.querySelectorAll('.boards-list')[0];
const right = (this.$el.offsetLeft + this.$el.offsetWidth) - boardsList.offsetWidth;
const left = boardsList.scrollLeft - this.$el.offsetLeft;
const left = boardsList.scrollLeft - offsetLeft;
let right = (offsetLeft + this.$el.offsetWidth);
if (window.innerWidth > 768 && boardsList.classList.contains('is-compact')) {
// -290 here because width of boardsList is animating so therefore
// getting the width here is incorrect
// 290 is the width of the sidebar
right -= (boardsList.offsetWidth - 290);
} else {
right -= boardsList.offsetWidth;
}
if (right - boardsList.scrollLeft > 0) {
boardsList.scrollLeft = right;
$(boardsList).animate({
scrollLeft: right
}, this.sortableOptions.animation);
} else if (left > 0) {
boardsList.scrollLeft = this.$el.offsetLeft;
$(boardsList).animate({
scrollLeft: offsetLeft
}, this.sortableOptions.animation);
}
}
},
...
...
@@ -65,7 +79,7 @@
}
},
mounted () {
const o
ptions = gl.issueBoards.getBoardSortableDefaultOptions({
this.sortableO
ptions = gl.issueBoards.getBoardSortableDefaultOptions({
disabled: this.disabled,
group: 'boards',
draggable: '.is-draggable',
...
...
@@ -84,7 +98,7 @@
}
});
this.sortable = Sortable.create(this.$el.parentNode,
o
ptions);
this.sortable = Sortable.create(this.$el.parentNode,
this.sortableO
ptions);
},
});
})();
app/assets/javascripts/boards/mixins/sortable_default_options.js.es6
View file @
22dc35a6
...
...
@@ -20,6 +20,7 @@
gl.issueBoards.getBoardSortableDefaultOptions = (obj) => {
let defaultSortOptions = {
animation: 200,
forceFallback: true,
fallbackClass: 'is-dragging',
fallbackOnBody: true,
...
...
app/assets/stylesheets/pages/boards.scss
View file @
22dc35a6
...
...
@@ -74,6 +74,7 @@
height
:
475px
;
// Needed for PhantomJS
height
:
calc
(
100vh
-
220px
);
min-height
:
475px
;
transition
:
width
.2s
;
&
.is-compact
{
width
:
calc
(
100%
-
290px
);
...
...
@@ -338,3 +339,18 @@
}
}
}
.right-sidebar.right-sidebar-expanded
{
&
.boards-sidebar-slide-enter-active
,
&
.boards-sidebar-slide-leave-active
{
transition
:
width
.2s
,
padding
.2s
;
}
&
.boards-sidebar-slide-enter
,
&
.boards-sidebar-slide-leave-active
{
width
:
0
;
padding-left
:
0
;
padding-right
:
0
;
}
}
app/views/projects/boards/components/_sidebar.html.haml
View file @
22dc35a6
%board-sidebar
{
"inline-template"
=>
true
,
":current-user"
=>
"#{current_user ? current_user.to_json(only: [:username, :id, :name], methods: [:avatar_url]) : {}}"
}
%aside
.right-sidebar.right-sidebar-expanded.issue-boards-sidebar
{
"v-show"
=>
"showSidebar"
}
.issuable-sidebar
.block.issuable-sidebar-header
%span
.issuable-header-text.hide-collapsed.pull-left
%strong
{{ issue.title }}
%br
/
%span
=
precede
"#"
do
{{ issue.id }}
%a
.gutter-toggle.pull-right
{
role:
"button"
,
href:
"#"
,
"@click.prevent"
=>
"closeSidebar"
,
"aria-label"
=>
"Toggle sidebar"
}
=
custom_icon
(
"icon_close"
,
size:
15
)
.js-issuable-update
=
render
"projects/boards/components/sidebar/assignee"
=
render
"projects/boards/components/sidebar/milestone"
=
render
"projects/boards/components/sidebar/due_date"
=
render
"projects/boards/components/sidebar/labels"
=
render
"projects/boards/components/sidebar/notifications"
%transition
{
name:
"boards-sidebar-slide"
}
%aside
.right-sidebar.right-sidebar-expanded.issue-boards-sidebar
{
"v-show"
=>
"showSidebar"
}
.issuable-sidebar
.block.issuable-sidebar-header
%span
.issuable-header-text.hide-collapsed.pull-left
%strong
{{ issue.title }}
%br
/
%span
=
precede
"#"
do
{{ issue.id }}
%a
.gutter-toggle.pull-right
{
role:
"button"
,
href:
"#"
,
"@click.prevent"
=>
"closeSidebar"
,
"aria-label"
=>
"Toggle sidebar"
}
=
custom_icon
(
"icon_close"
,
size:
15
)
.js-issuable-update
=
render
"projects/boards/components/sidebar/assignee"
=
render
"projects/boards/components/sidebar/milestone"
=
render
"projects/boards/components/sidebar/due_date"
=
render
"projects/boards/components/sidebar/labels"
=
render
"projects/boards/components/sidebar/notifications"
changelogs/unreleased/issue-boards-animate.yml
0 → 100644
View file @
22dc35a6
---
title
:
Added animations to issue boards interactions
merge_request
:
author
:
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