Page MenuHomePhabricator

D10236.diff
No OneTemporary

D10236.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -2146,6 +2146,7 @@
'PhabricatorSettingsPanelDiffPreferences' => 'applications/settings/panel/PhabricatorSettingsPanelDiffPreferences.php',
'PhabricatorSettingsPanelDisplayPreferences' => 'applications/settings/panel/PhabricatorSettingsPanelDisplayPreferences.php',
'PhabricatorSettingsPanelEmailAddresses' => 'applications/settings/panel/PhabricatorSettingsPanelEmailAddresses.php',
+ 'PhabricatorSettingsPanelEmailFormat' => 'applications/settings/panel/PhabricatorSettingsPanelEmailFormat.php',
'PhabricatorSettingsPanelEmailPreferences' => 'applications/settings/panel/PhabricatorSettingsPanelEmailPreferences.php',
'PhabricatorSettingsPanelExternalAccounts' => 'applications/settings/panel/PhabricatorSettingsPanelExternalAccounts.php',
'PhabricatorSettingsPanelHomePreferences' => 'applications/settings/panel/PhabricatorSettingsPanelHomePreferences.php',
@@ -5018,6 +5019,7 @@
'PhabricatorSettingsPanelDiffPreferences' => 'PhabricatorSettingsPanel',
'PhabricatorSettingsPanelDisplayPreferences' => 'PhabricatorSettingsPanel',
'PhabricatorSettingsPanelEmailAddresses' => 'PhabricatorSettingsPanel',
+ 'PhabricatorSettingsPanelEmailFormat' => 'PhabricatorSettingsPanel',
'PhabricatorSettingsPanelEmailPreferences' => 'PhabricatorSettingsPanel',
'PhabricatorSettingsPanelExternalAccounts' => 'PhabricatorSettingsPanel',
'PhabricatorSettingsPanelHomePreferences' => 'PhabricatorSettingsPanel',
diff --git a/src/applications/settings/panel/PhabricatorSettingsPanelEmailFormat.php b/src/applications/settings/panel/PhabricatorSettingsPanelEmailFormat.php
new file mode 100644
--- /dev/null
+++ b/src/applications/settings/panel/PhabricatorSettingsPanelEmailFormat.php
@@ -0,0 +1,182 @@
+<?php
+
+final class PhabricatorSettingsPanelEmailFormat
+ extends PhabricatorSettingsPanel {
+
+ public function getPanelKey() {
+ return 'emailformat';
+ }
+
+ public function getPanelName() {
+ return pht('Email Format');
+ }
+
+ public function getPanelGroup() {
+ return pht('Email');
+ }
+
+ public function processRequest(AphrontRequest $request) {
+ $user = $request->getUser();
+
+ $preferences = $user->loadPreferences();
+
+ $pref_re_prefix = PhabricatorUserPreferences::PREFERENCE_RE_PREFIX;
+ $pref_vary = PhabricatorUserPreferences::PREFERENCE_VARY_SUBJECT;
+
+ $errors = array();
+ if ($request->isFormPost()) {
+
+ if (PhabricatorMetaMTAMail::shouldMultiplexAllMail()) {
+ if ($request->getStr($pref_re_prefix) == 'default') {
+ $preferences->unsetPreference($pref_re_prefix);
+ } else {
+ $preferences->setPreference(
+ $pref_re_prefix,
+ $request->getBool($pref_re_prefix));
+ }
+
+ if ($request->getStr($pref_vary) == 'default') {
+ $preferences->unsetPreference($pref_vary);
+ } else {
+ $preferences->setPreference(
+ $pref_vary,
+ $request->getBool($pref_vary));
+ }
+ }
+
+ $preferences->save();
+
+ return id(new AphrontRedirectResponse())
+ ->setURI($this->getPanelURI('?saved=true'));
+ }
+
+ $re_prefix_default = PhabricatorEnv::getEnvConfig('metamta.re-prefix')
+ ? pht('Enabled')
+ : pht('Disabled');
+
+ $vary_default = PhabricatorEnv::getEnvConfig('metamta.vary-subjects')
+ ? pht('Vary')
+ : pht('Do Not Vary');
+
+ $re_prefix_value = $preferences->getPreference($pref_re_prefix);
+ if ($re_prefix_value === null) {
+ $re_prefix_value = 'default';
+ } else {
+ $re_prefix_value = $re_prefix_value
+ ? 'true'
+ : 'false';
+ }
+
+ $vary_value = $preferences->getPreference($pref_vary);
+ if ($vary_value === null) {
+ $vary_value = 'default';
+ } else {
+ $vary_value = $vary_value
+ ? 'true'
+ : 'false';
+ }
+
+ $form = new AphrontFormView();
+ $form
+ ->setUser($user);
+
+ if (PhabricatorMetaMTAMail::shouldMultiplexAllMail()) {
+ $re_control = id(new AphrontFormSelectControl())
+ ->setName($pref_re_prefix)
+ ->setOptions(
+ array(
+ 'default' => pht('Use Server Default (%s)', $re_prefix_default),
+ 'true' => pht('Enable "Re:" prefix'),
+ 'false' => pht('Disable "Re:" prefix'),
+ ))
+ ->setValue($re_prefix_value);
+
+ $vary_control = id(new AphrontFormSelectControl())
+ ->setName($pref_vary)
+ ->setOptions(
+ array(
+ 'default' => pht('Use Server Default (%s)', $vary_default),
+ 'true' => pht('Vary Subjects'),
+ 'false' => pht('Do Not Vary Subjects'),
+ ))
+ ->setValue($vary_value);
+ } else {
+ $re_control = id(new AphrontFormStaticControl())
+ ->setValue('Server Default ('.$re_prefix_default.')');
+
+ $vary_control = id(new AphrontFormStaticControl())
+ ->setValue('Server Default ('.$vary_default.')');
+ }
+
+ $form
+ ->appendRemarkupInstructions(
+ pht(
+ 'These settings fine-tune some technical aspects of how email is '.
+ 'formatted. You may be able to adjust them to make mail more '.
+ 'useful or improve threading.'));
+
+ if (!PhabricatorMetaMTAMail::shouldMultiplexAllMail()) {
+ $form->appendRemarkupInstructions(
+ pht(
+ 'NOTE: This install of Phabricator is configured to send a '.
+ 'single mail message to all recipients, so all settings are '.
+ 'locked at the server default value.'));
+ }
+
+ $form
+ ->appendRemarkupInstructions('')
+ ->appendRemarkupInstructions(
+ pht(
+ 'The **Add "Re:" Prefix** setting adds "Re:" in front of all '.
+ 'messages, even if they are not replies. If you use **Mail.app** on '.
+ 'Mac OS X, this may improve mail threading.'.
+ "\n\n".
+ "| Setting | Example Mail Subject\n".
+ "|------------------------|----------------\n".
+ "| Enable \"Re:\" Prefix | ".
+ "`Re: [Differential] [Accepted] D123: Example Revision`\n".
+ "| Disable \"Re:\" Prefix | ".
+ "`[Differential] [Accepted] D123: Example Revision`"))
+ ->appendChild(
+ $re_control
+ ->setLabel(pht('Add "Re:" Prefix')))
+ ->appendRemarkupInstructions('')
+ ->appendRemarkupInstructions(
+ pht(
+ 'With **Vary Subjects** enabled, most mail subject lines will '.
+ 'include a brief description of their content, like **[Closed]** '.
+ 'for a notification about someone closing a task.'.
+ "\n\n".
+ "| Setting | Example Mail Subject\n".
+ "|----------------------|----------------\n".
+ "| Vary Subjects | ".
+ "`[Maniphest] [Closed] T123: Example Task`\n".
+ "| Do Not Vary Subjects | ".
+ "`[Maniphest] T123: Example Task`\n".
+ "\n".
+ 'This can make mail more useful, but some clients have difficulty '.
+ 'threading these messages. Disabling this option may improve '.
+ 'threading, at the cost of less useful subject lines.'))
+ ->appendChild(
+ $vary_control
+ ->setLabel(pht('Vary Subjects')));
+
+ $form
+ ->appendChild(
+ id(new AphrontFormSubmitControl())
+ ->setValue(pht('Save Preferences')));
+
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Email Format'))
+ ->setFormSaved($request->getStr('saved'))
+ ->setFormErrors($errors)
+ ->setForm($form);
+
+ return id(new AphrontNullView())
+ ->appendChild(
+ array(
+ $form_box,
+ ));
+ }
+
+}
diff --git a/src/applications/settings/panel/PhabricatorSettingsPanelEmailPreferences.php b/src/applications/settings/panel/PhabricatorSettingsPanelEmailPreferences.php
--- a/src/applications/settings/panel/PhabricatorSettingsPanelEmailPreferences.php
+++ b/src/applications/settings/panel/PhabricatorSettingsPanelEmailPreferences.php
@@ -20,31 +20,10 @@
$preferences = $user->loadPreferences();
- $pref_re_prefix = PhabricatorUserPreferences::PREFERENCE_RE_PREFIX;
- $pref_vary = PhabricatorUserPreferences::PREFERENCE_VARY_SUBJECT;
$pref_no_self_mail = PhabricatorUserPreferences::PREFERENCE_NO_SELF_MAIL;
$errors = array();
if ($request->isFormPost()) {
-
- if (PhabricatorMetaMTAMail::shouldMultiplexAllMail()) {
- if ($request->getStr($pref_re_prefix) == 'default') {
- $preferences->unsetPreference($pref_re_prefix);
- } else {
- $preferences->setPreference(
- $pref_re_prefix,
- $request->getBool($pref_re_prefix));
- }
-
- if ($request->getStr($pref_vary) == 'default') {
- $preferences->unsetPreference($pref_vary);
- } else {
- $preferences->setPreference(
- $pref_vary,
- $request->getBool($pref_vary));
- }
- }
-
$preferences->setPreference(
$pref_no_self_mail,
$request->getStr($pref_no_self_mail));
@@ -74,32 +53,6 @@
->setURI($this->getPanelURI('?saved=true'));
}
- $re_prefix_default = PhabricatorEnv::getEnvConfig('metamta.re-prefix')
- ? pht('Enabled')
- : pht('Disabled');
-
- $vary_default = PhabricatorEnv::getEnvConfig('metamta.vary-subjects')
- ? pht('Vary')
- : pht('Do Not Vary');
-
- $re_prefix_value = $preferences->getPreference($pref_re_prefix);
- if ($re_prefix_value === null) {
- $re_prefix_value = 'default';
- } else {
- $re_prefix_value = $re_prefix_value
- ? 'true'
- : 'false';
- }
-
- $vary_value = $preferences->getPreference($pref_vary);
- if ($vary_value === null) {
- $vary_value = 'default';
- } else {
- $vary_value = $vary_value
- ? 'true'
- : 'false';
- }
-
$form = new AphrontFormView();
$form
->setUser($user)
@@ -115,48 +68,6 @@
->setCaption(pht('You can disable email about your own actions.'))
->setValue($preferences->getPreference($pref_no_self_mail, 0)));
- if (PhabricatorMetaMTAMail::shouldMultiplexAllMail()) {
- $re_control = id(new AphrontFormSelectControl())
- ->setName($pref_re_prefix)
- ->setOptions(
- array(
- 'default' => pht('Use Server Default (%s)', $re_prefix_default),
- 'true' => pht('Enable "Re:" prefix'),
- 'false' => pht('Disable "Re:" prefix'),
- ))
- ->setValue($re_prefix_value);
-
- $vary_control = id(new AphrontFormSelectControl())
- ->setName($pref_vary)
- ->setOptions(
- array(
- 'default' => pht('Use Server Default (%s)', $vary_default),
- 'true' => pht('Vary Subjects'),
- 'false' => pht('Do Not Vary Subjects'),
- ))
- ->setValue($vary_value);
- } else {
- $re_control = id(new AphrontFormStaticControl())
- ->setValue('Server Default ('.$re_prefix_default.')');
-
- $vary_control = id(new AphrontFormStaticControl())
- ->setValue('Server Default ('.$vary_default.')');
- }
-
- $form
- ->appendChild(
- $re_control
- ->setLabel(pht('Add "Re:" Prefix'))
- ->setCaption(
- pht('Enable this option to fix threading in Mail.app on OS X Lion,'.
- ' or if you like "Re:" in your email subjects.')))
- ->appendChild(
- $vary_control
- ->setLabel(pht('Vary Subjects'))
- ->setCaption(
- pht('This option adds more information to email subjects, but may '.
- 'break threading in some clients.')));
-
$mailtags = $preferences->getPreference('mailtags', array());
$form->appendChild(

File Metadata

Mime Type
text/plain
Expires
Sun, May 12, 3:27 AM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6285003
Default Alt Text
D10236.diff (11 KB)

Event Timeline