Схема JSON, раскрывающийся список контролирует, какие поля отображаются - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть следующая форма json Schema

Мне нужно иметь возможность выбрать, какой скрипт для запуска, который в настоящее время управляется oneOf, и в зависимости от того, какой скрипт был выбран в раскрывающемся списке, представлены различные вариантыЗаполняется.

Проблема в том, что выбранное имя сценария не передается в отправленных значениях формы, например, "Create-ADUsers.psm1"

Я проверял форму с помощью http://jeremydorn.com/json-editor/ с no_additional_properties, установленным в true

Я думаю, что oneOf может быть неправильным путем, но я не смог заставить это работать с использованием массива и т. Д.

import org.boon.Boon;

def jsonEditorOptions = Boon.fromJson(/{
disable_edit_json: false,
disable_properties: true,
no_additional_properties: true,
disable_collapse: true,
disable_array_add: false,
disable_array_delete: false,
disable_array_reorder: true,
show_errors: "always"
theme: "bootstrap3",
schema: {
    "title": "Which script do you want to run",
    "oneOf": [
        {
            "title": "----",
            "type": "null",
            "options": {
                "disable_collapse": true,
                "disable_edit_json": true,
                "disable_properties": true,
                "theme": "bootstrap3",
                "show_errors": "always"
            }
        },
        {
            "title": "Create-ADUsers.psm1",
            "type": "object",
            "properties": {
                "domain": {
                    "type": "string",
                    "propertyOrder": 1,
                    "default" : "@uhc"
                },
                "ou": {
                    "type": "string",
                    "title": "organizational unit ",
                    "propertyOrder": 2,
                    "default": "OU=Testing Users"
                },
                "ec2Instances": {
                    "type": "string",
                    "propertyOrder": 3,
                    "template": "i-XXXXXXXXXX"
                },
                "users": {
                    "type": "array",
                    "format": "table",
                    "title": "Users",
                    "uniqueItems": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "firstName": {
                                "type": "string",
                                "title": "First Name"
                            },
                            "lastName": {
                                "type": "string",
                                "title": "Last Name"
                            },
                            "email": {
                                "type": "string",
                                "title": "Email Address"
                            }
                        }
                    }
                }
            }
        },
        {
            "title": "Create-WorkspacesAlwaysON.psm1",
            "type": "object",
            "properties": {
                "ssmParams": {
                    "title": "Params",
                    "type": "string"
                }
            }
        }
    ]
}/);

return jsonEditorOptions;

Мне также хотелось бы иметь возможность иметь выпадающий список Env со значениями «dev», «live», добавляемыми вверху формы, который всегда отображается независимо от того, какой скрипт выбран, но я думаю, что это можетбыть слишком сложным, чтобы сделать.

...