From c516fa7b876e8b5a9bb184838f9f66505d4dd697 Mon Sep 17 00:00:00 2001 From: Steven Ngesera Date: Fri, 31 May 2024 14:57:01 +0200 Subject: [PATCH 1/9] [ENH] Preparing webhook token setting --- modules/imap/handler_modules.php | 10 ++++++++++ modules/imap/output_modules.php | 17 +++++++++++++++++ modules/imap/setup.php | 5 ++++- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/modules/imap/handler_modules.php b/modules/imap/handler_modules.php index 7f7c3b8c4b..e165e398d5 100644 --- a/modules/imap/handler_modules.php +++ b/modules/imap/handler_modules.php @@ -93,6 +93,16 @@ public function process() { } } +class Hm_Handler_process_webhook_token_setting extends Hm_Handler_Module { + /** + * Allowed values are greater than zero and less than MAX_PER_SOURCE + */ + public function process() { + function webhook_token_callback($val) { return $val; } + process_site_setting('webhook_token', $this, 'webhook_token_callback', false, true); + } +} + /** * Process input from the max google contacts input in the settings page * @subpackage imap/handler diff --git a/modules/imap/output_modules.php b/modules/imap/output_modules.php index 8462c7736c..1ffbd57b4d 100644 --- a/modules/imap/output_modules.php +++ b/modules/imap/output_modules.php @@ -1124,6 +1124,23 @@ protected function output() { } } +class Hm_Output_webhook_token_setting extends Hm_Output_Module { + protected function output() { + $settings = $this->get('user_settings', array()); + $webhook_token = ''; + $reset = ''; + if (array_key_exists('webhook_token', $settings)) { + $webhook_token = $settings['webhook_token']; + } + if (!empty($webhook_token)) { + $reset = ''; + } + return ''.$reset.''; + } +} + /** * Option to set number of google contacts * @subpackage imap/output diff --git a/modules/imap/setup.php b/modules/imap/setup.php index 70ab9da977..848cc0b73f 100644 --- a/modules/imap/setup.php +++ b/modules/imap/setup.php @@ -37,6 +37,7 @@ add_handler('settings', 'process_enable_simple_download_options', true, 'imap', 'date', 'after'); add_handler('settings', 'process_unread_on_open', true, 'imap', 'date', 'after'); add_handler('settings', 'process_imap_per_page_setting', true, 'imap', 'date', 'after'); +add_handler('settings', 'process_webhook_token_setting', true, 'imap', 'save_user_settings', 'before'); add_handler('settings', 'process_max_google_contacts_number', true, 'imap', 'date', 'after'); add_handler('settings', 'process_review_sent_email_setting', true, 'imap', 'date', 'after'); add_handler('settings', 'process_auto_advance_email_setting', true, 'imap', 'date', 'after'); @@ -51,6 +52,7 @@ add_output('settings', 'imap_pagination_links', true, 'imap', 'imap_msg_icons_setting', 'after'); add_output('settings', 'imap_unread_on_open', true, 'imap', 'imap_msg_icons_setting', 'after'); add_output('settings', 'imap_per_page_setting', true, 'imap', 'imap_pagination_links', 'after'); +add_output('settings', 'webhook_token_setting', true, 'imap', 'imap_per_page_setting', 'after'); add_output('settings', 'enable_simple_download_options', true, 'imap', 'imap_per_page_setting', 'after'); add_output('settings', 'max_google_contacts_number', true, 'imap', 'imap_per_page_setting', 'after'); add_output('settings', 'review_sent_email', true, 'imap', 'imap_pagination_links', 'after'); @@ -416,6 +418,7 @@ 'review_sent_email' => FILTER_VALIDATE_BOOLEAN, 'imap_snooze_ids' => FILTER_DEFAULT, 'imap_snooze_until' => FILTER_DEFAULT, - 'auto_advance_email' => FILTER_VALIDATE_BOOLEAN + 'auto_advance_email' => FILTER_VALIDATE_BOOLEAN, + 'webhook_token' => FILTER_DEFAULT, ) ); From 3fb1d360d10e2ed6a343df1ac09066c467c6f7b0 Mon Sep 17 00:00:00 2001 From: Baraka Kinywa Date: Fri, 31 May 2024 23:55:08 +0200 Subject: [PATCH 2/9] [FIX]fixing reset icon to work on Restore current value and Restore default value --- modules/core/site.js | 21 ++++++++++++++++++++- modules/imap/output_modules.php | 6 +++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/modules/core/site.js b/modules/core/site.js index d8abb05e50..c93828a234 100644 --- a/modules/core/site.js +++ b/modules/core/site.js @@ -1799,6 +1799,24 @@ var reset_default_value_checkbox = function() { } }; +var reset_default_value_input_webhook_token = function() { + let field = this.parentElement.parentElement.querySelector('input[type="text"]'); + const defaultValue = field.getAttribute("data-default-value"); + + if (field.disabled == false) { + this.style.transform = "scaleX(1)"; + this.parentElement.setAttribute("restore_aria_label", hm_trans("Restore current value")); + field.setAttribute("current_value", field.value); + field.value = defaultValue; // Use the default value (which is now an empty string) + field.disabled = true; + } else { + this.style.transform = "scaleX(-1)"; + this.parentElement.setAttribute("restore_aria_label", hm_trans("Restore default value")); + field.value = field.getAttribute("current_value"); + field.disabled = false; + } +}; + var reset_default_value_select = function() { let field = this.parentElement.parentElement.firstChild; let tab_static_default_value = {"inline_message_style" : 0, "smtp_compose_type" : 0, "theme_setting" : 0, @@ -1942,6 +1960,7 @@ $(function() { $('.reset_default_value_checkbox').on("click", reset_default_value_checkbox); $('.reset_default_value_select').on("click", reset_default_value_select); $('.reset_default_value_input').on("click", reset_default_value_input); + $('.reset_default_value_input_webhook_token').on("click", reset_default_value_input_webhook_token); } if (hm_check_dirty_flag()) { @@ -2602,7 +2621,7 @@ const observeMessageTextMutationAndHandleExternalResources = (inline) => { if (mutation.addedNodes.length > 0) { mutation.addedNodes.forEach(function (node) { if (node.classList.contains('msg_text_inner')) { - handleExternalResources(inline); + handleExternalResources(inline); } }); } diff --git a/modules/imap/output_modules.php b/modules/imap/output_modules.php index 1ffbd57b4d..c14b034b90 100644 --- a/modules/imap/output_modules.php +++ b/modules/imap/output_modules.php @@ -1133,11 +1133,11 @@ protected function output() { $webhook_token = $settings['webhook_token']; } if (!empty($webhook_token)) { - $reset = ''; + $reset = ''; } - return '