@@ -118,7 +118,8 @@ var app = new Vue({
118
118
theme : 'bootstrap' , // default theme
119
119
method : 'get' , // default methods
120
120
old : '' ,
121
- flds : [ ] , // list of field
121
+ flds : [
122
+ ] , // list of field
122
123
// type of inputs
123
124
typ : [
124
125
'row' ,
@@ -127,6 +128,7 @@ var app = new Vue({
127
128
'select' ,
128
129
'submit' ,
129
130
'form-divider' ,
131
+ 'switch'
130
132
] ,
131
133
// raw field for edit
132
134
raw : {
@@ -177,13 +179,23 @@ var app = new Vue({
177
179
178
180
switch ( this . theme ) {
179
181
case "bootstrap" :
182
+
183
+ let defClass = '' ;
184
+ if ( field . option == 'checkbox' || field . option == 'radio' ) {
185
+ defClass = 'class="form-check-label"' ;
186
+ }
180
187
// make bootstrap column
181
188
out += `\t\t <div class="col-md-${ field . size } mt-3">\n` ;
182
189
out += `\t\t\t <div class="form-group">\n` ;
183
- out += `\t\t\t\t <label for="${ field . id } "> \n` ;
190
+ if ( defClass == 'class="form-check-label"' ) {
191
+ out += inp ;
192
+ }
193
+ out += `\t\t\t\t <label for="${ field . id } " ${ defClass } > \n` ;
184
194
out += `\t\t\t\t\t {{__('${ field . label } ')}} \n` ;
185
195
out += `\t\t\t\t </label> \n` ;
186
- out += inp ;
196
+ if ( defClass != 'class="form-check-label"' ) {
197
+ out += inp ;
198
+ }
187
199
out += `\t\t\t </div>\n` ;
188
200
out += `\t\t </div>\n` ;
189
201
@@ -277,7 +289,7 @@ var app = new Vue({
277
289
}
278
290
}
279
291
280
- if ( field . id == '' ) {
292
+ if ( field . id == '' ) {
281
293
field . id = field . name ;
282
294
}
283
295
@@ -306,10 +318,10 @@ var app = new Vue({
306
318
// handle bootstrap class
307
319
if ( this . theme == 'bootstrap' ) {
308
320
if ( field . option == 'file' ) {
309
- var genClass = 'form-control-file ' + ` @error('${ field . name } ') is-invalid @enderror` ;
321
+ var genClass = 'form-control' + ` @error('${ field . name } ') is-invalid @enderror` ;
310
322
} else if ( field . option == 'checkbox' ) {
311
- var genClass = 'float-left ml-4 mt-1 form-check-inline ' + ` @error('${ field . name } ') is-invalid @enderror` ;
312
- } else {
323
+ var genClass = 'form-check-input ' + ` @error('${ field . name } ') is-invalid @enderror` ;
324
+ } else {
313
325
var genClass = generalClass + ` @error('${ field . name } ') is-invalid @enderror` ;
314
326
}
315
327
} else
@@ -390,15 +402,15 @@ var app = new Vue({
390
402
inp += `\t\t\t\t @foreach(${ rs } as ${ r } ) \n` ;
391
403
inp += `\t\t\t\t\t <option value="{{ ${ r } ->${ key } }}" ${ old } > {{${ r } ->${ title } }} </option> \n` ;
392
404
inp += `\t\t\t\t @endforeach \n` ;
393
- inp += '\t\t\t </select>' ;
405
+ inp += '\t\t\t </select>\n ' ;
394
406
395
407
out += this . makeLabel ( field , inp ) ;
396
408
break ;
397
409
case 'submit' :
398
410
399
411
switch ( this . theme ) {
400
412
case "bootstrap" :
401
- out += `\t\t <div class="col-md- ${ field . size } ">\n` ;
413
+ out += `\t\t <div class="col-12 ">\n` ;
402
414
var genClass = 'btn btn-primary mt-2' ;
403
415
404
416
break ;
@@ -441,6 +453,70 @@ var app = new Vue({
441
453
console . log ( 'unknow theme' ) ;
442
454
}
443
455
break ;
456
+ case 'switch' :
457
+
458
+ var old = '' ;
459
+ if ( this . old . trim ( ) !== '' ) {
460
+ old = ',' + this . old . replace ( '#name' , field . name ) ;
461
+ }
462
+ if ( attrs . indexOf ( 'value' ) === - 1 ) {
463
+ attrs = ' value="1" ' ;
464
+ }
465
+ switch ( this . theme ) {
466
+ case "bootstrap" :
467
+ // make bootstrap column
468
+ out += `\t\t <div class="col-md-${ field . size } mt-3">\n` ;
469
+ out += `\t\t\t <div class="form-check form-switch">\n` ;
470
+ out += `\t\t\t\t <input class="form-check-input ${ additinalCls } @error('${ field . name } ') is-invalid @enderror"
471
+ name="${ field . name } " type="checkbox" id="${ field . id } " @if(old('${ field . name } '${ old } ) == 1) checked="" @endif
472
+ ${ attrs } > \n` ;
473
+ out += `\t\t\t\t <label for="${ field . id } "> \n` ;
474
+ out += `\t\t\t\t\t {{__('${ field . label } ')}} \n` ;
475
+ out += `\t\t\t\t </label> \n` ;
476
+ out += `\t\t\t </div>\n` ;
477
+ out += `\t\t </div>\n` ;
478
+
479
+ break ;
480
+ case "semanticui" :
481
+ // make semanticui column
482
+ out += `\t\t <div class="${ $ . trim ( inWords ( field . size ) ) } wide column">\n` ;
483
+ out += `\t\t\t <div class="field">\n` ;
484
+ out += `\t\t\t\t <div class="ui toggle checkbox @error('${ field . name } ') error @enderror"> \n` ;
485
+ out += `\t\t\t\t <input type="checkbox @error('${ field . name } ') invalid @enderror ${ additinalCls } " name="${ field . name } " ${ attrs }
486
+ id="${ field . id } " @if(old('${ field . name } '${ old } ) == 1) checked="" @endif> \n ` ;
487
+ out += `\t\t\t\t\t <label for="${ field . id } "> \n` ;
488
+ out += `\t\t\t\t\t\t {{__('${ field . label } ')}} \n` ;
489
+ out += `\t\t\t\t\t </label> \n` ;
490
+ out += `\t\t\t\t </div> \n` ;
491
+ out += `\t\t\t </div>\n` ;
492
+ out += `\t\t </div>\n` ;
493
+
494
+ break ;
495
+ case "materialize" :
496
+ // make bootstrap column
497
+ out += `\t\t <div class="input-field col s${ field . size } ">\n` ;
498
+ out += `\t\t\t <div class="switch">\n` ;
499
+
500
+ out += `\t\t\t\t <label for="${ field . id } "> \n` ;
501
+ out += `\t\t\t\t\t <input type="checkbox ${ additinalCls } " name="${ field . name } " ${ attrs }
502
+ id="${ field . id } " @if(old('${ field . name } '${ old } ) == 1) checked="" @endif> \n ` ;
503
+ out += `\t\t\t\t\t <span class="lever"></span> \n` ;
504
+ out += `\t\t\t\t\t {{__('${ field . label } ')}} \n` ;
505
+ out += `\t\t\t\t </label> \n` ;
506
+
507
+ out += `\t\t\t </div>\n` ;
508
+ out += `\t\t </div>\n` ;
509
+
510
+ break ;
511
+ default :
512
+
513
+ }
514
+
515
+ // genClass += additinalCls;
516
+ // out += `\t\t\t <label> </label> \n`;
517
+ // out += `\t\t\t <input name="${field.name}" id="${field.id}" type="submit" class="${genClass}" value="{{__('${field.label}')}}" ${attrs} /> \n`;
518
+ // out += `\t\t </div>\n`;
519
+ break ;
444
520
}
445
521
}
446
522
0 commit comments