From 65e735dec541564c01defb58eac326e7369feb7e Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 12 Mar 2015 15:48:19 -0400
Subject: [PATCH] Fix javascripts errors in IE8 - lack of Event.which, focusing a hidden element (#1490318)

---
 program/js/list.js |    4 ++--
 CHANGELOG          |    1 +
 program/js/app.js  |   11 +++++++----
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index d50f388..ac6d5b9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -40,6 +40,7 @@
 - Fix backtick character handling in sql queries (#1490312)
 - Fix redirct URL for attachments loaded in an iframe when behind proxy (#1490191)
 - Fix menu container references to point to the actual <ul> element (#1490313)
+- Fix javascripts errors in IE8 - lack of Event.which, focusing a hidden element (#1490318)
 
 RELEASE 1.1.0
 -------------
diff --git a/program/js/app.js b/program/js/app.js
index 5f3ca5f..d6c5cd8 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3349,7 +3349,7 @@
     if (!this.gui_objects.messageform)
       return false;
 
-    var i, pos, input_from = $("[name='_from']"),
+    var i, elem, pos, input_from = $("[name='_from']"),
       input_to = $("[name='_to']"),
       input_subject = $("input[name='_subject']"),
       input_message = $("[name='_message']").get(0),
@@ -3403,11 +3403,14 @@
       this.compose_restore_dialog(0, html_mode)
 
     if (input_to.val() == '')
-      input_to.focus();
+      elem = input_to;
     else if (input_subject.val() == '')
-      input_subject.focus();
+      elem = input_subject;
     else if (input_message)
-      input_message.focus();
+      elem = input_message;
+
+    // focus first empty element (need to be visible on IE8)
+    $(elem).filter(':visible').focus();
 
     this.env.compose_focus_elem = document.activeElement;
 
diff --git a/program/js/list.js b/program/js/list.js
index 9a7f284..9c41a12 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -151,8 +151,8 @@
     this.rows[uid] = {uid:uid, id:row.id, obj:row};
 
     // set eventhandlers to table row (only left-button-clicks in mouseup)
-    row.onmousedown = function(e){ return self.drag_row(e, this.uid); };
-    row.onmouseup = function(e){ if (e.which == 1) return self.click_row(e, this.uid); };
+    $(row).mousedown(function(e) { return self.drag_row(e, this.uid); })
+      .mouseup(function(e) { if (e.which == 1) return self.click_row(e, this.uid); });
 
     if (bw.touch && row.addEventListener) {
       row.addEventListener('touchstart', function(e) {

--
Gitblit v1.9.1