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

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

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

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

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

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

@ -175,6 +175,11 @@ export default class extends BaseModel {
Card.withId(payload.localId).delete();
Card.upsert(payload.card);
break;
case ActionTypes.CARD_COPY__SUCCESS:
Card.withId(payload.localId).delete();
Card.upsert(payload.card);
break;
case ActionTypes.CARD_UPDATE:
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 request from '../request';
@ -6,6 +6,7 @@ import selectors from '../../../selectors';
import actions from '../../../actions';
import api from '../../../api';
import { createLocalId } from '../../../utils/local-id';
import { addLabelToCard } from './labels';
export function* createCard(listId, data, autoOpen) {
const { boardId } = yield select(selectors.selectListById, listId);
@ -39,6 +40,11 @@ export function* createCard(listId, data, autoOpen) {
if (autoOpen) {
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) {

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

Loading…
Cancel
Save