Git added copying of labels when copying cards

pull/705/head
Jens Frost 3 years ago
parent f9779687eb
commit 2cc41e3dca

@ -41,6 +41,12 @@ const createCard = (listId, data, headers) =>
item: transformCard(body.item), item: transformCard(body.item),
})); }));
const copyCard = (listId, data, headers) =>
socket.post(`/lists/${listId}/cards`, transformCardData(data), headers).then((body) => ({
...body,
item: transformCard(body.item),
}));
const getCard = (id, headers) => const getCard = (id, headers) =>
socket.get(`/cards/${id}`, undefined, headers).then((body) => ({ socket.get(`/cards/${id}`, undefined, headers).then((body) => ({
...body, ...body,
@ -84,4 +90,5 @@ export default {
makeHandleCardCreate, makeHandleCardCreate,
makeHandleCardUpdate, makeHandleCardUpdate,
makeHandleCardDelete, makeHandleCardDelete,
copyCard,
}; };

@ -61,7 +61,7 @@ const CardCopyStep = React.memo(
console.log('test'); console.log('test');
} }
*/ */
onCopyCard(selectedList.id, path, false); onCopyCard(selectedList.id, path);
onClose(); onClose();
}, [onCopyCard, selectedList.id, path, onClose]); }, [onCopyCard, selectedList.id, path, onClose]);

@ -199,6 +199,8 @@ export default {
CARD_DELETE_HANDLE: 'CARD_DELETE_HANDLE', CARD_DELETE_HANDLE: 'CARD_DELETE_HANDLE',
CARD_COPY_HANDLE: 'CARD_COPY_HANDLE', CARD_COPY_HANDLE: 'CARD_COPY_HANDLE',
CARD_COPY: 'CARD_COPY', CARD_COPY: 'CARD_COPY',
CARD_COPY__SUCCESS: 'CARD_COPY__SUCCESS',
CARD_COPY__FAILURE: 'CARD_COPY__FAILURE',
/* Tasks */ /* Tasks */

@ -25,7 +25,7 @@ const mapDispatchToProps = (dispatch) =>
onMove: entryActions.moveBoard, onMove: entryActions.moveBoard,
onDelete: entryActions.deleteBoard, onDelete: entryActions.deleteBoard,
onSort: entryActions.sortBoard, onSort: entryActions.sortBoard,
onCopyCard: entryActions.createCard, onCopyCard: entryActions.copyCard,
}, },
dispatch, dispatch,
); );

@ -72,7 +72,7 @@ const mapDispatchToProps = (dispatch, { id }) =>
onLabelUpdate: (labelId, data) => entryActions.updateLabel(labelId, data), onLabelUpdate: (labelId, data) => entryActions.updateLabel(labelId, data),
onLabelMove: (labelId, index) => entryActions.moveLabel(labelId, index), onLabelMove: (labelId, index) => entryActions.moveLabel(labelId, index),
onLabelDelete: (labelId) => entryActions.deleteLabel(labelId), onLabelDelete: (labelId) => entryActions.deleteLabel(labelId),
onCopyCard: (listId, data) => entryActions.createCard(listId, data, false), onCopyCard: (listId, data) => entryActions.copyCard(listId, data, false),
}, },
dispatch, dispatch,
); );

@ -36,6 +36,7 @@ const mapDispatchToProps = (dispatch, { id }) =>
onDelete: () => entryActions.deleteList(id), onDelete: () => entryActions.deleteList(id),
onCardCreate: (data, autoOpen) => entryActions.createCard(id, data, autoOpen), onCardCreate: (data, autoOpen) => entryActions.createCard(id, data, autoOpen),
onSort: (data) => entryActions.sortList(id, data), onSort: (data) => entryActions.sortList(id, data),
onCardCopy: (data, autoOpen) => entryActions.copyCard(id, data, autoOpen),
}, },
dispatch, dispatch,
); );

@ -175,6 +175,11 @@ export default class extends BaseModel {
Card.withId(payload.localId).delete(); Card.withId(payload.localId).delete();
Card.upsert(payload.card); Card.upsert(payload.card);
break;
case ActionTypes.CARD_COPY__SUCCESS:
Card.withId(payload.localId).delete();
Card.upsert(payload.card);
break; break;
case ActionTypes.CARD_UPDATE: case ActionTypes.CARD_UPDATE:
Card.withId(payload.id).update(payload.data); Card.withId(payload.id).update(payload.data);

@ -1,4 +1,4 @@
import { call, put, select } from 'redux-saga/effects'; import { call, put, select, all } from 'redux-saga/effects';
import { goToBoard, goToCard } from './router'; import { goToBoard, goToCard } from './router';
import request from '../request'; import request from '../request';
@ -6,6 +6,7 @@ import selectors from '../../../selectors';
import actions from '../../../actions'; import actions from '../../../actions';
import api from '../../../api'; import api from '../../../api';
import { createLocalId } from '../../../utils/local-id'; import { createLocalId } from '../../../utils/local-id';
import { addLabelToCard } from './labels';
export function* createCard(listId, data, autoOpen) { export function* createCard(listId, data, autoOpen) {
const { boardId } = yield select(selectors.selectListById, listId); const { boardId } = yield select(selectors.selectListById, listId);
@ -39,6 +40,11 @@ export function* createCard(listId, data, autoOpen) {
if (autoOpen) { if (autoOpen) {
yield call(goToCard, card.id); yield call(goToCard, card.id);
} }
// Add labels to card
const arr = [];
Object.keys(nextData.labels).map((key) => arr.push(nextData.labels[key].id));
yield all(arr?.map((label) => call(addLabelToCard, label, card.id)));
} }
export function* handleCardCreate(card) { export function* handleCardCreate(card) {

@ -15,6 +15,7 @@ import attachments from './attachments';
import activities from './activities'; import activities from './activities';
import commentActivities from './comment-activities'; import commentActivities from './comment-activities';
import notifications from './notifications'; import notifications from './notifications';
import copycards from './copycards';
export default { export default {
...router, ...router,
@ -34,4 +35,5 @@ export default {
...activities, ...activities,
...commentActivities, ...commentActivities,
...notifications, ...notifications,
...copycards,
}; };

Loading…
Cancel
Save