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.
 
 
 
 
 
 

306 lines
15 KiB

const table_template = $('#event_email_template');
const assign_email_template = (function ($, window, jQuery) {
return {
onresetcomplete : function()
{
$("#search_form_templates_").find("input").val('');
$("#send_email").find("input").val('');
},
onclose : function()
{
$("input#event-id-type").val('');
$("#event_email_template tbody#templates_body tr").remove();
},
isbydefault : function(types,event_schedule_id)
{
var isbydefault = $("button#isbydefault");
var div_hidden_by_default = $("div#hidden_by_default");
var yes = $("input#yes");
var no = $("input#no");
if(types == 'events'){
Helper.help.ajax( app.get_vars().baseurl+"check_default_template/"+event_schedule_id, 'post' ,
false , function(result){
if( result.active )
yes.attr("checked",true);
else
no.attr("checked",true);
});
isbydefault.click(function(){
var class_yes = $("input:radio[class='yes']").is(":checked");
var class_no = $("input:radio[class='no']").is(":checked");
var status;
if( class_yes )
status = 1 ;
else if( class_no )
status = 0;
Helper.help.ajax( app.get_vars().baseurl+"update_default_template/"+event_schedule_id, 'post' ,
"default="+status, function(result){
if( result.updated ) app._notify(result.mtype, result.message);
});
})
}else{
div_hidden_by_default.hide();
}
},
save : function()
{
var form = $("#search_form_templates_");
var template_id = $("input#templates_id");
var types = $("input#event-id-type").val().trim();
var template_id_value = $("input#template-id-value").val().trim();
var event_id_value = $("input#event-id-value").val().trim();
var table_id = $("#search_email_templates_");
if(template_id.val().trim() == "" /*|| types == ""*/ || template_id_value =="" || event_id_value =="") {
app._notify("warning", "Email template is required");
template_id.focus();
} else {
app.modal.confirm_box({
"message" : "Attribuer un modèle d'e-mail ?",
"_continue" : function() {
Helper.help.ajax( app.get_vars().baseurl+"assign_template_event_schedule/"+types, 'post' ,
form.serialize() , function(result){
if( app.isalive(result) ){
table_id.modal('hide');
$('#event_email_template').DataTable().ajax.reload(null, false);
}
});
},
"id" : "delete_confirm_box",
"className" : "delete_confirm_box"
});
}
},
disable_email_template : function(event,email_status_id,types,status)
{
event.preventDefault();
app.modal.confirm_box({
"message" : ( ( status < 1) ? "Désactiver le modèle ? " : "Activer le modèle ? " ),
"_continue" : function() {
Helper.help.ajax( app.get_vars().baseurl+"remove_template_event_schedule/"+email_status_id+"/"+types+"/"+status, 'post' ,
false, function(result){
$('#event_email_template').DataTable().clear().draw();
});
},
"id" : "delete_confirm_box",
"className" : "delete_confirm_box"
});
},
send : function(event,event_schedule_id,email_mapping_id,types,template_name)
{
event.preventDefault();
app.modal.confirm_box({
"message" : template_name,
"_continue" : function() {
Helper.help.ajax( app.get_vars().baseurl+"remove_template_event_schedule/"+email_mapping_id+"/"+types, 'post' ,
false, function(result){
$('#event_email_template').DataTable().clear().draw();
});
},
"id" : "delete_confirm_box",
"className" : "delete_confirm_box"
});
},
search : function(event,event_schedule_id,email_type_id,types,defaults, event_id)
{
event.preventDefault();
var form = $("#search_form_templates_");
var table_id = $("#search_email_templates_");
var input_id = $("#templates_id");
var input_hidden = $("input#template-id-value");
var event_id_hidden = $("input#event-id-value");
var event_id_type = $("input#event-id-type");
$("input#event-id").val(event_id);
if( defaults.toLowerCase() != "yes"){
app._notify("warning", "Veuillez réinitialiser le premier modèle d'e-mail");
}else{
table_id.modal({backdrop: 'static',keyboard : true}).on('shown.bs.modal', function() {
event_id_hidden.val(event_schedule_id);
var options = {
url: app.get_vars().baseurl+"search_by_template_id/"+email_type_id,
getValue: "template_name",
list: {
onSelectItemEvent: function() {
var value = input_id.getSelectedItemData().template_id;
input_hidden.val(value).trigger("change");
var type_value = types;
event_id_type.val(type_value).trigger("change");
},
match: {
enabled: true
}
}
};
input_id.easyAutocomplete(options);
}).on('hidden.bs.modal', function () {
assign_email_template.onresetcomplete();
app._form._resetFormValidation("#search_form_templates_");
});
}
},
search_email : function(event,email_type_id)
{
event.preventDefault();
var modal_email = $("#send_email_table");
$("input#email_type_id").val(email_type_id);
modal_email.modal({backdrop: 'static',keyboard : true}).on('shown.bs.modal', function() {
}).on('hidden.bs.modal', function () {
assign_email_template.onresetcomplete();
app._form._resetFormValidation("#send_email");
});
},
send_email : function()
{
var email = $("input#test_email").val();
var options = {
boot_box: {
"message": "Envoyer un e-mail de test à : "+email+" ?",
"_continue": function () {
var email_type_id = $("input#email_type_id").val();
var event_data = $("#assign_email_template_").data("event_data");
Helper.help.ajax_loader( app.get_vars().baseurl+"send_test_email/"+email+"/"+email_type_id+"/"+event_data.event_id+"/"+event_data.event_schedule_id, 'post' ,
false, "Envoyer un e-mail de test", function(result){
if(app.isalive(result)){
app._notify(result.mtype, result.message);
if(result.mtype=="success"){
$("#send_email_table").modal("hide");
}
}
});
}
},
"validation" : {
"form_id": "form#send_email",
"ignore" : ".ignore",
"rules": {
"test_email": {
"required": true,
"email" : true
}
}
}
};
app._form._validate(options);
},
table : function(types,event_schedule_id)
{
//console.log(app.get_vars().baseurl+"event_assigned_email_template/"+event_schedule_id+"/"+types);
visibility = ( types === 'events' ? true : false ) ;
table_template.DataTable({
"searching": false,
"paging": false,
"bInfo" : false,
"autoWidth": false,
"responsive": true,
"processing": true,
"serverSide": true,
"order": [0],
"oLanguage": fr_onload_lang.oLanguage,
"ajax": {
"url": app.get_vars().baseurl+"event_assigned_email_template/"+event_schedule_id+"/"+types,
"type": "POST"
},
"columns": [
{ "data": "no" , "sortable" : false },
{ "data": "template_type" , "sortable" : false},
{ "data": "template_name" , "sortable" : false},
{ "data": "default" , "sortable" : false },
{ "data": "template_id" , render : function(data, type, full, meta){
var action_btns = "" ;
var template_name = escape(full.template_name); //escape backslash
var disableBtn = false //full.email_status > 0 ? false : true;
if(full.default=="OUI")
full.default="YES"
else
full.default="NO"
const event_id = $("#assign_email_template_").data("event_data").event_id
if( full.template_id =="" ) //already have template
assign_tmpl = "assign_email_template.search(event,"+event_schedule_id+","+full.email_type_id+",'"+types+"','"+full.default+"','"+event_id+"')";
else
assign_tmpl ="assign_email_template.search(event,"+event_schedule_id+","+full.email_type_id+",'"+types+"','"+full.default+"','"+event_id+"')";
if (authorize(PAGE_CODE['events'], PRIVS[PAGE_CODE['events']]['sched_email_template_edit'])) {
action_btns +=app.grid.create_action_btn(app.get_vars()._app.action._edit, "pencil", "success", ((disableBtn) ? "" : assign_tmpl) , ((disableBtn)?"disabled":"") );
}
if (authorize(PAGE_CODE['events'], PRIVS[PAGE_CODE['events']]['sched_email_template_reset'])) {
action_btns +=app.grid.create_action_btn(app.get_vars()._app.action._reset, "refresh", "danger", ((disableBtn) ? "" : "assign_email_template.email_reset_template(event,"+event_schedule_id+","+full.email_type_id+",'"+types+"','"+template_name+"','"+event_id+"')") , ((disableBtn)?"disabled":""));
}
if (authorize(PAGE_CODE['events'], PRIVS[PAGE_CODE['events']]['sched_email_template_resend'])) {
action_btns +=app.grid.create_action_btn(app.get_vars()._app.action._send, "send", "success", ((disableBtn) ? "" : "assign_email_template.search_email(event,"+full.email_type_id+")") , ((disableBtn)?"disabled":""));
}
if (authorize(PAGE_CODE['events'], PRIVS[PAGE_CODE['events']]['sched_email_template_remove'])) {
action_btns +=app.grid.create_action_btn(app.get_vars()._app.action._delete, "power-off", "danger", ((disableBtn) ? "assign_email_template.disable_email_template(event,"+full.email_status_id+",'"+types+"',1)" : "assign_email_template.disable_email_template(event,"+full.email_status_id+",'"+types+"',0)" ) );
}
return '<div class="row-fluid"><div class="span4 offset4 text-center">'+action_btns+'</div></div>';
} , "sortable" : false }
],
"fnDrawCallback": function() {
},
"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
if ( aData['email_status'] == 0) {
$('td', nRow).closest('tr').css('background-color', 'grey');
}
},
"columnDefs": [
],
"initComplete": function(settings, json) {
}
});
},
email_reset_template : function(event,event_schedule_id,email_type_id,types, template_name, event_id)
{
event.preventDefault();
Helper.help.ajax( app.get_vars().baseurl+"reset_template_event_schedule/"+event_schedule_id+"/"+email_type_id+"/one/"+event_id, 'post',
false, function(res){
var action = ( res.activate == "true") ? "activate" : types;
app.modal.confirm_box({
"message" : res.message ,
"_continue" : function() {
Helper.help.ajax( app.get_vars().baseurl+"reset_template_event_schedule/"+event_schedule_id+"/"+email_type_id+"/"+action+"/"+event_id, 'post',
false, function(result){
$('#event_email_template').DataTable().clear().draw();
});
},
"id" : "delete_confirm_box",
"className" : "delete_confirm_box"
});
});
},
email_template_modal : function(event_id, event_schedule_id,type)
{
var modal_email_template = $("#assign_email_template_");
var event_id_type = $("input#event-id-type");
$("input#event-id").val(event_id);
modal_email_template.data("event_data", {
"event_id" : event_id,
"event_schedule_id" : event_schedule_id
});
event_id_type.val(type);
modal_email_template.modal('show');
assign_email_template.table(type,event_schedule_id);
assign_email_template.isbydefault(type,event_schedule_id);
modal_email_template.on('hidden.bs.modal', function () {
table_template.dataTable().fnDestroy();
modal_email_template.removeData("event_data");
});
}
};
})(jQuery, this);