Fix responses list update issue after response name change (#1490555)

pull/300/head
Aleksander Machniak 9 years ago
parent 0389faa327
commit 2a6cf5bb0e

@ -36,6 +36,7 @@ CHANGELOG Roundcube Webmail
- Fix so microseconds macro (u) in log_date_format works (#1490446) - Fix so microseconds macro (u) in log_date_format works (#1490446)
- Fix so unrecognized TNEF attachments are displayed on the list of attachments (#1490351) - Fix so unrecognized TNEF attachments are displayed on the list of attachments (#1490351)
- Fix so database_attachments::cleanup() does not remove attachments from other sessions (#1490542) - Fix so database_attachments::cleanup() does not remove attachments from other sessions (#1490542)
- Fix responses list update issue after response name change (#1490555)
RELEASE 1.1.3 RELEASE 1.1.3
------------- -------------

@ -114,6 +114,7 @@ init: function()
var r, len, rows = this.tbody.childNodes; var r, len, rows = this.tbody.childNodes;
for (r=0, len=rows.length; r<len; r++) { for (r=0, len=rows.length; r<len; r++) {
if (rows[r].nodeType == 1)
this.rowcount += this.init_row(rows[r]) ? 1 : 0; this.rowcount += this.init_row(rows[r]) ? 1 : 0;
} }
@ -150,8 +151,9 @@ init_row: function(row)
var self = this, uid = row.uid; var self = this, uid = row.uid;
this.rows[uid] = {uid:uid, id:row.id, obj:row}; this.rows[uid] = {uid:uid, id:row.id, obj:row};
$(row).data('uid', uid)
// set eventhandlers to table row (only left-button-clicks in mouseup) // set eventhandlers to table row (only left-button-clicks in mouseup)
$(row).mousedown(function(e) { return self.drag_row(e, this.uid); }) .mousedown(function(e) { return self.drag_row(e, this.uid); })
.mouseup(function(e) { .mouseup(function(e) {
if (e.which == 1 && !self.drag_active) if (e.which == 1 && !self.drag_active)
return self.click_row(e, this.uid); return self.click_row(e, this.uid);
@ -355,10 +357,11 @@ insert_row: function(row, before)
if (row.nodeName === undefined) { if (row.nodeName === undefined) {
// for performance reasons use DOM instead of jQuery here // for performance reasons use DOM instead of jQuery here
var domrow = document.createElement(this.row_tagname()); var domrow = document.createElement(this.row_tagname());
if (row.id) domrow.id = row.id; if (row.id) domrow.id = row.id;
if (row.uid) domrow.uid = row.uid;
if (row.className) domrow.className = row.className; if (row.className) domrow.className = row.className;
if (row.style) $.extend(domrow.style, row.style); if (row.style) $.extend(domrow.style, row.style);
if (row.uid) $(domrow).data('uid', String(row.uid)); // #1489906
for (var e, domcell, col, i=0; row.cols && i < row.cols.length; i++) { for (var e, domcell, col, i=0; row.cols && i < row.cols.length; i++) {
col = row.cols[i]; col = row.cols[i];
@ -394,18 +397,22 @@ update_row: function(id, cols, newid, select)
var row = this.rows[id]; var row = this.rows[id];
if (!row) return false; if (!row) return false;
var domrow = row.obj; var i, domrow = row.obj;
for (var domcell, col, i=0; cols && i < cols.length; i++) { for (i = 0; cols && i < cols.length; i++) {
this.get_cell(domrow, i).html(cols[i]); this.get_cell(domrow, i).html(cols[i]);
} }
if (newid) { if (newid) {
delete this.rows[id]; delete this.rows[id];
domrow.uid = newid;
domrow.id = 'rcmrow' + newid; domrow.id = 'rcmrow' + newid;
this.init_row(domrow); this.init_row(domrow);
if (select) if (select)
this.selection[0] = newid; this.selection[0] = newid;
if (this.last_selected == id)
this.last_selected = newid;
} }
}, },
@ -826,14 +833,16 @@ update_expando: function(id, expanded)
get_row_uid: function(row) get_row_uid: function(row)
{ {
if (row && row.uid) if (!row)
return row.uid; return;
var uid; if (!row.uid) {
if (row && (uid = $(row).data('uid'))) var uid = $(row).data('uid');
if (uid)
row.uid = uid; row.uid = uid;
else if (row && String(row.id).match(this.id_regexp)) else if (String(row.id).match(this.id_regexp))
row.uid = RegExp.$1; row.uid = RegExp.$1;
}
return row.uid; return row.uid;
}, },

Loading…
Cancel
Save