Thank you for reporting this bug. We will make it our priority to review this report.
Unable to rejectChanges involving deleted model in store
Unable to rejectChanges involving deleted model in store
Please don't be afraid of reading Sencha own code...
This is the override for the use case failing about reverting/reject/undoing/resurrecting a model deleted from a store.
From Store:
Code:
rejectChanges : function() {
var me = this,
recs = me.getRejectRecords(),
len = recs.length,
i = 0,
rec;
for (; i < len; i++) {
rec = recs[i];
rec.reject();
if (rec.phantom) {
me.remove(rec);
}
}
// Restore removed records back to their original positions
recs = me.removed;
if (recs) {
len = recs.length;
for (i = len-1; i >= 0; i--) {
rec = recs[i];
me.insert(rec.removedFrom || 0, rec);
rec.reject();
}
// Since removals are cached in a simple array we can simply reset it here.
// Adds and updates are managed in the data MixedCollection and should already be current.
recs.length = 0;
}
}
From Model:Code:
reject: function (silent) {
var me = this,
modified = me.modified;
me.rejecting = true;
if (modified) {
me.set(modified, me._rejectOptions);
}
delete me.rejecting;
me.clearState();
if (!silent) {
me.callJoined('afterReject');
}
},Code:
Ext.define('Ext.override.Model', {
override: 'Ext.data.Model',
clearState: function () {
var me = this;
me.dirty = me.editing = me.dropped = false; // Sencha bug, handling 'dropped' state
me.editMemento = me.modified = null;
}
});
It's very unlikely this use case would have been missed if using TDD.
Unable to rejectChanges involving deleted model in store
Aucun commentaire:
Enregistrer un commentaire