define(function(require){
|
|
var $ = require('jquery'),
|
|
_ = require('underscore'),
|
|
monster = require('monster');
|
|
|
|
var app = {
|
|
requests: {},
|
|
|
|
subscribe: {
|
|
'callflows.blacklist.edit': 'blacklistEdit',
|
|
'callflows.fetchActions': 'blacklistDefineActions',
|
|
},
|
|
|
|
blacklistDefineActions: function(args) {
|
|
var self = this,
|
|
callflow_nodes = args.actions;
|
|
|
|
$.extend(callflow_nodes, {
|
|
'blacklist': {
|
|
name: self.i18n.active().callflows.blacklist.title,
|
|
module: 'blacklist',
|
|
listEntities: function(callback) {
|
|
self.callApi({
|
|
resource: 'blacklist.list',
|
|
data: {
|
|
accountId: self.accountId,
|
|
filters: { paginate:false }
|
|
},
|
|
success: function(data, status) {
|
|
callback && callback(data.data);
|
|
}
|
|
});
|
|
},
|
|
editEntity: 'callflows.blacklist.edit'
|
|
}
|
|
});
|
|
},
|
|
|
|
// Added for the subscribed event to avoid refactoring conferenceEdit
|
|
blacklistEdit: function(args) {
|
|
var self = this,
|
|
afterGetData = function(data) {
|
|
var template = $(monster.template(self, 'blacklist-edit', {data: data})),
|
|
blacklistForm = template.find('#blacklist-form'),
|
|
$listNumbers = template.find('.saved-numbers');
|
|
|
|
monster.ui.validate(blacklistForm, {
|
|
rules: {
|
|
'name': { required: true },
|
|
}
|
|
});
|
|
|
|
_.each(data.numbers, function(v, number) {
|
|
$listNumbers.append(monster.template(self, 'blacklist-addNumber', {number: number}));
|
|
});
|
|
|
|
self.blacklistBindEvents(data, template, args.callbacks);
|
|
|
|
(args.target)
|
|
.empty()
|
|
.append(template);
|
|
};
|
|
|
|
if(args.data.id) {
|
|
self.blacklistGet(args.data.id, function(data) {
|
|
afterGetData(data);
|
|
});
|
|
}
|
|
else {
|
|
afterGetData({});
|
|
}
|
|
},
|
|
|
|
/* blacklistBindEvents: function(data, template, callbacks) {
|
|
var self = this,
|
|
addNumber = function(e) {
|
|
var number = template.find('#number_value').val();
|
|
|
|
if (number) {
|
|
$('.list-numbers .saved-numbers', template).prepend(monster.template(self, 'blacklist-addNumber', { number: number }));
|
|
|
|
$('#number_value', template).val('');
|
|
}
|
|
};
|
|
|
|
$('.number-wrapper.placeholder:not(.active)', template).on('click', function() {
|
|
var $this = $(this);
|
|
|
|
$this.addClass('active');
|
|
|
|
$('#number_value', template).focus();
|
|
});
|
|
|
|
$('#add_number', template).on('click', function(e) {
|
|
e.preventDefault();
|
|
addNumber(e);
|
|
});
|
|
|
|
$('.add-number', template).bind('keypress', function(e) {
|
|
var code = e.keyCode || e.which;
|
|
|
|
if (code === 13) {
|
|
addNumber(e);
|
|
}
|
|
});
|
|
|
|
$(template).delegate('.delete-number', 'click', function(e) {
|
|
$(this).parents('.number-wrapper').remove();
|
|
});
|
|
|
|
$('#cancel_number', template).on('click', function(e) {
|
|
e.stopPropagation();
|
|
|
|
$('.number-wrapper.placeholder.active', template).removeClass('active');
|
|
$('#number_value', template).val('');
|
|
});
|
|
|
|
$('.blacklist-save', template).on('click', function() {
|
|
var formData = form2object('blacklist-form'),
|
|
cleanData = self.blacklistCleanFormData(formData),
|
|
mapNumbers = {};
|
|
|
|
$('.saved-numbers .number-wrapper', template).each(function(k, wrapper) {
|
|
var number = $(wrapper).attr('data-number');
|
|
mapNumbers[number] = {};
|
|
});
|
|
|
|
cleanData.numbers = mapNumbers;
|
|
|
|
if (data.id) {
|
|
cleanData.id = data.id;
|
|
}
|
|
|
|
self.blacklistSave(cleanData, callbacks.save_success);
|
|
});
|
|
|
|
$('.blacklist-delete', template).on('click', function() {
|
|
monster.ui.confirm(self.i18n.active().callflows.blacklist.are_you_sure_you_want_to_delete, function() {
|
|
self.blacklistDelete(data.id, callbacks.delete_success);
|
|
});
|
|
});
|
|
},*/
|
|
|
|
|
|
blacklistBindEvents: function(data, template, callbacks) {
|
|
var self = this,
|
|
addNumber = function(e) {
|
|
var number = template.find('#number_value').val();
|
|
|
|
if(number) {
|
|
$('.list-numbers .saved-numbers', template).prepend(monster.template(self,'blacklist-addNumber', { number: number }));
|
|
|
|
$('#number_value', template).val('');
|
|
}
|
|
};
|
|
|
|
$('.number-wrapper.placeholder:not(.active)', template).click(function() {
|
|
var $this = $(this);
|
|
|
|
$this.addClass('active');
|
|
|
|
$('#number_value', template).focus();
|
|
});
|
|
|
|
$('#add_number', template).click(function(e) {
|
|
e.preventDefault();
|
|
addNumber();
|
|
});
|
|
|
|
$('.add-number', template).bind('keypress', function(e) {
|
|
var code = e.keyCode || e.which;
|
|
|
|
if(code === 13) {;
|
|
addNumber(e);
|
|
}
|
|
});
|
|
|
|
$(template).delegate('.delete-number', 'click', function(e) {
|
|
$(this).parents('.number-wrapper').remove();
|
|
});
|
|
|
|
$('#cancel_number', template).click(function(e) {
|
|
e.stopPropagation();
|
|
|
|
$('.number-wrapper.placeholder.active', template).removeClass('active');
|
|
$('#number_value', template).val('');
|
|
});
|
|
|
|
$('.blacklist-save', template).click(function() {
|
|
var formData = form2object('blacklist-form'),
|
|
cleanData = self.blacklistCleanFormData(formData),
|
|
mapNumbers = {};
|
|
|
|
$('.saved-numbers .number-wrapper', template).each(function(k, wrapper) {
|
|
var number = $(wrapper).attr('data-number');
|
|
mapNumbers[number] = {};
|
|
});
|
|
|
|
cleanData.numbers = mapNumbers;
|
|
|
|
if(data.id) {
|
|
cleanData.id = data.id;
|
|
}
|
|
|
|
self.blacklistSave(cleanData, callbacks.save_success);
|
|
});
|
|
|
|
$('.blacklist-delete', template).click(function() {
|
|
monster.ui.confirm(self.i18n.active().callflows.blacklist.are_you_sure_you_want_to_delete, function() {
|
|
self.blacklistDelete(data.id, callbacks.delete_success);
|
|
});
|
|
});
|
|
},
|
|
|
|
blacklistCleanFormData: function(data) {
|
|
delete data.extra;
|
|
|
|
return data;
|
|
},
|
|
|
|
blacklistSave: function(data, callback) {
|
|
var self = this;
|
|
|
|
if(data.id) {
|
|
self.blacklistUpdate(data, callback);
|
|
}
|
|
else {
|
|
self.blacklistCreate(data, callback);
|
|
}
|
|
},
|
|
|
|
blacklistList: function(callback) {
|
|
var self = this;
|
|
|
|
self.callApi({
|
|
resource: 'blacklist.list',
|
|
data: {
|
|
accountId: self.accountId,
|
|
filters: { paginate:false }
|
|
},
|
|
success: function(data) {
|
|
callback && callback(data.data);
|
|
}
|
|
});
|
|
},
|
|
|
|
blacklistGet: function(id, callback) {
|
|
var self = this;
|
|
|
|
self.callApi({
|
|
resource: 'blacklist.get',
|
|
data: {
|
|
accountId: self.accountId,
|
|
blacklistId: id
|
|
},
|
|
success: function(data) {
|
|
callback && callback(data.data);
|
|
}
|
|
});
|
|
},
|
|
|
|
blacklistCreate: function(data, callback) {
|
|
var self = this;
|
|
|
|
self.callApi({
|
|
resource: 'blacklist.create',
|
|
data: {
|
|
accountId: self.accountId,
|
|
data: data
|
|
},
|
|
success: function(data) {
|
|
callback && callback(data.data);
|
|
}
|
|
});
|
|
},
|
|
|
|
blacklistUpdate: function(data, callback) {
|
|
var self = this;
|
|
|
|
self.callApi({
|
|
resource: 'blacklist.update',
|
|
data: {
|
|
accountId: self.accountId,
|
|
blacklistId: data.id,
|
|
data: data
|
|
},
|
|
success: function(data) {
|
|
callback && callback(data.data);
|
|
}
|
|
});
|
|
},
|
|
|
|
blacklistDelete: function(id, callback) {
|
|
var self = this;
|
|
|
|
self.callApi({
|
|
resource: 'blacklist.delete',
|
|
data: {
|
|
accountId: self.accountId,
|
|
blacklistId: id
|
|
},
|
|
success: function(data) {
|
|
callback && callback(data.data);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
return app;
|
|
});
|