fix(docker): stack's env vars support empty value EE-1528 (#7592)

* EE-1528 fix(docker): stack's env vars support empty value

* EE-1528 fix(docker): handle no-value env as empty env
pull/7727/head
Rex Wang 2022-09-24 20:05:20 +08:00 committed by GitHub
parent 648c1db437
commit 9f7d5ac842
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 16 deletions

View File

@ -17,14 +17,6 @@ class EnvironmentVariablesSimpleModeItemController {
this.onChange(this.index, { ...this.variable, value }); this.onChange(this.index, { ...this.variable, value });
} }
hasValue() {
return typeof this.variable.value !== 'undefined';
}
removeValue() {
this.onChange(this.index, { name: this.variable.name });
}
$onInit() { $onInit() {
this.formName = `variableForm${this.index}`; this.formName = `variableForm${this.index}`;
} }

View File

@ -1,4 +1,4 @@
<ng-form class="env-item" name="$ctrl.{{ $ctrl.formName }}"> <ng-form class="env-item mt-1" name="$ctrl.{{ $ctrl.formName }}">
<div class="col-sm-5"> <div class="col-sm-5">
<div class="input-group input-group-sm env-item-key w-full"> <div class="input-group input-group-sm env-item-key w-full">
<span class="input-group-addon">name</span> <span class="input-group-addon">name</span>
@ -25,7 +25,7 @@
</div> </div>
</div> </div>
</div> </div>
<div ng-if="$ctrl.hasValue()" class="col-sm-6"> <div class="col-sm-6">
<div class="w-full env-item-value"> <div class="w-full env-item-value">
<div class="input-group input-group-sm"> <div class="input-group input-group-sm">
<span class="input-group-addon">value</span> <span class="input-group-addon">value</span>
@ -39,21 +39,16 @@
ng-change="$ctrl.onChangeValue($ctrl.variable.value)" ng-change="$ctrl.onChangeValue($ctrl.variable.value)"
/> />
</div> </div>
<button class="btn btn-sm btn-light" type="button" ng-click="$ctrl.removeValue()"> <i class="fa fa-minus" aria-hidden="true"></i> Remove value </button>
</div> </div>
<div class="form-group" ng-show="$ctrl[$ctrl.formName].value.$invalid"> <div class="form-group" ng-show="$ctrl[$ctrl.formName].value.$invalid">
<div class="col-sm-12 small text-warning"> <div class="col-sm-12 small text-warning">
<div ng-messages="$ctrl[$ctrl.formName].value.$error"> <div ng-messages="$ctrl[$ctrl.formName].value.$error">
<p ng-message="required"> <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> Value is required. </p>
<p ng-message="pattern"> <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> Value is invalid. </p> <p ng-message="pattern"> <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> Value is invalid. </p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div> <div>
<button class="btn btn-sm btn-light" type="button" ng-if="!$ctrl.hasValue()" ng-click="$ctrl.onChangeValue('')">
<pr-icon icon="'plus'" feather="true"></pr-icon> Add value
</button>
<button class="btn btn-dangerlight" type="button" ng-click="$ctrl.onRemove($ctrl.index)"> <button class="btn btn-dangerlight" type="button" ng-click="$ctrl.onRemove($ctrl.index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon> <pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
</button> </button>

View File

@ -6,7 +6,7 @@ angular.module('portainer.app').factory('FormHelper', [
helper.removeInvalidEnvVars = function (env) { helper.removeInvalidEnvVars = function (env) {
for (var i = env.length - 1; i >= 0; i--) { for (var i = env.length - 1; i >= 0; i--) {
var envvar = env[i]; var envvar = env[i];
if (!envvar.value || !envvar.name) { if (!envvar.name) {
env.splice(i, 1); env.splice(i, 1);
} }
} }