wekan/client/components/rules/rulesMain.js

102 lines
2.9 KiB
JavaScript
Raw Normal View History

2019-01-04 11:00:33 +02:00
BlazeComponent.extendComponent({
2018-08-15 18:47:09 +02:00
onCreated() {
2018-09-16 01:50:36 +03:00
this.rulesCurrentTab = new ReactiveVar('rulesList');
this.ruleName = new ReactiveVar('');
2018-08-19 18:53:50 +02:00
this.triggerVar = new ReactiveVar();
2018-09-12 00:52:29 +02:00
this.ruleId = new ReactiveVar();
2018-08-15 18:47:09 +02:00
},
setTrigger() {
2018-09-16 01:50:36 +03:00
this.rulesCurrentTab.set('trigger');
2018-08-15 18:47:09 +02:00
},
2019-06-28 12:52:09 -05:00
sanitizeObject(obj) {
Object.keys(obj).forEach(key => {
if (obj[key] === '' || obj[key] === undefined) {
2019-01-02 22:51:00 +01:00
obj[key] = '*';
2019-06-28 12:52:09 -05:00
}
});
2019-01-02 14:45:45 +01:00
},
2018-08-15 18:47:09 +02:00
setRulesList() {
2018-09-16 01:50:36 +03:00
this.rulesCurrentTab.set('rulesList');
2018-08-15 18:47:09 +02:00
},
setAction() {
2018-09-16 01:50:36 +03:00
this.rulesCurrentTab.set('action');
2018-09-12 00:52:29 +02:00
},
2018-09-16 01:50:36 +03:00
2018-09-12 00:52:29 +02:00
setRuleDetails() {
2018-09-16 01:50:36 +03:00
this.rulesCurrentTab.set('ruleDetails');
2018-08-15 18:47:09 +02:00
},
events() {
2019-06-28 12:52:09 -05:00
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();
2019-01-02 14:45:45 +01:00
}
2019-06-28 12:52:09 -05:00
},
'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 = Users.findOne({ 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();
2018-10-07 17:47:01 +02:00
this.setRulesList();
2019-06-28 12:52:09 -05:00
},
'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();
},
2018-09-14 17:39:37 +02:00
},
2019-06-28 12:52:09 -05:00
];
2018-08-15 18:47:09 +02:00
},
2018-09-16 01:50:36 +03:00
}).register('rulesMain');