Model needs to update the parent collection object, that - it has been

modified, and please do the needful.

This allows us to track down the nested objects within the nested
objects.
This commit is contained in:
Ashesh Vashi
2016-01-20 20:17:27 +05:30
parent 4f4ce74518
commit 3b1bbe55fa

View File

@@ -345,6 +345,9 @@ function(_, pgAdmin, $, Backbone) {
self.trigger('pgadmin-session:stop', self);
self.off('pgadmin-session:model:invalid', self.onChildInvalid);
self.off('pgadmin-session:model:valid', self.onChildValid);
self.off('pgadmin-session:changed', self.onChildChanged);
self.off('pgadmin-session:added', self.onChildChanged);
self.off('pgadmin-session:removed', self.onChildChanged);
}
self.trackChanges = true;
@@ -373,7 +376,9 @@ function(_, pgAdmin, $, Backbone) {
// Let me listen to the my child invalid/valid messages
self.on('pgadmin-session:model:invalid', self.onChildInvalid);
self.on('pgadmin-session:model:valid', self.onChildValid);
self.on('pgadmin-session:changed', self.onChildChanged);
self.on('pgadmin-session:added', self.onChildChanged);
self.on('pgadmin-session:removed', self.onChildChanged);
},
onChildInvalid: function(msg, obj) {
var self = this;
@@ -476,16 +481,61 @@ function(_, pgAdmin, $, Backbone) {
'pgadmin-session:valid', self.sessChanged(), self
);
}
} else {
var msg = _.values(self.errofModel.attributes)[0];
if (self.handler) {
(self.handler).trigger(
'pgadmin-session:model:invalid', msg, self
);
} else {
self.trigger('pgadmin-session:invalid', msg, self);
}
}
} else {
/*
* We will trigger validation information
*/
if (_.size(self.errorModel.attributes) == 0) {
if (self.handler) {
(self.handler).trigger('pgadmin-session:model:valid', self);
} else {
self.trigger(
'pgadmin-session:valid', self.sessChanged(), self
);
}
} else {
var msg = _.values(self.errofModel.attributes)[0];
if (self.handler) {
(self.handler).trigger(
'pgadmin-session:model:invalid', msg, self
);
} else {
self.trigger('pgadmin-session:invalid', msg, self);
}
}
}
}
},
onChildChanged: function(obj) {
var self = this;
if (self.trackChanges && self.collection) {
(self.collection).trigger('change', self);
}
},
stopSession: function() {
var self = this;
if (self.trackChanges) {
self.off('pgadmin-session:model:invalid', self.onChildInvalid);
self.off('pgadmin-session:model:valid', self.onChildValid);
self.off('pgadmin-session:changed', self.onChildChanged);
self.off('pgadmin-session:added', self.onChildChanged);
self.off('pgadmin-session:removed', self.onChildChanged);
}
self.trackChanges = false;
@@ -593,11 +643,13 @@ function(_, pgAdmin, $, Backbone) {
// Do not add the existing invalid object
if (self.objFindInSession(m, 'invalid') == -1) {
self.sessAttrs['invalid'].push(m);
}
// Inform the parent that - I am an invalid object.
if (self.handler) {
(self.handler).trigger('pgadmin-session:model:invalid', msg, self);
}
} else {
self.trigger('pgadmin-session:invalid', msg, self);
}
}
@@ -612,6 +664,7 @@ function(_, pgAdmin, $, Backbone) {
var idx = self.objFindInSession(m, 'invalid');
if (idx != -1) {
self.sessAttrs['invalid'].splice(m, 1);
}
// Inform the parent that - I am the valid object.
if (self.handler) {
@@ -620,7 +673,6 @@ function(_, pgAdmin, $, Backbone) {
self.trigger('pgadmin-session:valid', self.sessChanged(), self);
}
}
}
return true;
},
@@ -828,6 +880,12 @@ function(_, pgAdmin, $, Backbone) {
} else {
self.trigger('pgadmin-session:valid', true, self);
}
} else {
if (self.handler) {
self.handler.trigger('pgadmin-session:model:invalid', self);
} else {
self.trigger('pgadmin-session:invalid', true, self);
}
}
return true;