|
|
@@ -287,27 +287,41 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
|
|
|
viewModel.setData(main);
|
|
|
|
|
|
+ viewModel.notify();
|
|
|
+
|
|
|
+ var detailGrids = me.query('detailGridField');
|
|
|
+
|
|
|
for (var i = 0; i < detailCount; i++) {
|
|
|
var detailData = formData['detail' + i] || [],
|
|
|
detail = viewData['detail' + i],
|
|
|
+ grid = detailGrids[i],
|
|
|
+ detnoColumn = grid.detnoColumn,
|
|
|
store = detail.detailStore;
|
|
|
|
|
|
- if (detailData) {
|
|
|
- store.removeAll();
|
|
|
- store.add(detailData);
|
|
|
+ if (detailData.length > 0) {
|
|
|
+
|
|
|
+ for(var j = 0; j < detailData.length; j++) {
|
|
|
+ var d = detailData[j];
|
|
|
+ var o = {};
|
|
|
+ o[detnoColumn] = j + 1;
|
|
|
+ var r = store.getAt(j) || store.add(o)[0];
|
|
|
+ for(var k in d) {
|
|
|
+ r.set(k, d[k]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }else {
|
|
|
+ // store.
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
me.isValid();
|
|
|
},
|
|
|
|
|
|
initFormData: function(data) {
|
|
|
var me = this;
|
|
|
me.setFormData(data);
|
|
|
- var fields = me.getForm().getFields().items;
|
|
|
- Ext.Array.each(fields, function(f) {
|
|
|
- f.resetOriginalValue ? f.resetOriginalValue() : '';
|
|
|
- });
|
|
|
+ me.clearDirty();
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
@@ -360,6 +374,21 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
});
|
|
|
viewModel.set('base.bindFields', bindFields);
|
|
|
},
|
|
|
+
|
|
|
+ clearDirty: function() {
|
|
|
+ var me = this;
|
|
|
+ var detailGrids = me.query('detailGridField');
|
|
|
+ var fields = me.getForm().getFields().items;
|
|
|
+
|
|
|
+ Ext.Array.each(fields, function(f) {
|
|
|
+ f.resetOriginalValue ? f.resetOriginalValue() : '';
|
|
|
+ });
|
|
|
+ Ext.Array.each(detailGrids, function(g) {
|
|
|
+ g.clearDirty();
|
|
|
+ });
|
|
|
+ console.log(me.getForm().getFields().items[1].dirty);
|
|
|
+ },
|
|
|
+
|
|
|
setEditable: function(able) {
|
|
|
var me = this,
|
|
|
viewModel = me.getViewModel(),
|
|
|
@@ -399,4 +428,8 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
|
|
|
return dirty;
|
|
|
},
|
|
|
+
|
|
|
+ getDirtyData: function() {
|
|
|
+ return this.getForm().getDirtyData();
|
|
|
+ }
|
|
|
});
|