From 2727053c61cac4a37a76b9e58e607acff7fc8dfb Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Tue, 07 Oct 2008 02:24:18 -0400
Subject: [PATCH] - #1485471: fix drafts saving

---
 program/steps/settings/edit_identity.inc |   94 +++++++++++++++++++++++++----------------------
 1 files changed, 50 insertions(+), 44 deletions(-)

diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc
index 7497d8a..5cad6be 100644
--- a/program/steps/settings/edit_identity.inc
+++ b/program/steps/settings/edit_identity.inc
@@ -19,57 +19,70 @@
 
 */
 
-if (($_GET['_iid'] || $_POST['_iid']) && $_action=='edit-identity')
-  {
+$OUTPUT->set_pagetitle(rcube_label('identities'));
+
+if (($_GET['_iid'] || $_POST['_iid']) && $RCMAIL->action=='edit-identity') {
   $IDENTITY_RECORD = $USER->get_identity(get_input_value('_iid', RCUBE_INPUT_GPC));
   
   if (is_array($IDENTITY_RECORD))
     $OUTPUT->set_env('iid', $IDENTITY_RECORD['identity_id']);
-
-  $OUTPUT->set_pagetitle(rcube_label('edititem'));
-  }
-else
-  $OUTPUT->set_pagetitle(rcube_label('newitem'));
-
+}
+else if (!$RCMAIL->config->get('multiple_identities', true)) {
+  $OUTPUT->show_message('opnotpermitted', 'error');
+  // go to identities page
+  rcmail_overwrite_action('identities');
+  return;
+}
 
 $OUTPUT->include_script('list.js');
 
 
 function rcube_identity_form($attrib)
   {
-  global $IDENTITY_RECORD, $OUTPUT;
+  global $IDENTITY_RECORD, $RCMAIL, $OUTPUT;
 
-  $OUTPUT->include_script('tiny_mce/tiny_mce_src.js');
-  $OUTPUT->add_script("tinyMCE.init({ mode : 'specific_textareas'," .
+  $tinylang = substr($_SESSION['language'], 0, 2);
+  if (!file_exists('program/js/tiny_mce/langs/'.$tinylang.'.js'))
+    {
+      $tinylang = 'en';
+    }
+
+  $OUTPUT->include_script('tiny_mce/tiny_mce.js');
+  $OUTPUT->add_script("tinyMCE.init({ mode : 'textareas'," .
+                                    "editor_selector : 'mce_editor'," .
                                     "apply_source_formatting : true," .
+                                    "language : '$tinylang'," .
                                     "content_css : '\$__skin_path' + '/editor_content.css'," .
-                                    "editor_css : '\$__skin_path' + '/editor_ui.css'," .
                                     "theme : 'advanced'," .
                                     "theme_advanced_toolbar_location : 'top'," .
                                     "theme_advanced_toolbar_align : 'left'," .
-                                    "theme_advanced_buttons1 : 'bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,separator,outdent,indent,charmap,hr'," .
-                                    "theme_advanced_buttons2 : 'link,unlink,code,forecolor,fontselect,fontsizeselect'," .
-                                    "theme_advanced_buttons3 : '' });");
+                                    "theme_advanced_buttons1 : 'bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,separator,outdent,indent,charmap,hr,link,unlink,code,forecolor'," .
+                                    "theme_advanced_buttons2 : ',fontselect,fontsizeselect'," .
+                                    "theme_advanced_buttons3 : '',".
+				    "gecko_spellcheck : true });");
 
-  if (!$IDENTITY_RECORD && $GLOBALS['_action']!='add-identity')
+  if (!$IDENTITY_RECORD && $RCMAIL->action != 'add-identity')
     return rcube_label('notfound');
 
   // add some labels to client
-  rcube_add_label('noemailwarning', 'nonamewarning');
+  $OUTPUT->add_label('noemailwarning', 'nonamewarning', 'converting');
 
+  $i_size = !empty($attrib['size']) ? $attrib['size'] : 40;
+  $t_rows = !empty($attrib['textarearows']) ? $attrib['textarearows'] : 6;
+  $t_cols = !empty($attrib['textareacols']) ? $attrib['textareacols'] : 40;
 
   list($form_start, $form_end) = get_form_tags($attrib, 'save-identity', array('name' => '_iid', 'value' => $IDENTITY_RECORD['identity_id']));
   unset($attrib['form']);
 
 
   // list of available cols
-  $a_show_cols = array('name'         => array('type' => 'text'),
-                       'email'        => array('type' => 'text'),
-                       'organization' => array('type' => 'text'),
-                       'reply-to'     => array('type' => 'text', 'label' => 'replyto'),
-                       'bcc'          => array('type' => 'text'),
-                       'signature'	  => array('type' => 'textarea', 'size' => "40", 'rows' => "6"),
-                       'html_signature'=>array('type' => 'checkbox', 'label' => 'htmlsignature', 'onclick' => 'return rcmail.toggle_editor(this, \'_signature\');'),
+  $a_show_cols = array('name'         => array('type' => 'text', 'size' => $i_size),
+                       'email'        => array('type' => 'text', 'size' => $i_size),
+                       'organization' => array('type' => 'text', 'size' => $i_size),
+                       'reply-to'     => array('type' => 'text', 'label' => 'reply-to', 'size' => $i_size),
+                       'bcc'          => array('type' => 'text', 'size' => $i_size),
+                       'signature'	  => array('type' => 'textarea', 'size' => $t_cols, 'rows' => $t_rows),
+                       'html_signature'=>array('type' => 'checkbox', 'label' => 'htmlsignature', 'onclick' => 'return rcmail.toggle_editor(this, \'rcmfd_signature\');'),
                        'standard'     => array('type' => 'checkbox', 'label' => 'setdefault'));
 
 
@@ -93,31 +106,22 @@
 
   foreach ($a_show_cols as $col => $colprop)
     {
-    $attrib['id'] = 'rcmfd_'.$col;
-
-    if (strlen($colprop['onclick']))
-      $attrib['onclick'] = $colprop['onclick'];
-    else
-      unset($attrib['onclick']);
+    $colprop['id'] = 'rcmfd_'.$col;
 
     if ($col == 'signature')
       {
-      $attrib['size'] = $colprop['size'];
-      $attrib['rows'] = $colprop['rows'];
-      $attrib['mce_editable'] = $IDENTITY_RECORD['html_signature'] ? "true" : "false";
-      }
-    else
-      {
-      unset($attrib['size']);
-      unset($attrib['rows']);
-      unset($attrib['mce_editable']);
+      $colprop['spellcheck'] = true;
+      if ($IDENTITY_RECORD['html_signature'])
+        {
+        $colprop['class'] = 'mce_editor';
+        }
       }
 
     $label = strlen($colprop['label']) ? $colprop['label'] : $col;
-    $value = rcmail_get_edit_field($col, $IDENTITY_RECORD[$col], $attrib, $colprop['type']);
+    $value = rcmail_get_edit_field($col, $IDENTITY_RECORD[$col], $colprop, $colprop['type']);
 
     $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
-                    $attrib['id'],
+                    $colprop['id'],
                     Q(rcube_label($label)),
                     $value);
     }
@@ -129,8 +133,10 @@
 
 $OUTPUT->add_handler('identityform', 'rcube_identity_form');
 
-if ($_action=='add-identity' && template_exists('addidentity'))
-  parse_template('addidentity');
+$OUTPUT->set_pagetitle(rcube_label(($RCMAIL->action=='add-identity' ? 'newidentity' : 'edititem')));
 
-parse_template('editidentity');
+if ($RCMAIL->action=='add-identity' && $OUTPUT->template_exists('addidentity'))
+  $OUTPUT->send('addidentity');
+
+$OUTPUT->send('editidentity');
 ?>

--
Gitblit v1.9.1