Skip to content

Commit d88b0f7

Browse files
authored
Merge pull request #286 from Authress-Engineering/fix-clear-select
Fix clearing select.
2 parents 19aef0a + 33a3abb commit d88b0f7

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

src/components/api-request.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ export default class ApiRequest extends LitElement {
179179
style = "width:100%;"
180180
data-ptype = "${paramLocation}"
181181
data-pname = "${paramName}"
182-
data-default = "${Array.isArray(defaultVal) ? defaultVal.join('~|~') : defaultVal}"
182+
data-required="${paramRequired}"
183183
data-param-serialize-style = "${paramStyle}"
184184
data-param-serialize-explode = "${paramExplode}"
185185
data-array = "true"
@@ -198,7 +198,7 @@ export default class ApiRequest extends LitElement {
198198
rows = 3
199199
data-ptype = "${paramLocation}"
200200
data-pname = "${paramName}"
201-
data-default = "${defaultVal}"
201+
data-required="${paramRequired}"
202202
data-param-serialize-style = "${paramStyle}"
203203
data-param-serialize-explode = "${paramExplode}"
204204
spellcheck = "false"
@@ -209,7 +209,8 @@ export default class ApiRequest extends LitElement {
209209
<select aria-label="mime type" style="width:100%; margin-top: 1rem; margin-bottom: 1rem;"
210210
data-ptype="${paramLocation}"
211211
data-pname="${paramName}"
212-
.value="${this.fillRequestWithDefault === 'true' ? defaultVal : ''}"
212+
data-required="${paramRequired}"
213+
.value="${this.fillRequestWithDefault === 'true' ? defaultVal : (!generatedParamSchema.allowedValues.length || generatedParamSchema.allowedValues.some(v => v === null) ? null : generatedParamSchema.allowedValues[0])}"
213214
@change="${(e) => { this.storedParamValues[paramName] = e; this.computeCurlSyntax(); }}">
214215
${generatedParamSchema.allowedValues.map((allowedValue) => html`
215216
<option value="${allowedValue}" ?selected = '${allowedValue === this.storedParamValues[paramName]}'>
@@ -228,7 +229,7 @@ export default class ApiRequest extends LitElement {
228229
part="textbox textbox-param"
229230
data-ptype="${paramLocation}"
230231
data-pname="${paramName}"
231-
data-default="${Array.isArray(defaultVal) ? defaultVal.join('~|~') : defaultVal}"
232+
data-required="${paramRequired}"
232233
data-array="false"
233234
@keyup="${this.requestParamFunction}"
234235
.value="${this.fillRequestWithDefault === 'true' ? defaultVal : ''}"
@@ -487,7 +488,7 @@ export default class ApiRequest extends LitElement {
487488
</select>`
488489
}
489490
${displayedBodyExample ? html`
490-
<div class="example" data-default = '${displayedBodyExample.exampleId}'>
491+
<div class="example">
491492
${displayedBodyExample.exampleSummary && displayedBodyExample.exampleSummary.length > 80 ? html`<div style="padding: 4px 0"> ${displayedBodyExample.exampleSummary} </div>` : ''}
492493
${displayedBodyExample.exampleDescription ? html`<div class="m-markdown-small" style="padding: 4px 0"> ${unsafeHTML(toMarkdown(displayedBodyExample.exampleDescription || ''))} </div>` : ''}
493494
<!-- this textarea is for user to edit the example -->
@@ -499,8 +500,6 @@ export default class ApiRequest extends LitElement {
499500
aria-label = "${getI18nText('operations.request-body')}"
500501
spellcheck = "false"
501502
data-ptype = "${reqBody.mimeType}"
502-
data-default = "${displayedBodyExample.exampleFormat === 'text' ? displayedBodyExample.exampleValue : JSON.stringify(displayedBodyExample.exampleValue, null, 8)}"
503-
data-default-format = "${displayedBodyExample.exampleFormat}"
504503
style="width:100%; resize:vertical;"
505504
.value="${this.fillRequestWithDefault === 'true' ? (displayedBodyExample.exampleFormat === 'text' ? displayedBodyExample.exampleValue : JSON.stringify(displayedBodyExample.exampleValue, null, 8)) : ''}"
506505
></textarea>
@@ -692,7 +691,7 @@ export default class ApiRequest extends LitElement {
692691

693692
onClearRequestData(e) {
694693
const requestPanelEl = e.target.closest('.request-panel');
695-
const requestPanelInputEls = [...requestPanelEl.querySelectorAll('input, tag-input, textarea:not(.is-hidden)')];
694+
const requestPanelInputEls = [...requestPanelEl.querySelectorAll('input, select, tag-input, textarea:not(.is-hidden)')];
696695
requestPanelInputEls.forEach((el) => { el.value = ''; });
697696

698697
const event = { bubbles: true, composed: true, detail: { explorerLocation: this.elementId, operation: { method: this.method, path: this.path }, type: 'RequestCleared' } };
@@ -709,6 +708,14 @@ export default class ApiRequest extends LitElement {
709708
error.code = 'MissingPathParameter';
710709
throw error;
711710
}
711+
712+
const requiredPanelEl = [...requestPanelEl.querySelectorAll("[data-required='true']")];
713+
const missingRequiredParameterValue = requiredPanelEl.find(el => !el.value);
714+
if (missingRequiredParameterValue) {
715+
const error = Error(`Required parameter found, but no valid value was set for the parameter: '${missingRequiredParameterValue.dataset.pname}'.`);
716+
error.code = 'MissingRequiredParameter';
717+
throw error;
718+
}
712719
}
713720

714721
recomputeFetchOptions() {

src/components/request-form-table.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,6 @@ function inputFieldKeyLabel(isOption, keyLabel, keyDescription, dataType, deprec
216216
// data-array = "false"
217217
// data-ptype = "form-input"
218218
// data-pname = "${keyLabel}"
219-
// data-default = "${defaultValue || ''}"
220219
// spellcheck = "false"
221220
// .value="${options.fillRequestWithDefault === 'true' ? defaultValue : ''}"
222221
// ></textarea>
@@ -254,7 +253,6 @@ function getArrayFormField(keyLabel, example, defaultValue, format, rowGenerator
254253
style = "width:100%;"
255254
data-ptype = "form-input"
256255
data-pname = "${keyLabel}"
257-
data-default = "${defaultValue || ''}"
258256
data-array = "true"
259257
placeholder="${(Array.isArray(example) ? example[0] : example) || defaultValue || 'add-multiple ↩'}"
260258
.value = "${defaultValue || ''}"
@@ -273,7 +271,6 @@ function getPrimitiveFormField(keyLabel, example, defaultValue, format, options,
273271
style = "width:100%"
274272
data-ptype = "form-input"
275273
data-pname = "${keyLabel}"
276-
data-default = "${defaultValue || ''}"
277274
data-array = "false"
278275
/>
279276
</td>`;

0 commit comments

Comments
 (0)