X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Femailsettings.php;h=6780928157a58d3e10cbff4dd20d94e8377b520b;hb=27ef3b1d905cdf8f47b47293a757624dda88fdc7;hp=5a816e5c0ab17fd4e3107baa7a3b77c0bd136fc4;hpb=407663fb402f0384cced2b63a2f901d19ab71d19;p=quix0rs-gnu-social.git diff --git a/actions/emailsettings.php b/actions/emailsettings.php index 5a816e5c0a..6780928157 100644 --- a/actions/emailsettings.php +++ b/actions/emailsettings.php @@ -32,7 +32,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once INSTALLDIR.'/lib/accountsettingsaction.php'; + /** * Settings for email @@ -47,14 +47,13 @@ require_once INSTALLDIR.'/lib/accountsettingsaction.php'; * @see Widget */ -class EmailsettingsAction extends AccountSettingsAction +class EmailsettingsAction extends SettingsAction { /** * Title of the page * * @return string Title of the page */ - function title() { // TRANS: Title for e-mail settings. @@ -66,7 +65,6 @@ class EmailsettingsAction extends AccountSettingsAction * * @return instructions for use */ - function getInstructions() { // XXX: For consistency of parameters in messages, this should be a @@ -79,6 +77,7 @@ class EmailsettingsAction extends AccountSettingsAction function showScripts() { parent::showScripts(); + $this->script('emailsettings.js'); $this->autofocus('email'); } @@ -90,7 +89,6 @@ class EmailsettingsAction extends AccountSettingsAction * * @return void */ - function showContent() { $user = common_current_user(); @@ -117,8 +115,8 @@ class EmailsettingsAction extends AccountSettingsAction $confirm = $this->getConfirmation(); if ($confirm) { $this->element('p', array('id' => 'form_unconfirmed'), $confirm->address); - // TRANS: Form note in e-mail settings form. $this->element('p', array('class' => 'form_note'), + // TRANS: Form note in e-mail settings form. _('Awaiting confirmation on this address. '. 'Check your inbox (and spam box!) for a message '. 'with further instructions.')); @@ -149,10 +147,30 @@ class EmailsettingsAction extends AccountSettingsAction $this->elementStart('fieldset', array('id' => 'settings_email_incoming')); // TRANS: Form legend for incoming e-mail settings form. $this->element('legend', null, _('Incoming email')); + + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); + $this->checkbox('emailpost', + // TRANS: Checkbox label in e-mail preferences form. + _('I want to post notices by email.'), + $user->emailpost); + $this->elementEnd('li'); + $this->elementEnd('ul'); + + // Our stylesheets make the form_data list items all floats, which + // creates lots of problems with trying to wrap divs around things. + // This should force a break before the next section, which needs + // to be separate so we can disable the things in it when the + // checkbox is off. + $this->elementStart('div', array('style' => 'clear: both')); + $this->elementEnd('div'); + + $this->elementStart('div', array('id' => 'emailincoming')); + if ($user->incomingemail) { $this->elementStart('p'); $this->element('span', 'address', $user->incomingemail); - // XXX: Looks a little awkward in the UI. + // @todo XXX: Looks a little awkward in the UI. // Something like "xxxx@identi.ca Send email ..". Needs improvement. $this->element('span', 'input_instructions', // TRANS: Form instructions for incoming e-mail form in e-mail settings. @@ -163,13 +181,22 @@ class EmailsettingsAction extends AccountSettingsAction } $this->elementStart('p'); - $this->element('span', 'input_instructions', - // TRANS: Instructions for incoming e-mail address input form. - _('Make a new email address for posting to; '. - 'cancels the old one.')); + if ($user->incomingemail) { + // TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. + $msg = _('Make a new email address for posting to; '. + 'cancels the old one.'); + } else { + // TRANS: Instructions for incoming e-mail address input form. + $msg = _('To send notices via email, we need to create a unique email address for you on this server:'); + } + $this->element('span', 'input_instructions', $msg); $this->elementEnd('p'); + // TRANS: Button label for adding an e-mail address to send notices from. $this->submit('newincoming', _m('BUTTON','New')); + + $this->elementEnd('div'); // div#emailincoming + $this->elementEnd('fieldset'); } @@ -178,7 +205,7 @@ class EmailsettingsAction extends AccountSettingsAction $this->element('legend', null, _('Email preferences')); $this->elementStart('ul', 'form_data'); - + if (Event::handle('StartEmailFormData', array($this))) { $this->elementStart('li'); $this->checkbox('emailnotifysub', @@ -211,14 +238,6 @@ class EmailsettingsAction extends AccountSettingsAction _('Allow friends to nudge me and send me an email.'), $user->emailnotifynudge); $this->elementEnd('li'); - if (common_config('emailpost', 'enabled')) { - $this->elementStart('li'); - $this->checkbox('emailpost', - // TRANS: Checkbox label in e-mail preferences form. - _('I want to post notices by email.'), - $user->emailpost); - $this->elementEnd('li'); - } $this->elementStart('li'); $this->checkbox('emailmicroid', // TRANS: Checkbox label in e-mail preferences form. @@ -240,7 +259,6 @@ class EmailsettingsAction extends AccountSettingsAction * * @return Confirm_address Email address confirmation for user, or null */ - function getConfirmation() { $user = common_current_user(); @@ -266,7 +284,6 @@ class EmailsettingsAction extends AccountSettingsAction * * @return void */ - function handlePost() { // CSRF protection @@ -300,13 +317,12 @@ class EmailsettingsAction extends AccountSettingsAction * * @return void */ - function savePreferences() { $user = common_current_user(); - + if (Event::handle('StartEmailSaveForm', array($this, &$user))) { - + $emailnotifysub = $this->boolean('emailnotifysub'); $emailnotifyfav = $this->boolean('emailnotifyfav'); $emailnotifymsg = $this->boolean('emailnotifymsg'); @@ -314,13 +330,13 @@ class EmailsettingsAction extends AccountSettingsAction $emailnotifyattn = $this->boolean('emailnotifyattn'); $emailmicroid = $this->boolean('emailmicroid'); $emailpost = $this->boolean('emailpost'); - + assert(!is_null($user)); // should already be checked - + $user->query('BEGIN'); - + $original = clone($user); - + $user->emailnotifysub = $emailnotifysub; $user->emailnotifyfav = $emailnotifyfav; $user->emailnotifymsg = $emailnotifymsg; @@ -328,20 +344,20 @@ class EmailsettingsAction extends AccountSettingsAction $user->emailnotifyattn = $emailnotifyattn; $user->emailmicroid = $emailmicroid; $user->emailpost = $emailpost; - + $result = $user->update($original); - + if ($result === false) { common_log_db_error($user, 'UPDATE', __FILE__); // TRANS: Server error thrown on database error updating e-mail preferences. - $this->serverError(_('Couldn\'t update user.')); + $this->serverError(_('Could not update user.')); return; } - + $user->query('COMMIT'); - + Event::handle('EndEmailSaveForm', array($this)); - + // TRANS: Confirmation message for successful e-mail preferences save. $this->showForm(_('Email preferences saved.'), true); } @@ -352,7 +368,6 @@ class EmailsettingsAction extends AccountSettingsAction * * @return void */ - function addAddress() { $user = common_current_user(); @@ -371,7 +386,7 @@ class EmailsettingsAction extends AccountSettingsAction if (!$email) { // TRANS: Message given saving e-mail address that cannot be normalised. - $this->showForm(_('Cannot normalize that email address')); + $this->showForm(_('Cannot normalize that email address.')); return; } if (!Validate::email($email, common_config('email', 'check_domain'))) { @@ -401,7 +416,7 @@ class EmailsettingsAction extends AccountSettingsAction if ($result === false) { common_log_db_error($confirm, 'INSERT', __FILE__); // TRANS: Server error thrown on database error adding e-mail confirmation code. - $this->serverError(_('Couldn\'t insert confirmation code.')); + $this->serverError(_('Could not insert confirmation code.')); return; } @@ -420,7 +435,6 @@ class EmailsettingsAction extends AccountSettingsAction * * @return void */ - function cancelConfirmation() { $email = $this->arg('email'); @@ -443,7 +457,7 @@ class EmailsettingsAction extends AccountSettingsAction if (!$result) { common_log_db_error($confirm, 'DELETE', __FILE__); // TRANS: Server error thrown on database error canceling e-mail address confirmation. - $this->serverError(_('Couldn\'t delete email confirmation.')); + $this->serverError(_('Could not delete email confirmation.')); return; } @@ -456,7 +470,6 @@ class EmailsettingsAction extends AccountSettingsAction * * @return void */ - function removeAddress() { $user = common_current_user(); @@ -483,7 +496,7 @@ class EmailsettingsAction extends AccountSettingsAction if (!$result) { common_log_db_error($user, 'UPDATE', __FILE__); // TRANS: Server error thrown on database error removing a registered e-mail address. - $this->serverError(_('Couldn\'t update user.')); + $this->serverError(_('Could not update user.')); return; } $user->query('COMMIT'); @@ -497,12 +510,12 @@ class EmailsettingsAction extends AccountSettingsAction * * @return void */ - function removeIncoming() { $user = common_current_user(); if (!$user->incomingemail) { + // TRANS: Form validation error displayed when trying to remove an incoming e-mail address while no address has been set. $this->showForm(_('No incoming email address.')); return; } @@ -510,11 +523,12 @@ class EmailsettingsAction extends AccountSettingsAction $orig = clone($user); $user->incomingemail = null; + $user->emailpost = 0; if (!$user->updateKeys($orig)) { common_log_db_error($user, 'UPDATE', __FILE__); // TRANS: Server error thrown on database error removing incoming e-mail address. - $this->serverError(_("Couldn't update user record.")); + $this->serverError(_('Could not update user record.')); } // TRANS: Message given after successfully removing an incoming e-mail address. @@ -526,7 +540,6 @@ class EmailsettingsAction extends AccountSettingsAction * * @return void */ - function newIncoming() { $user = common_current_user(); @@ -534,11 +547,12 @@ class EmailsettingsAction extends AccountSettingsAction $orig = clone($user); $user->incomingemail = mail_new_incoming_address(); + $user->emailpost = 1; if (!$user->updateKeys($orig)) { common_log_db_error($user, 'UPDATE', __FILE__); // TRANS: Server error thrown on database error adding incoming e-mail address. - $this->serverError(_("Couldn't update user record.")); + $this->serverError(_('Could not update user record.')); } // TRANS: Message given after successfully adding an incoming e-mail address.