From 82dcbb7488ce1625ba4f41fbdc8e6319d3da9691 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sun, 20 Sep 2015 11:45:53 -0400
Subject: [PATCH] Fix various issues in Mailvelope integration (#1490533)

---
 skins/larry/ui.js |   50 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 36 insertions(+), 14 deletions(-)

diff --git a/skins/larry/ui.js b/skins/larry/ui.js
index fb7ca31..b3c6abd 100644
--- a/skins/larry/ui.js
+++ b/skins/larry/ui.js
@@ -1,5 +1,3 @@
-// @license http://creativecommons.org/publicdomain/zero/1.0/legalcode CC0
-
 /**
  * Roundcube functions for default skin interface
  *
@@ -9,6 +7,8 @@
  * License. It is allowed to copy, distribute, transmit and to adapt the work
  * by keeping credits to the original autors in the README file.
  * See http://creativecommons.org/licenses/by-sa/3.0/ for details.
+ *
+ * @license magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt CC0-1.0
  */
 
 function rcube_mail_ui()
@@ -174,11 +174,15 @@
       }
       else if (rcmail.env.action == 'compose') {
         rcmail.addEventListener('aftersend-attachment', show_uploadform)
-          .addEventListener('add-recipient', function(p){ show_header_row(p.field, true); })
-          .addEventListener('aftertoggle-editor', function(e){
+          .addEventListener('aftertoggle-editor', function(e) {
             window.setTimeout(function(){ layout_composeview() }, 200);
             if (e && e.mode)
               $("select[name='editorSelector']").val(e.mode);
+          })
+          .addEventListener('compose-encrypted', function(e) {
+            $("select[name='editorSelector']").prop('disabled', e.active);
+            $('a.button.attach, a.button.responses')[(e.active?'addClass':'removeClass')]('disabled');
+            $('#responseslist a.insertresponse')[(e.active?'removeClass':'addClass')]('active');
           });
 
         // Show input elements with non-empty value
@@ -231,6 +235,8 @@
         if (previewframe)
           mailviewsplit.init();
 
+        rcmail.init_pagejumper('#pagejumper');
+
         rcmail.addEventListener('setquota', update_quota)
           .addEventListener('enable-command', enable_command)
           .addEventListener('afterimport-messages', show_uploadform);
@@ -277,19 +283,22 @@
           orientation:'v', relative:true, start:266, min:180, size:12 }).init();
       }
       else if (rcmail.env.action == 'edit-prefs') {
-        $('<a href="#toggle"></a>')
+        var legend = $('#preferences-details fieldset.advanced legend'),
+          toggle = $('<a href="#toggle"></a>')
             .text(env.toggleoptions)
             .attr('title', env.toggleoptions)
-            .addClass('advanced-toggle')
-            .appendTo('#preferences-details fieldset.advanced legend');
+            .addClass('advanced-toggle');
 
-          $('#preferences-details fieldset.advanced legend').click(function(e){
-            var collapsed = $(this).hasClass('collapsed'),
-              toggle = $('.advanced-toggle', this).html(collapsed ? '&#9650;' : '&#9660;');
-            $(this)
-              .toggleClass('collapsed')
-              .closest('fieldset').children('.propform').toggle()
-          }).addClass('collapsed')
+        legend.click(function(e) {
+          toggle.html($(this).hasClass('collapsed') ? '&#9650;' : '&#9660;');
+
+          $(this).toggleClass('collapsed')
+            .closest('fieldset').children('.propform').toggle()
+        }).append(toggle).addClass('collapsed')
+
+        // this magically fixes incorrect position of toggle link created above in Firefox 3.6
+        if (bw.mz)
+          legend.parents('form').css('display', 'inline');
       }
     }
     /***  addressbook task  ***/
@@ -463,6 +472,14 @@
       $('div.rightcol').hide().attr('aria-hidden', 'true');
       $('div.leftcol').css('margin-right', '0');
     }
+
+    var mvlpe = $('#messagebody.mailvelope');
+    if (mvlpe.length) {
+      var h = $('#messagecontent').length ?
+        $('#messagecontent').height() - 16 :
+        $(window).height() - mvlpe.offset().top - 10;
+      mvlpe.height(h);
+    }
   }
 
 
@@ -529,6 +546,7 @@
       y -= step;
 
     element.css('background-position', '0 -' + y + 'px');
+    element.attr('class', 'countdisplay p' + (Math.round(p.percent / 10) * 10));
 
     if (p.table) {
       if (!menu.length)
@@ -1010,6 +1028,10 @@
       return;
     }
 
+    // do nothing if mailvelope editor is active
+    if (rcmail.mailvelope_editor)
+      return;
+
     // add icons to clone file input field
     if (rcmail.env.action == 'compose' && !$dialog.data('extended')) {
       $('<a>')

--
Gitblit v1.9.1