mirror of
https://github.com/hashicorp/vault.git
synced 2025-09-19 12:51:08 +02:00
* Completed initial replacement of editor * fixing ts issues * removing codemirror modifier and deps * working on replacing the code editor * addressing linting concerns * cleaning up policy-form editor * fixing linting issues * fixing linting issues * fixing tests * fixing tests * fixing tests * fixing tests * fixing failing tests * cleaning up PR * fixing tests * remove outdated message for navigating editor * fix linting in tests * add changelog * fix tests * update naming * remove unused lint param + name changes * update test selector usage * update test selector usage * update test selector usage * lint fixes * replace page object selectors * lint fix * fix lint * fix lint after merge * update tests * remove import --------- Co-authored-by: Lane Wetmore <lane.wetmore@hashicorp.com>
54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import Component from '@glimmer/component';
|
|
import { action } from '@ember/object';
|
|
import { tracked } from '@glimmer/tracking';
|
|
|
|
/**
|
|
* @module KvPatchJsonForm
|
|
* @description
|
|
* This component renders one of two ways to patch a KV v2 secret (the other is using the KvPatch::Editor::Form).
|
|
*
|
|
* @example
|
|
* <KvPatch::JsonForm @onSubmit={{perform this.save}} @onCancel={{this.onCancel}} @isSaving={{this.save.isRunning}} />
|
|
*
|
|
* @param {boolean} isSaving - if true, disables the save and cancel buttons. useful if the onSubmit callback is a concurrency task
|
|
* @param {function} onCancel - called when form is canceled
|
|
* @param {function} onSubmit - called when form is saved, called with with the key value object containing patch data
|
|
* @param {object} subkeys - leaf keys of a kv v2 secret, all values (unless a nested object with more keys) return null. used for toggle that reveals codeblock of subkey structure
|
|
* @param {string} submitError - error message string from parent if submit failed
|
|
*/
|
|
|
|
export default class KvPatchJsonForm extends Component {
|
|
@tracked jsonObject;
|
|
@tracked lintingErrors;
|
|
|
|
constructor() {
|
|
super(...arguments);
|
|
// prefill JSON editor with an empty object
|
|
this.jsonObject = JSON.stringify({ '': '' }, null, 2);
|
|
}
|
|
|
|
@action
|
|
handleJson(value) {
|
|
this.lintingErrors = false;
|
|
|
|
try {
|
|
JSON.parse(value);
|
|
this.jsonObject = value;
|
|
} catch {
|
|
this.lintingErrors = true;
|
|
}
|
|
}
|
|
|
|
@action
|
|
submit(event) {
|
|
event.preventDefault();
|
|
const patchData = JSON.parse(this.jsonObject);
|
|
this.args.onSubmit(patchData);
|
|
}
|
|
}
|