From 9098d3c87999b4c773b8119ff83b8745e8c7760e Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Thu, 22 Apr 2010 11:13:45 -0600 Subject: [PATCH] If marked as updated, need to re-add the viewport row --- imp/js/ViewPort.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/imp/js/ViewPort.js b/imp/js/ViewPort.js index de1809f8c..cc49a9e31 100644 --- a/imp/js/ViewPort.js +++ b/imp/js/ViewPort.js @@ -839,7 +839,8 @@ var ViewPort = Class.create({ var callback, offset, tmp, buffer = this._getBuffer(r.view), - llist = buffer.getMetaData('llist') || $H(); + llist = buffer.getMetaData('llist') || $H(), + updated = []; buffer.update(Object.isArray(r.data) ? {} : r.data, Object.isArray(r.rowlist) ? {} : r.rowlist, r.metadata || {}, { reset: r.reset, resetmd: r.resetmd, update: r.update }); @@ -881,7 +882,10 @@ var ViewPort = Class.create({ } if (this.view == r.view) { - this._updateContent(Object.isUndefined(r.rownum) ? (Object.isUndefined(offset) ? this.currentOffset() : offset) : Number(r.rownum) - 1); + if (r.update) { + updated = this.createSelection('uid', Object.keys(r.data)).get('domid'); + } + this._updateContent(Object.isUndefined(r.rownum) ? (Object.isUndefined(offset) ? this.currentOffset() : offset) : Number(r.rownum) - 1, { updated: updated }); } else if (r.rownum) { // We loaded in the background. If rownumber information was // provided, we need to save this or else we will position the @@ -893,7 +897,7 @@ var ViewPort = Class.create({ }, // offset = (integer) TODO - // opts = (object) TODO [background, view] + // opts = (object) TODO [background, updated, view] _updateContent: function(offset, opts) { opts = opts || {}; @@ -908,6 +912,7 @@ var ViewPort = Class.create({ c = this.opts.content, page_size = this.getPageSize(), tmp = [], + updated = opts.updated || [], vr = this.visibleRows(), fdiv, rows; @@ -925,8 +930,9 @@ var ViewPort = Class.create({ fdiv = document.createDocumentFragment().appendChild(new Element('DIV')); rows.get('dataob').each(function(r) { - var elt = $(r.VP_domid); - if (elt) { + var elt; + if (!updated.include(r.VP_domid) && + (elt = $(r.VP_domid))) { tmp.push(elt); } else { fdiv.update(this.prepareRow(r)); -- 2.11.0