BlazeComponent.extendComponent({ onCreated() { this.rulesCurrentTab = new ReactiveVar('rulesList'); this.ruleName = new ReactiveVar(''); this.triggerVar = new ReactiveVar(); this.ruleId = new ReactiveVar(); }, setTrigger() { this.rulesCurrentTab.set('trigger'); }, sanitizeObject(obj){ Object.keys(obj).forEach((key) => { if(obj[key] === '' || obj[key] === undefined){ obj[key] = '*'; }} ); }, setRulesList() { this.rulesCurrentTab.set('rulesList'); }, setAction() { this.rulesCurrentTab.set('action'); }, setRuleDetails() { this.rulesCurrentTab.set('ruleDetails'); }, 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 = 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(); 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(); }, }]; }, }).register('rulesMain');