mirror of
https://github.com/wekan/wekan.git
synced 2026-03-14 01:16:13 +01:00
Migrate rules, activities, and remaining components to Template
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.
This commit is contained in:
parent
bae23f9ed8
commit
477e1c89e5
29 changed files with 2859 additions and 2894 deletions
|
|
@ -1,103 +1,98 @@
|
|||
import { ReactiveCache } from '/imports/reactiveCache';
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.rulesCurrentTab = new ReactiveVar('rulesList');
|
||||
this.ruleName = new ReactiveVar('');
|
||||
this.triggerVar = new ReactiveVar();
|
||||
this.ruleId = new ReactiveVar();
|
||||
},
|
||||
Template.rulesMain.onCreated(function () {
|
||||
this.rulesCurrentTab = new ReactiveVar('rulesList');
|
||||
this.ruleName = new ReactiveVar('');
|
||||
this.triggerVar = new ReactiveVar();
|
||||
this.ruleId = new ReactiveVar();
|
||||
});
|
||||
|
||||
setTrigger() {
|
||||
this.rulesCurrentTab.set('trigger');
|
||||
Template.rulesMain.helpers({
|
||||
rulesCurrentTab() {
|
||||
return Template.instance().rulesCurrentTab;
|
||||
},
|
||||
sanitizeObject(obj) {
|
||||
Object.keys(obj).forEach(key => {
|
||||
if (obj[key] === '' || obj[key] === undefined) {
|
||||
obj[key] = '*';
|
||||
ruleName() {
|
||||
return Template.instance().ruleName;
|
||||
},
|
||||
triggerVar() {
|
||||
return Template.instance().triggerVar;
|
||||
},
|
||||
ruleId() {
|
||||
return Template.instance().ruleId;
|
||||
},
|
||||
});
|
||||
|
||||
function sanitizeObject(obj) {
|
||||
Object.keys(obj).forEach(key => {
|
||||
if (obj[key] === '' || obj[key] === undefined) {
|
||||
obj[key] = '*';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Template.rulesMain.events({
|
||||
'click .js-delete-rule'() {
|
||||
const rule = Template.currentData();
|
||||
Rules.remove(rule._id);
|
||||
Actions.remove(rule.actionId);
|
||||
Triggers.remove(rule.triggerId);
|
||||
},
|
||||
'click .js-goto-trigger'(event, tpl) {
|
||||
event.preventDefault();
|
||||
const ruleTitle = tpl.find('#ruleTitle').value;
|
||||
if (ruleTitle !== undefined && ruleTitle !== '') {
|
||||
tpl.find('#ruleTitle').value = '';
|
||||
tpl.ruleName.set(ruleTitle);
|
||||
tpl.rulesCurrentTab.set('trigger');
|
||||
}
|
||||
},
|
||||
'click .js-goto-action'(event, tpl) {
|
||||
event.preventDefault();
|
||||
// Add user to the trigger
|
||||
const username = $(event.currentTarget.offsetParent)
|
||||
.find('.user-name')
|
||||
.val();
|
||||
let trigger = tpl.triggerVar.get();
|
||||
trigger.userId = '*';
|
||||
if (username !== undefined) {
|
||||
const userFound = ReactiveCache.getUser({ username });
|
||||
if (userFound !== undefined) {
|
||||
trigger.userId = userFound._id;
|
||||
tpl.triggerVar.set(trigger);
|
||||
}
|
||||
});
|
||||
}
|
||||
// Sanitize trigger
|
||||
trigger = tpl.triggerVar.get();
|
||||
sanitizeObject(trigger);
|
||||
tpl.triggerVar.set(trigger);
|
||||
tpl.rulesCurrentTab.set('action');
|
||||
},
|
||||
setRulesList() {
|
||||
this.rulesCurrentTab.set('rulesList');
|
||||
'click .js-show-user-field'(event) {
|
||||
event.preventDefault();
|
||||
$(event.currentTarget.offsetParent)
|
||||
.find('.user-details')
|
||||
.removeClass('hide-element');
|
||||
},
|
||||
|
||||
setAction() {
|
||||
this.rulesCurrentTab.set('action');
|
||||
'click .js-goto-rules'(event, tpl) {
|
||||
event.preventDefault();
|
||||
tpl.rulesCurrentTab.set('rulesList');
|
||||
},
|
||||
|
||||
setRuleDetails() {
|
||||
this.rulesCurrentTab.set('ruleDetails');
|
||||
'click .js-goback'(event, tpl) {
|
||||
event.preventDefault();
|
||||
if (
|
||||
tpl.rulesCurrentTab.get() === 'trigger' ||
|
||||
tpl.rulesCurrentTab.get() === 'ruleDetails'
|
||||
) {
|
||||
tpl.rulesCurrentTab.set('rulesList');
|
||||
}
|
||||
if (tpl.rulesCurrentTab.get() === 'action') {
|
||||
tpl.rulesCurrentTab.set('trigger');
|
||||
}
|
||||
},
|
||||
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
'click .js-delete-rule'() {
|
||||
const rule = this.currentData();
|
||||
Rules.remove(rule._id);
|
||||
Actions.remove(rule.actionId);
|
||||
Triggers.remove(rule.triggerId);
|
||||
},
|
||||
'click .js-goto-trigger'(event) {
|
||||
event.preventDefault();
|
||||
const ruleTitle = this.find('#ruleTitle').value;
|
||||
if (ruleTitle !== undefined && ruleTitle !== '') {
|
||||
this.find('#ruleTitle').value = '';
|
||||
this.ruleName.set(ruleTitle);
|
||||
this.setTrigger();
|
||||
}
|
||||
},
|
||||
'click .js-goto-action'(event) {
|
||||
event.preventDefault();
|
||||
// Add user to the trigger
|
||||
const username = $(event.currentTarget.offsetParent)
|
||||
.find('.user-name')
|
||||
.val();
|
||||
let trigger = this.triggerVar.get();
|
||||
trigger.userId = '*';
|
||||
if (username !== undefined) {
|
||||
const userFound = ReactiveCache.getUser({ username });
|
||||
if (userFound !== undefined) {
|
||||
trigger.userId = userFound._id;
|
||||
this.triggerVar.set(trigger);
|
||||
}
|
||||
}
|
||||
// Sanitize trigger
|
||||
trigger = this.triggerVar.get();
|
||||
this.sanitizeObject(trigger);
|
||||
this.triggerVar.set(trigger);
|
||||
this.setAction();
|
||||
},
|
||||
'click .js-show-user-field'(event) {
|
||||
event.preventDefault();
|
||||
$(event.currentTarget.offsetParent)
|
||||
.find('.user-details')
|
||||
.removeClass('hide-element');
|
||||
},
|
||||
'click .js-goto-rules'(event) {
|
||||
event.preventDefault();
|
||||
this.setRulesList();
|
||||
},
|
||||
'click .js-goback'(event) {
|
||||
event.preventDefault();
|
||||
if (
|
||||
this.rulesCurrentTab.get() === 'trigger' ||
|
||||
this.rulesCurrentTab.get() === 'ruleDetails'
|
||||
) {
|
||||
this.setRulesList();
|
||||
}
|
||||
if (this.rulesCurrentTab.get() === 'action') {
|
||||
this.setTrigger();
|
||||
}
|
||||
},
|
||||
'click .js-goto-details'(event) {
|
||||
event.preventDefault();
|
||||
const rule = this.currentData();
|
||||
this.ruleId.set(rule._id);
|
||||
this.setRuleDetails();
|
||||
},
|
||||
},
|
||||
];
|
||||
'click .js-goto-details'(event, tpl) {
|
||||
event.preventDefault();
|
||||
const rule = Template.currentData();
|
||||
tpl.ruleId.set(rule._id);
|
||||
tpl.rulesCurrentTab.set('ruleDetails');
|
||||
},
|
||||
}).register('rulesMain');
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue