mirror of
https://github.com/wekan/wekan.git
synced 2026-03-13 17:06:13 +01:00
Convert all remaining BlazeComponent-based components to native Meteor Template pattern: activities, comments, all rules actions/triggers, swimlanes, users, gantt, import, and main utility components.
225 lines
6.1 KiB
JavaScript
225 lines
6.1 KiB
JavaScript
import { ReactiveCache } from '/imports/reactiveCache';
|
|
import { TAPi18n } from '/imports/i18n';
|
|
|
|
Template.boardActions.onCreated(function () {
|
|
this.subscribe('boards');
|
|
});
|
|
|
|
Template.boardActions.helpers({
|
|
boards() {
|
|
const ret = ReactiveCache.getBoards(
|
|
{
|
|
archived: false,
|
|
'members.userId': Meteor.userId(),
|
|
_id: {
|
|
$ne: ReactiveCache.getCurrentUser().getTemplatesBoardId(),
|
|
},
|
|
},
|
|
{
|
|
sort: { sort: 1 /* boards default sorting */ },
|
|
},
|
|
);
|
|
return ret;
|
|
},
|
|
|
|
loadingBoardsLabel() {
|
|
try {
|
|
const txt = TAPi18n.__('loading-boards');
|
|
if (txt && !txt.startsWith("key '")) return txt;
|
|
} catch (e) {
|
|
// ignore translation lookup errors
|
|
}
|
|
return 'Loading boards...';
|
|
},
|
|
});
|
|
|
|
Template.boardActions.events({
|
|
'click .js-create-card-action'(event, tpl) {
|
|
const data = Template.currentData();
|
|
const ruleName = data.ruleName.get();
|
|
const trigger = data.triggerVar.get();
|
|
const cardName = tpl.find('#card-name').value;
|
|
const listName = tpl.find('#list-name').value;
|
|
const swimlaneName = tpl.find('#swimlane-name2').value;
|
|
const boardId = Session.get('currentBoard');
|
|
const desc = Utils.getTriggerActionDesc(event, tpl);
|
|
const triggerId = Triggers.insert(trigger);
|
|
const actionId = Actions.insert({
|
|
actionType: 'createCard',
|
|
swimlaneName,
|
|
cardName,
|
|
listName,
|
|
boardId,
|
|
desc,
|
|
});
|
|
Rules.insert({
|
|
title: ruleName,
|
|
triggerId,
|
|
actionId,
|
|
boardId,
|
|
});
|
|
},
|
|
'click .js-add-swimlane-action'(event, tpl) {
|
|
const data = Template.currentData();
|
|
const ruleName = data.ruleName.get();
|
|
const trigger = data.triggerVar.get();
|
|
const swimlaneName = tpl.find('#swimlane-name').value;
|
|
const boardId = Session.get('currentBoard');
|
|
const desc = Utils.getTriggerActionDesc(event, tpl);
|
|
const triggerId = Triggers.insert(trigger);
|
|
const actionId = Actions.insert({
|
|
actionType: 'addSwimlane',
|
|
swimlaneName,
|
|
boardId,
|
|
desc,
|
|
});
|
|
Rules.insert({
|
|
title: ruleName,
|
|
triggerId,
|
|
actionId,
|
|
boardId,
|
|
});
|
|
},
|
|
'click .js-add-spec-move-action'(event, tpl) {
|
|
const data = Template.currentData();
|
|
const ruleName = data.ruleName.get();
|
|
const trigger = data.triggerVar.get();
|
|
const actionSelected = tpl.find('#move-spec-action').value;
|
|
const swimlaneName = tpl.find('#swimlaneName').value || '*';
|
|
const listName = tpl.find('#listName').value || '*';
|
|
const boardId = Session.get('currentBoard');
|
|
const destBoardId = tpl.find('#board-id').value;
|
|
const desc = Utils.getTriggerActionDesc(event, tpl);
|
|
if (actionSelected === 'top') {
|
|
const triggerId = Triggers.insert(trigger);
|
|
const actionId = Actions.insert({
|
|
actionType: 'moveCardToTop',
|
|
listName,
|
|
swimlaneName,
|
|
boardId: destBoardId,
|
|
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,
|
|
desc,
|
|
});
|
|
Rules.insert({
|
|
title: ruleName,
|
|
triggerId,
|
|
actionId,
|
|
boardId,
|
|
});
|
|
}
|
|
},
|
|
'click .js-add-gen-move-action'(event, tpl) {
|
|
const desc = Utils.getTriggerActionDesc(event, tpl);
|
|
const boardId = Session.get('currentBoard');
|
|
const data = Template.currentData();
|
|
const ruleName = data.ruleName.get();
|
|
const trigger = data.triggerVar.get();
|
|
const actionSelected = tpl.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, tpl) {
|
|
const desc = Utils.getTriggerActionDesc(event, tpl);
|
|
const boardId = Session.get('currentBoard');
|
|
const data = Template.currentData();
|
|
const ruleName = data.ruleName.get();
|
|
const trigger = data.triggerVar.get();
|
|
const actionSelected = tpl.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,
|
|
});
|
|
}
|
|
},
|
|
'click .js-link-card-action'(event, tpl) {
|
|
const data = Template.currentData();
|
|
const ruleName = data.ruleName.get();
|
|
const trigger = data.triggerVar.get();
|
|
const swimlaneName = tpl.find('#swimlaneName-link').value || '*';
|
|
const listName = tpl.find('#listName-link').value || '*';
|
|
const boardId = Session.get('currentBoard');
|
|
const destBoardId = tpl.find('#board-id-link').value;
|
|
const desc = Utils.getTriggerActionDesc(event, tpl);
|
|
const triggerId = Triggers.insert(trigger);
|
|
const actionId = Actions.insert({
|
|
actionType: 'linkCard',
|
|
listName,
|
|
swimlaneName,
|
|
boardId: destBoardId,
|
|
desc,
|
|
});
|
|
Rules.insert({
|
|
title: ruleName,
|
|
triggerId,
|
|
actionId,
|
|
boardId,
|
|
});
|
|
},
|
|
});
|
|
/* eslint-no-undef */
|