public inbox for [email protected]
help / color / mirror / Atom feedFrom: Ganesh Jaybhay <[email protected]>
To: pgadmin-hackers <[email protected]>
Subject: [pgAdmin][RM4895] Possible issue in reset function for nested objects
Date: Tue, 5 Nov 2019 12:28:19 +0530
Message-ID: <CAK6syAqnqETKXYZybYiQ5Bbq=WxLjpWN-eqaPP5tqYEt4=W1iQ@mail.gmail.com> (raw)
Hi Hackers,
Please find the attached patch to fix the possible issue in reset function
for nested objects.
Regards,
Ganesh Jaybhay
Attachments:
[application/octet-stream] RM4895.patch (2.4K, 3-RM4895.patch)
download | inline diff:
diff --git a/web/pgadmin/browser/static/js/collection.js b/web/pgadmin/browser/static/js/collection.js
index 1b4d195..51919fd 100644
--- a/web/pgadmin/browser/static/js/collection.js
+++ b/web/pgadmin/browser/static/js/collection.js
@@ -188,7 +188,7 @@ define([
'remove': function() {
if (this.grid) {
if (this.grid.collection) {
- this.grid.collection.reset({silent: true});
+ this.grid.collection.reset([], {silent: true});
delete (this.grid.collection);
}
delete (this.grid);
diff --git a/web/pgadmin/browser/static/js/datamodel.js b/web/pgadmin/browser/static/js/datamodel.js
index ed66354..514c403 100644
--- a/web/pgadmin/browser/static/js/datamodel.js
+++ b/web/pgadmin/browser/static/js/datamodel.js
@@ -283,11 +283,17 @@ define([
},
// Create a reset function, which allow us to remove the nested object.
reset: function(opts) {
- var obj;
+ var obj,
+ reindex = !!(opts && opts.reindex);
if (opts && opts.stop)
this.stopSession();
+ // Let's not touch the child attributes, if reindex is false.
+ if (!reindex) {
+ return;
+ }
+
for (var id in this.objects) {
obj = this.get(id);
@@ -297,7 +303,7 @@ define([
} else if (obj instanceof Backbone.Model) {
obj.clear(opts);
} else if (obj instanceof pgBrowser.DataCollection) {
- obj.reset(opts);
+ obj.reset([], opts);
} else if (obj instanceof Backbone.Collection) {
obj.each(function(m) {
if (m instanceof Backbone.DataModel) {
@@ -305,14 +311,11 @@ define([
obj.clear(opts);
}
});
- if (!(opts instanceof Array)) {
- opts = [opts];
- }
- Backbone.Collection.prototype.reset.apply(obj, opts);
+ Backbone.Collection.prototype.reset.call(obj, [], opts);
}
}
}
- this.clear(opts);
+ Backbone.Collection.prototype.reset.apply(this, arguments);
},
sessChanged: function() {
var self = this;
@@ -996,7 +999,7 @@ define([
},
// Override the reset function, so that - we can reset the model
// properly.
- reset: function(opts) {
+ reset: function(_set, opts) {
if (opts && opts.stop)
this.stopSession();
this.each(function(m) {
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: [pgAdmin][RM4895] Possible issue in reset function for nested objects
In-Reply-To: <CAK6syAqnqETKXYZybYiQ5Bbq=WxLjpWN-eqaPP5tqYEt4=W1iQ@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox