2018-09-22 13:26:58 +02:00
$ ( '#save-chore-button' ) . on ( 'click' , function ( e )
{
e . preventDefault ( ) ;
2018-11-24 19:40:50 +01:00
var jsonData = $ ( '#chore-form' ) . serializeJSON ( ) ;
Grocy . FrontendHelpers . BeginUiBusy ( "chore-form" ) ;
2018-09-22 13:26:58 +02:00
if ( Grocy . EditMode === 'create' )
{
2018-11-24 19:40:50 +01:00
Grocy . Api . Post ( 'add-object/chores' , jsonData ,
2018-09-22 13:26:58 +02:00
function ( result )
{
window . location . href = U ( '/chores' ) ;
} ,
function ( xhr )
{
2018-11-24 19:40:50 +01:00
Grocy . FrontendHelpers . EndUiBusy ( "chore-form" ) ;
2018-09-22 13:26:58 +02:00
Grocy . FrontendHelpers . ShowGenericError ( 'Error while saving, probably this item already exists' , xhr . response )
}
) ;
}
else
{
2018-11-24 19:40:50 +01:00
Grocy . Api . Post ( 'edit-object/chores/' + Grocy . EditObjectId , jsonData ,
2018-09-22 13:26:58 +02:00
function ( result )
{
window . location . href = U ( '/chores' ) ;
} ,
function ( xhr )
{
2018-11-24 19:40:50 +01:00
Grocy . FrontendHelpers . EndUiBusy ( "chore-form" ) ;
2018-09-22 13:26:58 +02:00
Grocy . FrontendHelpers . ShowGenericError ( 'Error while saving, probably this item already exists' , xhr . response )
}
) ;
}
} ) ;
$ ( '#chore-form input' ) . keyup ( function ( event )
{
Grocy . FrontendHelpers . ValidateForm ( 'chore-form' ) ;
} ) ;
$ ( '#chore-form input' ) . keydown ( function ( event )
{
if ( event . keyCode === 13 ) //Enter
{
2018-09-29 13:41:56 +02:00
event . preventDefault ( ) ;
2018-09-22 13:26:58 +02:00
if ( document . getElementById ( 'chore-form' ) . checkValidity ( ) === false ) //There is at least one validation error
{
return false ;
}
else
{
$ ( '#save-chore-button' ) . click ( ) ;
}
}
} ) ;
$ ( '#name' ) . focus ( ) ;
Grocy . FrontendHelpers . ValidateForm ( 'chore-form' ) ;
$ ( '.input-group-chore-period-type' ) . on ( 'change' , function ( e )
{
var periodType = $ ( '#period_type' ) . val ( ) ;
var periodDays = $ ( '#period_days' ) . val ( ) ;
if ( periodType === 'dynamic-regular' )
{
$ ( '#chore-period-type-info' ) . text ( L ( 'This means it is estimated that a new execution of this chore is tracked #1 days after the last was tracked' , periodDays . toString ( ) ) ) ;
$ ( '#chore-period-type-info' ) . removeClass ( 'd-none' ) ;
}
else
{
$ ( '#chore-period-type-info' ) . addClass ( 'd-none' ) ;
}
} ) ;