Commit cec0bbc4 authored by Rafael Monnerat's avatar Rafael Monnerat

Move parameter editor to its own bt5 and reintroduce ui tests

See merge request nexedi/slapos.core!617
parents 42d4d863 4a6449fb
......@@ -22,7 +22,9 @@
from erp5.component.test.SlapOSTestCaseMixin import SlapOSTestCaseMixin
import difflib
slapos_folder_list = """slapos_abyss
slapos_folder_list = """slapos_erp5
slapos_upgrader
slapos_abyss
slapos_base
slapos_contract
slapos_subscription_request
......@@ -38,6 +40,9 @@ slapos_pdm
slapos_simulation
slapos_slap_tool
slapos_wechat
slapos_panel
slapos_panel_compatibility
slapos_parameter_editor
slapos_configurator"""
common2_folder_list = """erp5_accounting_l10n_fr
......@@ -150,8 +155,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_web_redirect_assist
erp5_knowledge_pad
......@@ -167,11 +170,9 @@ erp5_invoicing
%(common_folder_list)s
erp5_xhtml_style
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -181,8 +182,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_knowledge_pad
erp5_simulation
......@@ -209,11 +208,8 @@ erp5_integration
erp5_invoicing
%(common_folder_list)s
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -226,8 +222,6 @@ erp5_interaction_drop
slapos_deploy_theme
erp5_web_hal_json
erp5_web_renderjs_ui
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_knowledge_pad
erp5_simulation
......@@ -241,11 +235,9 @@ erp5_integration
erp5_invoicing
%(common_folder_list)s
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -255,8 +247,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_xhtml_disabled
erp5_knowledge_pad
......@@ -274,11 +264,9 @@ erp5_jquery
%(common_folder_list)s
erp5_xhtml_style
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -288,8 +276,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_commerce_multiflex_layout
erp5_knowledge_pad
......@@ -304,11 +290,9 @@ erp5_integration
erp5_invoicing
%(common_folder_list)s
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -318,8 +302,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_web_download_theme
erp5_knowledge_pad
......@@ -335,11 +317,9 @@ erp5_invoicing
%(common_folder_list)s
erp5_xhtml_style
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -349,8 +329,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_knowledge_pad
erp5_simulation
......@@ -365,11 +343,9 @@ erp5_integration
erp5_invoicing
%(common_folder_list)s
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -379,8 +355,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_knowledge_pad
erp5_simulation
......@@ -395,11 +369,9 @@ erp5_integration
erp5_invoicing
%(common_folder_list)s
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -409,8 +381,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
slapos_rss_style
%(slapos_folder_list)s
erp5_rss_style
......@@ -426,11 +396,9 @@ erp5_integration
erp5_invoicing
%(common_folder_list)s
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -440,8 +408,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_web_shadir
erp5_web_download_theme
......@@ -458,11 +424,9 @@ erp5_invoicing
%(common_folder_list)s
erp5_xhtml_style
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -472,8 +436,6 @@ custom
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_web_shacache
erp5_web_download_theme
......@@ -490,11 +452,9 @@ erp5_invoicing
%(common_folder_list)s
erp5_xhtml_style
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -506,8 +466,6 @@ erp5_interaction_drop
slapos_web_renderjs_ui
erp5_web_hal_json
erp5_web_renderjs_ui
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_knowledge_pad
erp5_simulation
......@@ -521,11 +479,9 @@ erp5_integration
erp5_invoicing
%(common_folder_list)s
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -538,8 +494,6 @@ erp5_interaction_drop
erp5_hal_json_restricted_style
erp5_hal_json_style
erp5_web_hal_json
slapos_erp5
slapos_upgrader
%(slapos_folder_list)s
erp5_knowledge_pad
erp5_simulation
......@@ -554,11 +508,9 @@ erp5_invoicing
%(common_folder_list)s
erp5_xhtml_style
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': slapos_folder_list
}
......@@ -567,24 +519,7 @@ slapos_panel_compatibility
erp5_font
erp5_interaction_drop
erp5_web_hal_json
slapos_erp5
slapos_upgrader
slapos_abyss
slapos_base
slapos_contract
slapos_subscription_request
slapos_crm_monitoring
slapos_accounting
slapos_administration
slapos_cloud
slapos_consumption
slapos_core
slapos_crm
slapos_payzen
slapos_pdm
slapos_simulation
slapos_slap_tool
slapos_wechat
%(slapos_folder_list)s
erp5_slideshow_style
slapos_configurator
erp5_knowledge_pad
......@@ -600,12 +535,10 @@ erp5_invoicing
%(common_folder_list)s
erp5_xhtml_style
external_method
slapos_panel
slapos_panel_compatibility
""" % {'common_folder_list' : common_folder_list,
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
'slapos_folder_list': slapos_folder_list
""" % {'common_folder_list': common_folder_list,
'common2_folder_list': common2_folder_list,
'common3_folder_list': common3_folder_list,
'slapos_folder_list': "\n".join(slapos_folder_list.splitlines()[:-1])
}
def getTitle(self):
......@@ -631,7 +564,7 @@ slapos_panel_compatibility
selection_string_list = selection_string_list.split('\n')
installed_selection_string_list = \
[ i for i in installed_selection_string_list.split(',')
[i for i in installed_selection_string_list.split(',')
if i not in self.ignore_list]
if selection_string_list != installed_selection_string_list:
message = '\nSkin "%s" is different from production server:\n' % skin_name
......
/*global window, rJS, RSVP, btoa, JSON */
/*jslint nomen: true, indent: 2, maxerr: 3, sub:true */
(function (window, rJS, RSVP, btoa, JSON) {
"use strict";
rJS(window)
/////////////////////////////////////////////////////////////////
// Acquired methods
/////////////////////////////////////////////////////////////////
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("updatePanel", "updatePanel")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("jio_post", "jio_post")
.declareAcquiredMethod("jio_get", "jio_get")
.declareAcquiredMethod("jio_putAttachment", "jio_putAttachment")
.declareAcquiredMethod("notifySubmitting", "notifySubmitting")
.declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
.declareAcquiredMethod("getTranslationList", "getTranslationList")
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
.allowPublicAcquisition('notifySubmit', function () {
return this.triggerSubmit();
})
.onEvent('submit', function () {
var gadget = this;
return gadget.notifySubmitting()
.push(function () {
return gadget.getDeclaredGadget('form_view');
})
.push(function (form_gadget) {
return form_gadget.checkValidity()
.push(function (is_valid) {
if (!is_valid) {
return null;
}
return form_gadget.getContent();
});
})
.push(function (doc) {
if (doc === null) {
return gadget.notifySubmitted({message: "Doc is empty", status: 'error'});
}
return gadget.getSetting("hateoas_url")
.push(function () {
return gadget.notifySubmitted({message: "All is fine, we reseted your form.", status: 'success'})
.push(function () {
return gadget.redirect({"command": "change",
"options": {"url_string": doc.url_string,
"software_type": doc.software_type,
"parameter_output": doc.text_content}});
});
}, function (error) {
if (error.target.status === 409) {
return gadget.notifySubmitted({message: "Error 409", status: 'error'});
}
if (error.target.status === 400) {
return gadget.notifySubmitted({message: "Error 400", status: 'error'});
}
});
});
})
.declareMethod("triggerSubmit", function () {
// @ts-ignore
return this.element.querySelector('button[type="submit"]').click();
})
.declareMethod("render", function (options) {
if (options.url_string === undefined) {
options.url_string = "";
}
return this.changeState({
"url_string": options.url_string,
"parameter_output": options.parameter_output,
"software_type_list": options.software_type
});
})
.onStateChange(function onStateChange() {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return RSVP.all([
gadget.getDeclaredGadget('form_view'),
gadget.getSetting("hateoas_url")
]);
})
.push(function (result) {
var parameter_hash,
parameter_dict,
default_url;
if (gadget.state.url_string === "") {
default_url = result[1] + "sample-software-schema/simpledemo/software.cfg";
} else {
default_url = gadget.state.url_string;
}
if (gadget.state.parameter_output === undefined) {
parameter_hash = btoa('<?xml version="1.0" encoding="utf-8" ?><instance></instance>');
} else {
parameter_hash = btoa(gadget.state.parameter_output);
}
parameter_dict = {
'json_url': gadget.state.url_string.split('?')[0] + ".json",
'parameter_hash': parameter_hash
};
if (gadget.state.software_type_list) {
parameter_dict.software_type_list = gadget.state.software_type_list.split(',');
}
return result[0].render({
erp5_document: {
"_embedded": {"_view": {
"your_url_string": {
"description": "Software Release Url",
"title": "Software Release URL",
"default": default_url,
"css_class": "",
"required": 1,
"editable": gadget.state.url_string === "",
"key": "url_string",
"hidden": 0,
"type": "StringField"
},
"your_text_content": {
"description": "",
"title": "Parameters",
"default": "",
"css_class": "",
"required": 1,
"editable": gadget.state.url_string !== "",
"url": "gadget_erp5_page_slap_parameter_form.html",
"sandbox": "",
"key": "text_content",
"hidden": gadget.state.url_string === "",
"type": "GadgetField",
"renderjs_extra": JSON.stringify(parameter_dict)
},
"your_software_type": {
"description": "",
"title": "Software type",
"default": gadget.state.software_type_list,
"css_class": "",
"required": 0,
"editable": 1,
"sandbox": "",
"key": "software_type",
"hidden": 1,
"type": "StringField"
},
"your_parameter_output": {
"description": "",
"title": "Parameters Output",
"default": gadget.state.parameter_output,
"css_class": "",
"required": 0,
"editable": 0,
"sandbox": "",
"key": "parameter_output",
"hidden": gadget.state.parameter_output === undefined,
"type": "TextAreaField"
},
"your_parameter_hash": {
"description": "",
"title": "Parameters Hash",
"default": parameter_hash,
"css_class": "",
"required": 0,
"editable": 0,
"sandbox": "",
"key": "parameter_hash",
"hidden": gadget.state.parameter_output === undefined,
"type": "StringField"
}
}},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
}
},
form_definition: {
group_list: [[
"center",
[["your_url_string"], ["your_parameter_output"], ["your_software_type"], ["your_parameter_hash"], ["your_text_content"]]
]]
}
})
.push(function () {
return gadget.getUrlFor({"command": "change",
"options": {"url_string": undefined,
"software_type": undefined,
"parameter_output": undefined}});
})
.push(function (selection_url) {
return gadget.updateHeader({
page_title: "Parameter testing page",
selection_url: selection_url,
submit_action: true
});
});
});
});
}(window, rJS, RSVP, btoa, JSON));
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Script" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/person_module/1</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>creators</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_slap_test_parameter_form.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_master_panel_page_slap_test_parameter_form_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="DateTime" module="DateTime.DateTime"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.49</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>SlapOS Test Parameter Form JS</string> </value>
</item>
<item>
<key> <string>url_string</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="DateTime" module="DateTime.DateTime"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<tuple>
<float>1651720603.43</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <unicode>zope</unicode> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>1015.12705.32876.8379</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="DateTime" module="DateTime.DateTime"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<tuple>
<float>1710342286.39</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="DateTime" module="DateTime.DateTime"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<tuple>
<float>1651705914.51</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html>
<!--
data-i18n=Title
data-i18n=Instance Parameter
-->
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, user-scalable=no" />
<title>Site List</title>
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<!-- custom script -->
<script src="gadget_erp5_page_slap_test_readonly_parameter_form.js" type="text/javascript"></script>
</head>
<body>
<form class="save_form ui-body-c" novalidate>
<button type="submit" class="ui-btn ui-btn-b ui-btn-inline
ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
<div data-gadget-url="gadget_erp5_form.html"
data-gadget-scope="form_view"
data-gadget-sandbox="public">
</div>
</form>
</body>
</html>
/*global window, rJS, RSVP, btoa, JSON */
/*jslint nomen: true, indent: 2, maxerr: 3, sub:true */
(function (window, rJS, RSVP, btoa, JSON) {
"use strict";
rJS(window)
/////////////////////////////////////////////////////////////////
// Acquired methods
/////////////////////////////////////////////////////////////////
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("updatePanel", "updatePanel")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("jio_post", "jio_post")
.declareAcquiredMethod("jio_get", "jio_get")
.declareAcquiredMethod("jio_putAttachment", "jio_putAttachment")
.declareAcquiredMethod("notifySubmitting", "notifySubmitting")
.declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
.declareAcquiredMethod("getTranslationList", "getTranslationList")
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
.allowPublicAcquisition('notifySubmit', function () {
return this.triggerSubmit();
})
.onEvent('submit', function () {
var gadget = this;
return gadget.notifySubmitting()
.push(function () {
return gadget.getDeclaredGadget('form_view');
})
.push(function (form_gadget) {
return form_gadget.checkValidity()
.push(function (is_valid) {
if (!is_valid) {
return null;
}
return form_gadget.getContent();
});
})
.push(function (doc) {
if (doc === null) {
return gadget.notifySubmitted({message: "Doc is empty", status: 'error'});
}
return gadget.getSetting("hateoas_url")
.push(function () {
return gadget.notifySubmitted({message: "All is fine, we reseted your form.", status: 'success'})
.push(function () {
return gadget.redirect({"command": "change",
"options": {"url_string": doc.url_string,
"software_type": doc.software_type,
"shared": doc.shared,
"parameter_output": doc.parameter_output}});
});
}, function (error) {
if (error.target.status === 409) {
return gadget.notifySubmitted({message: "Error 409", status: 'error'});
}
if (error.target.status === 400) {
return gadget.notifySubmitted({message: "Error 400", status: 'error'});
}
});
});
})
.declareMethod("triggerSubmit", function () {
// @ts-ignore
return this.element.querySelector('button[type="submit"]').click();
})
.declareMethod("render", function (options) {
if (options.url_string === undefined) {
options.url_string = "";
}
if (options.restricted_softwaretype === undefined) {
options.restricted_softwaretype = false;
}
return this.changeState({
"url_string": options.url_string,
"parameter_output": options.parameter_output,
"software_type": options.software_type,
"shared": options.shared,
"restricted_softwaretype": options.restricted_softwaretype
});
})
.onStateChange(function onStateChange() {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return RSVP.all([
gadget.getDeclaredGadget('form_view'),
gadget.getSetting("hateoas_url")
]);
})
.push(function (result) {
var parameter_hash,
parameter_dict,
default_url;
if (gadget.state.url_string === "") {
default_url = result[1] + "sample-software-schema/simpledemo/software.cfg";
} else {
default_url = gadget.state.url_string;
}
if (gadget.state.parameter_output === undefined) {
parameter_hash = btoa('<?xml version="1.0" encoding="utf-8" ?><instance></instance>');
} else {
parameter_hash = btoa(gadget.state.parameter_output);
}
parameter_dict = {
'json_url': gadget.state.url_string.split('?')[0] + ".json",
'parameter_hash': parameter_hash,
'softwaretype': gadget.state.software_type,
'restricted_softwaretype': false
};
if (gadget.state.shared === 'yes') {
parameter_dict['shared'] = true;
}
return result[0].render({
erp5_document: {
"_embedded": {"_view": {
"your_url_string": {
"description": "Software Release Url",
"title": "Software Release URL",
"default": default_url,
"css_class": "",
"required": 1,
"editable": gadget.state.url_string === "",
"key": "url_string",
"hidden": 0,
"type": "StringField"
},
"your_text_content": {
"description": "",
"title": "Parameters",
"default": "",
"css_class": "",
"required": 1,
"editable": 0,
"url": "gadget_erp5_page_slap_parameter_form.html",
"sandbox": "",
"key": "text_content",
"hidden": gadget.state.url_string === "",
"type": "GadgetField",
"renderjs_extra": JSON.stringify(parameter_dict)
},
"your_software_type": {
"description": "Software Type",
"title": "Software Type",
"default": "default",
"css_class": "",
"required": 1,
"editable": gadget.state.url_string === "",
"key": "software_type",
"hidden": gadget.state.url_string !== "",
"type": "StringField"
},
"your_shared": {
"description": "Software Type",
"title": "Software Type",
"default": "no",
"css_class": "",
"required": 1,
"editable": gadget.state.url_string === "",
"key": "shared",
"hidden": gadget.state.url_string !== "",
"type": "StringField"
},
"your_text_content_to_load": {
"description": "",
"title": "Parameters to Load",
"default": '<?xml version="1.0" encoding="utf-8" ?><instance></instance>',
"css_class": "",
"required": 0,
"editable": 1,
"sandbox": "",
"key": "parameter_output",
"hidden": gadget.state.url_string !== "",
"type": "TextAreaField"
}
}},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
}
},
form_definition: {
group_list: [[
"center",
[["your_url_string"], ["your_software_type"], ["your_shared"], ["your_text_content"], ['your_text_content_to_load']]
]]
}
})
.push(function () {
return gadget.getUrlFor({"command": "change",
"options": {"url_string": undefined,
"software_type": undefined,
"shared": undefined,
"parameter_output": undefined}});
})
.push(function (selection_url) {
var header_dict = {
page_title: "Parameter testing page",
selection_url: selection_url };
if (gadget.state.parameter_output === undefined) {
header_dict['submit_action'] = true;
}
return gadget.updateHeader(header_dict);
});
});
});
}(window, rJS, RSVP, btoa, JSON));
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Script" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/person_module/1</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>creators</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_slap_test_readonly_parameter_form.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_master_panel_page_slap_test_readonly_parameter_form_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="DateTime" module="DateTime.DateTime"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.49</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>SlapOS Test ReadOnly Parameter Form JS</string> </value>
</item>
<item>
<key> <string>url_string</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="DateTime" module="DateTime.DateTime"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<tuple>
<float>1669084864.53</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <unicode>zope</unicode> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>1015.12705.32876.8379</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="DateTime" module="DateTime.DateTime"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<tuple>
<float>1710342895.79</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="DateTime" module="DateTime.DateTime"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<tuple>
<float>1669084700.39</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html>
<!--
data-i18n=Title
data-i18n=Instance Parameter
-->
<!--
data-i18n=Test Parameter
-->
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, user-scalable=no" />
<title>Site List</title>
<meta name="viewport" content="width=device-width" />
<title>SlapOS master Parameter Editor Test</title>
<link rel="http://www.renderjs.org/rel/interface" href="interface_page.html">
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<!-- custom script -->
<script src="gadget_erp5_page_slap_test_parameter_form.js" type="text/javascript"></script>
<script src="slapos_master_panel_test_parameter_editor.js" type="text/javascript"></script>
</head>
<body>
<form class="save_form ui-body-c" novalidate>
<button type="submit" class="ui-btn ui-btn-b ui-btn-inline
ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
<div data-gadget-url="gadget_erp5_form.html"
data-gadget-scope="form_view"
data-gadget-sandbox="public">
</div>
</form>
<div data-gadget-url="gadget_erp5_page_access.html"
data-gadget-scope="access" />
</body>
</html>
......@@ -73,7 +73,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_slap_test_readonly_parameter_form.html</string> </value>
<value> <string>gadget_erp5_page_slapos_master_panel_test_parameter_editor.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -83,11 +83,13 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_master_panel_page_slap_test_readonly_parameter_form_html</string> </value>
<value> <string>slapos_master_panel_test_parameter_editor_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
......@@ -101,11 +103,13 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget SlapOS Test Parameter Form</string> </value>
<value> <string>slapos_master_panel_test_parameter_editor</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>003</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -167,7 +171,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <unicode>zope</unicode> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -191,7 +195,7 @@
</tuple>
<state>
<tuple>
<float>1669085170.19</float>
<float>1712089325.17</float>
<string>UTC</string>
</tuple>
</state>
......@@ -240,7 +244,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>1015.12705.32876.8379</string> </value>
<value> <string>1015.41862.5660.48622</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -260,7 +264,7 @@
</tuple>
<state>
<tuple>
<float>1710342917.68</float>
<float>1712090505.27</float>
<string>UTC</string>
</tuple>
</state>
......@@ -291,7 +295,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <unicode>zope</unicode> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -323,7 +327,7 @@
</tuple>
<state>
<tuple>
<float>1669085149.81</float>
<float>1712088832.67</float>
<string>UTC</string>
</tuple>
</state>
......
/*jslint indent: 2, maxerr: 3, maxlen: 80 */
/*global window, rJS, RSVP */
(function (window, rJS, RSVP) {
"use strict";
rJS(window)
.declareAcquiredMethod("getTranslationDict", "getTranslationDict")
.declareMethod('triggerSubmit', function () {
var argument_list = arguments;
return this.getDeclaredGadget('access')
.push(function (access_gadget) {
return access_gadget.triggerSubmit.call(access_gadget, argument_list);
});
})
.declareMethod('render', function (options) {
return new RSVP.Queue(RSVP.hash({
access_gadget: this.getDeclaredGadget('access'),
translation_dict: this.getTranslationDict([
'Parameter Test'
])
}))
.push(function (result_dict) {
return result_dict.access_gadget.render(options, [{
title: result_dict.translation_dict['Parameter Test'],
jio_key: 'software_product_module',
erp5_action: 'slapos_parameter_editor_test_view'
}]);
});
});
}(window, rJS, RSVP));
......@@ -2,7 +2,7 @@
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
<global name="Web Script" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
......@@ -69,11 +69,13 @@
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_slap_test_parameter_form.html</string> </value>
<value> <string>slapos_master_panel_test_parameter_editor.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -83,15 +85,17 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_master_panel_page_slap_test_parameter_form_html</string> </value>
<value> <string>slapos_master_panel_test_parameter_editor_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
......@@ -101,11 +105,13 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget SlapOS Test Parameter Form</string> </value>
<value> <string>slapos_master_panel_test_parameter_editor_js</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>003</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -167,7 +173,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <unicode>zope</unicode> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -191,7 +197,7 @@
</tuple>
<state>
<tuple>
<float>1651706016.32</float>
<float>1712089365.26</float>
<string>UTC</string>
</tuple>
</state>
......@@ -240,7 +246,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>1015.12744.62617.8106</string> </value>
<value> <string>1015.44416.55889.43537</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -260,7 +266,7 @@
</tuple>
<state>
<tuple>
<float>1710342518.63</float>
<float>1712260056.81</float>
<string>UTC</string>
</tuple>
</state>
......@@ -291,7 +297,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <unicode>zope</unicode> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -323,7 +329,7 @@
</tuple>
<state>
<tuple>
<float>1651705738.5</float>
<float>1712089341.53</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -6,12 +6,33 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>55.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_panel</string> </value>
......
......@@ -6,12 +6,33 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>55.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_panel_compatibility</string> </value>
......
slapos_parameter_editor
erp5_web_renderjs_ui
erp5_access_token
erp5_commerce
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_parameter_editor_test_view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>30.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Parameter Editor Test View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/SoftwareProductModule_viewSoftwareReleaseForParameterEditorTestDialog</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>55.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_parameter_editor</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
return context.Base_renderForm(
'SoftwareProductModule_viewSoftwareReleaseForParameterEditorTestDialog',
message='Reset')
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProductModule_updateParameterEditorTestDialog</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
from hashlib import md5
return context.Base_renderForm(
'SoftwareProductModule_viewParameterEditorTestResultDialog',
message='Show Parameters posted.',
keep_items={'url_string': field_your_url_string,
"software_type": software_type,
"text_content": text_content,
"text_content_md5": md5(text_content).hexdigest()})
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>field_your_url_string, text_content, software_type, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProductModule_validateParameterEditorTestDialog</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
return context.Base_renderForm(
'SoftwareProductModule_viewParameterEditorTestDialog',
message='View Parameter Editor',
keep_items={'url_string': url_string,
"text_content": text_content or '<instance/>',
"softwaretype": softwaretype,
"read_only": read_only})
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>url_string, text_content=None, read_only=False, softwaretype=None, **kw </string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProductModule_validateSoftwareReleaseForParameterEditorTestDialog</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>SoftwareProductModule_validateParameterEditorTestDialog</string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
<value> <string>Proceed</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string>multipart/form-data</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list>
<string>your_url_string</string>
<string>your_text_content</string>
</list>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProductModule_viewParameterEditorTestDialog</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>SoftwareProductModule_viewParameterEditorTestDialog</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_dialog</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Proceed</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string>SoftwareProductModule_updateParameterEditorTestDialog</string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string>Reset</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>editable</string>
<string>gadget_url</string>
<string>renderjs_extra</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_text_content</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>gadget_url</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_dialog_mode_text_content</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>gadget_url</string> </key>
<value> <string>gadget_erp5_page_slap_parameter_form.html</string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Instance Parameter</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: not request.get(\'read_only\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string encoding="cdata"><![CDATA[
python: [(\'parameter_xml\', request.get(\'text_content\') or \'<instance/>\'), (\'softwaretype\', request.get(\'softwaretype\')), (\'json_url\', request.get(\'url_string\').split(\'?\')[0] + \'.json\'), (\'restricted_softwaretype\', False)]
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>editable</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_url_string</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Software Release</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.REQUEST.get(\'url_string\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>SoftwareProductModule_updateParameterEditorTestDialog</string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
<value> <string>Reset</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string>multipart/form-data</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list>
<string>your_url_string</string>
<string>your_text_content_hash</string>
<string>your_text_content</string>
</list>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>your_software_type</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProductModule_viewParameterEditorTestResultDialog</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>SoftwareProductModule_viewParameterEditorTestResultDialog</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_dialog</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Return</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>editable</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_software_type</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Software Type</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.REQUEST.get(\'software_type\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>editable</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_text_content</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_raw_text_content</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Instance Parameter</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.REQUEST.get(\'text_content\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: [(\'json_url\', request.get(\'url_string\').split(\'?\')[0] + \'.json\'), (\'restricted_softwaretype\', False)]</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>editable</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_text_content_hash</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_raw_text_content</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Parameter Hash</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: request.get(\'text_content_md5\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: [(\'json_url\', request.get(\'url_string\').split(\'?\')[0] + \'.json\'), (\'restricted_softwaretype\', False)]</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>editable</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_url_string</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Software Release</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.REQUEST.get(\'url_string\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>SoftwareProductModule_validateSoftwareReleaseForParameterEditorTestDialog</string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string>multipart/form-data</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list>
<string>your_url_string</string>
<string>your_read_only</string>
<string>your_softwaretype</string>
<string>your_text_content</string>
</list>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareProductModule_viewSoftwareReleaseForParameterEditorTestDialog</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>SoftwareProductModule_viewSoftwareReleaseForParameterEditorTestDialog</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_dialog</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Submit Test Data</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="CheckBoxField" module="Products.Formulator.StandardFields"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_read_only</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>This field is mandatory.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Read Only</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_softwaretype</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Software Release</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="TextAreaField" module="Products.Formulator.StandardFields"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_text_content</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>line_too_long</string> </key>
<value> <string>A line was too long.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>too_long</string> </key>
<value> <string>You entered too many characters.</string> </value>
</item>
<item>
<key> <string>too_many_lines</string> </key>
<value> <string>You entered too many lines.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_linelength</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_lines</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_linelength</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_lines</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Initial parameters to be loaded on the field, this is useful for test edit or whenever if you think if your parameter is correct.</string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>5</int> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_linelength</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_lines</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Initial Parameters</string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>40</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_url_string</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Software Release</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.getPortalObject().absolute_url() + \'/sample-software-schema/simpledemo/software.cfg\'</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -514,6 +514,11 @@
software_type_list = options.software_type_list;
}
if (options.softwaretype === "" || options.softwaretype === null) {
// Drop emtpy value for consistency
delete options.softwaretype;
}
if (options.softwaretype !== undefined) {
restricted_softwaretype = true;
// exceptional situation where the default item must be in
......@@ -637,7 +642,35 @@
content_dict.text_content = xml_result;
return content_dict;
});
}, {mutex: 'statechange'});
}, {mutex: 'statechange'})
.declareMethod('checkValidity', function () {
var g = this;
return g.getElement()
.push(function (element) {
var text_content = element.querySelector('textarea[name=text_content]'),
doc;
if (!g.state.editable) {
// Anything not editable is valid.
return true;
}
if (text_content !== null) {
if (text_content.value === "") {
// This would use standard value from getContent (which is valid).
return true;
}
doc = new DOMParser().parseFromString(text_content.value, "text/xml");
if (doc.querySelector('parsererror') !== null) {
return false;
}
return true;
}
return g.getDeclaredGadget('json_form')
.push(function (gadget) {
return gadget.checkValidity();
});
});
});
}(window, rJS, XMLSerializer, DOMParser, vkbeautify,
domsugar, Boolean, URI));
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>minimal_multiform_demo</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Shared A",
"type": "object",
"anyOf": [
{"$ref": "./instance-shared-A-part1-input-schema.json"},
{"$ref": "./instance-shared-A-part2-input-schema.json"}
]
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>instance-shared-A-input-schema.json</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/x-json</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Shared type A1",
"type": "object",
"description": "Sample paremeters for a Simple Demo with broken or bad standards",
"required": ["A"],
"additionalProperties": false,
"properties": {
"A" : {
"title": "A",
"type": "object",
"required": ["A1"],
"properties": {
"A1": {
"title": "A1",
"type": "object",
"additionalProperties": true,
"properties": {
"string-type-a1": {
"title": "String Type A1",
"description": "Description for Type A1",
"default": "Type A1",
"type": "string"
},
"boolean-type-a1": {
"title": "Boolean Type A1",
"description": "Description for Boolean Type A1",
"default": true,
"type": "boolean"
}
}
}
}
}
}
}
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>instance-shared-A-part1-input-schema.json</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/x-json</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Shared type A2",
"type": "object",
"required": ["A"],
"additionalProperties": false,
"properties": {
"A" : {
"title": "A",
"type": "object",
"additionalProperties": false,
"required": ["A2"],
"properties": {
"A2": {
"title": "A2",
"type": "object",
"additionalProperties": true,
"properties": {
"string-type-A2": {
"title": "String Type A2",
"description": "Description for Type A2",
"default": "Type A2",
"type": "string"
},
"boolean-type-A2": {
"title": "Boolean Type A2",
"description": "Description for Boolean Type A2",
"default": true,
"type": "boolean"
}
}
}
}
}
}
}
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>instance-shared-A-part2-input-schema.json</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/x-json</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Shared B",
"type": "object",
"anyOf": [
{"$ref": "./instance-shared-B-part1-input-schema.json"},
{"$ref": "./instance-shared-B-part2-input-schema.json"}
]
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>instance-shared-B-input-schema.json</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/x-json</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Shared type B1",
"type": "object",
"required": ["B"],
"additionalProperties": false,
"properties": {
"B" : {
"title": "B",
"type": "object",
"additionalProperties": false,
"required": ["B1"],
"properties": {
"B1": {
"title": "B1",
"type": "object",
"additionalProperties": true,
"required": ["string-type-B1"],
"properties": {
"string-type-B1": {
"title": "String Type B1",
"description": "Description for Type B1",
"default": "Type B1",
"type": "string"
},
"boolean-type-B1": {
"title": "Boolean Type B1",
"description": "Description for Boolean Type B1",
"default": true,
"type": "boolean"
}
}
}
}
}
}
}
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>instance-shared-B-part1-input-schema.json</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/x-json</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Shared type B2",
"type": "object",
"additionalProperties": false,
"required": ["B"],
"properties": {
"B" : {
"title": "B",
"type": "object",
"required": ["B2"],
"additionalProperties": false,
"properties": {
"B2": {
"title": "B2",
"type": "object",
"additionalProperties": true,
"properties": {
"string-type-B2": {
"title": "String Type B2",
"description": "Description for Type B2",
"default": "Type B2",
"type": "string"
},
"boolean-type-B2": {
"title": "Boolean Type B2",
"description": "Description for Boolean Type B2",
"default": true,
"type": "boolean"
}
}
}
}
}
}
}
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>instance-shared-B-part2-input-schema.json</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/x-json</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Sample paremeters for a Simple Demo with broken or bad standards",
"anyOf": [
{"$ref": "./instance-shared-A-input-schema.json"},
{"$ref": "./instance-shared-B-input-schema.json"}
]
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>instance-shared-input-schema.json</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/x-json</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
{
"name": "Simple Demo following bad parameters",
"description": "Demo Simple following bad parameters",
"serialisation": "json-in-xml",
"software-type": {
"default": {
"title": "Default",
"description": "Default reference parameters",
"request": "instance-input-schema.json",
"response": "instance-output-schema.json",
"index": 0
},
"default-shared": {
"title": "Shared",
"description": "Default reference parameters",
"request": "instance-shared-input-schema.json",
"response": "instance-output-schema.json",
"software-type": "default",
"shared": true,
"index": 1
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Sample paremeters for a Simple Demo with broken or bad standards",
"additionalProperties": false,
"properties": {
"simple-boolean-as-string": {
"title": "Example of Boolean defined as String (WORKS BUT BAD PATTERN)",
"description": "Example of Boolean defined as String (WORKS BUT BAD PATTERN)",
"enum": [
"false",
"true"
],
"type": "string"
},
"simple-boolean": {
"title": "Correct Boolean definition",
"description": "Correct Boolean definition",
"type": "boolean",
"default": true
},
"simple-string-with-template": {
"title": "Simple String with template and options",
"description": "Example of Simple String with template and options, both MUST NOT WORK",
"type": "string",
"default": "Simple string",
"template": "COUSXCOUS",
"options": { "hidden": true }
}
}
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>instance-input-schema.json</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/x-json</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>software.cfg.json</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/x-json</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>software.cfg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
slapos_cloud
\ No newline at end of file
Parameter Editor
\ No newline at end of file
Software Product Module | slapos_parameter_editor_test_view
\ No newline at end of file
slapos_parameter_editor
\ No newline at end of file
slapos_parameter_editor
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Zuite" module="Products.Zelenium.zuite"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_parameter_editor_zuite</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Zuite" module="Products.Zelenium.zuite"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>core_zuite</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -12,20 +12,12 @@
<td rowspan="1" colspan="3">Test Parameter editor (AllOf)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/simpledemo/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/simpledemo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/select_software_type_json_in_xml" />
<tr>
......@@ -111,18 +103,23 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tal:block tal:define="name python:'root[simple-string-required]'; value python: 'required string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-string-with-enum-required]'; value python: 'required string A'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-object-is-required][sample-object-string]'; value python: 'required object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="parameter_hash string:9a7dabf285707a440cd59bbac0bcf0b0">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0iXyI+ewogICAgInNpbXBsZS1zdHJpbmciOiAidGhpcyBpcyBhIHNpbXBsZSBzdHJpbmciLAogICAgInNpbXBsZS1zdHJpbmctd2l0aC1lbnVtIjogInNpbXBsZSBzdHJpbmcgQiIsCiAgICAic2ltcGxlLWJvb2xlYW4iOiB0cnVlLAogICAgInNpbXBsZS1zdHJpbmctd2l0aC10ZXh0LWFyZWEiOiAidGhpcyBpcyBhIHNpbXBsZSBzdHJpbmcgb24gYSB0ZXh0IGFyZWEiLAogICAgInNpbXBsZS1pbnRlZ2VyIjogMSwKICAgICJzaW1wbGUtaW50ZWdlci13aXRoLWVudW0iOiA3LAogICAgInNpbXBsZS1udW1lcmljLWludGVnZXIiOiAyLAogICAgInNpbXBsZS1udW1lcmljLWludGVnZXItZW51bSI6IDEzLAogICAgInNpbXBsZS1udW1lcmljLWZsb2F0IjogMiwKICAgICJzaW1wbGUtbnVtZXJpYy1mbG9hdC1lbnVtIjogMS4yNSwKICAgICJzaW1wbGUtb2JqZWN0IjogewogICAgICAgICJzYW1wbGUtb2JqZWN0LXN0cmluZyI6ICJ0aGlzIGlzIGEgc2ltcGxlIHN0cmluZyBvbiBhbiBvYmplY3QiLAogICAgICAgICJzaW1wbGUtb2JqZWN0LXdpdGgtaW50ZWdlciI6IDk5LAogICAgICAgICJzaW1wbGUtb2JqZWN0LXdpdGgtaW50ZWdlci13aXRoLWVudW0iOiAyCiAgICB9LAogICAgInNpbXBsZS1vYmplY3QtZGljdCI6IHsKICAgICAgICAiRXhhbXBsZSBvZiBTaW1wbGUgb2JqZWN0IjogewogICAgICAgICAgICAic2ltcGxlLW9iamVjdC1kaWN0LXN0cmluZy1leGFtcGxlIjogIlRoaXMgYW4gZXhhbXBsZSBvZiBhIHN0cmluZyBvbiBhbiBvYmplY3QiLAogICAgICAgICAgICAic2ltcGxlLW9iamVjdC1kaWN0LXN0cmluZy13aXRoLWVudW0iOiAiU3RyaW5nIFNhbXBsZSBBIgogICAgICAgIH0KICAgIH0KfTwvcGFyYW1ldGVyPgo8L2luc3RhbmNlPg==</td>
<td></td>
</tr>
</tbody>
</table>
</body>
......
......@@ -12,28 +12,22 @@
<td rowspan="1" colspan="3">Test Parameter editor (AllOf ReadOnly)</td>
</tr>
</thead>
<tbody>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/simpledemo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init_readonly" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/simpledemo/software.cfg</td>
</tr>
<tr>
<td>type</td>
<td>//textarea[@name='parameter_output']</td>
<td>//textarea[@name='field_your_text_content']</td>
<td tal:content="python: '<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?><instance><parameter id=&quot;_&quot;>{&quot;simple-string&quot;: &quot;this is a simple string&quot;,&quot;simple-string-with-enum&quot;: &quot;simple string B&quot;,&quot;simple-boolean&quot;: true,&quot;simple-string-with-text-area&quot;: &quot;this is a simple string on a text area&quot;,&quot;simple-integer&quot;: 1,&quot;simple-integer-with-enum&quot;: 7,&quot;simple-numeric-integer&quot;: 2,&quot;simple-numeric-integer-enum&quot;: 13,&quot;simple-numeric-float&quot;: 2,&quot;simple-numeric-float-enum&quot;: 1.25,&quot;simple-object&quot;: { &quot;sample-object-string&quot;: &quot;this is a simple string on an object&quot;, &quot;simple-object-with-integer&quot;: 99, &quot;simple-object-with-integer-with-enum&quot;: 2},&quot;simple-object-dict&quot;: { &quot;Example of Simple object&quot;: { &quot;simple-object-dict-string-example&quot;: &quot;This an example of a string on an object&quot;,&quot;simple-object-dict-string-with-enum&quot;: &quot;String Sample A&quot; }}}</parameter></instance>'"></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='software_type']</td>
<td>//input[@name='field_your_softwaretype']</td>
<td>jsondefault</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tr>
......
......@@ -12,18 +12,12 @@
<td rowspan="1" colspan="3">Test Parameter editor (XML Serialisation)</td>
</tr>
</thead>
<tbody>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/simplebaddemo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/simplebaddemo/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
......@@ -67,22 +61,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciB</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLWJvb2xlYW4tYXMtc3RyaW5nIj5mYWxzZTwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLWJvb2xlYW4iPnRydWU8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1zdHJpbmctd2l0aC10ZW1wbGF0ZSI+dGhpcyBpcyBhIHNpbXBsZSBzdHJpbmc8L3BhcmFtZXRlcj4KPC9pbnN0YW5jZT4=</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:d01ea00ea6adc5b47c9652fb1d1cf99c">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
......
......@@ -12,17 +12,12 @@
<td rowspan="1" colspan="3">Test Parameter editor (Change Serialisation)</td>
</tr>
</thead>
<tbody>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_dual_type/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_dual_type/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
......@@ -30,7 +25,6 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/select_software_type_json_in_xml" />
<tal:block tal:define="name python:'root[simple-string-in-json]'">
......@@ -176,18 +170,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLXN0cmluZyI+dGhpcyBpcyBhIHNpbXBsZSBzdHJpbmc8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1pbnRlZ2VyIj4xPC9wYXJhbWV0ZXI+CjwvaW5zdGFuY2U+</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:9bed5f5bd1959d3e2f368af94759bb92">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,27 +12,22 @@
<td rowspan="1" colspan="3">Test Parameter editor (Duplicated Software Type)</td>
</tr>
</thead>
<tbody>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_duplicated_software_type/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_duplicated_software_type/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '&lt;instance&gt;&lt;/instance&gt;')]</td>
<td>//textarea[@name="text_content" and contains(text(), '&lt;instance/&gt;')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '&lt;instance&gt;&lt;/instance&gt;')]</td>
<td>//textarea[@name="text_content" and contains(text(), '&lt;instance/&gt;')]</td>
<td></td>
</tr>
......@@ -56,19 +51,9 @@
<td>//textarea[@name="text_content"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '&lt;instance&gt;&lt;/instance&gt;')]</td>
<td>//textarea[@name="text_content" and contains(text(), '&lt;instance/&gt;')]</td>
<td></td>
</tr>
<tr>
......@@ -87,18 +72,11 @@
<td>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;&lt;instance&gt;&lt;parameter id=&quot;_&quot;&gt;{&quot;simple-string-in-json&quot;: &quot;1024&quot;}&lt;/parameter&gt;&lt;/instance&gt;</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+PGluc3RhbmNlPjxwYXJhbWV0ZXIgaWQ9Il8iPnsic2ltcGxlLXN0cmluZy1pbi1qc29uIjogIjEwMjQifTwvcGFyYW1ldGVyPjwvaW5zdGFuY2U+</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:2fbcafcbb8f0cf13fec61f7d04a8f080">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,48 +12,17 @@
<td rowspan="1" colspan="3">Test Parameter editor (Filter software_type)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr>
<td>open</td>
<td>${base_url}/web_site_module/hostingjs/#/?page=slap_test_parameter_form</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/wait_for_app_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name='url_string']</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name='url_string']</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name='software_type']</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name='software_type']</td>
<td></td>
</tr>
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_dual_type/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_dual_type/software.cfg</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='software_type']</td>
<td>//input[@name='field_your_softwaretype']</td>
<td>jsondefault</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tr>
<td colspan="3"><b> Only JSON in XML Software type is available</b></td>
</tr>
......@@ -104,17 +73,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0iXyI+ewogICAgInNpbXBsZS1zdHJpbmctaW4tanNvbiI6ICJ0aGlzIGlzIGEgc2ltcGxlIHN0cmluZyIsCiAgICAic2ltcGxlLWludGVnZXItaW4tanNvbiI6IDEKfTwvcGFyYW1ldGVyPgo8L2luc3RhbmNlPg==</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:15809071562aa694f7403042eb2f51e8">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,49 +12,16 @@
<td rowspan="1" colspan="3">Test Parameter editor (Filter software_type)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr>
<td>open</td>
<td>${base_url}/web_site_module/hostingjs/#/?page=slap_test_parameter_form</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/wait_for_app_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name='url_string']</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name='url_string']</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name='software_type']</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name='software_type']</td>
<td></td>
</tr>
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_dual_type/software.cfg</td>
</tr>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_dual_type/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td>type</td>
<td>//input[@name='software_type']</td>
<td>//input[@name='field_your_softwaretype']</td>
<td>default</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tr>
<td colspan="3"><b> Only Default Software type is available</b></td>
......@@ -96,18 +63,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLXN0cmluZyI+dGhpcyBpcyBhIHNpbXBsZSBzdHJpbmc8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1pbnRlZ2VyIj4xPC9wYXJhbWV0ZXI+CjwvaW5zdGFuY2U+</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:9bed5f5bd1959d3e2f368af94759bb92">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,21 +12,13 @@
<td rowspan="1" colspan="3">Test Parameter editor (Change Serialisation)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/simpledemo/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/simpledemo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[simple-numeric-integer]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
......@@ -96,19 +88,14 @@
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLXN0cmluZy13aXRoLWVudW0tcmVxdWlyZWQiPlNvbWUgUmFuZG9tIFN0cmluZzwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLWJvb2xlYW4iPk5vdCB0cnVlPC9wYXJhbWV0ZXI+CjwvaW5zdGFuY2U+</td>
<td></td>
<td colspan="3"><b>Post raw since due validation the form cannot be posted</b></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
<tal:block tal:define="parameter_hash string:71d2eb2389cca20a63f8f92116db3b10">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,18 +12,11 @@
<td rowspan="1" colspan="3">Test Parameter editor (Change Serialisation)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/simpledemo/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/simpledemo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
......@@ -73,18 +66,14 @@
<td>z</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtaW50ZWdlciI+YjwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtZmxvYXQiPno8L3BhcmFtZXRlcj4KPC9pbnN0YW5jZT4=</td>
<td></td>
<td colspan="3"><b>Post raw since due validation the form cannot be posted</b></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
<tal:block tal:define="parameter_hash string:2fb56a2c0ef20f616c501b888b984aca">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -9,21 +9,14 @@
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr>
<td rowspan="1" colspan="3">Test Parameter editor (Change Serialisation)</td>
<td rowspan="1" colspan="3">Test Parameter editor (Invalid Integer in JSONinXML)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/simpledemo/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/simpledemo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/select_software_type_json_in_xml" />
......@@ -31,6 +24,18 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//input[@class='slapos-serialisation-type' and @value = 'json-in-xml']</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@class='slapos-serialisation-type' and @value = 'json-in-xml']</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
<tr>
......@@ -72,18 +77,14 @@
<td>z</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0iXyI+ewogICAgInNpbXBsZS1udW1lcmljLWludGVnZXIiOiAiYiIsCiAgICAic2ltcGxlLW51bWVyaWMtZmxvYXQiOiAieiIKfTwvcGFyYW1ldGVyPgo8L2luc3RhbmNlPg==</td>
<td></td>
<td colspan="3"><b>Post raw since due validation the form cannot be posted</b></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
<tal:block tal:define="parameter_hash string:460cad7ca03045574472fea644af60ee">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,19 +12,12 @@
<td rowspan="1" colspan="3">Test Parameter editor (Change Serialisation)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_dual_type/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_dual_type/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection" />
<tal:block tal:define="name python:'root[simple-string]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
......@@ -178,7 +171,6 @@
<td>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;instance&gt;&lt;parameter id=&quot;_&quot;&gt;{&quot;simple-string-in-json&quot;: &quot;1024&quot;}&lt;/parameter&gt;&lt;/instance&gt;</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter" />
<tal:block tal:define="name python:'root[simple-string-in-json]'">
......@@ -191,18 +183,14 @@
<td>1024</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0iXyI+ewogICAgInNpbXBsZS1zdHJpbmctaW4tanNvbiI6ICIxMDI0Igp9PC9wYXJhbWV0ZXI+CjwvaW5zdGFuY2U+</td>
<td></td>
<td colspan="3"><b>Post raw since due validation the form cannot be posted</b></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
<tal:block tal:define="parameter_hash string:17705a2680533a5ea29772bb6148d06b">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -11,19 +11,11 @@
<tr>
<td rowspan="1" colspan="3">Test Parameter editor (XML Serialisation)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_json_in_xml_demo/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_json_in_xml_demo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
......@@ -101,17 +93,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0iXyI+ewogICAgInNpbXBsZS1zdHJpbmciOiAidGhpcyBpcyBhIHNpbXBsZSBzdHJpbmciLAogICAgInNpbXBsZS1zdHJpbmctd2l0aC1lbnVtIjogInNpbXBsZSBzdHJpbmcgQiIsCiAgICAic2ltcGxlLWJvb2xlYW4iOiB0cnVlLAogICAgInNpbXBsZS1zdHJpbmctd2l0aC10ZXh0LWFyZWEiOiAidGhpcyBpcyBhIHNpbXBsZSBzdHJpbmcgb24gYSB0ZXh0IGFyZWEiLAogICAgInNpbXBsZS1pbnRlZ2VyIjogMSwKICAgICJzaW1wbGUtaW50ZWdlci13aXRoLWVudW0iOiA3LAogICAgInNpbXBsZS1udW1lcmljLWludGVnZXIiOiAyLAogICAgInNpbXBsZS1udW1lcmljLWludGVnZXItZW51bSI6IDEzLAogICAgInNpbXBsZS1udW1lcmljLWZsb2F0IjogMiwKICAgICJzaW1wbGUtbnVtZXJpYy1mbG9hdC1lbnVtIjogMS4yNSwKICAgICJzaW1wbGUtb2JqZWN0IjogewogICAgICAgICJzYW1wbGUtb2JqZWN0LXN0cmluZyI6ICJ0aGlzIGlzIGEgc2ltcGxlIHN0cmluZyBvbiBhbiBvYmplY3QiLAogICAgICAgICJzaW1wbGUtb2JqZWN0LXdpdGgtaW50ZWdlciI6IDk5LAogICAgICAgICJzaW1wbGUtb2JqZWN0LXdpdGgtaW50ZWdlci13aXRoLWVudW0iOiAyCiAgICB9LAogICAgInNpbXBsZS1vYmplY3QtZGljdCI6IHsKICAgICAgICAiRXhhbXBsZSBvZiBTaW1wbGUgb2JqZWN0IjogewogICAgICAgICAgICAic2ltcGxlLW9iamVjdC1kaWN0LXN0cmluZy1leGFtcGxlIjogIlRoaXMgYW4gZXhhbXBsZSBvZiBhIHN0cmluZyBvbiBhbiBvYmplY3QiLAogICAgICAgICAgICAic2ltcGxlLW9iamVjdC1kaWN0LXN0cmluZy13aXRoLWVudW0iOiAiU3RyaW5nIFNhbXBsZSBBIgogICAgICAgIH0KICAgIH0KfTwvcGFyYW1ldGVyPgo8L2luc3RhbmNlPg==</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:eda98d74bfd8e89d84bb5e578ff8bc0c">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,22 +12,17 @@
<td rowspan="1" colspan="3">Test Parameter editor (JSON in XML Serialisation)</td>
</tr>
</thead>
<tbody>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_json_in_xml_demo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init_readonly" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_json_in_xml_demo/software.cfg</td>
</tr>
<tr>
<td>type</td>
<td>//textarea[@name='parameter_output']</td>
<td>//textarea[@name='field_your_text_content']</td>
<td tal:content="python: '<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?><instance><parameter id=&quot;_&quot;>{&quot;simple-string&quot;: &quot;this is a simple string&quot;,&quot;simple-string-with-enum&quot;: &quot;simple string B&quot;,&quot;simple-boolean&quot;: true,&quot;simple-string-with-text-area&quot;: &quot;this is a simple string on a text area&quot;,&quot;simple-integer&quot;: 1,&quot;simple-integer-with-enum&quot;: 7,&quot;simple-numeric-integer&quot;: 2,&quot;simple-numeric-integer-enum&quot;: 13,&quot;simple-numeric-float&quot;: 2,&quot;simple-numeric-float-enum&quot;: 1.25,&quot;simple-object&quot;: { &quot;sample-object-string&quot;: &quot;this is a simple string on an object&quot;, &quot;simple-object-with-integer&quot;: 99, &quot;simple-object-with-integer-with-enum&quot;: 2},&quot;simple-object-dict&quot;: { &quot;Example of Simple object&quot;: { &quot;simple-object-dict-string-example&quot;: &quot;This an example of a string on an object&quot;,&quot;simple-object-dict-string-with-enum&quot;: &quot;String Sample A&quot; }}}</parameter></instance>'"></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testSlapOSJSTestParameterEditorOneForMultipleForm</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test Parameter editor (XML Serialisation) </title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr>
<td rowspan="1" colspan="3">Test Parameter editor (XML Serialisation)</td>
</tr>
</thead>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_multiform_demo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b> Change Software type</b></td>
</tr>
<tr>
<td>select</td>
<td>//div[contains(@data-gadget-url,
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]
</td>
<td>Shared</td>
</tr>
<tal:block tal:define="name python:'root[A][A1][string-type-a1]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'this is a simple string')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'this is a simple string')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'string-type-a1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'string-type-a1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'A1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'A1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '"A"')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '"A"')]</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter" />
<tal:block tal:define="name python:'root[A][A1][string-type-a1]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Change Form to Shared B</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@data-schemaid="root"]/select[@id="rootswitcher"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//div[@data-schemaid="root"]/select[@id="rootswitcher"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//div[@data-schemaid="root"]/select[@id="rootswitcher"]</td>
<td>Shared B</td>
</tr>
<tal:block tal:define="name python:'root[B][B1][string-type-B1]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'this is a simple string')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'this is a simple string')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'string-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'string-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'B1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'B1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '"B"')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '"B"')]</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter" />
<tal:block tal:define="name python:'root[B][B1][string-type-B1]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_input_text" />
</tal:block>
<tal:block tal:define="name python:'root[B][B1][string-type-B1]'; value python: ''">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[B][B1][boolean-type-B1]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
<tr>
<td>waitForElementNotPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'string-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementNotPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'string-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'B1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'B1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '"B"')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '"B"')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'boolean-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'boolean-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'true')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'true')]</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter" />
<tr>
<td>waitForElementPresent</td>
<td>//div[@class="error"]//span[@class="error_msg" and text() = "Error: Could not safely render data into the form."]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//div[@class="error"]//span[@class="error_msg" and text() = "Error: Could not safely render data into the form."]</td>
<td></td>
</tr>
<tr>
<td>waitForElementNotPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'string-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementNotPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'string-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'B1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'B1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '"B"')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '"B"')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'boolean-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'boolean-type-B1')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'true')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), 'true')]</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:6427c932a6a8c2828c40f52a7663209c">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
</html>
\ No newline at end of file
......@@ -12,18 +12,11 @@
<td rowspan="1" colspan="3">Test Parameter editor (Change Serialisation)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_json_in_xml_demo/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_json_in_xml_demo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[simple-string]'">
......@@ -63,18 +56,9 @@
<td>500</td>
<td>500</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZ</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48aW5zdGFuY2U+PHBhcmFtZXRlciBpZD0iXyI+eyJzaW1wbGUtc3RyaW5nLWluLWpzb24iOiAiMTAyNCJ9PC9wYXJhbWV0ZXI+PC9pbnN0YW5jZT4=</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:2cf80ba9404a046a78648e09044c5f64">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,18 +12,11 @@
<td rowspan="1" colspan="3">Test Parameter editor (Post Raw Parameter)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_dual_type/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_dual_type/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[simple-string]'">
......@@ -50,18 +43,9 @@
<td>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;&lt;instance&gt;&lt;parameter id=&quot;simple-string&quot;&gt;1024&lt;/parameter&gt;&lt;/instance&gt;</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVV</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+PGluc3RhbmNlPjxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1zdHJpbmciPjEwMjQ8L3BhcmFtZXRlcj48L2luc3RhbmNlPg==</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:8a96967436d975b96523396bc0ff73e0">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testSlapOSJSTestParameterEditorRawValidation</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test Parameter editor (AllOf) </title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr>
<td rowspan="1" colspan="3">Test Parameter editor post raw</td>
</tr>
</thead>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/simpledemo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/select_software_type_json_in_xml" />
<tr>
<td>waitForElementPresent</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'simple-object-is-required'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'simple-object-is-required'"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//input[@class='slapos-serialisation-type' and @value = 'json-in-xml']</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@class='slapos-serialisation-type' and @value = 'json-in-xml']</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '{}')]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content" and contains(text(), '{}')]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//textarea[@name="text_content"]</td>
<td>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;&lt;instance&gt;&lt;parameter id=&quot;simple-string&quot;&gt;1024&lt;/xxx&gt;&lt;/instance&gt;</td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block tal:define="notification_configuration python: {'class': 'error',
'text': 'Please fill all required fields to submit'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
</tal:block>
<tr>
<td>type</td>
<td>//textarea[@name="text_content"]</td>
<td>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;&lt;instance&gt;&lt;parameter id=&quot;simple-string&quot;&gt;1024&lt;/parameter&gt;&lt;/instance&gt;</td>
</tr>
<tal:block tal:define="parameter_hash string:8a96967436d975b96523396bc0ff73e0">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testSlapOSJSTestParameterEditorValidation</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test Parameter editor (AllOf) </title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr>
<td rowspan="1" colspan="3">Test Parameter editor (AllOf)</td>
</tr>
</thead>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/simpledemo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/select_software_type_json_in_xml" />
<tr>
<td>waitForElementPresent</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'simple-object-is-required'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'simple-object-is-required'"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-string-with-enum]'; value python: 'simple string B'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-boolean]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-integer-with-enum]'; value python: 7">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-numeric-integer]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-numeric-integer-enum]'; value python: 13">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_textarea" />
</tal:block>
<tal:block tal:define="name python:'root[simple-object][sample-object-string]'; value python: 'this is a simple string on an object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-object][simple-object-with-integer]'; value python: '99'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-object][simple-object-with-integer-with-enum]'; value python: '2'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Add one object </b></td>
</tr>
<tal:block tal:define="name python:'root.simple-object-dict'; value python: 'Example of Simple object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/json_add_property" />
</tal:block>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-example]';
value python: 'This an example of a string on an object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-with-enum]';
value python: 'String Sample A'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block tal:define="notification_configuration python: {'class': 'error',
'text': 'Please fill all required fields to submit'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
</tal:block>
<tal:block tal:define="name python:'root[simple-string-required]'; value python: 'required string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-string-with-enum-required]'; value python: 'required string A'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-object-is-required][sample-object-string]'; value python: 'required object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="parameter_hash string:9a7dabf285707a440cd59bbac0bcf0b0">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
</html>
\ No newline at end of file
......@@ -12,19 +12,11 @@
<td rowspan="1" colspan="3">Test Parameter editor (XML Serialisation)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_xml_demo/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_xml_demo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
......@@ -68,23 +60,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_textarea" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciB</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLXN0cmluZyI+dGhpcyBpcyBhIHNpbXBsZSBzdHJpbmc8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1zdHJpbmctd2l0aC1lbnVtIj5zaW1wbGUgc3RyaW5nIEI8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1ib29sZWFuIj50cnVlPC9wYXJhbWV0ZXI+CiAgICA8cGFyYW1ldGVyIGlkPSJzaW1wbGUtc3RyaW5nLXdpdGgtdGV4dC1hcmVhIj50aGlzIGlzIGEgc2ltcGxlIHN0cmluZyBvbiBhIHRleHQgYXJlYTwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLWludGVnZXIiPjE8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1pbnRlZ2VyLXdpdGgtZW51bSI+NzwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtaW50ZWdlciI+MjwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtaW50ZWdlci1lbnVtIj4xMzwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtZmxvYXQiPjI8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1udW1lcmljLWZsb2F0LWVudW0iPjEuMjU8L3BhcmFtZXRlcj4KPC9pbnN0YW5jZT4=
</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:6a36d2c9455ef7d52debd58d1a343708">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
......
......@@ -12,23 +12,16 @@
<td rowspan="1" colspan="3">Test Parameter editor (XML Read Only)</td>
</tr>
</thead>
<tbody>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_xml_demo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init_readonly" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_xml_demo/software.cfg</td>
</tr>
<tr>
<td>type</td>
<td>//textarea[@name='parameter_output']</td>
<td>//textarea[@name='field_your_text_content']</td>
<td tal:content="python: '<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?><instance><parameter id=&quot;simple-stringxxx&quot;>this is a simple stringxx</parameter><parameter id=&quot;simple-string-with-enum&quot;>simple string B</parameter><parameter id=&quot;simple-boolean&quot;>true</parameter><parameter id=&quot;simple-string-with-text-area&quot;>this is a simple string on a text area</parameter><parameter id=&quot;simple-integer&quot;>1</parameter><parameter id=&quot;simple-integer-with-enum&quot;>7</parameter><parameter id=&quot;simple-numeric-integer&quot;>2</parameter><parameter id=&quot;simple-numeric-integer-enum&quot;>13</parameter><parameter id=&quot;simple-numeric-float&quot;>2</parameter><parameter id=&quot;simple-numeric-float-enum&quot;>1.25</parameter></instance>'"></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[simple-stringxxx]'; value python: 'this is a simple stringxx'">
......
......@@ -12,22 +12,16 @@
<td rowspan="1" colspan="3">Test Parameter editor (XML Read Only)</td>
</tr>
</thead>
<tbody>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_xml_demo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init_readonly" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_xml_demo/software.cfg</td>
</tr>
<tr>
<td>type</td>
<td>//textarea[@name='parameter_output']</td>
<td>//textarea[@name='field_your_text_content']</td>
<td tal:content="python: '<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?><instance><parameter id=&quot;simple-string&quot;>this is a simple string</parameter><parameter id=&quot;simple-string-with-enum&quot;>simple string B</parameter><parameter id=&quot;simple-boolean&quot;>true</parameter><parameter id=&quot;simple-string-with-text-area&quot;>this is a simple string on a text area</parameter><parameter id=&quot;simple-integer&quot;>1</parameter><parameter id=&quot;simple-integer-with-enum&quot;>7</parameter><parameter id=&quot;simple-numeric-integer&quot;>2</parameter><parameter id=&quot;simple-numeric-integer-enum&quot;>13</parameter><parameter id=&quot;simple-numeric-float&quot;>2</parameter><parameter id=&quot;simple-numeric-float-enum&quot;>1.25</parameter></instance>'"></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
......@@ -68,7 +62,6 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_textarea" />
</tal:block>
......
......@@ -12,19 +12,12 @@
<td rowspan="1" colspan="3">Test Parameter editor (XML Serialisation with Required)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='url_string']</td>
<td>${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/minimal_xml_demo/software.cfg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: '${base_url}/web_site_module/slapos_master_panel/hateoas/sample-software-schema/minimal_xml_demo/software.cfg'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td>waitForElementPresent</td>
......@@ -210,23 +203,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciB</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLXN0cmluZyI+dGhpcyBpcyBhIHNpbXBsZSBzdHJpbmc8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1zdHJpbmctd2l0aC1lbnVtIj5zaW1wbGUgc3RyaW5nIEI8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1ib29sZWFuIj50cnVlPC9wYXJhbWV0ZXI+CiAgICA8cGFyYW1ldGVyIGlkPSJzaW1wbGUtc3RyaW5nLXdpdGgtdGV4dC1hcmVhIj50aGlzIGlzIGEgc2ltcGxlIHN0cmluZyBvbiBhIHRleHQgYXJlYTwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLWludGVnZXIiPjE8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1pbnRlZ2VyLXdpdGgtZW51bSI+NzwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtaW50ZWdlciI+MjwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtaW50ZWdlci1lbnVtIj4xMzwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtZmxvYXQiPjI8L3BhcmFtZXRlcj4KICAgIDxwYXJhbWV0ZXIgaWQ9InNpbXBsZS1udW1lcmljLWZsb2F0LWVudW0iPjEuMjU8L3BhcmFtZXRlcj4KPC9pbnN0YW5jZT4=
</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:6a36d2c9455ef7d52debd58d1a343708">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Zuite" module="Products.Zelenium.zuite"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>external_zuite</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -9,18 +9,16 @@
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr>
<td rowspan="1" colspan="3">Test Parameter editor (AllOf)</td>
<td rowspan="1" colspan="3">Test Parameter editor For KVM Software Release</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block define="name string:kvm">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/set_software_for_parameter_test" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: 'https://lab.nexedi.com/nexedi/slapos/raw/%s/software/kvm/software.cfg' % context.ERP5Site_getSoftwareReleaseTagVersion()">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[ram-size]'; value python: 4097">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
......@@ -68,18 +66,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_not_invalid_feedback" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiP</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0iXyI+ewogICAgInJhbS1zaXplIjogNDA5NiwKICAgICJjcHUtY291bnQiOiAzCn08L3BhcmFtZXRlcj4KPC9pbnN0YW5jZT4=</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:9a7701651962ad865ccd257d77da2192">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,18 +12,16 @@
<td rowspan="1" colspan="3">Test Parameter editor (AllOf)</td>
</tr>
</thead>
<tbody>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: 'https://lab.nexedi.com/nexedi/slapos/raw/%s/software/kvm/software.cfg' % context.ERP5Site_getSoftwareReleaseTagVersion()">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init_readonly" />
<tal:block define="name string:kvm">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/set_software_for_parameter_test" />
</tal:block>
<tr>
<td>type</td>
<td>//textarea[@name='parameter_output']</td>
<td>//textarea[@name='field_your_text_content']</td>
<td tal:content="python: '<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?><instance><parameter id=&quot;_&quot;>{&quot;ram-size&quot;: 4096,&quot;cpu-count&quot;: 3}</parameter></instance>'"></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[ram-size]'; value python: 4096">
......
......@@ -12,31 +12,20 @@
<td rowspan="1" colspan="3">Test Parameter editor (Theia Simpler Test)</td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block define="name string:theia">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/set_software_for_parameter_test" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: 'https://lab.nexedi.com/nexedi/slapos/raw/%s/software/theia/software.cfg' % context.ERP5Site_getSoftwareReleaseTagVersion()">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[autorun]'; value python: 'running'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiP</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0iYXV0b3J1biI+cnVubmluZzwvcGFyYW1ldGVyPgo8L2luc3RhbmNlPg==</td>
<td></td>
</tr>
<tal:block tal:define="parameter_hash string:6eaf460ebbca2189c79776bda9d68809">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/submit_dialog_and_assert_hash" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -12,17 +12,16 @@
<td rowspan="1" colspan="3">Test Parameter editor (Theia Simpler Test)</td>
</tr>
</thead>
<tbody>
<tbody tal:define="user_configuration python: context.ERP5Site_generateTestUserConfiguration();
software_release_url python: 'https://lab.nexedi.com/nexedi/slapos/raw/%s/software/theia/software.cfg' % context.ERP5Site_getSoftwareReleaseTagVersion()">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init_readonly" />
<tal:block define="name string:theia">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/set_software_for_parameter_test" />
</tal:block>
<tr>
<td>type</td>
<td>//textarea[@name='parameter_output']</td>
<td>//textarea[@name='field_your_text_content']</td>
<td tal:content="python: '<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?><instance><parameter id=&quot;autorun&quot;>running</parameter></instance>'"></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tal:block tal:define="name python:'root[autorun]'; value python: 'running'">
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>99.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_parameter_editor_ui_test</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ERP5Site_getSoftwareReleaseTagVersion</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>description</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>text</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Zuite_SlapOSParameterCommonTemplate</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<tal:block metal:define-macro="wait_software_type_selection">
<tr>
<td colspan="3"><b> Wait for software type </b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[contains(@data-gadget-url,
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//div[contains(@data-gadget-url,
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="wait_software_type_selection_custom">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection" />
<tr>
<td>waitForElementPresent</td>
<td tal:content="python:'//div[contains(@data-gadget-url, \'gadget_erp5_page_slap_parameter_form.html\')]//select[@name=\'software_type\']//option[text()=\'%s\']' % software_type"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python:'//div[contains(@data-gadget-url, \'gadget_erp5_page_slap_parameter_form.html\')]//select[@name=\'software_type\']//option[text()=\'%s\']' % software_type"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="select_software_type_custom">
<tr>
<td colspan="3"><b tal:content="python: 'Change Software type: %s' % software_type"></b></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_custom" />
<tr>
<td>select</td>
<td>//div[contains(@data-gadget-url, 'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td tal:content='python: software_type'></td>
</tr>
</tal:block>
<tal:block metal:define-macro="wait_software_type_selection_default">
<tal:block define="software_type string:Default">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_custom" />
</tal:block>
</tal:block>
<tal:block metal:define-macro="select_software_type_json_in_xml">
<tal:block define="software_type python:'JSON in XML'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/select_software_type_custom" />
</tal:block>
</tal:block>
<tal:block metal:define-macro="init">
<tal:block tal:define="init_configuration python: {'scenario': 'customer'}">
<tal:block metal:use-macro="here/Zuite_SlapOSPanelTemplate/macros/slapos_init" />
</tal:block>
<tr>
<td>open</td>
<td>${base_url}/web_site_module/slapos_master_panel/#/?page=slapos_master_panel_test_parameter_editor</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
<tal:block tal:define="login_configuration python: {'user': user_configuration['manager_login'], 'password': user_configuration['passwd']}">
<tal:block metal:use-macro="here/Zuite_SlapOSPanelTemplate/macros/login" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name='field_your_url_string' and@type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name='field_your_url_string' and@type="text"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name='field_your_read_only' and@type='checkbox']</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name='field_your_read_only' and@type='checkbox']</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name='field_your_text_content']</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name='field_your_text_content']</td>
<td></td>
</tr>
<tr>
<td colspan="3"><b> Set URL for the software release </b></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name='field_your_url_string']</td>
<td tal:content='python: software_release_url'></td>
</tr>
</tal:block>
<tal:block metal:define-macro="init_readonly">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/init" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="field_your_read_only" and @type="checkbox"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="field_your_read_only" and @type="checkbox"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@name="field_your_read_only" and @type="checkbox"]</td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="submit_dialog_and_assert_hash">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tr>
<td>waitForElementPresent</td>
<td>//pre[@id="field_your_text_content"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//pre[@id="field_your_text_content"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//pre[@id="field_your_text_content_hash"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//pre[@id="field_your_text_content_hash"]</td>
<td></td>
</tr>
<tr>
<td>waitForTextPresent</td>
<td tal:content='python: parameter_hash'></td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td tal:content='python: parameter_hash'></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="show_raw_parameter">
<tr>
<td>waitForElementPresent</td>
<td>//div[contains(@data-gadget-url,
'gadget_erp5_page_slap_parameter_form.html')]//button[contains(@class, "slapos-show-raw-parameter")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[contains(@data-gadget-url,
'gadget_erp5_page_slap_parameter_form.html')]//button[contains(@class, "slapos-show-raw-parameter")]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[contains(@data-gadget-url,
'gadget_erp5_page_slap_parameter_form.html')]//button[contains(@class, "slapos-show-raw-parameter")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="text_content"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="text_content"]</td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="show_form_parameter">
<tr>
<td>waitForElementPresent</td>
<td>//div[contains(@data-gadget-url,
'gadget_erp5_page_slap_parameter_form.html')]//button[contains(@class, "slapos-show-form")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[contains(@data-gadget-url,
'gadget_erp5_page_slap_parameter_form.html')]//button[contains(@class, "slapos-show-form")]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[contains(@data-gadget-url,
'gadget_erp5_page_slap_parameter_form.html')]//button[contains(@class, "slapos-show-form")]</td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_invalid_feedback">
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//p[@class=\'invalid-feedback\' and text() = \'%s\']' % (name, value)" ></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//p[@class=\'invalid-feedback\' and text() = \'%s\']' % (name, value)"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_not_invalid_feedback">
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//p[@class=\'invalid-feedback\' and text() = \'%s\' and @style=\'display: none;\']' % (name, value)" ></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//p[@class=\'invalid-feedback\' and text() = \'%s\' and @style=\'display: none;\']' % (name, value)"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="wait_for_input_text">
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\']' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\']' % name"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="input_text">
<tr>
<td colspan="3"><b tal:content="python: 'Fill %s' % name"></b></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
<tr>
<td>type</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\']' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="input_textarea">
<tr>
<td colspan="3"><b tal:content="python: 'Fill %s (textarea)' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//textarea[@name=\'%s\']' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//textarea[@name=\'%s\']' % name"></td>
<td></td>
</tr>
<tr>
<td>type</td>
<td tal:content="python: '//textarea[@name=\'%s\']' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_readonly_input_text">
<tr>
<td colspan="3"><b tal:content="python: 'Asssert readonly on %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\' and @readonly=\'true\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\' and @readonly=\'true\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\' and @readonly=\'true\'][@disabled]' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_readonly_input_textarea">
<tr>
<td colspan="3"><b tal:content="python: 'Asssert readonly on %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//textarea[@name=\'%s\' and @readonly=\'true\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//textarea[@name=\'%s\' and @readonly=\'true\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td tal:content="python: '//textarea[@name=\'%s\' and @readonly=\'true\'][@disabled]' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_input_text">
<tr>
<td colspan="3"><b tal:content="python: 'Asssert on %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\']' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\']' % name"></td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\']' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="wait_for_input_select">
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//select[@name=\'%s\']' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//select[@name=\'%s\']' % name"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="input_select">
<tr>
<td colspan="3"><b tal:content="python: 'Select on %s' % name"></b></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_select" />
<tr>
<td>select</td>
<td tal:content="python: '//select[@name=\'%s\']' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_readonly_input_select">
<tr>
<td colspan="3"><b tal:content="python: 'Assert read only on select for %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//select[@name=\'%s\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//select[@name=\'%s\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>select</td>
<td tal:content="python: '//select[@name=\'%s\'][@disabled]' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="json_del_property">
<tr>
<td colspan="3"><b tal:content="python: 'Remove one extra property/object on %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//label[contains(text(), \'%s\')]/..//input[@type=\'checkbox\' and @class=\'form-check-input\']' % (name, value)"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//label[contains(text(), \'%s\')]/..//input[@type=\'checkbox\' and @class=\'form-check-input\']' % (name, value)"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//label[contains(text(), \'%s\')]/..//input[@type=\'checkbox\' and @class=\'form-check-input\']' % (name, value)"></td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="json_add_property">
<tr>
<td colspan="3"><b tal:content="python: 'Add one extra property/object on %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//input[@type = \'text\' and contains(@class, \'property-selector-input\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//input[@type = \'text\' and contains(@class, \'property-selector-input\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>type</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//input[@type = \'text\' and contains(@class, \'property-selector-input\')]' % name"></td>
<td tal:content="python: value"></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//button[contains(@class, \'json-editor-btn-add\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//button[contains(@class, \'json-editor-btn-add\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//button[contains(@class, \'json-editor-btn-add\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
</tal:block>
</tal:block>
\ No newline at end of file
##############################################################################
#
# Copyright (c) 2002-2024 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
import unittest
from erp5.component.test.SlapOSTestCaseMixin import SlapOSTestCaseMixin
from Products.ERP5Type.tests.ERP5TypeFunctionalTestCase import ERP5TypeFunctionalTestCase
class TestSlapOSParameterEditor(SlapOSTestCaseMixin, ERP5TypeFunctionalTestCase):
foreground = 0
run_only = "slapos_parameter_editor_zuite"
def afterSetUp(self):
ERP5TypeFunctionalTestCase.afterSetUp(self)
SlapOSTestCaseMixin.afterSetUp(self)
self.tic()
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestSlapOSParameterEditor))
return suite
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testFunctionalSlapOSParameterEditor</string> </value>
</item>
<item>
<key> <string>default_source_reference</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testFunctionalSlapOSParameterEditor</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Component</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
slapos_panel_ui_test
slapos_parameter_editor
\ No newline at end of file
UI tests for parameters
\ No newline at end of file
portal_tests/slapos_parameter_editor_zuite
portal_tests/slapos_parameter_editor_zuite/**
\ No newline at end of file
slapos_parameter_editor_ui_test
\ No newline at end of file
test.erp5.testFunctionalSlapOSParameterEditor
\ No newline at end of file
slapos_parameter_editor_ui_test
\ No newline at end of file
......@@ -31,7 +31,7 @@
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>81.0</float> </value>
<value> <float>91.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -7,7 +7,6 @@ slapos_bt_list = [
'erp5_web_shacache',
'erp5_web_shadir',
'slapos_accounting',
'slapos_cache',
'slapos_subscription_request',
'slapos_cloud',
'slapos_erp5',
......@@ -19,6 +18,7 @@ slapos_bt_list = [
'slapos_configurator',
'slapos_mysql_innodb_catalog',
'slapos_panel_ui_test',
'slapos_parameter_editor_ui_test',
'slapos_abyss',
'slapos_rss_style'
]
......
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