|
@@ -237,7 +237,8 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
addItems: function (items) {
|
|
addItems: function (items) {
|
|
|
var me = this;
|
|
var me = this;
|
|
|
me.setBindFields(items);
|
|
me.setBindFields(items);
|
|
|
- return me.add(items);
|
|
|
|
|
|
|
+ var formItems = me.formItems = me.add(items);
|
|
|
|
|
+ return formItems;
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -342,11 +343,11 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
|
|
|
|
|
Ext.Array.each(items, function (item) {
|
|
Ext.Array.each(items, function (item) {
|
|
|
var xtype = item.xtype,
|
|
var xtype = item.xtype,
|
|
|
- bind = item.bind,
|
|
|
|
|
- name = item.name,
|
|
|
|
|
- ignore = item.ignore,
|
|
|
|
|
- defaultValue = item.defaultValue;
|
|
|
|
|
-
|
|
|
|
|
|
|
+ bind = item.bind,
|
|
|
|
|
+ name = item.name,
|
|
|
|
|
+ ignore = item.ignore,
|
|
|
|
|
+ defaultValue = item.defaultValue;
|
|
|
|
|
+
|
|
|
if (xtype == 'detailGridField') {
|
|
if (xtype == 'detailGridField') {
|
|
|
item.listeners = item.listeners || {};
|
|
item.listeners = item.listeners || {};
|
|
|
item.listeners.validChange = function() {
|
|
item.listeners.validChange = function() {
|
|
@@ -419,7 +420,10 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
isValid: function() {
|
|
isValid: function() {
|
|
|
var me = this;
|
|
var me = this;
|
|
|
var viewModel = me.getViewModel();
|
|
var viewModel = me.getViewModel();
|
|
|
- var valid = me.getForm().isValid();
|
|
|
|
|
|
|
+ var formItems = me.formItems;
|
|
|
|
|
+ var valid = !!Ext.Array.findBy(formItems, function(f) {
|
|
|
|
|
+ return f.isValid();
|
|
|
|
|
+ });
|
|
|
var detailGrids = me.query('detailGridField');
|
|
var detailGrids = me.query('detailGridField');
|
|
|
|
|
|
|
|
for(var i = 0; i < detailGrids.length; i++) {
|
|
for(var i = 0; i < detailGrids.length; i++) {
|
|
@@ -435,6 +439,7 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
|
|
|
|
|
isDirty: function () {
|
|
isDirty: function () {
|
|
|
var me = this,
|
|
var me = this,
|
|
|
|
|
+ formItems = me.formItems,
|
|
|
detailGrids = me.query('detailGridField'),
|
|
detailGrids = me.query('detailGridField'),
|
|
|
dirty = false;
|
|
dirty = false;
|
|
|
|
|
|
|
@@ -447,7 +452,9 @@ Ext.define('saas.view.core.form.FormPanel', {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if(!dirty) {
|
|
if(!dirty) {
|
|
|
- dirty = me.callParent();
|
|
|
|
|
|
|
+ dirty = !!Ext.Array.findBy(formItems, function(f) {
|
|
|
|
|
+ return f.isDirty();
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return dirty;
|
|
return dirty;
|