Skip to content

Commit

Permalink
HBW-332 Dynamic delete_if and disable_if options for checkbox
Browse files Browse the repository at this point in the history
  • Loading branch information
vladdoncheg committed May 27, 2021
1 parent b5455e7 commit 5898069
Show file tree
Hide file tree
Showing 7 changed files with 337 additions and 11 deletions.
5 changes: 3 additions & 2 deletions hbw/app/javascript/packs/hbw/components/form/checkbox.js.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import cx from 'classnames';
import compose from 'shared/utils/compose';
import { withConditions, withErrorBoundary } from 'shared/hoc';
import { withCallbacks, withConditions, withErrorBoundary } from 'shared/hoc';

modulejs.define('HBWFormCheckbox', ['React'], (React) => {
class HBWFormCheckbox extends React.Component {
Expand All @@ -17,6 +17,7 @@ modulejs.define('HBWFormCheckbox', ['React'], (React) => {
}

handleChange = () => {
this.props.fireFieldValueUpdate(this.props.name, !this.state.value);
this.setState(prevState => ({ value: !prevState.value }));
};

Expand Down Expand Up @@ -70,5 +71,5 @@ modulejs.define('HBWFormCheckbox', ['React'], (React) => {
};
}

return compose(withConditions, withErrorBoundary)(HBWFormCheckbox);
return compose(withCallbacks, withConditions, withErrorBoundary)(HBWFormCheckbox);
});
247 changes: 245 additions & 2 deletions hbw/config/yml_api.test.camunda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,9 @@ get:
- <<: *default_process-definition
id: "testProcess:37:37"
deploymentId: "37"
- <<: *default_process-definition
id: "testProcess:38:38"
deploymentId: "38"

# form definitions
task/816011/deployed-form: &form_with_everything
Expand Down Expand Up @@ -2292,6 +2295,198 @@ get:
condition: >
"$var" == "Hide fields"
task/111138/deployed-form:
"": |
form:
css_class: col-xs-12 col-sm-6 col-md-5 col-lg-4
fields:
- name: controlDeleteCheckbox
type: checkbox
label: Control delete checkbox
css_class: col-xs-6 col-sm-4 col-md-3
- name: controlDisableCheckbox
type: checkbox
label: Control disable checkbox
css_class: col-xs-6 col-sm-4 col-md-3
- name: group1
type: group
label: Some group
css_class: col-xs-12
fields:
- name: dependentStatic
type: static
css_class: col-xs-12 col-sm-6 col-md-4
html: "Dependent static"
dynamic: true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: dependentSelect
type: select
label: Dependent select
css_class: col-xs-12 col-sm-6 col-md-4 dependent-select
choices:
- Option 1
- Option 2
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: dependentDatetime
type: datetime
label: Dependent datetime
css_class: col-xs-6 col-sm-4 col-md-3
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: dependentString
type: string
label: Dependent string
css_class: col-xs-6 col-sm-4 col-md-3
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: dependentCheckbox
type: checkbox
label: Dependent checkbox
css_class: col-xs-6 col-sm-4 col-md-3
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: dependentText
type: text
label: Dependent text
css_class: col-xs-6 col-sm-4 col-md-3
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: dependentSelectTable
type: select_table
label: Dependent select_table
css_class: col-xs-12 pre-scrollable dependent-select-table
nullable: false
rows:
- name: Name
type: string
alignment: right
- name: Code
- name: Arbitrary number
type: number
precision: 2
separator: "."
delimiter: ","
choices:
-
- 125342501
- My favourite region name
- My favourite region code
- 235234521
-
- 125342601
- My favourite region name2
- My favourite region code2
- 3252349284
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: dependentUploadedFile
type: file_upload
label: Dependent file_upload
css_class: col-md-4 col-xs-4 col-lg-4
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: homsOrderDataFileList
type: file_list
label: Dependent file_list
css_class: col-md-8 col-xs-8 col-lg-8
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: dependentRadioButton
type: radio_button
label: Dependent radio button
css_class: col-xs-6 col-sm-4 col-md-3
variants:
- value: Dependent radio button
name: dependentRadioButton
label: Dependent radio button
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
- name: dependentGroup
type: group
label: Dependent group
css_class: col-xs-12
fields:
- name: stringInDependentGroup
type: string
label: Some string
css_class: col-xs-6 col-sm-4 col-md-3
dynamic: true
disable_if:
- variable: controlDisableCheckbox
condition: >
$var == true
delete_if:
- variable: controlDeleteCheckbox
condition: >
$var == true
# task variables
task/816011/variables:
"":
Expand Down Expand Up @@ -2865,6 +3060,32 @@ get:
dependentRadioButton:
type: "string"
value: ""
task/111138/variables:
"":
homsOrderCode:
type: "string"
value: "ORD-38"
dependentSelect:
type: "select"
value: "Option 1"
dependentDatetime:
type: "string"
value: "2016-09-30T14:52:20.000+03:00"
dependentString:
type: "string"
value: ""
dependentText:
type: "string"
value: ""
dependentSelectTable:
type: "select_table"
value: ""
dependentUploadedFile:
type: "file_upload"
value: null
dependentRadioButton:
type: "string"
value: ""

task/816011:
"": &default_tasks
Expand Down Expand Up @@ -3153,14 +3374,22 @@ get:
processInstanceId: 36
processDefinitionId: "testProcess:36:36"

task/111127:
task/111137:
"":
<<: *default_tasks
id: "111137"
formKey: "test_form_with_dynamic_conditions.yml"
processInstanceId: 37
processDefinitionId: "testProcess:37:37"

task/111138:
"":
<<: *default_tasks
id: "111138"
formKey: "test_form_with_dynamic_conditions.yml"
processInstanceId: 38
processDefinitionId: "testProcess:38:38"

put: {}
patch: {}
post:
Expand Down Expand Up @@ -3360,6 +3589,11 @@ post:
formKey: "test_form_with_dynamic_conditions.yml"
processInstanceId: 37
processDefinitionId: "testProcess:37:37"
- <<: *default_tasks
id: "111138"
formKey: "test_form_with_dynamic_conditions.yml"
processInstanceId: 38
processDefinitionId: "testProcess:38:38"
"active=true&candidateUser=demo&processVariables[][name]=homsOrderCode&processVariables[][operator]=like&processVariables[][value]=%":
- <<: *default_tasks
id: "111124"
Expand Down Expand Up @@ -3605,6 +3839,11 @@ post:
- <<: *default_process-instances
id: "111137"
processDefinitionId: "testProcess:37:37"
"active=true&variables[][name]=homsOrderCode&variables[][value]=ORD-38&variables[][operator]=eq":
data:
- <<: *default_process-instances
id: "111138"
processDefinitionId: "testProcess:38:38"

task/816011/submit-form:
"variables[homsOrderDataAddress][value]=test+address&variables[homsOrderDataBeginDate][value]=2016-09-30T11:52:20+00:00&variables[homsOrderDataEndDate][value]=2016-09-30T11:52:20+00:00&variables[homsOrderDataHomePlace][value]=test+home+place&variables[homsOrderDataRecommendation][value]=&variables[homsOrderDataSelect][value]=123456":
Expand Down Expand Up @@ -3645,7 +3884,7 @@ post:
"userId=demo": null

variable-instance:
"processInstanceIdIn[]=814972&processInstanceIdIn[]=2&processInstanceIdIn[]=3&processInstanceIdIn[]=4&processInstanceIdIn[]=5&processInstanceIdIn[]=6&processInstanceIdIn[]=7&processInstanceIdIn[]=8&processInstanceIdIn[]=9&processInstanceIdIn[]=10&processInstanceIdIn[]=11&processInstanceIdIn[]=12&processInstanceIdIn[]=13&processInstanceIdIn[]=14&processInstanceIdIn[]=15&processInstanceIdIn[]=16&processInstanceIdIn[]=17&processInstanceIdIn[]=18&processInstanceIdIn[]=19&processInstanceIdIn[]=20&processInstanceIdIn[]=21&processInstanceIdIn[]=22&processInstanceIdIn[]=23&processInstanceIdIn[]=24&processInstanceIdIn[]=25&processInstanceIdIn[]=26&processInstanceIdIn[]=27&processInstanceIdIn[]=28&processInstanceIdIn[]=29&processInstanceIdIn[]=30&processInstanceIdIn[]=31&processInstanceIdIn[]=32&processInstanceIdIn[]=33&processInstanceIdIn[]=34&processInstanceIdIn[]=35&processInstanceIdIn[]=36&processInstanceIdIn[]=37&variableName=homsOrderCode":
"processInstanceIdIn[]=814972&processInstanceIdIn[]=2&processInstanceIdIn[]=3&processInstanceIdIn[]=4&processInstanceIdIn[]=5&processInstanceIdIn[]=6&processInstanceIdIn[]=7&processInstanceIdIn[]=8&processInstanceIdIn[]=9&processInstanceIdIn[]=10&processInstanceIdIn[]=11&processInstanceIdIn[]=12&processInstanceIdIn[]=13&processInstanceIdIn[]=14&processInstanceIdIn[]=15&processInstanceIdIn[]=16&processInstanceIdIn[]=17&processInstanceIdIn[]=18&processInstanceIdIn[]=19&processInstanceIdIn[]=20&processInstanceIdIn[]=21&processInstanceIdIn[]=22&processInstanceIdIn[]=23&processInstanceIdIn[]=24&processInstanceIdIn[]=25&processInstanceIdIn[]=26&processInstanceIdIn[]=27&processInstanceIdIn[]=28&processInstanceIdIn[]=29&processInstanceIdIn[]=30&processInstanceIdIn[]=31&processInstanceIdIn[]=32&processInstanceIdIn[]=33&processInstanceIdIn[]=34&processInstanceIdIn[]=35&processInstanceIdIn[]=36&processInstanceIdIn[]=37&processInstanceIdIn[]=38&variableName=homsOrderCode":
- processInstanceId: 814972
type: string
name: homsOrderCode
Expand Down Expand Up @@ -3794,6 +4033,10 @@ post:
type: string
name: homsOrderCode
value: ORD-37
- processInstanceId: 38
type: string
name: homsOrderCode
value: ORD-38

variableName=homsOrderCode: []

Expand Down
Loading

0 comments on commit 5898069

Please sign in to comment.