Skip to content

Commit e65c4d7

Browse files
authored
Merge pull request #491 from jeffibm/fix-refresh-in-progress
Disable all fields when a refresh action is in progress
2 parents c46cbed + a1ae3b5 commit e65c4d7

File tree

4 files changed

+27
-18
lines changed

4 files changed

+27
-18
lines changed

src/dialog-user/components/dialog-user/dialog.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ <h2 translate>No Provisioning Dialog Available.</h2>
1313
</div>
1414
<div class="panel-body">
1515
<div ng-repeat="field in buttonGroup.dialog_fields">
16-
<dialog-field on-update="vm.updateDialogField(dialogFieldName, value)" single-refresh="vm.refreshSingleField(field)" field="vm.dialogFields[field.name]" input-disabled="vm.inputDisabled" reconfigure-mode="vm.reconfigureMode"></dialog-field>
16+
<dialog-field on-update="vm.updateDialogField(dialogFieldName, value)" single-refresh="vm.refreshSingleField(field)" field="vm.dialogFields[field.name]" input-disabled="vm.inputDisabled" reconfigure-mode="vm.reconfigureMode" are-fields-being-refreshed="vm.areFieldsBeingRefreshed"></dialog-field>
1717
</div>
1818
</div>
1919
</div>

src/dialog-user/components/dialog-user/dialogField.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<div ng-switch on="vm.dialogField.type">
1616
<div class="col-sm-4" ng-switch-when="DialogFieldTextBox">
1717
<input ng-model="vm.dialogField.default_value"
18-
ng-disabled="vm.dialogField.read_only || vm.inputDisabled || vm.dialogField.disabled"
18+
ng-disabled="vm.isFieldDisabled()"
1919
ng-change="vm.changesHappened()"
2020
ng-model-options="{debounce: {'default': 500}}"
2121
class="form-control"
@@ -29,7 +29,7 @@
2929

3030
<div class="col-sm-8" ng-switch-when="DialogFieldTextAreaBox">
3131
<textarea ng-model="vm.dialogField.default_value"
32-
ng-disabled="vm.dialogField.read_only || vm.inputDisabled || vm.dialogField.disabled"
32+
ng-disabled="vm.isFieldDisabled()"
3333
ng-change="vm.changesHappened()"
3434
ng-model-options="{debounce: {'default': 500}}"
3535
class="form-control"
@@ -46,7 +46,7 @@
4646
<input ng-model="vm.dialogField.default_value"
4747
ng-true-value="'t'"
4848
ng-false-value="'f'"
49-
ng-disabled="vm.dialogField.read_only || vm.inputDisabled || vm.dialogField.disabled"
49+
ng-disabled="vm.isFieldDisabled()"
5050
ng-change="vm.changesHappened()"
5151
type="checkbox"
5252
uib-tooltip="{{ ::inputTitle }}"
@@ -62,7 +62,7 @@
6262
ng-model="vm.dialogField.default_value"
6363
watch-model="vm.dialogField.values"
6464
ng-change="vm.changesHappened()"
65-
ng-disabled="vm.dialogField.read_only || vm.inputDisabled || vm.dialogField.disabled"
65+
ng-disabled="vm.isFieldDisabled()"
6666
class="form-control"
6767
data-container="body"
6868
id="{{ vm.dialogField.name }}"
@@ -77,7 +77,7 @@
7777
ng-model="vm.dialogField.default_value"
7878
watch-model="vm.dialogField.values"
7979
ng-change="vm.changesHappened()"
80-
ng-disabled="vm.dialogField.read_only || vm.inputDisabled || vm.dialogField.disabled"
80+
ng-disabled="vm.isFieldDisabled()"
8181
input-id="{{ vm.dialogField.name }}"
8282
ng-options="value[0] as value[1] for value in vm.dialogField.values"
8383
miq-options="{ 'data-tokens': value[0] + ' ' + value[1] }"
@@ -92,7 +92,7 @@
9292
ng-model="vm.dialogField.default_value"
9393
watch-model="vm.dialogField.values"
9494
ng-change="vm.changesHappened()"
95-
ng-disabled="vm.dialogField.read_only || vm.inputDisabled || vm.dialogField.disabled"
95+
ng-disabled="vm.isFieldDisabled()"
9696
class="form-control"
9797
data-container="body"
9898
id="{{ vm.dialogField.name }}"
@@ -105,7 +105,7 @@
105105
ng-model="vm.dialogField.default_value"
106106
watch-model="vm.dialogField.values"
107107
ng-change="vm.changesHappened()"
108-
ng-disabled="vm.dialogField.read_only || vm.inputDisabled || vm.dialogField.disabled"
108+
ng-disabled="vm.isFieldDisabled()"
109109
class="form-control"
110110
id="{{ vm.dialogField.name }}"
111111
ng-options="fieldValue.id as fieldValue.description for fieldValue in vm.dialogField.values"
@@ -125,7 +125,7 @@
125125
<input type="radio"
126126
ng-model="vm.dialogField.default_value"
127127
ng-change="vm.changesHappened()"
128-
ng-disabled="vm.dialogField.read_only || vm.inputDisabled || vm.dialogField.disabled"
128+
ng-disabled="vm.isFieldDisabled()"
129129
name="{{ vm.dialogField.name }}"
130130
value="{{ ::fieldValue[0] }}"
131131
id="{{ vm.dialogField.name }}"/>

src/dialog-user/components/dialog-user/dialogField.ts

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export class DialogFieldController {
2020
public validation: any;
2121
public minDate: any;
2222
public clonedDialogField: any;
23+
public areFieldsBeingRefreshed: boolean;
2324

2425
/* @ngInject */
2526
constructor(DialogData: any) {
@@ -87,13 +88,15 @@ export class DialogFieldController {
8788
* @function changesHappened
8889
*/
8990
public changesHappened() {
90-
this.validateField();
91-
92-
const field = this.dialogField;
93-
this.onUpdate({
94-
dialogFieldName: field.name,
95-
value: field.default_value,
96-
});
91+
if (!this.areFieldsBeingRefreshed) {
92+
this.validateField();
93+
94+
const field = this.dialogField;
95+
this.onUpdate({
96+
dialogFieldName: field.name,
97+
value: field.default_value,
98+
});
99+
}
97100
}
98101

99102
/**
@@ -138,6 +141,10 @@ export class DialogFieldController {
138141
public refreshSingleField() {
139142
this.singleRefresh({ field: this.field.name });
140143
}
144+
145+
public isFieldDisabled() {
146+
return this.areFieldsBeingRefreshed || this.dialogField.read_only || this.inputDisabled || this.dialogField.disabled;
147+
}
141148
}
142149

143150
export default class DialogField {
@@ -151,6 +158,7 @@ export default class DialogField {
151158
singleRefresh: '&',
152159
options: '=?',
153160
inputDisabled: '=?',
154-
reconfigureMode: '<'
161+
reconfigureMode: '<',
162+
areFieldsBeingRefreshed: '<',
155163
};
156164
}

src/dialog-user/components/dialog-user/dialogUser.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ export default class DialogUser {
294294
refreshField: '&',
295295
onUpdate: '&',
296296
inputDisabled: '=?',
297-
reconfigureMode: '<'
297+
reconfigureMode: '<',
298+
areFieldsBeingRefreshed: '<',
298299
};
299300
}

0 commit comments

Comments
 (0)