wekan/client/components/rules/actions/boardActions.js

209 lines
6.7 KiB
JavaScript
Raw Normal View History

2018-08-15 18:47:09 +02:00
BlazeComponent.extendComponent({
2019-06-28 12:52:09 -05:00
onCreated() {},
2018-08-15 18:47:09 +02:00
boards() {
const boards = Boards.find(
{
archived: false,
'members.userId': Meteor.userId(),
_id: {
$ne: Meteor.user().getTemplatesBoardId(),
},
},
{
sort: { sort: 1 /* boards default sorting */ },
},
);
return boards;
},
2018-08-15 18:47:09 +02:00
events() {
2019-06-28 12:52:09 -05:00
return [
{
'click .js-create-card-action'(event) {
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
const cardName = this.find('#card-name').value;
const listName = this.find('#list-name').value;
const swimlaneName = this.find('#swimlane-name2').value;
const boardId = Session.get('currentBoard');
const desc = Utils.getTriggerActionDesc(event, this);
2018-09-14 17:39:37 +02:00
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
2019-06-28 12:52:09 -05:00
actionType: 'createCard',
swimlaneName,
cardName,
listName,
2018-09-16 01:50:36 +03:00
boardId,
desc,
2018-09-14 17:39:37 +02:00
});
Rules.insert({
title: ruleName,
2018-09-16 01:50:36 +03:00
triggerId,
actionId,
boardId,
2018-09-14 17:39:37 +02:00
});
2019-06-28 12:52:09 -05:00
},
'click .js-add-swimlane-action'(event) {
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
const swimlaneName = this.find('#swimlane-name').value;
const boardId = Session.get('currentBoard');
const desc = Utils.getTriggerActionDesc(event, this);
2018-09-14 17:39:37 +02:00
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
2019-06-28 12:52:09 -05:00
actionType: 'addSwimlane',
swimlaneName,
2018-09-16 01:50:36 +03:00
boardId,
desc,
2018-09-14 17:39:37 +02:00
});
Rules.insert({
title: ruleName,
2018-09-16 01:50:36 +03:00
triggerId,
actionId,
boardId,
2018-09-14 17:39:37 +02:00
});
2019-06-28 12:52:09 -05:00
},
'click .js-add-spec-move-action'(event) {
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
const actionSelected = this.find('#move-spec-action').value;
const swimlaneName = this.find('#swimlaneName').value || '*';
const listName = this.find('#listName').value || '*';
2019-06-28 12:52:09 -05:00
const boardId = Session.get('currentBoard');
const destBoardId = this.find('#board-id').value;
2019-06-28 12:52:09 -05:00
const desc = Utils.getTriggerActionDesc(event, this);
if (actionSelected === 'top') {
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
actionType: 'moveCardToTop',
listName,
swimlaneName,
boardId: destBoardId,
2019-06-28 12:52:09 -05:00
desc,
});
Rules.insert({
title: ruleName,
triggerId,
actionId,
boardId,
});
}
if (actionSelected === 'bottom') {
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
actionType: 'moveCardToBottom',
listName,
swimlaneName,
boardId: destBoardId,
2019-06-28 12:52:09 -05:00
desc,
});
Rules.insert({
title: ruleName,
triggerId,
actionId,
boardId,
});
}
},
'click .js-add-gen-move-action'(event) {
const desc = Utils.getTriggerActionDesc(event, this);
const boardId = Session.get('currentBoard');
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
const actionSelected = this.find('#move-gen-action').value;
if (actionSelected === 'top') {
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
actionType: 'moveCardToTop',
listTitle: '*',
boardId,
desc,
});
Rules.insert({
title: ruleName,
triggerId,
actionId,
boardId,
});
}
if (actionSelected === 'bottom') {
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
actionType: 'moveCardToBottom',
listTitle: '*',
boardId,
desc,
});
Rules.insert({
title: ruleName,
triggerId,
actionId,
boardId,
});
}
},
'click .js-add-arch-action'(event) {
const desc = Utils.getTriggerActionDesc(event, this);
const boardId = Session.get('currentBoard');
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
const actionSelected = this.find('#arch-action').value;
if (actionSelected === 'archive') {
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
actionType: 'archive',
boardId,
desc,
});
Rules.insert({
title: ruleName,
triggerId,
actionId,
boardId,
});
}
if (actionSelected === 'unarchive') {
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
actionType: 'unarchive',
boardId,
desc,
});
Rules.insert({
title: ruleName,
triggerId,
actionId,
boardId,
});
}
},
2022-12-21 16:21:17 +01:00
'click .js-link-card-action'(event) {
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
const swimlaneName = this.find('#swimlaneName-link').value || '*';
const listName = this.find('#listName-link').value || '*';
const boardId = Session.get('currentBoard');
const destBoardId = this.find('#board-id-link').value;
const desc = Utils.getTriggerActionDesc(event, this);
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
actionType: 'linkCard',
listName,
swimlaneName,
boardId: destBoardId,
desc,
});
Rules.insert({
title: ruleName,
triggerId,
actionId,
boardId,
});
},
2018-09-14 17:39:37 +02:00
},
2019-06-28 12:52:09 -05:00
];
2018-09-14 17:39:37 +02:00
},
2018-09-16 01:50:36 +03:00
}).register('boardActions');
/* eslint-no-undef */