Commit 030e5738 authored by Sven Franck's avatar Sven Franck

renamed installation, added custom form fields, made request service form

parent efd032cf
......@@ -417,4 +417,16 @@ html body div.ui-panel a.unenhanced:focus,
html body div.ui-panel a.unenhanced:hover,
html body div.ui-panel a.unenhanced:active {
background: none repeat scroll 0 center rgba(0, 0, 0, 0);
}
/* ========================= ugly black status box ======================== */
.progress_notifier {
background: none repeat scroll 0 0 #000000 !important;
border: 0 none;
border-radius: 0.375em;
color: #FFFFFF;
font-weight: bold;
min-height: 2em;
padding: 1em;
text-align: center;
width: 100%;
}
\ No newline at end of file
{
"installation_version": {
"service_version": {
"type":"StringField",
"widget": {
"id": "installation_version",
"id": "service_version",
"title": "Version",
"title_i18n": "portal_type_dict.installation_dict.field_list.version.title",
"title_i18n": "portal_type_dict.service_dict.field_list.version.title",
"description": "The version of the software installed on this computer.",
"description_i18n": "portal_type_dict.installation_dict.field_list.version.description",
"alternate_name": "installation_version",
"description_i18n": "portal_type_dict.service_dict.field_list.version.description",
"alternate_name": "service_version",
"default_value": null,
"css_class": "",
"hidden": null,
......@@ -40,15 +40,15 @@
}
}
},
"installation_title": {
"service_title": {
"type":"StringField",
"widget": {
"id": "installation_title",
"id": "service_title",
"title": "Title",
"title_i18n": "portal_type_dict.installation_dict.field_list.title.title",
"title_i18n": "portal_type_dict.service_dict.field_list.title.title",
"description": "The title of the software being installed on this server.",
"description_i18n": "portal_type_dict.installation_dict.field_list.title.description",
"alternate_name": "installation_title",
"description_i18n": "portal_type_dict.service_dict.field_list.title.description",
"alternate_name": "service_title",
"default_value": null,
"css_class": "",
"hidden": null,
......@@ -81,15 +81,15 @@
}
}
},
"installation_image_type": {
"service_image_type": {
"type":"StringField",
"widget": {
"id": "installation_image_type",
"id": "service_image_type",
"title": "Type",
"title_i18n": "portal_type_dict.installation_dict.field_list.image_type.title",
"title_i18n": "portal_type_dict.service_dict.field_list.image_type.title",
"description": "Type of Image (Icon/Image).",
"description_i18n": "portal_type_dict.installation_dict.field_list.image_type.description",
"alternate_name": "installation_image_type",
"description_i18n": "portal_type_dict.service_dict.field_list.image_type.description",
"alternate_name": "service_image_type",
"default_value": null,
"css_class": null,
"hidden": null,
......@@ -122,15 +122,15 @@
}
}
},
"installation_image_url": {
"service_image_url": {
"type":"ImageField",
"widget": {
"id": "installation_image_url",
"id": "service_image_url",
"title": "Image",
"title_i18n": "portal_type_dict.installation_dict.field_list.image_url.title",
"title_i18n": "portal_type_dict.service_dict.field_list.image_url.title",
"description": "The path to the icon/image for this software service.",
"description_i18n": "portal_type_dict.installation_dict.field_list.image_url.description",
"alternate_name": "installation_image_url",
"description_i18n": "portal_type_dict.service_dict.field_list.image_url.description",
"alternate_name": "service_image_url",
"default_value": null,
"css_class": null,
"hidden": null,
......@@ -167,15 +167,15 @@
}
}
},
"installation_status": {
"service_status": {
"type":"StringField",
"widget": {
"id": "installation_status",
"id": "service_status",
"title": "Status",
"title_i18n": "portal_type_dict.installation_dict.field_list.status.title",
"title_i18n": "portal_type_dict.service_dict.field_list.status.title",
"description": "The status of the software being installed on this server.",
"description_i18n": "portal_type_dict.installation_dict.field_list.status.description",
"alternate_name": "installation_status",
"description_i18n": "portal_type_dict.service_dict.field_list.status.description",
"alternate_name": "service_status",
"default_value": null,
"css_class": null,
"hidden": null,
......@@ -208,15 +208,15 @@
}
}
},
"installation_usage": {
"service_usage": {
"type":"StringField",
"widget": {
"id": "installation_usage",
"id": "service_usage",
"title": "Usage",
"title_i18n": "portal_type_dict.installation_dict.field_list.usage.title",
"title_i18n": "portal_type_dict.service_dict.field_list.usage.title",
"description": "The usage of this software.",
"description_i18n": "portal_type_dict.installation_dict.field_list.usage.description",
"alternate_name": "installation_usage",
"description_i18n": "portal_type_dict.service_dict.field_list.usage.description",
"alternate_name": "service_usage",
"default_value": null,
"css_class": null,
"hidden": null,
......@@ -249,15 +249,15 @@
}
}
},
"installation_id": {
"service_id": {
"type":"StringField",
"widget": {
"id": "installation_id",
"id": "service_id",
"title": "ID",
"title_i18n": "portal_type_dict.installation_dict.field_list.id.title",
"title_i18n": "portal_type_dict.service_dict.field_list.id.title",
"description": "The id of this installation.",
"description_i18n": "portal_type_dict.installation_dict.field_list.id.description",
"alternate_name": "installation_id",
"description_i18n": "portal_type_dict.service_dict.field_list.id.description",
"alternate_name": "service_id",
"default_value": null,
"css_class": null,
"hidden": null,
......@@ -290,15 +290,15 @@
}
}
},
"installation_timestamp": {
"service_timestamp": {
"type":"DateTimeField",
"widget": {
"id": "installation_timestamp",
"id": "service_timestamp",
"title": "ID",
"title_i18n": "portal_type_dict.installation_dict.field_list.timestamp.title",
"title_i18n": "portal_type_dict.service_dict.field_list.timestamp.title",
"description": "The timestamp this installation was made.",
"description_i18n": "portal_type_dict.installation_dict.field_list.timestamp.description",
"alternate_name": "installation_timestamp",
"description_i18n": "portal_type_dict.service_dict.field_list.timestamp.description",
"alternate_name": "service_timestamp",
"default_value": null,
"css_class": null,
"hidden": null,
......@@ -331,15 +331,15 @@
}
}
},
"installation_reference_computer": {
"service_reference_computer": {
"type":"StringField",
"widget": {
"id": "installation_reference_computer",
"id": "service_reference_computer",
"title": "Computer",
"title_i18n": "portal_type_dict.installation_dict.field_list.computer.title",
"title_i18n": "portal_type_dict.service_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",
"description_i18n": "portal_type_dict.service_dict.field_list.computer.description",
"alternate_name": "service_reference_computer",
"default_value": null,
"css_class": null,
"hidden": null,
......@@ -372,15 +372,15 @@
}
}
},
"installation_reference_release": {
"service_reference_release": {
"type":"StringField",
"widget": {
"id": "installation_reference_release",
"id": "service_reference_release",
"title": "Release",
"title_i18n": "portal_type_dict.installation_dict.field_list.release.title",
"title_i18n": "portal_type_dict.service_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",
"description_i18n": "portal_type_dict.service_dict.field_list.release.description",
"alternate_name": "service_reference_release",
"default_value": null,
"css_class": null,
"hidden": null,
......@@ -413,15 +413,15 @@
}
}
},
"installation_xml_recipe": {
"service_xml_recipe": {
"type": "TextareaField",
"widget": {
"id": "installation_xml_recipe",
"id": "service_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",
"alternate_name": "service_xml_recipe",
"default_value": null,
"css_class": null,
"hidden": null,
......
{
"portal_type_source": "Installation",
"portal_type_title": "installation",
"portal_type_fields": "installation_fieldlist",
"portal_type_source": "Service",
"portal_type_title": "service",
"portal_type_fields": "service_fieldlist",
"initial_query": {"include_docs": true, "limit":[0,16]},
"form": true,
"id": "installation_overview",
"id": "service_overview",
"property_dict": {
"initial_query_url_identifier": "installation_reference_computer",
"initial_query_url_identifier": "service_reference_computer",
"dynamic_children": [1],
"wrap_gadget": 2,
"layout": {
"header": [
[
{"custom": true, "text": "Image", "text_i18n": "portal_type_dict.installation_dict.field_list.image_url.title", "show": true, "priority": 4},
{"column": "installation_title", "show": true, "priority": 1},
{"column": "installation_version", "show": true, "priority": 1},
{"column": "installation_usage", "show": true, "priority": 5}
{"custom": true, "text": "Image", "text_i18n": "portal_type_dict.service_dict.field_list.image_url.title", "show": true, "priority": 4},
{"column": "service_title", "show": true, "priority": 1},
{"column": "service_version", "show": true, "priority": 1},
{"column": "service_usage", "show": true, "priority": 5}
]
],
"body": [
{"column": "installation_image_url", "show": true, "priority": 4, "image": true},
{"column": "installation_title", "show": true, "priority": 1},
{"column": "installation_version", "show": true, "priority": 1},
{"column": "installation_usage", "show": true, "priority": 5}
{"column": "service_image_url", "show": true, "priority": 4, "image": true},
{"column": "service_title", "show": true, "priority": 1},
{"column": "service_version", "show": true, "priority": 1},
{"column": "service_usage", "show": true, "priority": 5}
],
"footer": []
},
......
[
{
"installation_version":"slapos-0.92",
"installation_title": "[EXPERIMENTAL] KVM",
"installation_image_type": "image",
"installation_image_url":"https://www.slapos.org/software_product_module/2/default_image?quality=75&display=thumbnail",
"installation_status": "",
"installation_usage": "",
"installation_id": "",
"installation_timestamp": "2013/12/24",
"installation_reference_release": "2845497",
"installation_reference_computer": "",
"installation_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
"service_version":"slapos-0.92",
"service_title": "[EXPERIMENTAL] KVM",
"service_image_type": "image",
"service_image_url":"https://www.slapos.org/software_product_module/2/default_image?quality=75&amp;display=thumbnail",
"service_status": "",
"service_usage": "",
"service_id": "",
"service_timestamp": "2013/12/24",
"service_reference_release": "2845497",
"service_reference_computer": "",
"service_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
},
{
"installation_version":"[EXPERIMENTAL] SlapOS Web Runner",
"installation_title": "SlapOS Web Runner (Master Development)",
"installation_image_type": "image",
"installation_image_url":"https://www.slapos.org/software_product_module/20110316-88D7/default_image?quality=75&amp;display=thumbnail",
"installation_status": "",
"installation_usage": "",
"installation_id": "",
"installation_timestamp": "2013/12/23",
"installation_reference_release": "1657159",
"installation_reference_computer": "",
"installation_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
"service_version":"[EXPERIMENTAL] SlapOS Web Runner",
"service_title": "SlapOS Web Runner (Master Development)",
"service_image_type": "image",
"service_image_url":"https://www.slapos.org/software_product_module/20110316-88D7/default_image?quality=75&amp;display=thumbnail",
"service_status": "",
"service_usage": "",
"service_id": "",
"service_timestamp": "2013/12/23",
"service_reference_release": "1657159",
"service_reference_computer": "",
"service_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
},
{
"installation_version":"slapos-0.141",
"installation_title": "Kumofs Branch Development",
"installation_image_type": "image",
"installation_image_url":"https://www.slapos.org/software_product_module/20110615-176F8/default_image?quality=75&amp;display=thumbnail",
"installation_status": "",
"installation_usage": "",
"installation_id": "",
"installation_timestamp": "2013/12/22",
"installation_reference_release": "8516098",
"installation_reference_computer": "",
"installation_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
"service_version":"slapos-0.141",
"service_title": "Kumofs Branch Development",
"service_image_type": "image",
"service_image_url":"https://www.slapos.org/software_product_module/20110615-176F8/default_image?quality=75&amp;display=thumbnail",
"service_status": "",
"service_usage": "",
"service_id": "",
"service_timestamp": "2013/12/22",
"service_reference_release": "8516098",
"service_reference_computer": "",
"service_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
},
{
"installation_version":"slapos-0.96",
"installation_title": "Zabbix Agent",
"installation_image_type": "image",
"installation_image_url":"https://www.slapos.org/software_product_module/20110613-107B5/default_image?quality=75&amp;display=thumbnail",
"installation_status": "",
"installation_usage": "",
"installation_id": "",
"installation_timestamp": "2013/12/22",
"installation_reference_release": "3105599",
"installation_reference_computer": "",
"installation_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
"service_version":"slapos-0.96",
"service_title": "Zabbix Agent",
"service_image_type": "image",
"service_image_url":"https://www.slapos.org/software_product_module/20110613-107B5/default_image?quality=75&amp;display=thumbnail",
"service_status": "",
"service_usage": "",
"service_id": "",
"service_timestamp": "2013/12/22",
"service_reference_release": "3105599",
"service_reference_computer": "",
"service_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
}
]
\ No newline at end of file
......@@ -245,14 +245,14 @@
}
}
},
"subscription_image_url": {
"release_image_url": {
"type":"ImageField",
"widget": {
"id": "subscription_image_url",
"title": "Image",
"title_i18n": "portal_type_dict.subscription_dict.field_list.image_url.title",
"title_i18n": "portal_type_dict.release_dict.field_list.image_url.title",
"description": "The path to the icon/image for this software service.",
"description_i18n": "portal_type_dict.subscription_dict.field_list.image_url.description",
"description_i18n": "portal_type_dict.release_dict.field_list.image_url.description",
"alternate_name": "subscription_image_url",
"default_value": null,
"css_class": null,
......@@ -289,5 +289,54 @@
"i18n": "validation_dict.too_much_input"
}
}
},
"release_detail_description": {
"type": "TextareaField",
"widget": {
"id": "release_detail_description",
"title": "Detailed Description",
"title_i18n": "portal_type_dict.release_dict.field_list.detail.title",
"description": "The detailed description of this service.",
"description_i18n": "portal_type_dict.release_dict.field_list.detail.description",
"alternate_name": "release_detail_description",
"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
{
"portal_type_source": "Installation",
"portal_type_title": "installation",
"portal_type_fields": "installation_fieldlist",
"portal_type_source": "Software Release",
"portal_type_title": "release",
"portal_type_fields": "release_fieldlist",
"initial_query": {"include_docs": true, "limit":[0,1]},
"form": true,
"id": "install_release",
"property_dict": {
"dynamic_children": [0],
"dynamic_children": [1],
"requires_authentication": true,
"depends_on": "login_state"
},
"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",
......@@ -35,33 +30,38 @@
},
"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"}}
{"type": "input", "direct": {"value": "Request", "className": "action translate"}, "attributes": {"type": "submit", "data-action":"install", "data-i18n":"[value]global_dict.common_dict.request", "data-theme": "slapos-black"}}
]
}],
"layout": [
{
"position": "center",
"fieldlist": [
{"title": "installation_status", "overrides": {"widget": {"css_class":"progress_notifier"}}}
{"type": "input", "direct": {"disabled": true, "className":"progress_notifier", "id": "release_instance_status", "value": "Preparing instance..."}, "attributes": {"data-i18n":"[value]page_dict.services.prepare_instance"}}
]
},
{
"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>"}}}
{"title": "release_title", "overrides": {"properties": {"required": true, "editable":false}}},
{"title": "release_version", "overrides": {"properties": {"required": true, "editable":false}}},
{"type": "input", "direct": {"id":"release_instance_id", "className": "required"}, "attributes": {"data-enhanced":"true", "type":"text", "readonly": true}, "logic":{"setValue": "instance_", "label":"Instance ID", "label_i18n":"page_dict.services.instance_id"}},
{"type":"select", "direct":{"id":"release_reference_computer", "className": "required"},"attributes": {"data-enhanced": "true"},"logic": {"label":"Request for Computer", "label_i18n":"page_dict.services.instance_server", "options":[{"value":"", "text": "", "selected": "true"}, {"value": "Cortana", "text": "Cortana"},{"value": "Prof. Simon Wright", "text": "Prof. Simon Wright"},{"value": "HAL", "text": "HAL"},{"value": "Computer", "text": "Computer"},{"value": "Lawnmower", "text": "Lawnmower"}]}},
{"type":"select", "direct":{"id":"release_reference_network", "className": "required"},"attributes": {"data-enhanced": "true"},"logic": {"label":"Request for Network", "label_i18n":"page_dict.services.instance_network", "options":[{"value":"", "text": "", "selected": "true"}, {"value": "Foo-Net", "text": "Foo-Net"},{"value": "Bar-Net", "text": "Bar-Net"},{"value": "Lawn", "text": "Lawn"}]}}
]
},{
},
{
"position": "right",
"fieldlist": [
{"title": "installation_image_url"}
{"title": "release_image_url"},
{"title": "release_image_url", "overrides": {"type": "StringField", "widget": {"hidden": true}}},
{"title": "release_detail_description", "overrides": {"properties": {"required": true, "editable":false}}}
]
}, {
"position": "left",
},
{
"position": "center",
"fieldlist": [
{"title": "installation_reference_computer"}
{"type": "textarea", "direct": {"id": "release_instance_recipe", "className": "required", "value": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"}, "attributes": {"data-enhanced":"true"}, "logic": {"label":"Instance Configuration", "label_i18n":"page_dict.services.instance_recipe"}}
]
}
]
......
This diff is collapsed.
This diff is collapsed.
{
"portal_type_source": "Software Release",
"portal_type_title": "release",
"portal_type_fields": "release_fieldlist",
"portal_type_source": "Service",
"portal_type_title": "service",
"portal_type_fields": "service_fieldlist",
"initial_query": {"include_docs": true, "limit":[0,16]},
"form": true,
"id": "release_overview",
"id": "service_overview",
"property_dict": {
"initial_query_url_identifier": "release_reference_id",
"dynamic_children": [0],
"initial_query_url_identifier": "service_reference_computer",
"dynamic_children": [1],
"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}
{"custom": true, "text": "Image", "text_i18n": "portal_type_dict.service_dict.field_list.image_url.title", "show": true, "priority": 4},
{"column": "service_title", "show": true, "priority": 1},
{"column": "service_version", "show": true, "priority": 1},
{"column": "service_usage", "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}
{"column": "service_image_url", "show": true, "priority": 4, "image": true},
{"column": "service_title", "show": true, "priority": 1},
{"column": "service_version", "show": true, "priority": 1},
{"column": "service_usage", "show": true, "priority": 5}
],
"footer": []
},
"feature_dict": {
"linkable": true,
"link_identifier": null
"link_identifier": "id"
}
},
"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::add"},
"attributes": {
"data-i18n": "page_dict.services.add",
"data-icon": "edit"
},
"logic": {"text":"Install new software"}
},{
"generate": "widget",
"type": "table",
"class_list": "table-stroke ui-responsive",
......
[
{
"service_version":"slapos-0.92",
"service_title": "[EXPERIMENTAL] KVM",
"service_image_type": "image",
"service_image_url":"https://www.slapos.org/software_product_module/2/default_image?quality=75&amp;display=thumbnail",
"service_status": "",
"service_usage": "",
"service_id": "",
"service_timestamp": "2013/12/24",
"service_reference_release": "2845497",
"service_reference_computer": "",
"service_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
},
{
"service_version":"[EXPERIMENTAL] SlapOS Web Runner",
"service_title": "SlapOS Web Runner (Master Development)",
"service_image_type": "image",
"service_image_url":"https://www.slapos.org/software_product_module/20110316-88D7/default_image?quality=75&amp;display=thumbnail",
"service_status": "",
"service_usage": "",
"service_id": "",
"service_timestamp": "2013/12/23",
"service_reference_release": "1657159",
"service_reference_computer": "",
"service_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
},
{
"service_version":"slapos-0.141",
"service_title": "Kumofs Branch Development",
"service_image_type": "image",
"service_image_url":"https://www.slapos.org/software_product_module/20110615-176F8/default_image?quality=75&amp;display=thumbnail",
"service_status": "",
"service_usage": "",
"service_id": "",
"service_timestamp": "2013/12/22",
"service_reference_release": "8516098",
"service_reference_computer": "",
"service_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
},
{
"service_version":"slapos-0.96",
"service_title": "Zabbix Agent",
"service_image_type": "image",
"service_image_url":"https://www.slapos.org/software_product_module/20110613-107B5/default_image?quality=75&amp;display=thumbnail",
"service_status": "",
"service_usage": "",
"service_id": "",
"service_timestamp": "2013/12/22",
"service_reference_release": "3105599",
"service_reference_computer": "",
"service_xml_recipe": "<?xml version='1.0' encoding='utf-8'?>\n<instance>\n</instance>"
}
]
\ No newline at end of file
......@@ -22,8 +22,8 @@
{
"generate": "gadget",
"type": "listgrid",
"id": "subscription_select",
"href": "subscription_select"
"id": "subscription_overview",
"href": "subscription_overview"
}
]
}
......@@ -38,8 +38,8 @@
{
"generate": "gadget",
"type": "listbox",
"id": "release_select",
"href": "release_select"
"id": "release_overview",
"href": "release_overview"
}
]
}
......
{
"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"}}
]
}]
}]
}
......@@ -27,6 +27,14 @@
**/
map.actions = {
/**
* Create an installation
* @method installa
**/
"install": function () {
util.error({"error":"install: Nothing defined"});
},
/**
* Look up single value from dict
* @method translateLookup
......@@ -760,7 +768,7 @@
// the mapping from (ERP5) custom API to internal API here
"mapFormField": function (spec, overrides, passed_value) {
var validation_list, class_list, element, type, prevail, clear, config,
field_value;
field_value, skip, use_type, textarea_value;
// build config object
config = {};
......@@ -782,6 +790,7 @@
}
if (spec !== undefined) {
textarea_value = null;
field_value = passed_value || (prevail.widget.default_value === "0" ?
"0" : prevail.widget.default_value) ||
spec.widget.default_value || undefined;
......@@ -832,8 +841,23 @@
// unknown selection?
// type overwritten (only used for imageField so far)
if (prevail.type) {
use_type = prevail.type;
} else {
use_type = spec.type;
}
// type-related validation, element and type definition
switch (spec.type) {
switch (use_type) {
case "ImageField":
config = {
"type": "img",
"direct": {"src": field_value, "alt": ""},
"logic": {"skip": true}
};
skip = true;
break;
case "StringField":
case "RelationStringField":
case "IntegerField":
......@@ -878,6 +902,8 @@
"|maximum_length_of_line:" +
(prevail.properties.maximum_length_of_line ||
spec.properties.maximum_length_of_line);
textarea_value = field_value;
field_value = null;
break;
case "EmailField":
validation_list += "|type:email";
......@@ -887,13 +913,19 @@
break;
}
// for image fields, exit early
// TODO: do we really want that?
if (skip) {
return config;
}
if (validation_list === "") {
validation_list = undefined;
}
// construct config
// NOTE: type is always set in attributes, because it can be null
// on select/textarea
// NOTE: type (checkbox, radio...) set in attributes, because can be
// null on select/textarea
config.type = element;
config.direct = {
"id": (prevail.widget.id || spec.widget.id),
......@@ -917,6 +949,7 @@
"disabled": (prevail.properties.enabled || spec.properties.enabled) ?
undefined : true,
"value": field_value,
"text": textarea_value,
"readonly": (prevail.properties.editable === false ||
spec.properties.editable === false) ? true : undefined,
"options": (prevail.widget.items || spec.widget.items) ?
......@@ -1432,7 +1465,8 @@
target = document.createDocumentFragment();
if ((answer.data && answer.data.total_rows === 0) ||
if (
//(answer.data && answer.data.total_rows === 0) ||
(answer.data === undefined && answer.request_new === undefined)) {
target.appendChild(app.noItemsFound());
} else {
......@@ -2165,7 +2199,7 @@
factory.form = function (spec) {
var i, j, k, layout, element, container, area, field, overrides,
position, doc, config, value, stamp, sauce, encode, secure,
safety_box, fragment, wrap, item_id;
safety_box, fragment, wrap, item_id, input_config;
fragment = factory.util.wrapInForm(spec);
secure = spec.property_dict.secure;
......@@ -2270,14 +2304,30 @@
}
}
// loop fieldlist of layout section
for (j = 0; j < layout.fieldlist.length; j += 1) {
field = layout.fieldlist[j];
config = spec.fields[field.title];
overrides = field.overrides;
doc = spec.data || undefined;
// allow non-fieldlist form elements to be generated
// TODO: can we also generate a field from another portal_type here?
if (field.type) {
input_config = field;
// make sure value is set correctly
if (input_config.logic && input_config.logic.setValue) {
input_config.direct.value = input_config.logic.setValue +
util.generateUuid();
}
} else {
config = spec.fields[field.title];
overrides = field.overrides;
doc = spec.data || undefined;
value = doc ? (doc[field.title]) : undefined;
// map config to what we need
input_config = map.utils.mapFormField(config, overrides, value);
}
value = doc ? (doc[field.title]) : undefined;
switch (j) {
case 0:
......@@ -2293,13 +2343,23 @@
position = undefined;
break;
}
// generate and append
container.appendChild(factory.formElement(
map.utils.mapFormField(config, overrides, value),
true,
true,
position
));
if (input_config.logic && input_config.logic.skip) {
container.appendChild(factory.element(
input_config.type,
input_config.direct,
input_config.attributes || {},
input_config.logic || {}
));
} else {
// generate and append
container.appendChild(factory.formElement(
input_config,
true,
true,
position
));
}
}
fragment.appendChild(container);
}
......@@ -3488,8 +3548,10 @@
}
// hidden
// TODO: we should not have to clear here, should be done in mapFormField
if (config.attributes.type === "hidden") {
hidden_field = true;
delete config.logic.clear;
}
// mask
......@@ -3579,7 +3641,9 @@
}
// clear textarea type=null if set
if (config.type === "textarea") {
config.direct.className += mask;
delete config.attributes.type;
}
......@@ -3588,9 +3652,7 @@
disabled + readonly + (action || "") + (clear || "") + (theme || "");
// container
if (config.type === "textarea" ||
hidden_field ||
config.logic.plain_element) {
if (config.type === "textarea" || hidden_field || config.logic.plain_element) {
container = wrapper;
} else {
wrap_in_container = true;
......
......@@ -36,7 +36,8 @@
"cancel": "Cancel",
"register": "Register",
"create": "Create Instance",
"install": "Install"
"install": "Install",
"request": "Request"
},
"export_dict": {
"download": "Download"
......@@ -103,11 +104,16 @@
"subtitle": "Server instances being used"
},
"services": {
"add": "Install new software",
"add": "Add Service",
"install": "Install Release",
"select": "Select Release",
"title": "Services",
"subtitle": "Administration of Installed Software"
"subtitle": "Administration of Installed Software",
"prepare_instance": "Preparing Instance...",
"instance_id": "Instance ID",
"instance_recipe": "Instance Configuration",
"instance_server": "Computer",
"instance_network": "Network"
},
"networks": {
"no_servers": "No servers associated with this network.",
......@@ -184,23 +190,23 @@
}
}
},
"installation_dict": {
"service_dict": {
"field_list": {
"recipe": {
"title": "XML Parameters",
"description": "The xml configuration for this installation instance."
"description": "The xml configuration for this service instance."
},
"computer": {
"title": "Computer",
"description": "The computer this installation is made on."
"description": "The computer this service is made on."
},
"release": {
"title": "Release",
"description": "The release being this installation is based on."
"description": "The release being this service is based on."
},
"timestamp": {
"title": "Timestamp",
"description": "Data and time this installation was made."
"description": "Data and time this service was made."
},
"version": {
"title": "Version",
......@@ -228,7 +234,7 @@
},
"id": {
"title": "ID",
"description": "The id of this software installation."
"description": "The id of this software service."
}
}
},
......@@ -510,6 +516,10 @@
"title": "Description",
"description": "The description of the software release."
},
"detail": {
"title": "Detail Description",
"description": "The detailed description of this service."
},
"version": {
"title": "Version",
"description": "The version of the software release."
......
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