Commit 8ab0db4e authored by Mike Greiling's avatar Mike Greiling

Merge branch 'winh-issue-boards-addList-sort' into 'master'

Sort by position in issue boards store addList()

See merge request gitlab-org/gitlab-ce!28827
parents 5e88463d 02cc659e
<script>
/* global ListLabel */
import _ from 'underscore';
import Cookies from 'js-cookie';
import boardsStore from '../stores/boards_store';
......@@ -29,8 +28,6 @@ export default {
});
});
boardsStore.state.lists = _.sortBy(boardsStore.state.lists, 'position');
// Save the labels
gl.boardService
.generateDefaultLists()
......
import $ from 'jquery';
import _ from 'underscore';
import Vue from 'vue';
import Flash from '~/flash';
......@@ -106,18 +105,23 @@ export default () => {
gl.boardService
.all()
.then(res => res.data)
.then(data => {
data.forEach(board => {
const list = boardsStore.addList(board, this.defaultAvatar);
if (list.type === 'closed') {
list.position = Infinity;
} else if (list.type === 'backlog') {
list.position = -1;
.then(lists => {
lists.forEach(listObj => {
let { position } = listObj;
if (listObj.list_type === 'closed') {
position = Infinity;
} else if (listObj.list_type === 'backlog') {
position = -1;
}
});
this.state.lists = _.sortBy(this.state.lists, 'position');
boardsStore.addList(
{
...listObj,
position,
},
this.defaultAvatar,
);
});
boardsStore.addBlankState();
this.loading = false;
......
......@@ -45,7 +45,7 @@ const boardsStore = {
},
addList(listObj, defaultAvatar) {
const list = new List(listObj, defaultAvatar);
this.state.lists.push(list);
this.state.lists = _.sortBy([...this.state.lists, list], 'position');
return list;
},
......@@ -82,8 +82,6 @@ const boardsStore = {
title: __('Welcome to your Issue Board!'),
position: 0,
});
this.state.lists = _.sortBy(this.state.lists, 'position');
},
removeBlankState() {
this.removeList('blank');
......
......@@ -44,6 +44,15 @@ describe('Store', () => {
expect(boardsStore.state.lists.length).toBe(0);
});
describe('addList', () => {
it('sorts by position', () => {
boardsStore.addList({ position: 2 });
boardsStore.addList({ position: 1 });
expect(boardsStore.state.lists[0].position).toBe(1);
});
});
describe('lists', () => {
it('creates new list without persisting to DB', () => {
boardsStore.addList(listObj);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment