mirror of
https://github.com/plankanban/planka.git
synced 2025-08-09 07:25:24 +02:00
#27 fix imported board not being shown immediately
This commit is contained in:
parent
2880ffccaa
commit
d6fd7796bd
1 changed files with 53 additions and 83 deletions
|
@ -7,89 +7,6 @@ import actions from '../../../actions';
|
||||||
import api from '../../../api';
|
import api from '../../../api';
|
||||||
import { createLocalId } from '../../../utils/local-id';
|
import { createLocalId } from '../../../utils/local-id';
|
||||||
|
|
||||||
export function* createBoard(projectId, data) {
|
|
||||||
const nextData = {
|
|
||||||
...data,
|
|
||||||
position: yield select(selectors.selectNextBoardPosition, projectId),
|
|
||||||
};
|
|
||||||
|
|
||||||
const localId = yield call(createLocalId);
|
|
||||||
|
|
||||||
yield put(
|
|
||||||
actions.createBoard({
|
|
||||||
...nextData,
|
|
||||||
projectId,
|
|
||||||
id: localId,
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
let board;
|
|
||||||
let boardMemberships;
|
|
||||||
|
|
||||||
try {
|
|
||||||
({
|
|
||||||
item: board,
|
|
||||||
included: { boardMemberships },
|
|
||||||
} = yield call(request, api.createBoard, projectId, nextData));
|
|
||||||
} catch (error) {
|
|
||||||
yield put(actions.createBoard.failure(localId, error));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield put(actions.createBoard.success(localId, board, boardMemberships));
|
|
||||||
yield call(goToBoard, board.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function* createBoardInCurrentProject(data) {
|
|
||||||
const { projectId } = yield select(selectors.selectPath);
|
|
||||||
|
|
||||||
yield call(createBoard, projectId, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function* importBoard(projectId, data) {
|
|
||||||
const nextData = {
|
|
||||||
...data,
|
|
||||||
position: yield select(selectors.selectNextBoardPosition, projectId),
|
|
||||||
};
|
|
||||||
|
|
||||||
const localId = yield call(createLocalId);
|
|
||||||
|
|
||||||
yield put(
|
|
||||||
actions.createBoard({
|
|
||||||
...nextData,
|
|
||||||
projectId,
|
|
||||||
id: localId,
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
let board;
|
|
||||||
let boardMemberships;
|
|
||||||
|
|
||||||
try {
|
|
||||||
({
|
|
||||||
item: board,
|
|
||||||
included: { boardMemberships },
|
|
||||||
} = yield call(request, api.importBoard, projectId, nextData));
|
|
||||||
} catch (error) {
|
|
||||||
yield put(actions.createBoard.failure(localId, error));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield put(actions.createBoard.success(localId, board, boardMemberships));
|
|
||||||
yield put(actions.fetchBoard(board.id));
|
|
||||||
yield call(goToBoard, board.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function* importTrelloBoardInCurrentProject(data) {
|
|
||||||
const { projectId } = yield select(selectors.selectPath);
|
|
||||||
|
|
||||||
yield call(importBoard, projectId, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function* handleBoardCreate(board) {
|
|
||||||
yield put(actions.handleBoardCreate(board));
|
|
||||||
}
|
|
||||||
|
|
||||||
export function* fetchBoard(id) {
|
export function* fetchBoard(id) {
|
||||||
yield put(actions.fetchBoard(id));
|
yield put(actions.fetchBoard(id));
|
||||||
|
|
||||||
|
@ -143,6 +60,59 @@ export function* fetchBoard(id) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function* createBoard(projectId, data) {
|
||||||
|
const isImport = data && data.file;
|
||||||
|
const nextData = {
|
||||||
|
...data,
|
||||||
|
position: yield select(selectors.selectNextBoardPosition, projectId),
|
||||||
|
};
|
||||||
|
|
||||||
|
const localId = yield call(createLocalId);
|
||||||
|
|
||||||
|
yield put(
|
||||||
|
actions.createBoard({
|
||||||
|
...nextData,
|
||||||
|
projectId,
|
||||||
|
id: localId,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
let board;
|
||||||
|
let boardMemberships;
|
||||||
|
|
||||||
|
try {
|
||||||
|
({
|
||||||
|
item: board,
|
||||||
|
included: { boardMemberships },
|
||||||
|
} = yield call(request, isImport ? api.importBoard : api.createBoard, projectId, nextData));
|
||||||
|
} catch (error) {
|
||||||
|
yield put(actions.createBoard.failure(localId, error));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
yield put(actions.createBoard.success(localId, board, boardMemberships));
|
||||||
|
yield call(goToBoard, board.id);
|
||||||
|
if (isImport) {
|
||||||
|
yield call(fetchBoard, board.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function* createBoardInCurrentProject(data) {
|
||||||
|
const { projectId } = yield select(selectors.selectPath);
|
||||||
|
|
||||||
|
yield call(createBoard, projectId, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function* importTrelloBoardInCurrentProject(data) {
|
||||||
|
const { projectId } = yield select(selectors.selectPath);
|
||||||
|
|
||||||
|
yield call(createBoard, projectId, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function* handleBoardCreate(board) {
|
||||||
|
yield put(actions.handleBoardCreate(board));
|
||||||
|
}
|
||||||
|
|
||||||
export function* updateBoard(id, data) {
|
export function* updateBoard(id, data) {
|
||||||
yield put(actions.updateBoard(id, data));
|
yield put(actions.updateBoard(id, data));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue