From dd7f343d439054dd79e4cc1c00ce526fed7c26e1 Mon Sep 17 00:00:00 2001 From: Benjamin Lorteau Date: Sun, 27 Jun 2021 22:15:11 -0400 Subject: [PATCH] [mailstream] Add a name to the addon settings submit button - Now that each addon form is in their own form tag, we have to check whether the addon submit button was pressed. - This was already done in every other addon but mailstream and this change will prevent unexpected loss of mailstream settings when saving any other addon settings. --- mailstream/mailstream.php | 72 ++++++++++++++++++------------- mailstream/templates/settings.tpl | 10 ++--- 2 files changed, 46 insertions(+), 36 deletions(-) diff --git a/mailstream/mailstream.php b/mailstream/mailstream.php index 67019f03c..d825979b8 100644 --- a/mailstream/mailstream.php +++ b/mailstream/mailstream.php @@ -491,52 +491,62 @@ function mailstream_addon_settings(&$a, &$s) $attachimg= DI::pConfig()->get(local_user(), 'mailstream', 'attachimg'); $template = Renderer::getMarkupTemplate('settings.tpl', 'addon/mailstream/'); $s .= Renderer::replaceMacros($template, [ - '$enabled' => [ - 'mailstream_enabled', - DI::l10n()->t('Enabled'), - $enabled], - '$address' => [ - 'mailstream_address', - DI::l10n()->t('Email Address'), - $address, - DI::l10n()->t("Leave blank to use your account email address")], - '$nolikes' => [ - 'mailstream_nolikes', - DI::l10n()->t('Exclude Likes'), - $nolikes, - DI::l10n()->t("Check this to omit mailing \"Like\" notifications")], - '$attachimg' => [ - 'mailstream_attachimg', - DI::l10n()->t('Attach Images'), - $attachimg, - DI::l10n()->t("Download images in posts and attach them to the email. " . - "Useful for reading email while offline.")], - '$title' => DI::l10n()->t('Mail Stream Settings'), - '$submit' => DI::l10n()->t('Save Settings')]); + '$enabled' => [ + 'mailstream_enabled', + DI::l10n()->t('Enabled'), + $enabled + ], + '$address' => [ + 'mailstream_address', + DI::l10n()->t('Email Address'), + $address, + DI::l10n()->t("Leave blank to use your account email address") + ], + '$nolikes' => [ + 'mailstream_nolikes', + DI::l10n()->t('Exclude Likes'), + $nolikes, + DI::l10n()->t("Check this to omit mailing \"Like\" notifications") + ], + '$attachimg' => [ + 'mailstream_attachimg', + DI::l10n()->t('Attach Images'), + $attachimg, + DI::l10n()->t("Download images in posts and attach them to the email. " . + "Useful for reading email while offline.") + ], + '$title' => DI::l10n()->t('Mail Stream Settings'), + '$submit' => DI::l10n()->t('Save Settings')]); } /** * Process data submitted to user's mailstream features form + * @param \Friendica\App $a + * @param array $post POST data */ -function mailstream_addon_settings_post() +function mailstream_addon_settings_post(\Friendica\App $a, array $post) { - if ($_POST['mailstream_address'] != "") { - DI::pConfig()->set(local_user(), 'mailstream', 'address', $_POST['mailstream_address']); + if (!local_user() || empty($post['mailstream-submit'])) { + return; + } + + if ($post['mailstream_address'] != "") { + DI::pConfig()->set(local_user(), 'mailstream', 'address', $post['mailstream_address']); } else { DI::pConfig()->delete(local_user(), 'mailstream', 'address'); } - if ($_POST['mailstream_nolikes']) { - DI::pConfig()->set(local_user(), 'mailstream', 'nolikes', $_POST['mailstream_enabled']); + if ($post['mailstream_nolikes']) { + DI::pConfig()->set(local_user(), 'mailstream', 'nolikes', $post['mailstream_enabled']); } else { DI::pConfig()->delete(local_user(), 'mailstream', 'nolikes'); } - if ($_POST['mailstream_enabled']) { - DI::pConfig()->set(local_user(), 'mailstream', 'enabled', $_POST['mailstream_enabled']); + if ($post['mailstream_enabled']) { + DI::pConfig()->set(local_user(), 'mailstream', 'enabled', $post['mailstream_enabled']); } else { DI::pConfig()->delete(local_user(), 'mailstream', 'enabled'); } - if ($_POST['mailstream_attachimg']) { - DI::pConfig()->set(local_user(), 'mailstream', 'attachimg', $_POST['mailstream_attachimg']); + if ($post['mailstream_attachimg']) { + DI::pConfig()->set(local_user(), 'mailstream', 'attachimg', $post['mailstream_attachimg']); } else { DI::pConfig()->delete(local_user(), 'mailstream', 'attachimg'); } diff --git a/mailstream/templates/settings.tpl b/mailstream/templates/settings.tpl index 599837bab..aa02b2744 100644 --- a/mailstream/templates/settings.tpl +++ b/mailstream/templates/settings.tpl @@ -5,9 +5,9 @@

{{$title}}

-{{include file="field_checkbox.tpl" field=$enabled}} -{{include file="field_input.tpl" field=$address}} -{{include file="field_checkbox.tpl" field=$nolikes}} -{{include file="field_checkbox.tpl" field=$attachimg}} - + {{include file="field_checkbox.tpl" field=$enabled}} + {{include file="field_input.tpl" field=$address}} + {{include file="field_checkbox.tpl" field=$nolikes}} + {{include file="field_checkbox.tpl" field=$attachimg}} +