2019-09-15 16:40:54 +02:00
$ ( '#save-quconversion-button' ) . on ( 'click' , function ( e )
{
e . preventDefault ( ) ;
var jsonData = $ ( '#quconversion-form' ) . serializeJSON ( ) ;
jsonData . from _qu _id = $ ( "#from_qu_id" ) . val ( ) ;
Grocy . FrontendHelpers . BeginUiBusy ( "quconversion-form" ) ;
if ( Grocy . EditMode === 'create' )
{
Grocy . Api . Post ( 'objects/quantity_unit_conversions' , jsonData ,
function ( result )
{
Grocy . EditObjectId = result . created _object _id ;
Grocy . Components . UserfieldsForm . Save ( function ( )
{
if ( typeof GetUriParam ( "qu-unit" ) !== "undefined" )
{
window . location . href = U ( "/quantityunit/" + GetUriParam ( "qu-unit" ) ) ;
}
else
{
window . location . href = U ( "/product/" + GetUriParam ( "product" ) ) ;
}
} ) ;
} ,
function ( xhr )
{
Grocy . FrontendHelpers . EndUiBusy ( "quconversion-form" ) ;
Grocy . FrontendHelpers . ShowGenericError ( 'Error while saving, probably this item already exists' , xhr . response )
}
) ;
}
else
{
Grocy . Api . Put ( 'objects/quantity_unit_conversions/' + Grocy . EditObjectId , jsonData ,
function ( result )
{
Grocy . Components . UserfieldsForm . Save ( function ( )
{
if ( typeof GetUriParam ( "qu-unit" ) !== "undefined" )
{
window . location . href = U ( "/quantityunit/" + GetUriParam ( "qu-unit" ) ) ;
}
else
{
window . location . href = U ( "/product/" + GetUriParam ( "product" ) ) ;
}
} ) ;
} ,
function ( xhr )
{
Grocy . FrontendHelpers . EndUiBusy ( "quconversion-form" ) ;
Grocy . FrontendHelpers . ShowGenericError ( 'Error while saving, probably this item already exists' , xhr . response )
}
) ;
}
} ) ;
$ ( '#quconversion-form input' ) . keyup ( function ( event )
{
$ ( '.input-group-qu' ) . trigger ( 'change' ) ;
Grocy . FrontendHelpers . ValidateForm ( 'quconversion-form' ) ;
} ) ;
$ ( '#quconversion-form input' ) . keydown ( function ( event )
{
if ( event . keyCode === 13 ) //Enter
{
event . preventDefault ( ) ;
if ( document . getElementById ( 'quconversion-form' ) . checkValidity ( ) === false ) //There is at least one validation error
{
return false ;
}
else
{
$ ( '#save-quconversion-button' ) . click ( ) ;
}
}
} ) ;
$ ( '.input-group-qu' ) . on ( 'change' , function ( e )
{
var fromQuId = $ ( "#from_qu_id" ) . val ( ) ;
var toQuId = $ ( "#to_qu_id" ) . val ( ) ;
var factor = $ ( '#factor' ) . val ( ) ;
if ( fromQuId == toQuId )
{
$ ( "#to_qu_id" ) . parent ( ) . find ( ".invalid-feedback" ) . text ( _ _t ( 'This cannot be equal to %s' , $ ( "#from_qu_id option:selected" ) . text ( ) ) ) ;
$ ( "#to_qu_id" ) [ 0 ] . setCustomValidity ( "error" ) ;
}
else
{
$ ( "#to_qu_id" ) [ 0 ] . setCustomValidity ( "" ) ;
}
if ( fromQuId && toQuId )
{
2019-09-20 10:30:46 +02:00
$ ( '#qu-conversion-info' ) . text ( _ _t ( 'This means 1 %1$s is the same as %2$s %3$s' , $ ( "#from_qu_id option:selected" ) . text ( ) , ( 1 * factor ) . toString ( ) , _ _n ( ( 1 * factor ) . toString ( ) , $ ( "#to_qu_id option:selected" ) . text ( ) , $ ( "#to_qu_id option:selected" ) . data ( "plural-form" ) ) ) ) ;
2019-09-15 16:40:54 +02:00
$ ( '#qu-conversion-info' ) . removeClass ( 'd-none' ) ;
}
else
{
$ ( '#qu-conversion-info' ) . addClass ( 'd-none' ) ;
}
Grocy . FrontendHelpers . ValidateForm ( 'quconversion-form' ) ;
} ) ;
Grocy . Components . UserfieldsForm . Load ( ) ;
$ ( '.input-group-qu' ) . trigger ( 'change' ) ;
$ ( '#from_qu_id' ) . focus ( ) ;
Grocy . FrontendHelpers . ValidateForm ( 'quconversion-form' ) ;