File tree 3 files changed +35
-1
lines changed
form-builder/addon/components/cfb-form-editor
3 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -31,8 +31,18 @@ export default class CalumaOptionsService extends Service {
31
31
: null ;
32
32
}
33
33
34
+ /**
35
+ * Use number separator widget for all viable questions (integer, float and
36
+ * calculated float) without exceptions.
37
+ */
34
38
alwaysUseNumberSeparatorWidget = false ;
35
39
40
+ /**
41
+ * Pre-select number separator widget when creating a viable question in the
42
+ * form builder.
43
+ */
44
+ useNumberSeparatorWidgetAsDefault = false ;
45
+
36
46
/**
37
47
* Registers a new component override.
38
48
*
Original file line number Diff line number Diff line change 35
35
@name =" __typename"
36
36
@required ={{ true }}
37
37
@disabled ={{ not (is-empty @slug )}}
38
- @on-update ={{ changeset-set f.model " __typename " }}
38
+ @on-update ={{ this.updateType }}
39
39
/>
40
40
41
41
<f .input
Original file line number Diff line number Diff line change @@ -501,6 +501,30 @@ export default class CfbFormEditorQuestion extends Component {
501
501
}
502
502
}
503
503
504
+ @action
505
+ updateType ( value , changeset ) {
506
+ changeset . set ( "__typename" , value ) ;
507
+
508
+ const defaultWidget = "cf-field/input/number-separator" ;
509
+ const currentWidget = changeset . get ( "meta.widgetOverride" ) ;
510
+ const isViableType = [
511
+ "IntegerQuestion" ,
512
+ "FloatQuestion" ,
513
+ "CalculatedFloatQuestion" ,
514
+ ] . includes ( value ) ;
515
+
516
+ if ( this . calumaOptions . useNumberSeparatorWidgetAsDefault ) {
517
+ if ( isViableType && ! currentWidget ) {
518
+ // Set the default widget as override if the question type is viable for
519
+ // it and there is no widget selected yet
520
+ changeset . set ( "meta.widgetOverride" , defaultWidget ) ;
521
+ } else if ( ! isViableType && currentWidget === defaultWidget ) {
522
+ // Remove default widget for non viable question types
523
+ changeset . set ( "meta.widgetOverride" , undefined ) ;
524
+ }
525
+ }
526
+ }
527
+
504
528
@action
505
529
updateSubForm ( value , changeset ) {
506
530
changeset . set ( "subForm.slug" , value . slug ) ;
You can’t perform that action at this time.
0 commit comments