X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/3789b528d8dd8aad4558e38e22d775bcab1cbd36..6746dc89c47ed01b165cc1152533605f97eb8e8d:/docs/source/Model.html
diff --git a/docs/source/Model.html b/docs/source/Model.html
index 7f44a7f0..fce03bc1 100644
--- a/docs/source/Model.html
+++ b/docs/source/Model.html
@@ -236,7 +236,7 @@ store.load();
*
* @constructor
* @param {Object} data An object containing keys corresponding to this model's fields, and their associated values
- * @param {Number} id Optional unique ID to assign to this model instance
+ * @param {Number} id (optional) Unique ID to assign to this model instance
*/
Ext.define('Ext.data.Model', {
alternateClassName: 'Ext.data.Record',
@@ -517,11 +517,11 @@ Ext.define('Ext.data.Model', {
*/
dirty : false,
- /**
- * @cfg {String} persistanceProperty The property on this Persistable object that its data is saved to.
+ /**
+ * @cfg {String} persistenceProperty The property on this Persistable object that its data is saved to.
* Defaults to 'data' (e.g. all persistable data resides in this.data.)
*/
- persistanceProperty: 'data',
+ persistenceProperty: 'data',
evented: false,
isModel: true,
@@ -592,7 +592,16 @@ Ext.define('Ext.data.Model', {
*/
me.modified = {};
- me[me.persistanceProperty] = {};
+ // Deal with spelling error in previous releases
+ if (me.persistanceProperty) {
+ //<debug>
+ if (Ext.isDefined(Ext.global.console)) {
+ Ext.global.console.warn('Ext.data.Model: persistanceProperty has been deprecated. Use persistenceProperty instead.');
+ }
+ //</debug>
+ me.persistenceProperty = me.persistanceProperty;
+ }
+ me[me.persistenceProperty] = {};
me.mixins.observable.constructor.call(me);
@@ -628,8 +637,6 @@ Ext.define('Ext.data.Model', {
}
me.id = me.modelName + '-' + me.internalId;
-
- Ext.ModelManager.register(me);
},
/**
@@ -638,7 +645,7 @@ Ext.define('Ext.data.Model', {
* @return {Mixed} The value
*/
get: function(field) {
- return this[this.persistanceProperty][field];
+ return this[this.persistenceProperty][field];
},
/**
@@ -687,11 +694,28 @@ Ext.define('Ext.data.Model', {
}
}
currentValue = me.get(fieldName);
- me[me.persistanceProperty][fieldName] = value;
+ me[me.persistenceProperty][fieldName] = value;
if (field && field.persist && !me.isEqual(currentValue, value)) {
- me.dirty = true;
- me.modified[fieldName] = currentValue;
+ if (me.isModified(fieldName)) {
+ if (me.isEqual(modified[fieldName], value)) {
+ // the original value in me.modified equals the new value, so the
+ // field is no longer modified
+ delete modified[fieldName];
+ // we might have removed the last modified field, so check to see if
+ // there are any modified fields remaining and correct me.dirty:
+ me.dirty = false;
+ for (key in modified) {
+ if (modified.hasOwnProperty(key)){
+ me.dirty = true;
+ break;
+ }
+ }
+ }
+ } else {
+ me.dirty = true;
+ modified[fieldName] = currentValue;
+ }
}
if (!me.editing) {
@@ -725,7 +749,7 @@ Ext.define('Ext.data.Model', {
if (!me.editing) {
me.editing = true;
me.dirtySave = me.dirty;
- me.dataSave = Ext.apply({}, me[me.persistanceProperty]);
+ me.dataSave = Ext.apply({}, me[me.persistenceProperty]);
me.modifiedSave = Ext.apply({}, me.modified);
}
},
@@ -739,7 +763,7 @@ Ext.define('Ext.data.Model', {
me.editing = false;
// reset the modified state, nothing changed since the edit began
me.modified = me.modifiedSave;
- me[me.persistanceProperty] = me.dataSave;
+ me[me.persistenceProperty] = me.dataSave;
me.dirty = me.dirtySave;
delete me.modifiedSave;
delete me.dataSave;
@@ -842,7 +866,7 @@ Ext.define('Ext.data.Model', {
for (field in modified) {
if (modified.hasOwnProperty(field)) {
if (typeof modified[field] != "function") {
- me[me.persistanceProperty][field] = modified[field];
+ me[me.persistenceProperty][field] = modified[field];
}
}
}
@@ -890,7 +914,7 @@ Ext.data.Model.id(rec); // automatically generate a unique sequential id
copy : function(newId) {
var me = this;
- return new me.self(Ext.apply({}, me[me.persistanceProperty]), newId || me.internalId);
+ return new me.self(Ext.apply({}, me[me.persistenceProperty]), newId || me.internalId);
},
/**