@@ -82,14 +82,36 @@ define([
82
82
} , this ) ;
83
83
84
84
$ ( '#save-split-button, #save-split-button .item' ) . click ( function ( ) {
85
- this . productMatrixSerialized ( JSON . stringify ( this . prepareVariations ( ) ) ) ;
85
+ var variations = this . prepareVariations ( ) ,
86
+ validationError = this . validateVariationPrices ( this . variations ) || false ;
87
+
88
+ if ( validationError ) {
89
+ pagingObservables . current (
90
+ Math . floor ( this . variations . indexOf ( validationError ) / pagingObservables . pageSize ( ) + 1 )
91
+ ) ;
92
+ $ ( '[data-form="edit-product"]' ) . validation ( 'isValid' ) ;
93
+
94
+ return ;
95
+ }
96
+
97
+ this . productMatrixSerialized ( JSON . stringify ( variations ) ) ;
86
98
this . associatedProductsSerialized ( JSON . stringify ( this . associatedProducts ) ) ;
87
99
this . configurationsSerialized ( JSON . stringify ( this . configurations ) ) ;
88
100
} . bind ( this ) ) ;
89
101
90
102
return this ;
91
103
} ,
92
104
105
+ /**
106
+ * Validate variations data.
107
+ * @param {Array } variations
108
+ */
109
+ validateVariationPrices : function ( variations ) {
110
+ return _ . find ( variations , function ( variation ) {
111
+ return variation . hasOwnProperty ( 'price' ) && variation . price === '' ;
112
+ } ) ;
113
+ } ,
114
+
93
115
/**
94
116
* @param {String } rowIndex
95
117
*/
@@ -400,7 +422,14 @@ define([
400
422
variationKey : this . getVariationKey ( variation . options ) ,
401
423
editable : variation . editable === undefined ? ! variation . productId : variation . editable ,
402
424
productUrl : this . buildProductUrl ( variation . productId ) ,
403
- status : variation . status === undefined ? 1 : parseInt ( variation . status , 10 )
425
+ status : variation . status === undefined ? 1 : parseInt ( variation . status , 10 ) ,
426
+
427
+ /**
428
+ * Validates variation price.
429
+ */
430
+ validatePrice : function ( ) {
431
+ $ ( '[data-form="edit-product"]' ) . validation ( 'isValid' ) ;
432
+ }
404
433
} ) ) ;
405
434
} , this ) ;
406
435
this . productMatrix ( tempMatrix ) ;
0 commit comments