wekan/client/components/rules/rulesMain.js

99 lines
2.7 KiB
JavaScript
Raw Normal View History

2019-01-02 14:45:45 +01:00
let rulesMainComponent = 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-01-02 14:45:45 +01:00
sanitizeObject(obj){
Object.keys(obj).forEach(key =>{
if(obj[key] == "" || obj[key] == undefined){
obj[key] = "*";
}}
);
},
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() {
2018-09-14 17:39:37 +02:00
return [{
2018-10-07 17:27:26 +02:00
'click .js-delete-rule' () {
2018-09-14 17:39:37 +02:00
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 !== ''){
2018-10-07 18:19:51 +02:00
this.find('#ruleTitle').value = '';
this.ruleName.set(ruleTitle);
this.setTrigger();
}
2018-09-14 17:39:37 +02:00
},
'click .js-goto-action' (event) {
event.preventDefault();
2018-12-29 16:59:50 +01:00
// Add user to the trigger
const username = $(event.currentTarget.offsetParent).find(".user-name").val();
let trigger = this.triggerVar.get();
2019-01-02 14:45:45 +01:00
trigger["userId"] = "*";
if(username != undefined ){
const userFound = Users.findOne({"username":username});
if(userFound != undefined){
trigger["userId"] = userFound._id;
this.triggerVar.set(trigger);
}
2018-12-29 16:59:50 +01:00
}
2019-01-02 14:45:45 +01:00
// Sanitize trigger
trigger = this.triggerVar.get();
this.sanitizeObject(trigger)
2018-12-29 16:59:50 +01:00
this.triggerVar.set(trigger);
2018-09-14 17:39:37 +02:00
this.setAction();
2018-12-29 16:59:50 +01:00
},
'click .js-show-user-field' (event) {
event.preventDefault();
$(event.currentTarget.offsetParent).find(".user-details").removeClass("hide-element");
2018-09-14 17:39:37 +02:00
},
'click .js-goto-rules' (event) {
event.preventDefault();
this.setRulesList();
},
2018-10-07 17:47:01 +02: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();
}
},
2018-09-14 17:39:37 +02:00
'click .js-goto-details' (event) {
event.preventDefault();
const rule = this.currentData();
2018-09-16 01:50:36 +03:00
this.ruleId.set(rule._id);
2018-09-14 17:39:37 +02:00
this.setRuleDetails();
},
}];
2018-08-15 18:47:09 +02:00
},
2018-09-16 01:50:36 +03:00
}).register('rulesMain');
2019-01-02 14:45:45 +01:00