Commit 914d9a59 authored by Sven Franck's avatar Sven Franck

added gadgets to create new network/services

parent 71863e7e
......@@ -330,6 +330,137 @@
"i18n": "validation_dict.too_much_input"
}
}
},
"installation_reference_computer": {
"type":"StringField",
"widget": {
"id": "installation_reference_computer",
"title": "Computer",
"title_i18n": "portal_type_dict.installation_dict.field_list.computer.title",
"description": "The computer this installation is made on.",
"description_i18n": "portal_type_dict.installation_dict.field_list.computer.description",
"alternate_name": "installation_reference_computer",
"default_value": null,
"css_class": null,
"hidden": null,
"display_width": null,
"maximum_input": null,
"extra": null
},
"properties": {
"enabled": true,
"editable": true,
"external_validator": null,
"required": true,
"preserve_whitespace": null,
"unicode": null,
"maximum_length": null,
"truncate": null
},
"message": {
"external_validator_failed": {
"message": "The input failed the external validator.",
"i18n": "validation_dict.external"
},
"required_not_found": {
"message": "Input required but not found.",
"i18n": "validation_dict.required"
},
"too_long": {
"message": "Too much input give.",
"i18n": "validation_dict.too_much_input"
}
}
},
"installation_reference_release": {
"type":"StringField",
"widget": {
"id": "installation_reference_release",
"title": "Release",
"title_i18n": "portal_type_dict.installation_dict.field_list.release.title",
"description": "The release being this installation is based on.",
"description_i18n": "portal_type_dict.installation_dict.field_list.release.description",
"alternate_name": "installation_reference_release",
"default_value": null,
"css_class": null,
"hidden": null,
"display_width": null,
"maximum_input": null,
"extra": null
},
"properties": {
"enabled": true,
"editable": true,
"external_validator": null,
"required": true,
"preserve_whitespace": null,
"unicode": null,
"maximum_length": null,
"truncate": null
},
"message": {
"external_validator_failed": {
"message": "The input failed the external validator.",
"i18n": "validation_dict.external"
},
"required_not_found": {
"message": "Input required but not found.",
"i18n": "validation_dict.required"
},
"too_long": {
"message": "Too much input give.",
"i18n": "validation_dict.too_much_input"
}
}
},
"installation_xml_recipe": {
"type": "TextareaField",
"widget": {
"id": "installation_xml_recipe",
"title": "Parameter XML",
"title_i18n": "portal_type_dict.person_dict.field_list.recipe.title",
"description": "The XML recipe for this software installation.",
"description_i18n": "portal_type_dict.person_dict.field_list.recipe.description",
"alternate_name": "installation_xml_recipe",
"default_value": null,
"css_class": null,
"hidden": null,
"width":null,
"height":null,
"extra":null
},
"properties": {
"enabled": true,
"editable": true,
"external_validator": null,
"required": null,
"preserve_whitespace": null,
"unicode": null,
"maximum_lines": null,
"maximum_length_of_line": null,
"maximum_characters": null
},
"message": {
"external_validator_failed": {
"message": "The input failed the external validator.",
"i18n": "validation_dict.external"
},
"required_not_found": {
"message": "Input required but not found.",
"i18n": "validation_dict.required"
},
"too_many_lines": {
"message": "You have entered too many lines.",
"i18n": "validation_dict.too_many_lines"
},
"line_too_long": {
"message": "One or more lines you have entered are too long.",
"i18n": "validation_dict.too_long_lines"
},
"too_long": {
"message": "You have entered too many characters.",
"i18n": "validation_dict.too_many_chars"
}
}
}
}
\ No newline at end of file
......@@ -33,7 +33,7 @@
},
"children": [{
"type": "a",
"direct": {"className":"translate ui-btn ui-icon-edit ui-btn-icon-left ui-corner-all ui-btn-inline ui-btn-slapos-black ui-link", "href": "#services::new"},
"direct": {"className":"translate ui-btn ui-icon-edit ui-btn-icon-left ui-corner-all ui-btn-inline ui-btn-slapos-black ui-link", "href": "#services::add"},
"attributes": {
"data-i18n": "page_dict.services.add",
"data-icon": "edit"
......
......@@ -9,7 +9,8 @@
"installation_id": "",
"installation_timestamp": "2013/12/24",
"installation_reference_release": "2845497",
"installation_reference_computer": ""
"installation_reference_computer": "",
"installation_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
},
{
"installation_version":"[EXPERIMENTAL] SlapOS Web Runner",
......@@ -21,7 +22,8 @@
"installation_id": "",
"installation_timestamp": "2013/12/23",
"installation_reference_release": "1657159",
"installation_reference_computer": ""
"installation_reference_computer": "",
"installation_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
},
{
"installation_version":"slapos-0.141",
......@@ -33,7 +35,8 @@
"installation_id": "",
"installation_timestamp": "2013/12/22",
"installation_reference_release": "8516098",
"installation_reference_computer": ""
"installation_reference_computer": "",
"installation_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
},
{
"installation_version":"slapos-0.96",
......@@ -45,6 +48,7 @@
"installation_id": "",
"installation_timestamp": "2013/12/22",
"installation_reference_release": "3105599",
"installation_reference_computer": ""
"installation_reference_computer": "",
"installation_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
}
]
\ No newline at end of file
......@@ -6,7 +6,7 @@
"form": true,
"id": "invoice_overview",
"property_dict": {
"dynamic_children": [1],
"dynamic_children": [0],
"requires_authentication": true,
"wrap_gadget": 2,
"layout": {
......@@ -30,20 +30,10 @@
"feature_dict": {
"sortable": true,
"mergeable": true,
"linkable": true,
"link_identifier": null,
"action_menu": true
}
},
"children": [{
"type": "a",
"direct": {"className":"translate ui-btn ui-icon-edit ui-btn-icon-left ui-corner-all ui-btn-inline ui-btn-slapos-black ui-link", "href": "#invoices::new"},
"attributes": {
"data-i18n": "page_dict.invoices.add",
"data-icon": "edit"
},
"logic": {"text":"Create new invoice"}
}, {
"generate": "widget",
"type": "table",
"class_list": "table-stroke ui-responsive",
......
{
"generate": "gadget",
"type": "pageIndex",
"property_dict": {},
"children": [
{
"generate": "widget",
"type": "page",
"title": "Servers",
"title_i18n": "page_dict.servers.title",
"theme": "slapos-white",
"layout": {
"default": [
{
"generate": "gadget",
"type": "listbox",
"id": "computer_overview",
"href": "computer_overview"
}
],
"new": [
{
"generate": "gadget",
"type": "fieldlist",
"id": "computer_new",
"href": "computer_new"
}
]
}
}, {
"generate": "widget",
"type": "page",
"title": "Server Instance",
"title_i18n": "page_dict.servers.instance",
"theme": "slapos-white",
"layout": {
"default": [
{
"generate": "gadget",
"type": "fieldlist",
"id": "computer_status",
"href": "computer_status"
},
{
"generate": "gadget",
"type": "listbox",
"id": "software_status",
"href": "software_status"
}
]
}
}, {
"generate": "widget",
"type": "page",
"theme": "slapos-white",
"title": "Instance Configuration",
"title_i18n": "page_dict.servers.configuration",
"layout": {
"config": [
{
"generate": "gadget",
"type": "fieldlist",
"id": "computer_view",
"href": "computer_view"
}
],
"scope": [],
"ssl_on": [],
"ssl_off": []
}
}
]
}
{
"portal_type_source": "Computer",
"portal_type_title": "computer",
"portal_type_fields": "computer_fieldlist",
"initial_query": {"include_docs": true, "limit":[]},
"form": true,
"id": "computer_overview",
"property_dict": {
"initial_query_url_identifier": "computer_group",
"dynamic_children": [0],
"requires_authentication": true,
"depends_on": "login_state",
"wrap_gadget": 2,
"layout": {
"header": [
[
{"custom": true, "text": "Status", "text_i18n": "global_dict.common_dict.status", "show": true, "priority": 6},
{"column": "computer_title", "show": true, "priority": 5},
{"column": "computer_reference", "show": true, "priority": 5},
{"column": "computer_translated_validation_state_title", "show": "true", "priority": 3}
]
],
"body": [
{"custom": true, "show": true, "priority": 6, "status": true},
{"column": "computer_title", "show": true, "priority": 5},
{"column": "computer_reference", "show": true, "priority": 5},
{"column": "computer_translated_validation_state_title", "show": "true", "priority": 3}],
"footer": []
},
"feature_dict": {
"linkable": true,
"link_identifier": "id",
"editable": null
}
},
"children": [{
"generate": "widget",
"type": "table",
"class_list": "table-stroke ui-responsive",
"property_dict": {
"mode": "columntoggle",
"toggle_popup": false,
"wrap": "both",
"top_grid": 1,
"bottom_grid": 1
},
"children": []
}],
"placeholder_dict": {
"no_items": {
"text":"No servers associated with this network.",
"text_i18n":"page_dict.networks.no_servers",
"children": []
},
"no_auth": {
"text":"Requires authorization.",
"text_i18n":"validation_dict.requires_auth",
"children": [
{
"generate": "widget",
"type": "controlgroup",
"property_dict": {"direction": "horizontal"},
"children": [{
"type": "a",
"direct":{"className":"translate action", "href":"#global-popup"},
"attributes":{
"data-i18n":"global_dict.common_dict.login",
"data-action":"login",
"data-icon":"lock",
"data-rel": "popup"
},
"logic": {"text":"Login"}
}, {
"type": "a",
"direct": {"className":"translate ui-btn-slapos-black", "href": "#person::new"},
"attributes": {
"data-i18n": "global_dict.common_dict.register",
"data-icon": "edit"
},
"logic": {"text":"Register"}
}
]
}
]
}
}
}
......@@ -38,6 +38,10 @@
"fieldlist": [
{"title": "network_title"}
]
},
{
"position": "right",
"fieldlist": []
}
]
}
......
......@@ -25,9 +25,7 @@
"footer": []
},
"feature_dict": {
"linkable": true,
"link_identifier": null,
"editable": null
"linkable": true
}
},
"children": [{
......
{
"portal_type_source": "Network",
"portal_type_title": "network",
"portal_type_fields": "network_fieldlist",
"initial_query": {"include_docs": true, "limit":[0,1]},
"form": true,
"id": "network_view",
"property_dict": {
"dynamic_children": [0],
"requires_authentication": true,
"depends_on": "login_state",
"wrap_gadget": 2
},
"children": [{
"generate": "widget",
"type": "form",
"class_list": "responsive",
"property_dict": {
"editable": false,
"secure": "default",
"secret_hash": "foo",
"public_key": "6Ldpb-oSAAAAAGwriKpk4ol1n4yjN_as6M4xv0zA"
},
"children": [],
"layout": [
{
"position": "left",
"fieldlist": [
{"title": "network_title", "overrides": {"properties":{"editable":false, "required": false}}},
{"title": "network_reference", "overrides": {"properties":{"editable":false, "required": false}}}
]
}
]
}
],
"placeholder_dict": {
"no_auth": {
"text":"Requires authorization.",
"text_i18n":"validation_dict.requires_auth",
"children": [
{
"generate": "widget",
"type": "controlgroup",
"property_dict": {"direction": "horizontal"},
"children": [{
"type": "a",
"direct":{"className":"translate action", "href":"#global-popup"},
"attributes":{
"data-i18n":"global_dict.common_dict.login",
"data-action":"login",
"data-icon":"lock",
"data-rel": "popup"
},
"logic": {"text":"Login"}
}, {
"type": "a",
"direct": {"className":"translate ui-btn-slapos-black", "href": "#person::new"},
"attributes": {
"data-i18n": "global_dict.common_dict.register",
"data-icon": "edit"
},
"logic": {"text":"Register"}
}
]
}
]
}
}
}
......@@ -17,6 +17,14 @@
"id": "network_overview",
"href": "network_overview"
}
],
"new": [
{
"generate": "gadget",
"type": "fieldlist",
"id": "network_new",
"href": "network_new"
}
]
}
}, {
......@@ -32,14 +40,12 @@
"type": "fieldlist",
"id": "network_status",
"href": "network_status"
}
],
"new": [
},
{
"generate": "gadget",
"type": "fieldlist",
"id": "network_new",
"href": "network_new"
"type": "listbox",
"id": "network_assigned_computers",
"href": "network_assigned_computers"
}
]
}
......
{
"portal_type_source": "Software Release",
"portal_type_title": "release",
"portal_type_fields": "release_fieldlist",
"initial_query": {"include_docs": true, "limit":[0,16]},
"portal_type_source": "Installation",
"portal_type_title": "installation",
"portal_type_fields": "installation_fieldlist",
"initial_query": {"include_docs": true, "limit":[0,1]},
"form": true,
"id": "release_overview",
"id": "install_release",
"property_dict": {
"initial_query_url_identifier": "release_reference_id",
"dynamic_children": [0],
"wrap_gadget": 2,
"layout": {
"header": [
[
{"column": "release_title", "show": true, "priority": 1},
{"column": "release_version", "show": true, "priority": 1},
{"column": "release_description", "show": true, "priority": 5}
]
],
"body": [
{"column": "release_title", "show": true, "priority": 1},
{"column": "release_version", "show": true, "priority": 1},
{"column": "release_description", "show": true, "priority": 5}
],
"footer": []
"requires_authentication": true,
"depends_on": "login_state"
},
"feature_dict": {
"linkable": true,
"link_identifier": null,
"radio": true
}
"children": [
{
"type": "p",
"direct": {"className": "translate"},
"attributes": {"data-i18n": "page_dict.release.configure"},
"logic": {"text": "Please select the computer to install this instance on (and specify and optional recipe)."}
},{
"generate": "widget",
"type": "form",
"class_list": "responsive",
"property_dict": {
"editable": true,
"secure": "default",
"secret_hash": "foo",
"public_key": "6Ldpb-oSAAAAAGwriKpk4ol1n4yjN_as6M4xv0zA"
},
"children": [{
"generate": "widget",
"type": "table",
"class_list": "table-stroke ui-responsive",
"type": "controlgroup",
"class_list": "center",
"property_dict": {
"mode": "columntoggle",
"toggle_popup": false,
"wrap": "both",
"top_grid": 1,
"bottom_grid": 1
"direction": "horizontal"
},
"children": [
{"type": "input", "direct": {"value": "Reset", "className": "translate"}, "attributes": {"type": "reset", "data-i18n":"[value]global_dict.common_dict.cancel"}},
{"type": "input", "direct": {"value": "Install", "className": "action translate"}, "attributes": {"type": "submit", "data-action":"add", "data-i18n":"[value]global_dict.common_dict.install", "data-theme": "slapos-black"}}
]
}],
"layout": [
{
"position": "center",
"fieldlist": [
{"title": "installation_status", "overrides": {"widget": {"css_class":"progress_notifier"}}}
]
},
"children": []
{
"position": "left",
"fieldlist": [
{"title": "installation_id", "overrides": {"setValue": "instance_", "properties": {"editable":false}}},
{"title": "installation_version"},
{"title": "installation_title"},
{"title": "installation_xml_recipe", "overrides": {"widget": {"default_value": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"}}}
]
},{
"position": "right",
"fieldlist": [
{"title": "installation_image_url"}
]
}, {
"position": "left",
"fieldlist": [
{"title": "installation_reference_computer"}
]
}
]
}
],
"placeholder_dict": {
"no_auth": {
"text":"Requires authorization.",
"text_i18n":"validation_dict.requires_auth",
"children": [
{
"generate": "widget",
"type": "controlgroup",
"property_dict": {"direction": "horizontal"},
"children": [{
"type": "a",
"direct":{"className":"translate action", "href":"#global-popup"},
"attributes":{
"data-i18n":"global_dict.common_dict.login",
"data-action":"login",
"data-icon":"lock",
"data-rel": "popup"
},
"logic": {"text":"Login"}
}, {
"type": "a",
"direct": {"className":"action translate ui-btn-slapos-black", "href": "#"},
"direct": {"className":"translate ui-btn-slapos-black", "href": "#person::new"},
"attributes": {
"data-i18n": "page_dict.release_dict.install",
"data-action": "foo"
"data-i18n": "page_dict.person.register",
"data-icon": "edit"
},
"logic": {"text":"Install selected software release."}
}]
"logic": {"text":"Register"}
}
]
}
]
}
}
}
......@@ -150,8 +150,8 @@
"release_image_url": "https://www.slapos.org/software_product_module/20110316-88D7/default_image?quality=75&amp;display=thumbnail"
},
{
"release_title": "Kumofs Branch Development",
"release_description": "For development use only. ",
"release_title": "Kumofs",
"release_description": "For development use only.",
"release_version": "branch",
"release_id": "1650465",
"release_reference_id": "20110615-176F8",
......@@ -210,8 +210,8 @@
"release_image_url": "https://www.slapos.org/software_product_module/20110613-107B5/default_image?quality=75&amp;display=thumbnail"
},
{
"release_title": "ERP5 Test Node (branch development) ",
"release_description": "",
"release_title": "ERP5 Test Node",
"release_description": "ERP5 Test Node (branch development) ",
"release_version": "001",
"release_id": "805498",
"release_reference_id": "20110620-F42E",
......@@ -320,8 +320,8 @@
"release_image_url": "https://www.slapos.org/software_product_module/20111115-55D1E/default_image?quality=75&amp;display=thumbnail"
},
{
"release_title": "HTML5 Application Server slapos-0.113",
"release_description": "",
"release_title": "HTML5 Application Server",
"release_description": "HTML5 Application Server slapos-0.113",
"release_version": "001",
"release_id": "3383400",
"release_reference_id": "20120412-853D",
......
{
"portal_type_source": "Software Release",
"portal_type_title": "release",
"portal_type_fields": "release_fieldlist",
"initial_query": {"include_docs": true, "limit":[0,16]},
"form": true,
"id": "release_overview",
"property_dict": {
"initial_query_url_identifier": "release_reference_id",
"dynamic_children": [0],
"wrap_gadget": 2,
"layout": {
"header": [
[
{"column": "release_title", "show": true, "priority": 1},
{"column": "release_version", "show": true, "priority": 1},
{"column": "release_description", "show": true, "priority": 5}
]
],
"body": [
{"column": "release_title", "show": true, "priority": 1},
{"column": "release_version", "show": true, "priority": 1},
{"column": "release_description", "show": true, "priority": 5}
],
"footer": []
},
"feature_dict": {
"linkable": true,
"link_identifier": null
}
},
"children": [{
"generate": "widget",
"type": "table",
"class_list": "table-stroke ui-responsive",
"property_dict": {
"mode": "columntoggle",
"toggle_popup": false,
"wrap": "both",
"top_grid": 1,
"bottom_grid": 1
},
"children": []
}]
}
......@@ -17,6 +17,46 @@
"id": "installation_overview",
"href": "installation_overview"
}
],
"add": [
{
"generate": "gadget",
"type": "listgrid",
"id": "subscription_select",
"href": "subscription_select"
}
]
}
}, {
"generate": "widget",
"type": "page",
"title": "Select Release",
"title_i18n": "page_dict.services.select",
"theme": "slapos-white",
"layout": {
"default": [
{
"generate": "gadget",
"type": "listbox",
"id": "release_select",
"href": "release_select"
}
]
}
}, {
"generate": "widget",
"type": "page",
"title": "Install Release",
"title_i18n": "page_dict.services.install",
"theme": "slapos-white",
"layout": {
"default": [
{
"generate": "gadget",
"type": "fieldlist",
"id": "release_install",
"href": "release_install"
}
]
}
}
......
This diff is collapsed.
{
"portal_type_source": "Software Product",
"portal_type_title": "subscription",
"portal_type_fields": "subscription_fieldlist",
"initial_query": {"include_docs": true, "limit":[0,8]},
"form": true,
"id": "subscription_select",
"property_dict": {
"link": true,
"link_identifier": "id",
"dynamic_children": [1]
},
"children": [{
"generate": "widget",
"type": "controlbar",
"class_list": "responsive",
"children": [
{"type": "input", "direct": {"id":"search_subscription_list", "className": "translate"}, "attributes": {"data-action":"search", "data-enhanced":"true", "data-i18n": "[placeholder]page_dict.software.search","placeholder":"Search available software", "data-icon":"search", "data-action-btn":"true", "data-type":"search", "type":"search"}, "logic":{"clear":"true", "action":"search"}},
{"type": "div", "direct": {"className":"info"}, "attributes": {"data-info":"records"}},
{"type": "div", "direct": {"className":"info"}, "attributes": {"data-info":"selected"}},
{"type": "div", "direct": {"className":"info"}, "attributes": {"data-info":"filter"}},
{"type": "div", "direct": {"className":"info"}, "attributes": {"data-info":"sorted"}}
]
}, {
"generate":"widget",
"type": "listview",
"class_list": "",
"theme": "slapos-white",
"property_dict": {
"inset":"true",
"filter": "true",
"input": "#search_subscription_list"
},
"children": []
}, {
"generate":"widget",
"type": "controlbar",
"class_list": "responsive",
"children": [{
"generate": "widget",
"type": "controlgroup",
"class_list": "pagination",
"property_dict": {
"direction": "horizontal"
},
"children": [
{"type": "a", "direct":{"className":"action", "href":""}, "attributes":{"data-i18n":"global_dict.pagination_dict.first", "data-action":"first", "data-icon":"step-backward", "data-iconpos":"notext"}, "logic": {"text":"First"}},
{"type": "a", "direct":{"className":"action", "href":""}, "attributes":{"data-i18n":"global_dict.pagination_dict.previous", "data-action":"prev", "data-icon":"backward", "data-iconpos":"notext"}, "logic": {"text":"Step Backward"}},
{"type":"select", "direct":{"id":"paginate_subscription_list", "className":"action"},"attributes": {"data-icon":"reorder", "data-action":"limit", "data-iconpos":"notext"},"logic": {"options":[{"value": "16", "text": "16", "text_i18n":"global_dict.pagination_dict.16"},{"value": "32", "text": "32", "text_i18n":"global_dict.pagination_dict.32"},{"value": "64", "text": "64", "text_i18n":"global_dict.pagination_dict.64"}, {"value": "128", "text": "128", "text_i18n":"global_dict.pagination_dict.128"}]}},
{"type": "a", "direct":{"className":"action", "href":""}, "attributes":{"data-i18n":"global_dict.pagination_dict.next", "data-action":"next", "data-icon":"forward", "data-iconpos":"notext"}, "logic": {"text":"Step Forward"}},
{"type": "a", "direct":{"className":"action", "href":""}, "attributes":{"data-i18n":"global_dict.pagination_dict.last", "data-action":"last", "data-icon":"step-forward", "data-iconpos":"notext"}, "logic": {"text": "Last"}}
]
}]
}]
}
......@@ -779,6 +779,11 @@
"0" : prevail.widget.default_value) ||
spec.widget.default_value || undefined;
// TODO: not nice, find better way
if (prevail.setValue) {
field_value = prevail.setValue + util.generateUuid();
}
// easy way out if not enabled
if (prevail.properties.enabled === false ||
spec.properties.enabled === false) {
......@@ -5971,14 +5976,6 @@
*/
util.storage_dict = {};
/**
* Internal item counter
*/
// TODO: remove once there is a way to assign auto-incrementing counters
// from server-side (or switch to UUID right away, because this requires
// syncing!
util.counter = 0;
/**
* cookie handler
* thx: https://developer.mozilla.org/en-US/docs/Web/API/document.cookie
......
......@@ -35,7 +35,8 @@
"submit": "Submit",
"cancel": "Cancel",
"register": "Register",
"create": "Create Instance"
"create": "Create Instance",
"install": "Install"
},
"export_dict": {
"download": "Download"
......@@ -103,10 +104,13 @@
},
"services": {
"add": "Install new software",
"install": "Install Release",
"select": "Select Release",
"title": "Services",
"subtitle": "Administration of Installed Software"
},
"networks": {
"no_servers": "No servers associated with this network.",
"title": "Networks",
"subtitle": "Network Administration"
},
......@@ -123,6 +127,7 @@
"search": "Seach available software"
},
"release": {
"configure": "Please select the computer to install this instance on (and specify and optional recipe).",
"title": "Release",
"install": "Install selected software release.",
"search": "Search available releases"
......@@ -181,6 +186,18 @@
},
"installation_dict": {
"field_list": {
"recipe": {
"title": "XML Parameters",
"description": "The xml configuration for this installation instance."
},
"computer": {
"title": "Computer",
"description": "The computer this installation is made on."
},
"release": {
"title": "Release",
"description": "The release being this installation is based on."
},
"timestamp": {
"title": "Timestamp",
"description": "Data and time this installation was made."
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment