Skip to content

Commit

Permalink
feat (backend): refactor event handling and variable declarations - E…
Browse files Browse the repository at this point in the history
…vent handlers attached directly to target elements to avoid multiple bindings. - Rename parse_nexter_header to parse_delayed_header and Reschedule sending to Rechedule - Replacement of “var” by “let”.
  • Loading branch information
amaninyumu1 committed Feb 10, 2025
1 parent 9ad1d59 commit aed9a95
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 21 deletions.
6 changes: 3 additions & 3 deletions modules/core/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -702,7 +702,7 @@ function schedule_dropdown($output, $send_now = false) {
$txt = '';
if ($send_now) {
$txt .= '<div class="dropdown d-inline-block">
<button type="button" class="btn btn-light btn-sm dropdown-toggle" id="dropdownMenuNexterDate" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="true">'.$output->trans('Schedule sending').'</button>';
<button type="button" class="btn btn-light btn-sm dropdown-toggle" id="dropdownMenuNexterDate" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="true">'.$output->trans('Reschedule').'</button>';
}
$txt .= '<ul class="dropdown-menu nexter_dropdown schedule_dropdown" aria-labelledby="dropdownMenuNexterDate">';
foreach ($values as $format) {
Expand All @@ -728,8 +728,8 @@ function schedule_dropdown($output, $send_now = false) {
/**
* @subpackage imap/functions
*/
if (!hm_exists('parse_nexter_header')) {
function parse_nexter_header($header, $name)
if (!hm_exists('parse_delayed_header')) {
function parse_delayed_header($header, $name)
{
$header = str_replace("$name: ", '', $header);
$result = [];
Expand Down
8 changes: 4 additions & 4 deletions modules/imap/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ function format_imap_message_list($msg_list, $output_module, $parent_list=false,
$is_snoozed = !empty($msg['x_snoozed']) && hex2bin($msg['folder']) == 'Snoozed';
$is_scheduled = !empty($msg['x_schedule']) && hex2bin($msg['folder']) == 'Scheduled';
if ($is_snoozed) {
$snooze_header = parse_nexter_header('X-Snoozed: '.$msg['x_snoozed'], 'X-Snoozed');
$snooze_header = parse_delayed_header('X-Snoozed: '.$msg['x_snoozed'], 'X-Snoozed');
$date = $snooze_header['until'];
$timestamp = strtotime($date);
} elseif ($is_scheduled) {
Expand Down Expand Up @@ -1346,7 +1346,7 @@ function snooze_message($mailbox, $msg_id, $folder, $snooze_tag) {
preg_match("/^X-Snoozed:.*(\r?\n[ \t]+.*)*\r?\n?/im", $msg, $matches);
if (count($matches)) {
$msg = str_replace($matches[0], '', $msg);
$old_folder = parse_nexter_header($matches[0], 'X-Snoozed')['from'];
$old_folder = parse_delayed_header($matches[0], 'X-Snoozed')['from'];
}
if ($snooze_tag) {
$from = $old_folder ?? $folder;
Expand All @@ -1373,7 +1373,7 @@ function snooze_message($mailbox, $msg_id, $folder, $snooze_tag) {
}
}
} else {
$snooze_headers = parse_nexter_header($matches[0], 'X-Snoozed');
$snooze_headers = parse_delayed_header($matches[0], 'X-Snoozed');
$original_folder = $snooze_headers['from'];
if ($mailbox->store_message($original_folder, $msg)) {
$deleteResult = $mailbox->message_action($snooze_folder, 'DELETE', array($msg_id));
Expand Down Expand Up @@ -1706,7 +1706,7 @@ function save_sent_msg($handler, $imap_id, $mailbox, $imap_details, $msg, $msg_i
Hm_Msgs::add('ERRAn error occurred saving the sent message');
}

$mailbox_page = $imap->get_messages($sent_folder, 'ARRIVAL', true, 'ALL', 0, 10);
$mailbox_page = $mailbox->get_messages($sent_folder, 'ARRIVAL', true, 'ALL', 0, 10);
foreach ($mailbox_page[1] as $mail) {
$msg_header = $mailbox->get_message_headers($sent_folder, $mail['uid']);
if ($msg_header['Message-Id'] === $msg_id) {
Expand Down
2 changes: 1 addition & 1 deletion modules/imap/handler_modules.php
Original file line number Diff line number Diff line change
Expand Up @@ -1059,7 +1059,7 @@ public function process() {
$msg_headers = $mailbox->get_message_headers($folder, $msg['uid']);
if (isset($msg_headers['X-Snoozed'])) {
try {
$snooze_headers = parse_nexter_header($msg_headers['X-Snoozed'], 'X-Snoozed');
$snooze_headers = parse_delayed_header($msg_headers['X-Snoozed'], 'X-Snoozed');
if (new DateTime($snooze_headers['until']) <= new DateTime()) {
snooze_message($mailbox, $msg['uid'], $folder, null);
}
Expand Down
2 changes: 1 addition & 1 deletion modules/imap/output_modules.php
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ protected function output() {
$txt .= $this->html_safe($value).'</th></tr>';
}
elseif ($fld == 'x-snoozed') {
$snooze_header = parse_nexter_header($value, 'X-Snoozed');
$snooze_header = parse_delayed_header($value, 'X-Snoozed');
$txt .= '<tr class="header_'.$fld.'"><th>';
$txt .= $this->trans('Snoozed').'</th><td>'.$this->trans('Until').' '.$this->html_safe($snooze_header['until']).' <a href="#" data-value="unsnooze" class="unsnooze nexter_date_helper">Unsnooze</a></td></tr>';
}
Expand Down
14 changes: 7 additions & 7 deletions modules/smtp/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ function get_reply_type($request) {
function send_scheduled_message($handler, $mailbox, $folder, $msg_id, $send_now = false) {
$msg_headers = $mailbox->get_message_headers($folder, $msg_id);
$mailbox_details = $mailbox->get_config();
$imap_profile = Hm_IMAP_List::fetch($mailbox_details['user'], $mailbox_details['server']);
try {
if (empty($msg_headers['X-Schedule'])) {
return false;
Expand All @@ -86,10 +85,13 @@ function send_scheduled_message($handler, $mailbox, $folder, $msg_id, $send_now
}
$profile = $profiles[0];
}

$smtp = new Hm_Mailbox($imap_profile['id'], $handler->user_config, $handler->session, $imap_profile);

if ($smtp && $smtp->connect()) {
$smtp = Hm_SMTP_List::connect($profile['smtp_id'], false);

if (! $smtp || ! $smtp->authed()) {
Hm_Msgs::add("ERRFailed to authenticate to the SMTP server");
return;
}

$delivery_receipt = isset($msg_headers['X-Delivery']);

$recipients = [];
Expand All @@ -103,13 +105,11 @@ function send_scheduled_message($handler, $mailbox, $folder, $msg_id, $send_now
$from = process_address_fld($msg_headers['From']);

$err_msg = $smtp->send_message($from[0]['email'], $recipients, $msg_content, $delivery_receipt);

if (!$err_msg) {
$mailbox->delete_message($folder, $msg_id, false);
save_sent_msg($handler, $mailbox->get_config()['id'], $mailbox, $mailbox_details, $msg_content, $msg_id, false);
return true;
}
}
}
} catch (Exception $e) {
Hm_Debug::add(sprintf('ERRCannot send message: %s', $msg_headers['subject']));
Expand Down
3 changes: 1 addition & 2 deletions modules/smtp/js_modules/route_handlers.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,7 @@ function applySmtpComposePageHandlers() {
save_compose_state(false, true, $('.nexter_input').val(), function(res) {
if (res.draft_id) {
reset_smtp_form(false);
Hm_Folders.reload_folders(true);
Hm_Utils.redirect();
Hm_Notices.show([hm_trans('Operation successful')]);
}
});
} else {
Expand Down
2 changes: 1 addition & 1 deletion modules/smtp/modules.php
Original file line number Diff line number Diff line change
Expand Up @@ -1621,7 +1621,7 @@ public function process() {
$imap_server = Hm_IMAP_List::getForMailbox($imap_server_id);

$mailbox = new Hm_Mailbox($imap_server_id, $this->user_config, $this->session, $imap_server);
if ($mailbox && $mailbox->connect()) {
if ($mailbox->get_connection() != null && $mailbox->connect()) {
$folder = hex2bin($folder);
if (reschedule_message_sending($this, $mailbox, $msg_id, $folder, $new_schedule_date)) {
$scheduled_msg_count++;
Expand Down
4 changes: 2 additions & 2 deletions modules/smtp/site.js
Original file line number Diff line number Diff line change
Expand Up @@ -392,8 +392,8 @@ function smtpSettingsPageHandler() {

$(function() {
if (hm_is_logged()) {
var scheduled_msg_count = 0;
var sendScheduledMessages = function() {
let scheduled_msg_count = 0;
let sendScheduledMessages = function() {
Hm_Ajax.request(
[{'name': 'hm_ajax_hook', 'value': 'ajax_send_scheduled_messages'}],
function(res) {
Expand Down

0 comments on commit aed9a95

Please sign in to comment.