1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-18 12:49:43 +02:00
This commit is contained in:
Symon Baikov 2025-07-18 09:23:14 +02:00 committed by GitHub
commit 4596b5fbd4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 34 additions and 0 deletions

View file

@ -53,6 +53,9 @@ module.exports = {
type: 'json',
custom: isStopwatch,
},
customFields: {
type: 'ref',
},
},
exits: {
@ -96,6 +99,10 @@ module.exports = {
'stopwatch',
]);
if (inputs.customFields) {
values.customFields = inputs.customFields;
}
const card = await sails.helpers.cards.createOne
.with({
project,

View file

@ -79,6 +79,33 @@ module.exports = {
listChangedAt: new Date().toISOString(),
});
if (values.customFields) {
const customFieldGroups = await CustomFieldGroup.qm.getByBoardId(values.board.id);
const customFieldGroupMap = _.keyBy(customFieldGroups, 'name');
const customFieldGroupIds = customFieldGroups.map((g) => g.id);
const customFields = await CustomField.qm.getByCustomFieldGroupIds(customFieldGroupIds);
const customFieldMap = _.keyBy(customFields, (f) => `${f.customFieldGroupId}:${f.name}`);
const createValuePromises = [];
Object.entries(values.customFields).forEach(([groupName, fields]) => {
const group = customFieldGroupMap[groupName];
if (!group) return;
Object.entries(fields).forEach(([fieldName, content]) => {
const field = customFieldMap[`${group.id}:${fieldName}`];
if (!field) return;
createValuePromises.push(
CustomFieldValue.create({
cardId: card.id,
customFieldGroupId: group.id,
customFieldId: field.id,
content: String(content),
}),
);
});
});
await Promise.all(createValuePromises);
}
sails.sockets.broadcast(
`board:${card.boardId}`,
'cardCreate',