// 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(' ' + 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(' ' + 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('