From 72aa9aa54d31a425648db15c0f9d7a024e619ea0 Mon Sep 17 00:00:00 2001 From: TheBurchLog <5104941+TheBurchLog@users.noreply.github.com> Date: Wed, 29 May 2024 18:11:03 +0000 Subject: [PATCH] Support static Parameters for commands --- package-lock.json | 52 +++++++++++++++++++++++++++++++++++++++++-- package.json | 2 +- src/dynamicChoices.js | 31 +++++++++++++++++++------- 3 files changed, 74 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9033ed7..1db8b51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@beer-garden/builder", - "version": "3.2.0", + "version": "3.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@beer-garden/builder", - "version": "3.2.0", + "version": "3.2.1", "license": "MIT", "dependencies": { "objectpath": "^1.2.1", @@ -1300,6 +1300,16 @@ "node": ">=8" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -2905,6 +2915,13 @@ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", "dev": true }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4655,6 +4672,13 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "node_modules/nan": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", + "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", + "dev": true, + "optional": true + }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -9219,6 +9243,16 @@ "dev": true, "optional": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -10598,6 +10632,13 @@ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -11975,6 +12016,13 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "nan": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", + "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", + "dev": true, + "optional": true + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", diff --git a/package.json b/package.json index 809fea9..0fea079 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@beer-garden/builder", - "version": "3.2.0", + "version": "3.2.1", "description": "AngularJS module to generate Angular-Schema-Form from JSON", "author": "The Beergarden Team", "contributors": [], diff --git a/src/dynamicChoices.js b/src/dynamicChoices.js index f245e3f..e7d0a2f 100644 --- a/src/dynamicChoices.js +++ b/src/dynamicChoices.js @@ -57,6 +57,18 @@ export function setDynamicChoices(schema, form, parameter, parentKey) { form["choices"]["httpGet"]["queryParameterFields"][pair[0]] = field; } } else if (parameter.choices.type === "command") { + + let providedParameters = {}; + + for (let i = 0; i < parameter.choices.details["args"].length; i++) { + let pair = parameter.choices.details["args"][i]; + let field = fieldPath(pair[1], parentKey); + + if (field.indexOf('"') >= 0){ + providedParameters[pair[0]] = field.split('"')[1]; + } + } + form["choices"] = { updateOn: ["instance_name"], callback: { @@ -65,6 +77,7 @@ export function setDynamicChoices(schema, form, parameter, parentKey) { { command: parameter.choices.details["name"], parameterNames: [], + parameters: providedParameters, }, ], argumentFields: [], @@ -75,15 +88,17 @@ export function setDynamicChoices(schema, form, parameter, parentKey) { let pair = parameter.choices.details["args"][i]; let field = fieldPath(pair[1], parentKey); - // special fields are already in this, don't want to duplicate - if (!specialField(field)) { - form["choices"]["updateOn"].push(field); - } + if (field.indexOf('"') < 0){ + // special fields are already in this, don't want to duplicate + if (!specialField(field)) { + form["choices"]["updateOn"].push(field); + } - form["choices"]["callback"]["argumentFields"].push(field); - form["choices"]["callback"]["arguments"][0]["parameterNames"].push( - pair[0] - ); + form["choices"]["callback"]["argumentFields"].push(field); + form["choices"]["callback"]["arguments"][0]["parameterNames"].push( + pair[0] + ); + } } // If it's an object then it's a fully specified command