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');
|