diff options
Diffstat (limited to 'plugins/new_user_dialog/new_user_dialog.php')
-rw-r--r-- | plugins/new_user_dialog/new_user_dialog.php | 69 |
1 files changed, 25 insertions, 44 deletions
diff --git a/plugins/new_user_dialog/new_user_dialog.php b/plugins/new_user_dialog/new_user_dialog.php index 39a707638..9c9dcce1c 100644 --- a/plugins/new_user_dialog/new_user_dialog.php +++ b/plugins/new_user_dialog/new_user_dialog.php @@ -10,12 +10,10 @@ * @version @package_version@ * @license GNU GPLv3+ * @author Thomas Bruederli - * @author Aleksander Machniak */ class new_user_dialog extends rcube_plugin { public $task = 'login|mail'; - public $noframe = true; function init() { @@ -34,9 +32,8 @@ class new_user_dialog extends rcube_plugin function create_identity($p) { // set session flag when a new user was created and the default identity seems to be incomplete - if ($p['login'] && !$p['complete']) { + if ($p['login'] && !$p['complete']) $_SESSION['plugin.newuserdialog'] = true; - } } /** @@ -66,7 +63,7 @@ class new_user_dialog extends rcube_plugin $table->add(null, html::tag('input', array( 'type' => 'text', 'name' => '_email', - 'value' => rcube_utils::idn_to_utf8($identity['email']), + 'value' => rcube_idn_to_utf8($identity['email']), 'disabled' => ($identities_level == 1 || $identities_level == 3) ))); @@ -89,30 +86,20 @@ class new_user_dialog extends rcube_plugin 'id' => 'newuserdialog', 'action' => $rcmail->url('plugin.newusersave'), 'method' => 'post'), - html::p('hint', rcube::Q($this->gettext('identitydialoghint'))) . + html::tag('h3', null, Q($this->gettext('identitydialogtitle'))) . + html::p('hint', Q($this->gettext('identitydialoghint'))) . $table->show() . html::p(array('class' => 'formbuttons'), html::tag('input', array('type' => 'submit', 'class' => 'button mainaction', 'value' => $this->gettext('save')))) )); - $title = rcube::JQ($this->gettext('identitydialogtitle')); - // disable keyboard events for messages list (#1486726) - $rcmail->output->add_script(" - $('#newuserdialog').show() - .dialog({modal:true, resizable:false, closeOnEscape:false, width:450, title:'$title'}) - .submit(function() { - var i, request = {}, form = $(this).serializeArray(); - - for (i in form) - request[form[i].name] = form[i].value; - - rcmail.http_post('plugin.newusersave', request, true); - return false; - }); - $('input[name=_name]').focus(); - rcube_webmail.prototype.new_user_dialog_close = function() { $('#newuserdialog').dialog('close'); } + $rcmail->output->add_script( + "rcmail.message_list.key_press = function(){}; + rcmail.message_list.key_down = function(){}; + $('#newuserdialog').show().dialog({ modal:true, resizable:false, closeOnEscape:false, width:420 }); + $('input[name=_name]').focus(); ", 'docready'); $this->include_stylesheet('newuserdialog.css'); @@ -120,45 +107,39 @@ class new_user_dialog extends rcube_plugin } /** - * Handler for submitted form (ajax request) + * Handler for submitted form * * Check fields and save to default identity if valid. * Afterwards the session flag is removed and we're done. */ function save_data() { - $rcmail = rcmail::get_instance(); - $identity = $rcmail->user->get_identity(); - $ident_level = intval($rcmail->config->get('identities_level', 0)); + $rcmail = rcmail::get_instance(); + $identity = $rcmail->user->get_identity(); + $identities_level = intval($rcmail->config->get('identities_level', 0)); $save_data = array( - 'name' => rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST), - 'email' => rcube_utils::get_input_value('_email', rcube_utils::INPUT_POST), - 'organization' => rcube_utils::get_input_value('_organization', rcube_utils::INPUT_POST), - 'signature' => rcube_utils::get_input_value('_signature', rcube_utils::INPUT_POST), + 'name' => get_input_value('_name', RCUBE_INPUT_POST), + 'email' => get_input_value('_email', RCUBE_INPUT_POST), + 'organization' => get_input_value('_organization', RCUBE_INPUT_POST), + 'signature' => get_input_value('_signature', RCUBE_INPUT_POST), ); // don't let the user alter the e-mail address if disabled by config - if (in_array($ident_level, array(1,3,4))) { + if ($identities_level == 1 || $identities_level == 3) $save_data['email'] = $identity['email']; - } + else + $save_data['email'] = rcube_idn_to_ascii($save_data['email']); - if (empty($save_data['name']) || empty($save_data['email'])) { - $rcmail->output->show_message('formincomplete', 'error'); - } - else if (!rcube_utils::check_email($save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']))) { - $rcmail->output->show_message('emailformaterror', 'error', array('email' => $save_data['email'])); - } - else { - // save data + // save data if not empty + if (!empty($save_data['name']) && !empty($save_data['email'])) { $rcmail->user->update_identity($identity['identity_id'], $save_data); $rcmail->session->remove('plugin.newuserdialog'); - // hide dialog - $rcmail->output->command('new_user_dialog_close'); - $rcmail->output->show_message('successfullysaved', 'confirmation'); } - $rcmail->output->send(); + $rcmail->output->redirect(''); } } + +?> |