diff --git a/app/views/api/settings/_element.json.jbuilder b/app/views/api/settings/_element.json.jbuilder index 018ca1a..8df8761 100644 --- a/app/views/api/settings/_element.json.jbuilder +++ b/app/views/api/settings/_element.json.jbuilder @@ -1,4 +1,6 @@ -json.id element_id(element) +json.id element_id(current_label, element) +json.current_label current_label || "ROOT" +json.label element["@label"] || element["label"] json.name element.name json.type element["@type"] || element["type"] json.arg element.arg diff --git a/app/views/api/settings/index.json.jbuilder b/app/views/api/settings/index.json.jbuilder index 2b565f8..8dcb042 100644 --- a/app/views/api/settings/index.json.jbuilder +++ b/app/views/api/settings/index.json.jbuilder @@ -1,3 +1,11 @@ -json.array! @config.elements do |elm| - json.partial! "api/settings/element", element: elm +@config.group_by_label.each do |label_name, types| + json.set!(label_name) do + types.each do |type, elements| + json.set!(type) do + json.array!(elements) do |element| + json.partial! "api/settings/element", current_label: label_name, element: element + end + end + end + end end