From 0b36d151572e050b51d82e7429fee847ebb33e22 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 20 Nov 2014 06:03:22 -0500
Subject: [PATCH] Add method to display operation (uploading) progress in UI message

---
 program/js/list.js |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/program/js/list.js b/program/js/list.js
index d10fa22..dbc14d6 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -61,6 +61,7 @@
   this.keyboard = false;
   this.toggleselect = false;
   this.aria_listbox = false;
+  this.parent_focus = true;
 
   this.drag_active = false;
   this.col_drag_active = false;
@@ -104,11 +105,13 @@
       $(this.list).attr('aria-multiselectable', 'true');
   }
 
+  var me = this;
+
   if (this.tbody) {
     this.rows = {};
     this.rowcount = 0;
 
-    var r, len, rows = this.tbody.childNodes, me = this;
+    var r, len, rows = this.tbody.childNodes;
 
     for (r=0, len=rows.length; r<len; r++) {
       this.rowcount += this.init_row(rows[r]) ? 1 : 0;
@@ -127,6 +130,10 @@
     }
   }
 
+  if (this.parent_focus) {
+    this.list.parentNode.onclick = function(e) { me.focus(); };
+  }
+
   return this;
 },
 
@@ -143,9 +150,9 @@
     var self = this, uid = row.uid;
     this.rows[uid] = {uid:uid, id:row.id, obj:row};
 
-    // set eventhandlers to table 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){ return self.click_row(e, this.uid); };
+    row.onmouseup = function(e){ if (e.which == 1) return self.click_row(e, this.uid); };
 
     if (bw.touch) {
       row.addEventListener('touchstart', function(e) {
@@ -1410,7 +1417,8 @@
  */
 scrollto: function(id)
 {
-  var row = this.rows[id].obj;
+  var row = this.rows[id] ? this.rows[id].obj : null;
+
   if (row && this.frame) {
     var scroll_to = Number(row.offsetTop),
       head_offset = 0;
@@ -1499,7 +1507,11 @@
 
       $('> ' + self.col_tagname(), self.rows[uid].obj).each(function(n, cell) {
         if (self.subject_col < 0 || (self.subject_col >= 0 && self.subject_col == n)) {
-          var subject = $(cell).text();
+          // remove elements marked with "skip-on-drag" class
+          cell = $(cell).clone();
+          $(cell).find('.skip-on-drag').remove();
+
+          var subject = cell.text();
 
           if (subject) {
             // remove leading spaces

--
Gitblit v1.9.1