hubtel_sms/assets/js/hubtel_sms.js
2025-01-13 19:14:18 +00:00

140 lines
4.7 KiB
JavaScript

// Initialize components on document ready
$(function() {
// Initialize tooltips
$('[data-toggle="tooltip"]').tooltip();
// Initialize select2 for dropdowns
$('.select2').select2();
// Initialize client groups select2
$('#client_groups').select2({
placeholder: app.lang.select_client_groups,
allowClear: true
});
// Handle message character count
function updateCharCount(textarea, charCount, msgCount) {
var chars = $(textarea).val().length;
$(charCount).text(chars);
$(msgCount).text(Math.ceil(chars / 160));
}
$('#message').on('keyup', function() {
updateCharCount(this, '#char_count', '#messages_count');
});
$('#message_bulk').on('keyup', function() {
updateCharCount(this, '#char_count_bulk', '#messages_count_bulk');
});
// Handle client groups selection
$('#client_groups').on('change', function() {
var selectedGroups = $(this).val();
if (selectedGroups) {
$.get(admin_url + 'hubtel_sms/get_recipients_preview', {
groups: selectedGroups
}, function(response) {
$('#recipients_preview').html(response.html);
$('#recipients_count').text(response.count);
}, 'json');
} else {
$('#recipients_preview').html('');
$('#recipients_count').text('0');
}
});
// Handle template selection for single SMS
$('#template_id').on('change', function() {
var templateId = $(this).val();
if (templateId) {
$.get(admin_url + 'hubtel_sms/get_template/' + templateId, function(response) {
if (response.success) {
$('#message').val(response.template.template);
updateCharCount('#message', '#char_count', '#messages_count');
}
}, 'json');
}
});
// Handle template selection for bulk SMS
$('#template_id_bulk').on('change', function() {
var templateId = $(this).val();
if (templateId) {
$.get(admin_url + 'hubtel_sms/get_template/' + templateId, function(response) {
if (response.success) {
$('#message_bulk').val(response.template.template);
updateCharCount('#message_bulk', '#char_count_bulk', '#messages_count_bulk');
}
}, 'json');
}
});
// Handle form submissions
$('#sms-form').on('submit', function() {
var $btn = $('#sendSmsBtn').prop('disabled', true);
$btn.html('<i class="fa fa-spinner fa-spin"></i> ' + app.lang.sending);
});
$('#bulk-sms-form').on('submit', function() {
if (!confirm(app.lang.bulk_sms_confirm)) {
return false;
}
var $btn = $('#sendBulkSmsBtn').prop('disabled', true);
$btn.html('<i class="fa fa-spinner fa-spin"></i> ' + app.lang.sending);
});
});
// Function to show send SMS modal
function send_sms_modal() {
$('#send_sms_modal').modal('show');
$('#send_sms_modal').find('form')[0].reset();
$('#template_id').val('').trigger('change');
$('#char_count').text('0');
$('#messages_count').text('1');
}
// Function to show bulk SMS modal
function bulk_sms_modal() {
$('#bulk_sms_modal').modal('show');
$('#bulk_sms_modal').find('form')[0].reset();
$('#client_groups').val('').trigger('change');
$('#template_id_bulk').val('').trigger('change');
$('#char_count_bulk').text('0');
$('#messages_count_bulk').text('1');
$('#recipients_preview').html('');
$('#recipients_count').text('0');
}
// Function to view message details
function view_message(id) {
$('#message_details').html('<div class="text-center"><i class="fa fa-spinner fa-spin fa-2x"></i></div>');
$('#view_message_modal').modal('show');
$.get(admin_url + 'hubtel_sms/view_message/' + id, function(response) {
$('#message_details').html(response);
});
}
// Function to preview template
function preview_template(id) {
$('#template_preview').html('<div class="text-center"><i class="fa fa-spinner fa-spin fa-2x"></i></div>');
$('#preview_template_modal').modal('show');
$.get(admin_url + 'hubtel_sms/preview_template/' + id, function(response) {
$('#template_preview').html(response);
});
}
// Function to resend SMS
function resend_sms(id) {
if (confirm(app.lang.confirm_action_prompt)) {
$.get(admin_url + 'hubtel_sms/resend/' + id, function(response) {
if (response.success) {
alert_float('success', response.message);
location.reload();
} else {
alert_float('danger', response.message);
}
}, 'json');
}
}