The Open Source kanban (built with Meteor). Keep variable/table/field names camelCase. For translations, only add Pull Request changes to wekan/i18n/en.i18n.json , other translations are done at https://transifex.com/wekan/wekan only.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wekan/client/components/rules/rulesMain.js

98 lines
2.7 KiB

7 years ago
const rulesMainComponent = BlazeComponent.extendComponent({
onCreated() {
7 years ago
this.rulesCurrentTab = new ReactiveVar('rulesList');
this.ruleName = new ReactiveVar('');
7 years ago
this.triggerVar = new ReactiveVar();
this.ruleId = new ReactiveVar();
},
setTrigger() {
7 years ago
this.rulesCurrentTab.set('trigger');
},
sanitizeObject(obj){
7 years ago
Object.keys(obj).forEach((key) => {
if(obj[key] == '' || obj[key] == undefined){
obj[key] = '*';
}}
);
},
setRulesList() {
7 years ago
this.rulesCurrentTab.set('rulesList');
},
setAction() {
7 years ago
this.rulesCurrentTab.set('action');
},
7 years ago
setRuleDetails() {
7 years ago
this.rulesCurrentTab.set('ruleDetails');
},
events() {
7 years ago
return [{
'click .js-delete-rule' () {
7 years ago
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();
}
7 years ago
},
'click .js-goto-action' (event) {
event.preventDefault();
// Add user to the trigger
7 years ago
const username = $(event.currentTarget.offsetParent).find('.user-name').val();
let trigger = this.triggerVar.get();
7 years ago
trigger.userId = '*';
if(username != undefined ){
7 years ago
const userFound = Users.findOne({username});
if(userFound != undefined){
7 years ago
trigger.userId = userFound._id;
this.triggerVar.set(trigger);
}
}
// Sanitize trigger
trigger = this.triggerVar.get();
7 years ago
this.sanitizeObject(trigger);
this.triggerVar.set(trigger);
7 years ago
this.setAction();
},
'click .js-show-user-field' (event) {
event.preventDefault();
7 years ago
$(event.currentTarget.offsetParent).find('.user-details').removeClass('hide-element');
7 years ago
},
'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();
}
},
7 years ago
'click .js-goto-details' (event) {
event.preventDefault();
const rule = this.currentData();
7 years ago
this.ruleId.set(rule._id);
7 years ago
this.setRuleDetails();
},
}];
},
7 years ago
}).register('rulesMain');