From a2e81736a91f72c8688e6ab0f45061369614dae3 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Sat, 19 Jun 2010 13:46:11 -0400
Subject: [PATCH] - Move quota indicator to mailboxlist footer - Fix groupcontrols on IE6 (use gif)

---
 program/js/editor.js |   60 +++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 41 insertions(+), 19 deletions(-)

diff --git a/program/js/editor.js b/program/js/editor.js
index 361741e..34511ce 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -43,8 +43,8 @@
       theme : 'advanced',
       language : editor_lang,
       plugins : 'paste,emotions,media,nonbreaking,table,searchreplace,visualchars,directionality' + (spellcheck ? ',spellchecker' : ''),
-      theme_advanced_buttons1 : 'bold,italic,underline,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,bullist,numlist,outdent,indent,separator,link,unlink,emotions,charmap,code,forecolor,backcolor,fontselect,fontsizeselect, separator' + (spellcheck ? ',spellchecker' : '') + ',undo,redo,image,media,ltr,rtl',
-      theme_advanced_buttons2 : '',
+      theme_advanced_buttons1 : 'bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,outdent,indent,ltr,rtl,blockquote,|,forecolor,backcolor,fontselect,fontsizeselect',
+      theme_advanced_buttons2 : 'link,unlink,code,|,emotions,charmap,image,media,|,search' + (spellcheck ? ',spellchecker' : '') + ',undo,redo',
       theme_advanced_buttons3 : '',
       theme_advanced_toolbar_location : 'top',
       theme_advanced_toolbar_align : 'left',
@@ -55,7 +55,7 @@
       gecko_spellcheck : true,
       relative_urls : false,
       remove_script_host : false,
-      rc_client: rcmail,
+      rc_client : rcmail,
       oninit : 'rcmail_editor_callback'
     });
 }
@@ -63,11 +63,18 @@
 // react to real individual tinyMCE editor init
 function rcmail_editor_callback(editor)
 {
-  var input_from = rcube_find_object('_from');
-  if (input_from && input_from.type=='select-one')
-    rcmail.change_identity(input_from);
+  var editor, elem = rcube_find_object('_from');
+  if (elem && elem.type=='select-one')
+    rcmail.change_identity(elem);
   // set tabIndex
   rcmail_editor_tabindex();
+  // set focus to element that was focused before
+  if (elem = rcmail.env.compose_focus_elem) {
+    if (elem.id == rcmail.env.composebody && (editor = tinyMCE.get(rcmail.env.composebody)))
+      editor.getWin().focus();
+    else
+      elem.focus();
+  }
 }
 
 // set tabIndex on tinyMCE editor
@@ -75,38 +82,53 @@
 {
   if (rcmail.env.task == 'mail') {
     var editor = tinyMCE.get(rcmail.env.composebody);
-    var textarea = editor.getElement();
-    var node = editor.getContentAreaContainer().childNodes[0];
-    if (textarea && node)
-      node.tabIndex = textarea.tabIndex;
+    if (editor) {
+      var textarea = editor.getElement();
+      var node = editor.getContentAreaContainer().childNodes[0];
+      if (textarea && node)
+        node.tabIndex = textarea.tabIndex;
+    }
   }
 }
 
 // switch html/plain mode
-function rcmail_toggle_editor(ishtml, textAreaId, flagElement)
+function rcmail_toggle_editor(select, textAreaId, flagElement)
 {
   var composeElement = document.getElementById(textAreaId);
-  var flag;
+  var flag, ishtml;
+
+  if (select.tagName != 'SELECT')
+    ishtml = select.checked;
+  else
+    ishtml = select.value == 'html';
 
   if (ishtml)
     {
     rcmail.display_spellcheck_controls(false);
 
     rcmail.plain2html(composeElement.value, textAreaId);
-    tinyMCE.execCommand('mceAddControl', true, textAreaId);
-    rcmail_editor_tabindex();
+    tinyMCE.execCommand('mceAddControl', false, textAreaId);
+    // #1486593
+    setTimeout("rcmail_editor_tabindex();", 500);
     if (flagElement && (flag = rcube_find_object(flagElement)))
       flag.value = '1';
     }
   else
     {
-    if (!confirm(rcmail.get_label('editorwarning')))
-      return false;
-
     var thisMCE = tinyMCE.get(textAreaId);
     var existingHtml = thisMCE.getContent();
-    rcmail.html2plain(existingHtml, textAreaId);
-    tinyMCE.execCommand('mceRemoveControl', true, textAreaId);
+
+    if (existingHtml) {
+      if (!confirm(rcmail.get_label('editorwarning'))) {
+        if (select.tagName == 'SELECT')
+	  select.value = 'html';
+        return false;
+	}
+
+      rcmail.html2plain(existingHtml, textAreaId);
+      }
+
+    tinyMCE.execCommand('mceRemoveControl', false, textAreaId);
     rcmail.display_spellcheck_controls(true);
     if (flagElement && (flag = rcube_find_object(flagElement)))
       flag.value = '0';

--
Gitblit v1.9.1