2012-11-23 08:36:12 +00:00
2013-06-16 12:15:58 +00:00
// form
2016-03-12 00:40:38 +00:00
test ( "form without @el" , function ( ) {
2016-02-23 10:54:35 +00:00
var form = new App . ControllerForm ( )
equal ( $ ( form . html ( ) ) . is ( 'div' ) , true )
equal ( $ ( form . html ( ) ) . hasClass ( 'alert' ) , true )
equal ( $ ( form . html ( ) ) . hasClass ( 'hide' ) , true )
} )
2016-03-12 00:40:38 +00:00
test ( "form elements check" , function ( ) {
// deepEqual(item, test.value, 'group set/get tests' );
2013-06-16 12:15:58 +00:00
$ ( '#forms' ) . append ( '<hr><h1>form elements check</h1><form id="form1"></form>' )
var el = $ ( '#form1' )
var defaults = {
input2 : '123abc' ,
password2 : 'pw1234<l>' ,
textarea2 : 'lalu <l> lalu' ,
select1 : false ,
select2 : true ,
selectmulti1 : false ,
selectmulti2 : [ false , true ] ,
selectmultioption1 : false ,
2013-07-10 06:46:59 +00:00
selectmultioption2 : [ false , true ] ,
2015-01-02 12:48:13 +00:00
richtext2 : 'lalu <l> lalu' ,
2015-01-26 06:55:14 +00:00
datetime1 : Date . parse ( '2015-01-11T12:40:00Z' ) ,
2013-06-16 12:15:58 +00:00
}
new App . ControllerForm ( {
el : el ,
model : {
configure _attributes : [
{ name : 'input1' , display : 'Input1' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : defaults [ 'input1' ] } ,
{ name : 'input2' , display : 'Input2' , tag : 'input' , type : 'text' , limit : 100 , null : false , default : defaults [ 'input2' ] } ,
{ name : 'password1' , display : 'Password1' , tag : 'input' , type : 'password' , limit : 100 , null : true , default : defaults [ 'password1' ] } ,
{ name : 'password2' , display : 'Password2' , tag : 'input' , type : 'password' , limit : 100 , null : false , default : defaults [ 'password2' ] } ,
{ name : 'textarea1' , display : 'Textarea1' , tag : 'textarea' , rows : 6 , limit : 100 , null : true , upload : true , default : defaults [ 'textarea1' ] } ,
{ name : 'textarea2' , display : 'Textarea2' , tag : 'textarea' , rows : 6 , limit : 100 , null : false , upload : true , default : defaults [ 'textarea2' ] } ,
{ name : 'select1' , display : 'Select1' , tag : 'select' , null : true , options : { true : 'internal' , false : 'public' } , default : defaults [ 'select1' ] } ,
{ name : 'select2' , display : 'Select2' , tag : 'select' , null : false , options : { true : 'internal' , false : 'public' } , default : defaults [ 'select2' ] } ,
{ name : 'selectmulti1' , display : 'SelectMulti1' , tag : 'select' , null : true , multiple : true , options : { true : 'internal' , false : 'public' } , default : defaults [ 'selectmulti1' ] } ,
{ name : 'selectmulti2' , display : 'SelectMulti2' , tag : 'select' , null : false , multiple : true , options : { true : 'internal' , false : 'public' } , default : defaults [ 'selectmulti2' ] } ,
{ name : 'selectmultioption1' , display : 'SelectMultiOption1' , tag : 'select' , null : true , multiple : true , options : [ { value : true , name : 'internal' } , { value : false , name : 'public' } ] , default : defaults [ 'selectmultioption1' ] } ,
{ name : 'selectmultioption2' , display : 'SelectMultiOption2' , tag : 'select' , null : false , multiple : true , options : [ { value : true , name : 'A' } , { value : 1 , name : 'B' } , { value : false , name : 'C' } ] , default : defaults [ 'selectmultioption2' ] } ,
2015-01-02 12:48:13 +00:00
{ name : 'richtext1' , display : 'Richtext1' , tag : 'richtext' , limit : 100 , null : true , upload : true , default : defaults [ 'richtext1' ] } ,
{ name : 'richtext2' , display : 'Richtext2' , tag : 'richtext' , limit : 100 , null : true , upload : true , default : defaults [ 'richtext2' ] } ,
2015-01-26 06:55:14 +00:00
{ name : 'datetime1' , display : 'Datetime1' , tag : 'datetime' , null : true , default : defaults [ 'datetime1' ] } ,
2015-01-28 09:32:22 +00:00
{ name : 'datetime2' , display : 'Datetime2' , tag : 'datetime' , null : false , default : defaults [ 'datetime2' ] } ,
2013-06-16 12:15:58 +00:00
]
} ,
autofocus : true
} ) ;
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="input1"]' ) . val ( ) , '' , 'check input1 value' )
equal ( el . find ( '[name="input1"]' ) . prop ( 'required' ) , false , 'check input1 required' )
// equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="input2"]' ) . val ( ) , '123abc' , 'check input2 value' )
equal ( el . find ( '[name="input2"]' ) . prop ( 'required' ) , true , 'check input2 required' )
equal ( el . find ( '[name="input2"]' ) . is ( ":focus" ) , false , 'check input2 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="password1"]' ) . val ( ) , '' , 'check password1 value' )
equal ( el . find ( '[name="password1_confirm"]' ) . val ( ) , '' , 'check password1 value' )
equal ( el . find ( '[name="password1"]' ) . prop ( 'required' ) , false , 'check password1 required' )
equal ( el . find ( '[name="password1"]' ) . is ( ":focus" ) , false , 'check password1 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="password2"]' ) . val ( ) , 'pw1234<l>' , 'check password2 value' )
equal ( el . find ( '[name="password2_confirm"]' ) . val ( ) , 'pw1234<l>' , 'check password2 value' )
equal ( el . find ( '[name="password2"]' ) . prop ( 'required' ) , true , 'check password2 required' )
equal ( el . find ( '[name="password2"]' ) . is ( ":focus" ) , false , 'check password2 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="textarea1"]' ) . val ( ) , '' , 'check textarea1 value' )
equal ( el . find ( '[name="textarea1"]' ) . prop ( 'required' ) , false , 'check textarea1 required' )
equal ( el . find ( '[name="textarea1"]' ) . is ( ":focus" ) , false , 'check textarea1 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="textarea2"]' ) . val ( ) , 'lalu <l> lalu' , 'check textarea2 value' )
equal ( el . find ( '[name="textarea2"]' ) . prop ( 'required' ) , true , 'check textarea2 required' )
equal ( el . find ( '[name="textarea2"]' ) . is ( ":focus" ) , false , 'check textarea2 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="select1"]' ) . val ( ) , 'false' , 'check select1 value' )
equal ( el . find ( '[name="select1"]' ) . prop ( 'required' ) , false , 'check select1 required' )
equal ( el . find ( '[name="select1"]' ) . is ( ":focus" ) , false , 'check select1 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="select2"]' ) . val ( ) , 'true' , 'check select2 value' )
equal ( el . find ( '[name="select2"]' ) . prop ( 'required' ) , true , 'check select2 required' )
equal ( el . find ( '[name="select2"]' ) . is ( ":focus" ) , false , 'check select2 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="selectmulti1"]' ) . val ( ) , 'false' , 'check selectmulti1 value' )
equal ( el . find ( '[name="selectmulti1"]' ) . prop ( 'required' ) , false , 'check selectmulti1 required' )
equal ( el . find ( '[name="selectmulti1"]' ) . is ( ":focus" ) , false , 'check selectmulti1 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="selectmulti2"]' ) . val ( ) [ 0 ] , 'true' , 'check selectmulti2 value' )
equal ( el . find ( '[name="selectmulti2"]' ) . val ( ) [ 1 ] , 'false' , 'check selectmulti2 value' )
equal ( el . find ( '[name="selectmulti2"]' ) . prop ( 'required' ) , true , 'check selectmulti2 required' )
equal ( el . find ( '[name="selectmulti2"]' ) . is ( ":focus" ) , false , 'check selectmulti2 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
//equal(el.find('[name="richtext1"]').val(), '', 'check textarea1 value')
//equal(el.find('[name="richtext1"]').prop('required'), false, 'check textarea1 required')
equal ( el . find ( '[name="richtext1"]' ) . is ( ":focus" ) , false , 'check textarea1 focus' )
2015-01-02 12:48:13 +00:00
2016-03-12 00:40:38 +00:00
//equal(el.find('[name="richtext2"]').val(), 'lalu <l> lalu', 'check textarea2 value')
//equal(el.find('[name="richtext2"]').prop('required'), true, 'check textarea2 required')
equal ( el . find ( '[name="richtext2"]' ) . is ( ":focus" ) , false , 'check textarea2 focus' )
2015-01-02 12:48:13 +00:00
2013-06-16 12:15:58 +00:00
} ) ;
2016-03-12 00:40:38 +00:00
test ( "form params check" , function ( ) {
// deepEqual(item, test.value, 'group set/get tests' );
2013-06-16 12:15:58 +00:00
$ ( '#forms' ) . append ( '<hr><h1>form params check</h1><form id="form2"></form>' )
var el = $ ( '#form2' )
var defaults = {
input2 : '123abc' ,
password2 : 'pw1234<l>' ,
textarea2 : 'lalu <l> lalu' ,
select1 : false ,
select2 : true ,
2016-06-29 23:27:03 +00:00
select3 : null ,
select4 : undefined ,
2013-06-16 12:15:58 +00:00
selectmulti1 : false ,
selectmulti2 : [ false , true ] ,
selectmultioption1 : false ,
2013-07-10 06:46:59 +00:00
selectmultioption2 : [ false , true ] ,
autocompletion2 : 'id2' ,
autocompletion2 _autocompletion _value _shown : 'value2' ,
2015-01-02 12:48:13 +00:00
richtext2 : '<div>lalu <b>b</b> lalu</div>' ,
richtext3 : '<div></div>' ,
richtext4 : '<div>lalu <i>b</i> lalu</div>' ,
richtext5 : '<div></div>' ,
richtext6 : '<div>lalu <b>b</b> lalu</div>' ,
richtext7 : "<div> <div> \n</div> \n</div>" ,
richtext8 : '<div>lalu <i>b</i> lalu</div>' ,
2016-03-12 00:40:38 +00:00
datetime1 : new Date ( Date . parse ( '2015-01-11T12:40:00Z' ) ) ,
datetime3 : new Date ( Date . parse ( '2015-01-11T12:40:00Z' ) ) ,
2015-01-28 09:32:22 +00:00
date1 : '2015-01-11' ,
date3 : '2015-01-11' ,
active1 : true ,
active2 : false ,
2013-06-16 12:15:58 +00:00
}
new App . ControllerForm ( {
el : el ,
model : {
configure _attributes : [
{ name : 'input1' , display : 'Input1' , tag : 'input' , type : 'text' , limit : 100 , null : true } ,
{ name : 'input2' , display : 'Input2' , tag : 'input' , type : 'text' , limit : 100 , null : false } ,
{ name : 'password1' , display : 'Password1' , tag : 'input' , type : 'password' , limit : 100 , null : true } ,
{ name : 'password2' , display : 'Password2' , tag : 'input' , type : 'password' , limit : 100 , null : false } ,
{ name : 'textarea1' , display : 'Textarea1' , tag : 'textarea' , rows : 6 , limit : 100 , null : true , upload : true } ,
{ name : 'textarea2' , display : 'Textarea2' , tag : 'textarea' , rows : 6 , limit : 100 , null : false , upload : true } ,
{ name : 'select1' , display : 'Select1' , tag : 'select' , null : true , options : { true : 'internal' , false : 'public' } } ,
{ name : 'select2' , display : 'Select2' , tag : 'select' , null : false , options : { true : 'internal' , false : 'public' } } ,
2016-06-29 23:27:03 +00:00
{ name : 'select3' , display : 'Select3' , tag : 'select' , null : false , nulloption : true , options : { aa : 'aa' , bb : 'bb' , select3 : 'select3' } } ,
{ name : 'select4' , display : 'Select4' , tag : 'select' , null : false , nulloption : true , options : { aa : 'aa' , bb : 'bb' , select3 : 'select4' } } ,
2013-06-16 12:15:58 +00:00
{ name : 'selectmulti1' , display : 'SelectMulti1' , tag : 'select' , null : true , multiple : true , options : { true : 'internal' , false : 'public' } } ,
{ name : 'selectmulti2' , display : 'SelectMulti2' , tag : 'select' , null : false , multiple : true , options : { true : 'internal' , false : 'public' } } ,
{ name : 'selectmultioption1' , display : 'SelectMultiOption1' , tag : 'select' , null : true , multiple : true , options : [ { value : true , name : 'internal' } , { value : false , name : 'public' } ] } ,
{ name : 'selectmultioption2' , display : 'SelectMultiOption2' , tag : 'select' , null : false , multiple : true , options : [ { value : true , name : 'A' } , { value : 1 , name : 'B' } , { value : false , name : 'C' } ] } ,
2013-07-10 06:46:59 +00:00
{ name : 'autocompletion1' , display : 'AutoCompletion1' , tag : 'autocompletion' , null : false , options : { true : 'internal' , false : 'public' } , source : [ { label : "Choice1" , value : "value1" , id : "id1" } , { label : "Choice2" , value : "value2" , id : "id2" } , ] , minLength : 1 } ,
{ name : 'autocompletion2' , display : 'AutoCompletion2' , tag : 'autocompletion' , null : false , options : { true : 'internal' , false : 'public' } , source : [ { label : "Choice1" , value : "value1" , id : "id1" } , { label : "Choice2" , value : "value2" , id : "id2" } , ] , minLength : 1 } ,
2015-01-02 12:48:13 +00:00
{ name : 'richtext1' , display : 'Richtext1' , tag : 'richtext' , maxlength : 100 , null : true , type : 'richtext' , multiline : true , upload : true , default : defaults [ 'richtext1' ] } ,
{ name : 'richtext2' , display : 'Richtext2' , tag : 'richtext' , maxlength : 100 , null : true , type : 'richtext' , multiline : true , upload : true , default : defaults [ 'richtext2' ] } ,
{ name : 'richtext3' , display : 'Richtext3' , tag : 'richtext' , maxlength : 100 , null : true , type : 'richtext' , multiline : false , default : defaults [ 'richtext3' ] } ,
{ name : 'richtext4' , display : 'Richtext4' , tag : 'richtext' , maxlength : 100 , null : true , type : 'richtext' , multiline : false , default : defaults [ 'richtext4' ] } ,
{ name : 'richtext5' , display : 'Richtext5' , tag : 'richtext' , maxlength : 100 , null : true , type : 'textonly' , multiline : true , upload : true , default : defaults [ 'richtext5' ] } ,
{ name : 'richtext6' , display : 'Richtext6' , tag : 'richtext' , maxlength : 100 , null : true , type : 'textonly' , multiline : true , upload : true , default : defaults [ 'richtext6' ] } ,
{ name : 'richtext7' , display : 'Richtext7' , tag : 'richtext' , maxlength : 100 , null : true , type : 'textonly' , multiline : false , default : defaults [ 'richtext7' ] } ,
{ name : 'richtext8' , display : 'Richtext8' , tag : 'richtext' , maxlength : 100 , null : true , type : 'textonly' , multiline : false , default : defaults [ 'richtext8' ] } ,
2015-01-26 06:55:14 +00:00
{ name : 'datetime1' , display : 'Datetime1' , tag : 'datetime' , null : true , default : defaults [ 'datetime1' ] } ,
{ name : 'datetime2' , display : 'Datetime2' , tag : 'datetime' , null : true , default : defaults [ 'datetime2' ] } ,
2015-01-28 09:32:22 +00:00
{ name : 'datetime3' , display : 'Datetime3' , tag : 'datetime' , null : false , default : defaults [ 'datetime3' ] } ,
{ name : 'datetime4' , display : 'Datetime4' , tag : 'datetime' , null : false , default : defaults [ 'datetime4' ] } ,
{ name : 'date1' , display : 'Date1' , tag : 'date' , null : true , default : defaults [ 'date1' ] } ,
{ name : 'date2' , display : 'Date2' , tag : 'date' , null : true , default : defaults [ 'date2' ] } ,
{ name : 'date3' , display : 'Date3' , tag : 'date' , null : false , default : defaults [ 'date3' ] } ,
{ name : 'date4' , display : 'Date4' , tag : 'date' , null : false , default : defaults [ 'date4' ] } ,
2015-02-08 08:49:05 +00:00
{ name : 'active1' , display : 'Active1' , tag : 'active' , default : defaults [ 'active1' ] } ,
{ name : 'active2' , display : 'Active2' , tag : 'active' , default : defaults [ 'active2' ] } ,
2013-06-16 12:15:58 +00:00
] ,
} ,
params : defaults ,
autofocus : true
} ) ;
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="input1"]' ) . val ( ) , '' , 'check input1 value' )
equal ( el . find ( '[name="input1"]' ) . prop ( 'required' ) , false , 'check input1 required' )
// equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
equal ( el . find ( '[name="input2"]' ) . val ( ) , '123abc' , 'check input2 value' )
equal ( el . find ( '[name="input2"]' ) . prop ( 'required' ) , true , 'check input2 required' )
equal ( el . find ( '[name="input2"]' ) . is ( ":focus" ) , false , 'check input2 focus' )
equal ( el . find ( '[name="password1"]' ) . val ( ) , '' , 'check password1 value' )
equal ( el . find ( '[name="password1_confirm"]' ) . val ( ) , '' , 'check password1 value' )
equal ( el . find ( '[name="password1"]' ) . prop ( 'required' ) , false , 'check password1 required' )
equal ( el . find ( '[name="password1"]' ) . is ( ":focus" ) , false , 'check password1 focus' )
equal ( el . find ( '[name="password2"]' ) . val ( ) , 'pw1234<l>' , 'check password2 value' )
equal ( el . find ( '[name="password2_confirm"]' ) . val ( ) , 'pw1234<l>' , 'check password2 value' )
equal ( el . find ( '[name="password2"]' ) . prop ( 'required' ) , true , 'check password2 required' )
equal ( el . find ( '[name="password2"]' ) . is ( ":focus" ) , false , 'check password2 focus' )
equal ( el . find ( '[name="textarea1"]' ) . val ( ) , '' , 'check textarea1 value' )
equal ( el . find ( '[name="textarea1"]' ) . prop ( 'required' ) , false , 'check textarea1 required' )
equal ( el . find ( '[name="textarea1"]' ) . is ( ":focus" ) , false , 'check textarea1 focus' )
equal ( el . find ( '[name="textarea2"]' ) . val ( ) , 'lalu <l> lalu' , 'check textarea2 value' )
equal ( el . find ( '[name="textarea2"]' ) . prop ( 'required' ) , true , 'check textarea2 required' )
equal ( el . find ( '[name="textarea2"]' ) . is ( ":focus" ) , false , 'check textarea2 focus' )
equal ( el . find ( '[name="select1"]' ) . val ( ) , 'false' , 'check select1 value' )
equal ( el . find ( '[name="select1"]' ) . prop ( 'required' ) , false , 'check select1 required' )
equal ( el . find ( '[name="select1"]' ) . is ( ":focus" ) , false , 'check select1 focus' )
equal ( el . find ( '[name="select2"]' ) . val ( ) , 'true' , 'check select2 value' )
equal ( el . find ( '[name="select2"]' ) . prop ( 'required' ) , true , 'check select2 required' )
equal ( el . find ( '[name="select2"]' ) . is ( ":focus" ) , false , 'check select2 focus' )
2016-06-29 23:27:03 +00:00
equal ( el . find ( '[name="select3"]' ) . val ( ) , '' , 'check select3 value' )
equal ( el . find ( '[name="select3"]' ) . prop ( 'required' ) , true , 'check select3 required' )
equal ( el . find ( '[name="select3"]' ) . is ( ":focus" ) , false , 'check select3 focus' )
equal ( el . find ( '[name="select4"]' ) . val ( ) , '' , 'check select4 value' )
equal ( el . find ( '[name="select4"]' ) . prop ( 'required' ) , true , 'check select4 required' )
equal ( el . find ( '[name="select4"]' ) . is ( ":focus" ) , false , 'check select4 focus' )
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="selectmulti1"]' ) . val ( ) , 'false' , 'check selectmulti1 value' )
equal ( el . find ( '[name="selectmulti1"]' ) . prop ( 'required' ) , false , 'check selectmulti1 required' )
equal ( el . find ( '[name="selectmulti1"]' ) . is ( ":focus" ) , false , 'check selectmulti1 focus' )
equal ( el . find ( '[name="selectmulti2"]' ) . val ( ) [ 0 ] , 'true' , 'check selectmulti2 value' )
equal ( el . find ( '[name="selectmulti2"]' ) . val ( ) [ 1 ] , 'false' , 'check selectmulti2 value' )
equal ( el . find ( '[name="selectmulti2"]' ) . prop ( 'required' ) , true , 'check selectmulti2 required' )
equal ( el . find ( '[name="selectmulti2"]' ) . is ( ":focus" ) , false , 'check selectmulti2 focus' )
params = App . ControllerForm . params ( el )
2015-01-02 12:48:13 +00:00
test _params = {
input1 : '' ,
input2 : '123abc' ,
password1 : '' ,
password1 _confirm : '' ,
password2 : 'pw1234<l>' ,
password2 _confirm : 'pw1234<l>' ,
textarea1 : '' ,
textarea2 : 'lalu <l> lalu' ,
select1 : 'false' ,
select2 : 'true' ,
2016-06-29 23:27:03 +00:00
select3 : '' ,
select4 : '' ,
2015-01-02 12:48:13 +00:00
selectmulti1 : 'false' ,
selectmulti2 : [ 'true' , 'false' ] ,
selectmultioption1 : 'false' ,
selectmultioption2 : [ 'true' , 'false' ] ,
autocompletion1 : '' ,
autocompletion1 _autocompletion : '' ,
autocompletion1 _autocompletion _value _shown : '' ,
autocompletion2 : 'id2' ,
autocompletion2 _autocompletion : 'value2' ,
autocompletion2 _autocompletion _value _shown : 'value2' ,
richtext1 : '' ,
richtext2 : '<div>lalu <b>b</b> lalu</div>' ,
richtext3 : '' ,
richtext4 : '<div>lalu <i>b</i> lalu</div>' ,
richtext5 : '' ,
richtext6 : '<div>lalu <b>b</b> lalu</div>' ,
richtext7 : '' ,
richtext8 : '<div>lalu <i>b</i> lalu</div>' ,
2015-01-26 06:55:14 +00:00
datetime1 : '2015-01-11T12:40:00.000Z' ,
2015-01-28 09:32:22 +00:00
datetime2 : undefined ,
datetime3 : '2015-01-11T12:40:00.000Z' ,
datetime4 : undefined ,
date1 : '2015-01-11' ,
date2 : undefined ,
date3 : '2015-01-11' ,
date4 : undefined ,
2015-01-26 06:55:14 +00:00
active1 : true ,
active2 : false ,
2015-01-02 12:48:13 +00:00
}
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2015-01-02 12:48:13 +00:00
2013-06-16 12:15:58 +00:00
} ) ;
2016-03-12 00:40:38 +00:00
test ( "form defaults + params check" , function ( ) {
// deepEqual(item, test.value, 'group set/get tests' );
2013-06-16 12:15:58 +00:00
// mix default and params -> check it -> add note
// test auto completion
// show/hide fields base on field values -> bind changed event
// form validation
// form params check
// add signature only if form_state is empty
$ ( '#forms' ) . append ( '<hr><h1>form defaults + params check</h1><form id="form3"></form>' )
var el = $ ( '#form3' )
var defaults = {
input1 : '' ,
password2 : 'pw1234<l>' ,
textarea2 : 'lalu <l> lalu' ,
select2 : false ,
selectmulti2 : [ false , true ] ,
selectmultioption1 : false ,
}
new App . ControllerForm ( {
el : el ,
model : {
configure _attributes : [
{ name : 'input1' , display : 'Input1' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some not used default' } ,
{ name : 'input2' , display : 'Input2' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some used default' } ,
{ name : 'password1' , display : 'Password1' , tag : 'input' , type : 'password' , limit : 100 , null : false , default : 'some used pass' } ,
{ name : 'password2' , display : 'Password2' , tag : 'input' , type : 'password' , limit : 100 , null : false , default : 'some not used pass' } ,
{ name : 'textarea1' , display : 'Textarea1' , tag : 'textarea' , rows : 6 , limit : 100 , null : false , upload : true , default : 'some used text' } ,
{ name : 'textarea2' , display : 'Textarea2' , tag : 'textarea' , rows : 6 , limit : 100 , null : false , upload : true , default : 'some not used text' } ,
{ name : 'select1' , display : 'Select1' , tag : 'select' , null : true , options : { true : 'internal' , false : 'public' } , default : false } ,
{ name : 'select2' , display : 'Select2' , tag : 'select' , null : true , options : { true : 'internal' , false : 'public' } , default : true } ,
{ name : 'selectmulti2' , display : 'SelectMulti2' , tag : 'select' , null : false , multiple : true , options : { true : 'internal' , false : 'public' } , default : [ ] } ,
{ name : 'selectmultioption1' , display : 'SelectMultiOption1' , tag : 'select' , null : true , multiple : true , options : [ { value : true , name : 'internal' } , { value : false , name : 'public' } ] , default : true } ,
] ,
} ,
params : defaults ,
autofocus : true
} ) ;
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="input1"]' ) . val ( ) , '' , 'check input1 value' )
equal ( el . find ( '[name="input1"]' ) . prop ( 'required' ) , false , 'check input1 required' )
// equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
equal ( el . find ( '[name="input2"]' ) . val ( ) , 'some used default' , 'check input2 value' )
equal ( el . find ( '[name="input2"]' ) . prop ( 'required' ) , false , 'check input2 required' )
equal ( el . find ( '[name="password1"]' ) . val ( ) , 'some used pass' , 'check password1 value' )
equal ( el . find ( '[name="password1_confirm"]' ) . val ( ) , 'some used pass' , 'check password1 value' )
equal ( el . find ( '[name="password1"]' ) . prop ( 'required' ) , true , 'check password1 required' )
equal ( el . find ( '[name="password1"]' ) . is ( ":focus" ) , false , 'check password1 focus' )
equal ( el . find ( '[name="password2"]' ) . val ( ) , 'pw1234<l>' , 'check password2 value' )
equal ( el . find ( '[name="password2_confirm"]' ) . val ( ) , 'pw1234<l>' , 'check password2 value' )
equal ( el . find ( '[name="password2"]' ) . prop ( 'required' ) , true , 'check password2 required' )
equal ( el . find ( '[name="password2"]' ) . is ( ":focus" ) , false , 'check password2 focus' )
equal ( el . find ( '[name="textarea1"]' ) . val ( ) , 'some used text' , 'check textarea1 value' )
equal ( el . find ( '[name="textarea1"]' ) . prop ( 'required' ) , true , 'check textarea1 required' )
equal ( el . find ( '[name="textarea1"]' ) . is ( ":focus" ) , false , 'check textarea1 focus' )
equal ( el . find ( '[name="textarea2"]' ) . val ( ) , 'lalu <l> lalu' , 'check textarea2 value' )
equal ( el . find ( '[name="textarea2"]' ) . prop ( 'required' ) , true , 'check textarea2 required' )
equal ( el . find ( '[name="textarea2"]' ) . is ( ":focus" ) , false , 'check textarea2 focus' )
equal ( el . find ( '[name="select1"]' ) . val ( ) , 'false' , 'check select1 value' )
equal ( el . find ( '[name="select1"]' ) . prop ( 'required' ) , false , 'check select1 required' )
equal ( el . find ( '[name="select1"]' ) . is ( ":focus" ) , false , 'check select1 focus' )
equal ( el . find ( '[name="select2"]' ) . val ( ) , 'false' , 'check select2 value' )
equal ( el . find ( '[name="select2"]' ) . prop ( 'required' ) , false , 'check select2 required' )
equal ( el . find ( '[name="select2"]' ) . is ( ":focus" ) , false , 'check select2 focus' )
equal ( el . find ( '[name="selectmulti2"]' ) . val ( ) [ 0 ] , 'true' , 'check selectmulti2 value' )
equal ( el . find ( '[name="selectmulti2"]' ) . val ( ) [ 1 ] , 'false' , 'check selectmulti2 value' )
equal ( el . find ( '[name="selectmulti2"]' ) . prop ( 'required' ) , true , 'check selectmulti2 required' )
equal ( el . find ( '[name="selectmulti2"]' ) . is ( ":focus" ) , false , 'check selectmulti2 focus' )
2013-06-16 12:15:58 +00:00
} ) ;
2016-03-12 00:40:38 +00:00
test ( "form dependend fields check" , function ( ) {
// deepEqual(item, test.value, 'group set/get tests' );
2013-06-16 12:15:58 +00:00
// mix default and params -> check it -> add note
// test auto completion
// show/hide fields base on field values -> bind changed event
// form validation
// form params check
// add signature only if form_state is empty
$ ( '#forms' ) . append ( '<hr><h1>form dependend fields check</h1><form id="form4"></form>' )
var el = $ ( '#form4' )
var defaults = {
input1 : '' ,
select2 : false ,
selectmulti2 : [ false , true ] ,
selectmultioption1 : false ,
2016-03-12 00:40:38 +00:00
datetime1 : new Date ( Date . parse ( '2015-01-11T12:40:00Z' ) ) ,
datetime3 : new Date ( Date . parse ( '2015-01-11T12:40:00Z' ) ) ,
2015-01-28 09:32:22 +00:00
date1 : '2015-01-11' ,
date3 : '2015-01-11' ,
2013-06-16 12:15:58 +00:00
}
2015-01-28 09:32:22 +00:00
var form = new App . ControllerForm ( {
2013-06-16 12:15:58 +00:00
el : el ,
model : {
configure _attributes : [
{ name : 'input1' , display : 'Input1' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some not used default' } ,
{ name : 'input2' , display : 'Input2' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some used default' } ,
{ name : 'input3' , display : 'Input3' , tag : 'input' , type : 'text' , limit : 100 , null : true , hide : true , default : 'some used default' } ,
{ name : 'select1' , display : 'Select1' , tag : 'select' , null : true , options : { true : 'internal' , false : 'public' } , default : false } ,
{ name : 'select2' , display : 'Select2' , tag : 'select' , null : true , options : { true : 'internal' , false : 'public' } , default : true } ,
{ name : 'selectmulti2' , display : 'SelectMulti2' , tag : 'select' , null : false , multiple : true , options : { true : 'internal' , false : 'public' } , default : [ ] } ,
{ name : 'selectmultioption1' , display : 'SelectMultiOption1' , tag : 'select' , null : true , multiple : true , options : [ { value : true , name : 'internal' } , { value : false , name : 'public' } ] , default : true } ,
2015-01-28 09:32:22 +00:00
{ name : 'datetime1' , display : 'Datetime1' , tag : 'datetime' , null : true , default : defaults [ 'datetime1' ] } ,
{ name : 'datetime2' , display : 'Datetime2' , tag : 'datetime' , null : true , default : defaults [ 'datetime2' ] } ,
{ name : 'datetime3' , display : 'Datetime3' , tag : 'datetime' , null : false , default : defaults [ 'datetime3' ] } ,
{ name : 'datetime4' , display : 'Datetime4' , tag : 'datetime' , null : false , default : defaults [ 'datetime4' ] } ,
{ name : 'date1' , display : 'Date1' , tag : 'date' , null : true , default : defaults [ 'date1' ] } ,
{ name : 'date2' , display : 'Date2' , tag : 'date' , null : true , default : defaults [ 'date2' ] } ,
{ name : 'date3' , display : 'Date3' , tag : 'date' , null : false , default : defaults [ 'date3' ] } ,
{ name : 'date4' , display : 'Date4' , tag : 'date' , null : false , default : defaults [ 'date4' ] } ,
2013-06-16 12:15:58 +00:00
] ,
} ,
params : defaults ,
dependency : [
{
bind : {
name : 'select1' ,
value : [ "true" ]
} ,
change : {
name : 'input2' ,
action : 'hide'
} ,
} ,
2015-01-28 09:32:22 +00:00
{
bind : {
name : 'select1' ,
value : [ "true" ]
} ,
change : {
name : 'datetime1' ,
action : 'hide'
} ,
} ,
2013-06-16 12:15:58 +00:00
{
bind : {
name : 'select1' ,
value : [ "false" ]
} ,
change : {
name : 'input2' ,
action : 'show'
} ,
} ,
2015-01-28 09:32:22 +00:00
{
bind : {
name : 'select1' ,
value : [ "false" ]
} ,
change : {
name : 'datetime1' ,
action : 'show'
} ,
} ,
2013-06-16 12:15:58 +00:00
{
bind : {
name : 'select1' ,
value : [ "true" ]
} ,
change : {
name : 'input3' ,
action : 'show'
} ,
} ,
{
bind : {
name : 'select1' ,
value : [ "false" ]
} ,
change : {
name : 'input3' ,
action : 'hide'
} ,
}
] ,
autofocus : true
} ) ;
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="input1"]' ) . val ( ) , '' , 'check input1 value' )
equal ( el . find ( '[name="input1"]' ) . prop ( 'required' ) , false , 'check input1 required' )
// equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
equal ( el . find ( '[name="input2"]' ) . val ( ) , 'some used default' , 'check input2 value' )
equal ( el . find ( '[name="input2"]' ) . prop ( 'required' ) , false , 'check input2 required' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="input3"]' ) . val ( ) , 'some used default' , 'check input3 value' )
equal ( el . find ( '[name="input3"]' ) . prop ( 'required' ) , false , 'check input3 required' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="select1"]' ) . val ( ) , 'false' , 'check select1 value' )
equal ( el . find ( '[name="select1"]' ) . prop ( 'required' ) , false , 'check select1 required' )
equal ( el . find ( '[name="select1"]' ) . is ( ":focus" ) , false , 'check select1 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="select2"]' ) . val ( ) , 'false' , 'check select2 value' )
equal ( el . find ( '[name="select2"]' ) . prop ( 'required' ) , false , 'check select2 required' )
equal ( el . find ( '[name="select2"]' ) . is ( ":focus" ) , false , 'check select2 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="selectmulti2"]' ) . val ( ) [ 0 ] , 'true' , 'check selectmulti2 value' )
equal ( el . find ( '[name="selectmulti2"]' ) . val ( ) [ 1 ] , 'false' , 'check selectmulti2 value' )
equal ( el . find ( '[name="selectmulti2"]' ) . prop ( 'required' ) , true , 'check selectmulti2 required' )
equal ( el . find ( '[name="selectmulti2"]' ) . is ( ":focus" ) , false , 'check selectmulti2 focus' )
2013-06-16 12:15:58 +00:00
2016-03-12 00:40:38 +00:00
var params = App . ControllerForm . params ( el )
2013-06-16 12:15:58 +00:00
var test _params = {
input1 : "" ,
input2 : "some used default" ,
select1 : "false" ,
select2 : "false" ,
selectmulti2 : [ "true" , "false" ] ,
2015-01-28 09:32:22 +00:00
selectmultioption1 : "false" ,
datetime1 : '2015-01-11T12:40:00.000Z' ,
datetime2 : undefined ,
datetime3 : '2015-01-11T12:40:00.000Z' ,
datetime4 : undefined ,
date1 : '2015-01-11' ,
date2 : undefined ,
date3 : '2015-01-11' ,
date4 : undefined ,
2013-06-16 12:15:58 +00:00
}
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2015-01-28 09:32:22 +00:00
errors = form . validate ( params )
test _errors = {
datetime4 : "is required" ,
date4 : "is required" ,
}
2016-03-12 00:40:38 +00:00
deepEqual ( errors , test _errors , 'validation errors check' )
App . ControllerForm . validate ( { errors : errors , form : el } )
2015-01-28 09:32:22 +00:00
2013-06-16 12:15:58 +00:00
el . find ( '[name="select1"]' ) . val ( 'true' )
el . find ( '[name="select1"]' ) . trigger ( 'change' )
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
2013-06-16 12:15:58 +00:00
test _params = {
input1 : "" ,
input3 : "some used default" ,
select1 : "true" ,
select2 : "false" ,
selectmulti2 : [ "true" , "false" ] ,
2015-01-28 09:32:22 +00:00
selectmultioption1 : "false" ,
2015-01-28 22:12:16 +00:00
datetime1 : null ,
2015-01-28 09:32:22 +00:00
datetime2 : undefined ,
datetime3 : '2015-01-11T12:40:00.000Z' ,
datetime4 : undefined ,
date1 : '2015-01-11' ,
date2 : undefined ,
date3 : '2015-01-11' ,
date4 : undefined ,
2013-06-16 12:15:58 +00:00
}
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2013-06-16 12:15:58 +00:00
} ) ;
2016-03-12 00:40:38 +00:00
test ( "form handler check with and without fieldset" , function ( ) {
// deepEqual(item, test.value, 'group set/get tests' );
2015-01-26 06:55:14 +00:00
// mix default and params -> check it -> add note
// test auto completion
// show/hide fields base on field values -> bind changed event
// form validation
// form params check
// add signature only if form_state is empty
$ ( '#forms' ) . append ( '<hr><h1>form handler check with and without fieldset</h1><form id="form5"></form>' )
var el = $ ( '#form5' )
var defaults = {
select1 : 'a' ,
select2 : '' ,
}
var formChanges = function ( params , attribute , attributes , classname , form , ui ) {
2016-11-04 07:42:46 +00:00
//console.log('FROM', form)
2015-01-26 06:55:14 +00:00
if ( params [ 'select1' ] === 'b' ) {
2016-11-04 07:42:46 +00:00
//console.log('select1 -> b', params)
2015-01-26 06:55:14 +00:00
var item = {
name : 'select2' ,
display : 'Select2' ,
tag : 'select' ,
null : true ,
options : { 1 : '1' , 2 : '2' , 3 : '3' } ,
default : 3 ,
} ;
2016-03-12 00:40:38 +00:00
var newElement = ui . formGenItem ( item , classname , form )
form . find ( '[name="select2"]' ) . closest ( '.form-group' ) . replaceWith ( newElement )
2015-01-26 06:55:14 +00:00
}
if ( params [ 'select1' ] === 'a' ) {
2016-11-04 07:42:46 +00:00
//console.log('select1 -> a', params)
2015-01-26 06:55:14 +00:00
var item = {
name : 'select2' ,
display : 'Select2' ,
tag : 'select' ,
null : true ,
options : { 1 : '1' , 2 : '2' , 3 : '3' } ,
default : 1 ,
} ;
2016-03-12 00:40:38 +00:00
var newElement = ui . formGenItem ( item , classname , form )
form . find ( '[name="select2"]' ) . closest ( '.form-group' ) . replaceWith ( newElement )
2015-01-26 06:55:14 +00:00
}
}
new App . ControllerForm ( {
el : el ,
model : {
configure _attributes : [
{ name : 'select1' , display : 'Select1' , tag : 'select' , null : true , options : { a : 'a' , b : 'b' } , default : 'b' } ,
{ name : 'select2' , display : 'Select2' , tag : 'select' , null : true , options : { 1 : '1' , 2 : '2' , 3 : '3' } , default : 2 } ,
] ,
} ,
params : defaults ,
handlers : [
formChanges ,
] ,
//noFieldset: true,
} ) ;
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="select1"]' ) . val ( ) , 'a' , 'check select1 value' )
equal ( el . find ( '[name="select1"]' ) . prop ( 'required' ) , false , 'check select1 required' )
2015-01-26 06:55:14 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="select2"]' ) . val ( ) , '1' , 'check select2 value' )
equal ( el . find ( '[name="select2"]' ) . prop ( 'required' ) , false , 'check select2 required' )
2015-01-26 06:55:14 +00:00
2016-03-12 00:40:38 +00:00
var params = App . ControllerForm . params ( el )
2015-01-26 06:55:14 +00:00
var test _params = {
select1 : 'a' ,
select2 : '1' ,
}
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2015-01-26 06:55:14 +00:00
el . find ( '[name="select1"]' ) . val ( 'b' )
el . find ( '[name="select1"]' ) . trigger ( 'change' )
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
2015-01-26 06:55:14 +00:00
test _params = {
select1 : 'b' ,
select2 : '3' ,
}
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2015-01-26 06:55:14 +00:00
el . find ( '[name="select1"]' ) . val ( 'a' )
el . find ( '[name="select1"]' ) . trigger ( 'change' )
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
2015-01-26 06:55:14 +00:00
test _params = {
select1 : 'a' ,
select2 : '1' ,
}
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2015-01-26 06:55:14 +00:00
// test with noFieldset
el . empty ( )
new App . ControllerForm ( {
el : el ,
model : {
configure _attributes : [
{ name : 'select1' , display : 'Select1' , tag : 'select' , null : true , options : { a : 'a' , b : 'b' } , default : 'b' } ,
{ name : 'select2' , display : 'Select2' , tag : 'select' , null : true , options : { 1 : '1' , 2 : '2' , 3 : '3' } , default : 2 } ,
] ,
} ,
params : defaults ,
handlers : [
formChanges ,
] ,
noFieldset : true ,
} ) ;
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="select1"]' ) . val ( ) , 'a' , 'check select1 value' )
equal ( el . find ( '[name="select1"]' ) . prop ( 'required' ) , false , 'check select1 required' )
2015-01-26 06:55:14 +00:00
2016-03-12 00:40:38 +00:00
equal ( el . find ( '[name="select2"]' ) . val ( ) , '1' , 'check select2 value' )
equal ( el . find ( '[name="select2"]' ) . prop ( 'required' ) , false , 'check select2 required' )
2015-01-26 06:55:14 +00:00
2016-03-12 00:40:38 +00:00
var params = App . ControllerForm . params ( el )
2015-01-26 06:55:14 +00:00
var test _params = {
select1 : 'a' ,
select2 : '1' ,
}
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2015-01-26 06:55:14 +00:00
el . find ( '[name="select1"]' ) . val ( 'b' )
el . find ( '[name="select1"]' ) . trigger ( 'change' )
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
2015-01-26 06:55:14 +00:00
test _params = {
select1 : 'b' ,
select2 : '3' ,
}
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2015-01-26 06:55:14 +00:00
el . find ( '[name="select1"]' ) . val ( 'a' )
el . find ( '[name="select1"]' ) . trigger ( 'change' )
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
2015-01-26 06:55:14 +00:00
test _params = {
select1 : 'a' ,
select2 : '1' ,
}
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2015-01-26 06:55:14 +00:00
} ) ;
2016-03-12 00:40:38 +00:00
test ( "form postmaster filter" , function ( ) {
2014-06-06 12:16:13 +00:00
// check match area
// check set area
// add match rule
// add set rule
2016-03-12 00:40:38 +00:00
App . TicketPriority . refresh ( [
2014-06-08 03:11:21 +00:00
{
id : 1 ,
name : 'prio 1' ,
} ,
{
id : 2 ,
name : 'prio 2' ,
} ,
] )
2016-03-12 00:40:38 +00:00
App . Group . refresh ( [
2014-06-08 03:11:21 +00:00
{
id : 1 ,
name : 'group 1' ,
} ,
{
id : 2 ,
name : 'group 2' ,
} ,
] )
2014-06-06 12:16:13 +00:00
2015-01-26 06:55:14 +00:00
$ ( '#forms' ) . append ( '<hr><h1>form postmaster filter</h1><form id="form6"></form>' )
var el = $ ( '#form6' )
2014-06-06 12:16:13 +00:00
var defaults = {
input2 : 'some name' ,
match : {
2015-09-20 22:19:45 +00:00
from : {
operator : 'contains' ,
value : 'some@address' ,
} ,
subject : {
operator : 'contains' ,
value : 'some subject' ,
} ,
2014-06-06 12:16:13 +00:00
} ,
set : {
2015-09-20 22:19:45 +00:00
'x-zammad-ticket-customer' : {
value : 'customer'
} ,
'x-zammad-ticket-group_id' : {
value : '1'
} ,
'x-zammad-ticket-owner' : {
value : 'owner' ,
value _completion : ''
} ,
'x-zammad-ticket-priority_id' : {
value : '1'
}
2014-06-06 12:16:13 +00:00
} ,
}
new App . ControllerForm ( {
el : el ,
model : {
configure _attributes : [
{ name : 'input1' , display : 'Input1' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some not used default' } ,
{ name : 'input2' , display : 'Input2' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some used default' } ,
{ name : 'match' , display : 'Match' , tag : 'postmaster_match' , null : false , default : false } ,
{ name : 'set' , display : 'Set' , tag : 'postmaster_set' , null : false , default : false } ,
] ,
} ,
params : defaults ,
} ) ;
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
2014-06-06 12:16:13 +00:00
test _params = {
2015-09-20 22:19:45 +00:00
input1 : 'some not used default' ,
input2 : 'some name' ,
2014-06-06 12:16:13 +00:00
match : {
2015-09-20 22:19:45 +00:00
from : {
operator : 'contains' ,
value : 'some@address'
} ,
subject : {
operator : 'contains' ,
value : 'some subject'
}
2014-06-06 12:16:13 +00:00
} ,
set : {
2015-09-20 22:19:45 +00:00
'x-zammad-ticket-customer' : {
value : 'customer'
} ,
'x-zammad-ticket-group_id' : {
value : '1'
} ,
'x-zammad-ticket-owner' : {
value : 'owner' ,
value _completion : ''
} ,
'x-zammad-ticket-priority_id' : {
value : '1'
}
2014-06-06 12:16:13 +00:00
} ,
} ;
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2015-09-20 22:19:45 +00:00
el . find ( '[name="set::x-zammad-ticket-priority_id::value"]' ) . closest ( '.js-filterElement' ) . find ( '.js-remove' ) . click ( )
el . find ( '[name="set::x-zammad-ticket-customer::value"]' ) . closest ( '.js-filterElement' ) . find ( '.js-remove' ) . click ( )
2016-03-12 00:40:38 +00:00
App . Delay . set ( function ( ) {
test ( "form param check after remove click" , function ( ) {
params = App . ControllerForm . params ( el )
2014-06-06 12:16:13 +00:00
test _params = {
2015-09-20 22:19:45 +00:00
input1 : 'some not used default' ,
input2 : 'some name' ,
2014-06-06 12:16:13 +00:00
match : {
2015-09-20 22:19:45 +00:00
from : {
operator : 'contains' ,
value : 'some@address'
} ,
subject : {
operator : 'contains' ,
value : 'some subject'
}
2014-06-06 12:16:13 +00:00
} ,
set : {
2015-09-20 22:19:45 +00:00
'x-zammad-ticket-owner' : {
value : 'owner' ,
value _completion : ''
} ,
'x-zammad-ticket-group_id' : {
value : '1'
} ,
2014-06-06 12:16:13 +00:00
} ,
} ;
2016-03-12 00:40:38 +00:00
deepEqual ( params , test _params , 'form param check' )
2014-06-06 12:16:13 +00:00
} ) ;
} ,
1000
) ;
} ) ;
2016-03-12 00:40:38 +00:00
test ( "form selector" , function ( ) {
2015-01-26 06:55:14 +00:00
$ ( '#forms' ) . append ( '<hr><h1>form selector</h1><div><form id="form7"></form></div>' )
var el = $ ( '#form7' )
2014-06-06 12:16:13 +00:00
var defaults = {
input2 : 'some name66' ,
}
new App . ControllerForm ( {
el : el ,
model : {
configure _attributes : [
{ name : 'input1' , display : 'Input1' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some not used default33' } ,
{ name : 'input2' , display : 'Input2' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some used default' } ,
] ,
} ,
params : defaults ,
} ) ;
test _params = {
2015-09-20 22:19:45 +00:00
input1 : 'some not used default33' ,
input2 : 'some name66' ,
2014-06-06 12:16:13 +00:00
} ;
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
deepEqual ( params , test _params , 'form param check via $("#form")' )
2014-06-06 12:16:13 +00:00
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el . find ( 'input' ) )
deepEqual ( params , test _params , 'form param check via $("#form").find("input")' )
2014-06-06 12:16:13 +00:00
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el . parent ( ) )
deepEqual ( params , test _params , 'form param check via $("#form").parent()' )
2014-06-06 12:16:13 +00:00
} ) ;
2014-09-09 23:42:20 +00:00
2016-03-12 00:40:38 +00:00
test ( "form required_if + shown_if" , function ( ) {
2015-01-26 06:55:14 +00:00
$ ( '#forms' ) . append ( '<hr><h1>form required_if + shown_if</h1><div><form id="form8"></form></div>' )
var el = $ ( '#form8' )
2014-09-09 23:42:20 +00:00
var defaults = {
input2 : 'some name66' ,
2015-01-26 06:55:14 +00:00
input3 : 'some name77' ,
input4 : 'some name88' ,
2014-09-09 23:42:20 +00:00
}
new App . ControllerForm ( {
el : el ,
model : {
configure _attributes : [
{ name : 'input1' , display : 'Input1' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some not used default33' } ,
{ name : 'input2' , display : 'Input2' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some used default' , required _if : { active : true } , shown _if : { active : true } } ,
2015-01-26 06:55:14 +00:00
{ name : 'input3' , display : 'Input3' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some used default' , required _if : { active : [ true , false ] } , shown _if : { active : [ true , false ] } } ,
{ name : 'input4' , display : 'Input4' , tag : 'input' , type : 'text' , limit : 100 , null : true , default : 'some used default' , required _if : { active : [ 55 , 66 ] } , shown _if : { active : [ 55 , 66 ] } } ,
2015-02-08 08:49:05 +00:00
{ name : 'active' , display : 'Active' , tag : 'active' , 'default' : true } ,
2014-09-09 23:42:20 +00:00
] ,
} ,
params : defaults ,
} ) ;
test _params = {
input1 : "some not used default33" ,
input2 : "some name66" ,
2015-01-26 06:55:14 +00:00
input3 : "some name77" ,
active : true ,
2014-09-09 23:42:20 +00:00
} ;
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
deepEqual ( params , test _params , 'form param check via $("#form")' )
equal ( el . find ( '[name="input2"]' ) . attr ( 'required' ) , 'required' , 'check required attribute of input2 ' )
equal ( el . find ( '[name="input2"]' ) . is ( ":visible" ) , true , 'check visible attribute of input2 ' )
equal ( el . find ( '[name="input3"]' ) . attr ( 'required' ) , 'required' , 'check required attribute of input3 ' )
equal ( el . find ( '[name="input3"]' ) . is ( ":visible" ) , true , 'check visible attribute of input3 ' )
equal ( el . find ( '[name="input4"]' ) . is ( ":visible" ) , false , 'check visible attribute of input4 ' )
2015-01-26 06:55:14 +00:00
2014-09-09 23:42:20 +00:00
2016-05-28 21:17:59 +00:00
el . find ( '[name="active"]' ) . val ( 'false' ) . trigger ( 'change' )
2014-09-09 23:42:20 +00:00
test _params = {
input1 : "some not used default33" ,
2015-01-26 06:55:14 +00:00
active : false ,
2014-09-09 23:42:20 +00:00
} ;
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
deepEqual ( params , test _params , 'form param check via $("#form")' )
equal ( el . find ( '[name="input2"]' ) . attr ( 'required' ) , undefined , 'check required attribute of input2' )
equal ( el . find ( '[name="input2"]' ) . is ( ":visible" ) , false , 'check visible attribute of input2' )
equal ( el . find ( '[name="input3"]' ) . is ( ":visible" ) , false , 'check visible attribute of input3' )
equal ( el . find ( '[name="input4"]' ) . is ( ":visible" ) , false , 'check visible attribute of input4' )
2014-09-09 23:42:20 +00:00
2016-05-28 21:17:59 +00:00
el . find ( '[name="active"]' ) . val ( 'true' ) . trigger ( 'change' )
2014-09-09 23:42:20 +00:00
test _params = {
input1 : "some not used default33" ,
input2 : "some name66" ,
2015-01-26 06:55:14 +00:00
input3 : "some name77" ,
active : true ,
2014-09-09 23:42:20 +00:00
} ;
2016-03-12 00:40:38 +00:00
params = App . ControllerForm . params ( el )
deepEqual ( params , test _params , 'form param check via $("#form")' )
equal ( el . find ( '[name="input2"]' ) . attr ( 'required' ) , 'required' , 'check required attribute of input2' )
equal ( el . find ( '[name="input2"]' ) . is ( ":visible" ) , true , 'check visible attribute of input2' )
equal ( el . find ( '[name="input3"]' ) . attr ( 'required' ) , 'required' , 'check required attribute of input3' )
equal ( el . find ( '[name="input3"]' ) . is ( ":visible" ) , true , 'check visible attribute of input3' )
equal ( el . find ( '[name="input4"]' ) . is ( ":visible" ) , false , 'check visible attribute of input4' )
2014-09-09 23:42:20 +00:00
2016-06-29 23:27:03 +00:00
} ) ;
test ( "form params check" , function ( ) {
$ ( '#forms' ) . append ( '<hr><h1>form params check</h1><form id="form9"></form>' )
var el = $ ( '#form9' )
var defaults = {
select1 : false ,
select2 : true ,
select3 : null ,
select4 : undefined ,
}
new App . ControllerForm ( {
el : el ,
model : {
configure _attributes : [
{ name : 'select1' , display : 'Select1' , tag : 'select' , null : true , options : { true : 'internal' , false : 'public' } } ,
{ name : 'select2' , display : 'Select2' , tag : 'select' , null : false , options : { true : 'internal' , false : 'public' } } ,
{ name : 'select3' , display : 'Select3' , tag : 'select' , null : false , nulloption : true , options : { aa : 'aa' , bb : 'bb' , select3 : 'select3' } } ,
{ name : 'select4' , display : 'Select4' , tag : 'select' , null : false , nulloption : true , options : { aa : 'aa' , bb : 'bb' , select3 : 'select4' } } ,
] ,
} ,
params : defaults ,
autofocus : true
} ) ;
params = App . ControllerForm . params ( el )
test _params = {
select1 : 'false' ,
select2 : 'true' ,
select3 : '' ,
select4 : '' ,
}
2016-11-04 07:42:46 +00:00
//console.log('params', params)
//console.log('test_params', test_params)
deepEqual ( params , test _params , 'form param check' )
} ) ;
test ( "form params check direct" , function ( ) {
$ ( '#forms' ) . append ( '<hr><h1>form params check direct</h1><form id="form10"><input name="a" value="b"><input name="l::l::l1" value="d"><input name="l::l::" value><input name="f::f::" value><input name="f::f::f1" value="e"></form>' )
var el = $ ( '#form10' )
params = App . ControllerForm . params ( el )
test _params = {
a : 'b' ,
l : {
l : {
l1 : 'd' ,
'' : '' ,
} ,
} ,
f : {
f : {
f1 : 'e' ,
'' : '' ,
} ,
} ,
}
//console.log('params', params)
//console.log('test_params', test_params)
2016-06-29 23:27:03 +00:00
deepEqual ( params , test _params , 'form param check' )
} ) ;