[ui] A few variables-ui-related bugfixes (#17319)

* A few variable-adding bugfixes

* Disable Delete button if only one KV is left, and remove entity warnings on Add More
This commit is contained in:
Phil Renaud 2023-05-25 17:11:13 -04:00 committed by GitHub
parent 86e04a4c6c
commit 294aa4bfe7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 15 deletions

3
.changelog/17319.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:bug
ui: fixed a handful of UX-related bugs during variable editing
```

View File

@ -14,6 +14,17 @@
Format: <code>nomad/jobs/&lt;jobname&gt;</code>, <code>nomad/jobs/&lt;jobname&gt;/&lt;groupname&gt;</code>, <code>nomad/jobs/&lt;jobname&gt;/&lt;groupname&gt;/&lt;taskname&gt;</code></p> Format: <code>nomad/jobs/&lt;jobname&gt;</code>, <code>nomad/jobs/&lt;jobname&gt;/&lt;groupname&gt;</code>, <code>nomad/jobs/&lt;jobname&gt;/&lt;groupname&gt;/&lt;taskname&gt;</code></p>
</div> </div>
{{/unless}} {{/unless}}
{{#if this.shouldShowLinkedEntities}}
<VariableForm::RelatedEntities
@new={{true}}
@job={{@model.pathLinkedEntities.job}}
@group={{@model.pathLinkedEntities.group}}
@task={{@model.pathLinkedEntities.task}}
@namespace={{this.variableNamespace}}
/>
{{/if}}
{{/if}} {{/if}}
{{#if this.hasConflict}} {{#if this.hasConflict}}
@ -137,6 +148,7 @@
class="delete-row button is-danger is-inverted" class="delete-row button is-danger is-inverted"
type="button" type="button"
{{on "click" (action this.deleteRow entry)}} {{on "click" (action this.deleteRow entry)}}
disabled={{eq this.keyValues.length 1}}
> >
Delete Delete
</button> </button>
@ -150,16 +162,6 @@
{{/if}} {{/if}}
{{/if}} {{/if}}
{{#if (and this.shouldShowLinkedEntities @model.isNew)}}
<VariableForm::RelatedEntities
@new={{true}}
@job={{@model.pathLinkedEntities.job}}
@group={{@model.pathLinkedEntities.group}}
@task={{@model.pathLinkedEntities.task}}
@namespace={{this.variableNamespace}}
/>
{{/if}}
<footer> <footer>
{{#unless this.isJSONView}} {{#unless this.isJSONView}}
{{#unless this.isJobTemplateVariable}} {{#unless this.isJobTemplateVariable}}

View File

@ -140,7 +140,9 @@ export default class VariableFormComponent extends Component {
let existingVariable = existingVariables let existingVariable = existingVariables
.without(this.args.model) .without(this.args.model)
.find( .find(
(v) => v.path === pathValue && v.namespace === this.variableNamespace (v) =>
v.path === pathValue &&
(v.namespace === this.variableNamespace || !this.variableNamespace)
); );
if (existingVariable) { if (existingVariable) {
return { return {
@ -180,7 +182,10 @@ export default class VariableFormComponent extends Component {
} }
@action appendRow() { @action appendRow() {
this.keyValues.pushObject(copy(EMPTY_KV)); // Clear our any entity errors
let newRow = copy(EMPTY_KV);
newRow.warnings = EmberObject.create();
this.keyValues.pushObject(newRow);
} }
@action deleteRow(row) { @action deleteRow(row) {
@ -372,7 +377,8 @@ export default class VariableFormComponent extends Component {
return ( return (
this.args.model.pathLinkedEntities?.job || this.args.model.pathLinkedEntities?.job ||
this.args.model.pathLinkedEntities?.group || this.args.model.pathLinkedEntities?.group ||
this.args.model.pathLinkedEntities?.task this.args.model.pathLinkedEntities?.task ||
trimPath([this.path]) === 'nomad/jobs'
); );
} }

View File

@ -12,7 +12,9 @@
{{else if @group}} {{else if @group}}
group <LinkTo @route="jobs.job.task-group" @models={{array (concat @job "@" @namespace) @group}}>{{@group}} <FlightIcon @name="external-link" /></LinkTo> group <LinkTo @route="jobs.job.task-group" @models={{array (concat @job "@" @namespace) @group}}>{{@group}} <FlightIcon @name="external-link" /></LinkTo>
{{else if @job}} {{else if @job}}
job <LinkTo @route="jobs.job" @model={{concat @job "@" @namespace}}>{{@job}} <FlightIcon @name="external-link" /></LinkTo>< job <LinkTo @route="jobs.job" @model={{concat @job "@" @namespace}}>{{@job}} <FlightIcon @name="external-link" /></LinkTo>
{{else}}
all nomad jobs in this namespace
{{/if}} {{/if}}
</span> </span>
</p> </p>

View File

@ -82,7 +82,8 @@ export default class VariablesVariableIndexController extends Controller {
return ( return (
this.model.pathLinkedEntities?.job || this.model.pathLinkedEntities?.job ||
this.model.pathLinkedEntities?.group || this.model.pathLinkedEntities?.group ||
this.model.pathLinkedEntities?.task this.model.pathLinkedEntities?.task ||
this.model.path === 'nomad/jobs'
); );
} }