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
Léo-Paul Géneau
gitlab-ce
Commits
d06e20b2
Commit
d06e20b2
authored
8 years ago
by
Phil Hughes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added ability to infinite scroll issues list
parent
9d307ee0
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
44 additions
and
17 deletions
+44
-17
app/assets/javascripts/boards/components/board.js.es6
app/assets/javascripts/boards/components/board.js.es6
+7
-2
app/assets/javascripts/boards/components/board_list.js.es6
app/assets/javascripts/boards/components/board_list.js.es6
+13
-7
app/assets/javascripts/boards/models/list.js.es6
app/assets/javascripts/boards/models/list.js.es6
+21
-4
app/views/projects/boards/components/_board.html.haml
app/views/projects/boards/components/_board.html.haml
+3
-4
No files found.
app/assets/javascripts/boards/components/board.js.es6
View file @
d06e20b2
...
...
@@ -11,14 +11,19 @@
watch: {
'query': function () {
if (this.board.canSearch()) {
const data = _.extend(this.filters, { search: this.query }
);
this.board.getIssues(
data
);
this.board.filters = this.getFilterData(
);
this.board.getIssues(
true
);
}
}
},
methods: {
clearSearch: function () {
this.query = '';
},
getFilterData: function () {
const queryData = this.board.canSearch() ? { search: this.query } : {};
return _.extend(this.filters, queryData);
}
},
computed: {
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/boards/components/board_list.js.es6
View file @
d06e20b2
...
...
@@ -2,16 +2,15 @@
const BoardList = Vue.extend({
props: {
disabled: Boolean,
boardId: [Number, String],
filters: Object,
list: Object,
issues: Array,
loading: Boolean,
issueLinkBase: String
},
data: function () {
return {
scrollOffset: 20,
loadMore: false
scrollOffset: 2
5
0,
load
ing
More: false
};
},
methods: {
...
...
@@ -24,8 +23,15 @@
scrollTop: function () {
return this.$els.list.scrollTop + this.listHeight();
},
loadFromLastId: function () {
loadNextPage: function () {
this.loadingMore = true;
const getIssues = this.list.nextPage();
if (getIssues) {
getIssues.then(() => {
this.loadingMore = false;
});
}
},
},
ready: function () {
...
...
@@ -51,8 +57,8 @@
// Scroll event on list to load more
this.$els.list.onscroll = () => {
if ((this.scrollTop() > this.scrollHeight() - this.scrollOffset) && !this.loadMore) {
this.load
FromLastId
();
if ((this.scrollTop() > this.scrollHeight() - this.scrollOffset) && !this.load
ing
More) {
this.load
NextPage
();
}
};
}
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/boards/models/list.js.es6
View file @
d06e20b2
...
...
@@ -4,6 +4,8 @@ class List {
this.position = obj.position;
this.title = obj.title;
this.type = obj.list_type;
this.filters = {};
this.page = 1;
this.loading = true;
this.issues = [];
...
...
@@ -39,19 +41,34 @@ class List {
gl.boardService.updateList(this);
}
nextPage () {
if (this.issues.length / 20 === this.page) {
this.page++;
return this.getIssues(false);
}
}
canSearch () {
return this.type === 'backlog';
}
getIssues (filter = {}) {
getIssues (emptyIssues = true) {
const data = _.extend({ page: this.page }, this.filters);
if (emptyIssues) {
this.loading = true;
}
gl.boardService.getIssuesForList(this.id, filter
)
return gl.boardService.getIssuesForList(this.id, data
)
.then((resp) => {
const data = resp.json();
this.loading = false;
if (emptyIssues) {
this.issues = [];
}
this.createIssues(data);
});
}
...
...
This diff is collapsed.
Click to expand it.
app/views/projects/boards/components/_board.html.haml
View file @
d06e20b2
...
...
@@ -15,18 +15,17 @@
%button
.board-search-clear-btn
{
type:
"button"
,
role:
"button"
,
"aria-label"
=>
"Clear search"
,
"@click"
=>
"clearSearch"
,
"v-show"
=>
"query"
}
=
icon
(
"times"
,
class:
"board-search-clear"
)
%board-list
{
"inline-template"
=>
true
,
"v-if"
=>
"board.
id !
= 'blank'"
,
":
board-id"
=>
"board.i
d"
,
"v-if"
=>
"board.
type !=
= 'blank'"
,
":
list"
=>
"boar
d"
,
":issues"
=>
"board.issues"
,
":disabled"
=>
"#{current_user.nil?}"
,
":filters"
=>
"filters"
,
":loading"
=>
"board.loading"
,
":issue-link-base"
=>
"'#{namespace_project_issues_path(@project.namespace, @project)}'"
}
.board-list-loading.text-center
{
"v-if"
=>
"loading"
}
=
icon
(
"spinner spin"
)
%ul
.board-list
{
"v-el:list"
=>
true
,
"v-show"
=>
"!loading"
,
":data-board"
=>
"
boardI
d"
}
":data-board"
=>
"
list.i
d"
}
=
render
"projects/boards/components/card"
-
if
current_user
=
render
"projects/boards/components/blank_state"
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