diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_controller_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_controller_js.js
index b8cf6ee6100ac8206072a1e85c120656ee9558af..653aaa59c2d2d4776acecb4658cf57412021bed6 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_controller_js.js
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_controller_js.js
@@ -41,7 +41,6 @@
.declareMethod("render", function (options) {
var gadget = this,
child_gadget_url;
-
return gadget.jio_get(options.jio_key)
.push(function (result) {
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_controller_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_controller_js.xml
index 894deee9c59431242fb009d8ebf13afe5ab25470..ae2d97b604c0fd3f3a6c92af062c4136a89a2005 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_controller_js.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_controller_js.xml
@@ -227,7 +227,7 @@
-
serial
- 967.6016.61211.59613
+ 968.63092.54317.19490
-
state
@@ -245,7 +245,7 @@
- 1524754712.51
+ 1531928427.76
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_document_list_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_document_list_js.js
index 5e8f568a3383e0aa303eb372e9343f222b43d4ff..901fc2ee39bf52d3226cf2693ea014e9a7708d7d 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_document_list_js.js
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_document_list_js.js
@@ -12,6 +12,8 @@
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareAcquiredMethod("getSetting", "getSetting")
+ .declareAcquiredMethod("jio_toggleRevisionOption",
+ "jio_toggleRevisionOption")
/////////////////////////////////////////////////////////////////
// declared methods
@@ -19,7 +21,10 @@
.allowPublicAcquisition("jio_allDocs", function (param_list) {
var gadget = this;
- return gadget.jio_allDocs(param_list[0])
+ return gadget.jio_toggleRevisionOption(false)
+ .push(function () {
+ return gadget.jio_allDocs(param_list[0]);
+ })
.push(function (result) {
var i, date, len = result.data.total_rows;
for (i = 0; i < len; i += 1) {
@@ -67,7 +72,6 @@
.declareMethod("render", function () {
var gadget = this;
-
return new RSVP.Queue()
.push(function () {
return RSVP.all([
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_document_list_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_document_list_js.xml
index 3e341259301629d94e10a26491f07d1af93c9156..1ad129bc8a735eab0c408e5725d44feadcc759d4 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_document_list_js.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_document_list_js.xml
@@ -256,7 +256,7 @@
-
actor
- vincent
+ zope
-
comment
@@ -270,7 +270,7 @@
-
serial
- 966.41210.1237.18158
+ 969.18805.18330.41284
-
state
@@ -288,7 +288,7 @@
- 1523022228.16
+ 1533116145.35
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_ojs_add_document_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_ojs_add_document_js.xml
index 69452606e246704a3299fa482282f81ae3269b84..0feba4ad8d052c429c4c8e397e971c33422bbc1f 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_ojs_add_document_js.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_ojs_add_document_js.xml
@@ -270,7 +270,7 @@
-
serial
- 963.44293.58168.6690
+ 969.18811.39108.45789
-
state
@@ -288,7 +288,7 @@
- 1511565609.05
+ 1533116016.94
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..097b7affd824ee27644e3ace043b197d8a3b801a
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_html.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+ OfficeJS See History Page
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f68b577c2c7c8597fa8b13e5b6bd7312b6852be3
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_html.xml
@@ -0,0 +1,362 @@
+
+
+
+
+
+
+
+
+
-
+ _Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+ _Add_portal_content_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Modify_portal_content_Permission
+
+
+ Manager
+
+
+
+ -
+ _View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+ categories
+
+
+ contributor/person_module/1
+
+
+
+ -
+ content_md5
+
+
+
+
+ -
+ content_type
+ text/html
+
+ -
+ creators
+
+
+ cedric.le.ninivin
+
+
+
+ -
+ default_reference
+ gadget_erp5_page_ojs_see_history.html
+
+ -
+ description
+
+
+
+
+ -
+ id
+ gadget_officejs_erp5_page_see_history_html
+
+ -
+ language
+
+
+
+
+ -
+ modification_date
+
+
+
+
+ -
+ portal_type
+ Web Page
+
+ -
+ short_title
+
+
+
+
+ -
+ title
+ OfficeJS See History
+
+ -
+ url_string
+
+
+
+
+ -
+ version
+ 001
+
+ -
+ workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+ data
+
+
+
-
+ document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+ edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+ processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ action
+ publish
+
+ -
+ actor
+ zope
+
+ -
+ comment
+
+
+ -
+ error_message
+
+
+ -
+ time
+
+
+
+
+ -
+ validation_state
+ published
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ action
+ edit
+
+ -
+ actor
+ zope
+
+ -
+ comment
+
+
+
+
+ -
+ error_message
+
+
+ -
+ serial
+ 969.19202.56498.49408
+
+ -
+ state
+ current
+
+ -
+ time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ action
+ detect_converted_file
+
+ -
+ actor
+ zope
+
+ -
+ comment
+
+
+ -
+ error_message
+
+
+ -
+ external_processing_state
+ converted
+
+ -
+ serial
+ 0.0.0.0
+
+ -
+ time
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..bbb962288c21992e4a32ed3b25caf22b61a0796a
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_js.js
@@ -0,0 +1,162 @@
+/*global window, rJS, RSVP */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP) {
+ "use strict";
+
+ rJS(window)
+ /////////////////////////////////////////////////////////////////
+ // Acquired methods
+ /////////////////////////////////////////////////////////////////
+ .declareAcquiredMethod("updateHeader", "updateHeader")
+ .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+ .declareAcquiredMethod("getUrlFor", "getUrlFor")
+ .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+ .declareAcquiredMethod("getSetting", "getSetting")
+ .declareAcquiredMethod("jio_toggleRevisionOption",
+ "jio_toggleRevisionOption")
+ //.declareAcquiredMethod("getId")
+
+ .setState({jio_key: undefined})
+
+ /////////////////////////////////////////////////////////////////
+ // declared methods
+ /////////////////////////////////////////////////////////////////
+ .allowPublicAcquisition("jio_allDocs", function (param_list) {
+ var gadget = this,
+ jio_key,
+ result;
+ return gadget.jio_toggleRevisionOption(true)
+ .push(function () {
+ console.log(param_list[0]);
+ console.log(gadget.state.jio_key);
+ return gadget.jio_allDocs({query: "doc_id: " + gadget.state.jio_key);
+ })
+ .push(function (timestamps) {
+ console.log("timestamps: ", timestamps);
+ param_list[0].select_list.push(gadget.state.jio_key);
+ })
+ .push(function (res) {
+ result = res;
+ return gadget.jio_toggleRevisionOption(false);
+ })
+ .push(function () {
+ console.log(result);
+ var i, date, len = result.data.total_rows;
+ for (i = 0; i < len; i += 1) {
+ if (result.data.rows[i].value.hasOwnProperty("modification_date")) {
+ date = new Date(result.data.rows[i].value.modification_date);
+ result.data.rows[i].value.modification_date = {
+ field_gadget_param: {
+ allow_empty_time: 0,
+ ampm_time_style: 0,
+ css_class: "date_field",
+ date_only: 0,
+ description: "The Date",
+ editable: 0,
+ hidden: 0,
+ hidden_day_is_last_day: 0,
+ "default": date.toUTCString(),
+ key: "modification_date",
+ required: 0,
+ timezone_style: 0,
+ title: "Modification Date",
+ type: "DateTimeField"
+ }
+ };
+ result.data.rows[i].value["listbox_uid:list"] = {
+ key: "listbox_uid:list",
+ value: 2713
+ };
+ }
+ }
+ return result;
+ });
+ })
+ .allowPublicAcquisition('notifySubmit', function () {
+ return this.triggerSubmit();
+ })
+
+ .declareMethod("triggerSubmit", function () {
+ var argument_list = arguments;
+ return this.getDeclaredGadget('form_list')
+ .push(function (gadget) {
+ return gadget.triggerSubmit.apply(gadget, argument_list);
+ });
+ })
+
+ .declareMethod("render", function (options) {
+ var gadget = this;
+
+ return new RSVP.Queue()
+ .push(function () {
+ return RSVP.all([
+ gadget.getDeclaredGadget('form_list'),
+ gadget.getSetting("portal_type"),
+ gadget.changeState({jio_key: options.jio_key})
+ ]);
+ })
+ .push(function (result) {
+ console.log("result 1: ", result[1]);
+ var column_list = [
+ ['title', 'Title'],
+ ['reference', 'Reference'],
+ ['language', 'Language'],
+ ['description', 'Description'],
+ ['version', 'Version'],
+ ['modification_date', 'Modification Date']
+ ];
+ return result[0].render({
+ erp5_document: {
+ "_embedded": {"_view": {
+ "listbox": {
+ "column_list": column_list,
+ "show_anchor": 0,
+ "default_params": {},
+ "editable": 1,
+ "editable_column_list": [],
+ "key": "field_listbox",
+ "lines": 30,
+ "list_method": "portal_catalog",
+ "query": "urn:jio:allDocs?query=portal_type%3A%22" +
+ result[1] + "%22",
+ "portal_type": [],
+ "search_column_list": column_list,
+ "sort_column_list": column_list,
+ "sort": [['modification_date', 'descending']],
+ "title": "Documents",
+ "type": "ListBox"
+ }
+ }},
+ "_links": {
+ "type": {
+ // form_list display portal_type in header
+ name: ""
+ }
+ }
+ },
+ form_definition: {
+ group_list: [[
+ "bottom",
+ [["listbox"]]
+ ]]
+ },
+ jio_key: options.jio_key
+ });
+ })
+ .push(function () {
+ return RSVP.all([
+ gadget.getUrlFor({command: "change", options: {"page": "ojs_add_document"}}),
+ gadget.getSetting('document_title_plural'),
+ gadget.getUrlFor({command: "change", options: {"page": "ojs_document_list"}})
+ ]);
+ })
+ .push(function (result) {
+ return gadget.updateHeader({
+ page_title: result[1],
+ filter_action: true,
+ add_url: result[0],
+ doc_list: result[2]
+ });
+ });
+ });
+}(window, rJS, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..359ea267f51db2e8eb3daa6afc65d10e1df1b48d
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_erp5_page_see_history_js.xml
@@ -0,0 +1,358 @@
+
+
+
+
+
+
+
+
+ -
+ _Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+ _Add_portal_content_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Modify_portal_content_Permission
+
+
+ Manager
+
+
+
+ -
+ _View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+ categories
+
+
+ contributor/person_module/1
+
+
+
+ -
+ content_md5
+
+
+
+
+ -
+ creators
+
+
+ cedric.le.ninivin
+
+
+
+ -
+ default_reference
+ gadget_erp5_page_ojs_see_history.js
+
+ -
+ description
+
+
+
+
+ -
+ id
+ gadget_officejs_erp5_page_see_history_js
+
+ -
+ language
+
+
+
+
+ -
+ modification_date
+
+
+
+
+ -
+ portal_type
+ Web Script
+
+ -
+ short_title
+
+
+
+
+ -
+ title
+ OfficeJS See History JS
+
+ -
+ url_string
+
+
+
+
+ -
+ version
+ 001
+
+ -
+ workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+ data
+
+
+
-
+ document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+ edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+ processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ action
+ publish
+
+ -
+ actor
+ zope
+
+ -
+ comment
+
+
+ -
+ error_message
+
+
+ -
+ time
+
+
+
+
+ -
+ validation_state
+ published
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ action
+ edit
+
+ -
+ actor
+ zope
+
+ -
+ comment
+
+
+
+
+ -
+ error_message
+
+
+ -
+ serial
+ 969.21731.6944.62361
+
+ -
+ state
+ current
+
+ -
+ time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ action
+ detect_converted_file
+
+ -
+ actor
+ zope
+
+ -
+ comment
+
+
+ -
+ error_message
+
+
+ -
+ external_processing_state
+ converted
+
+ -
+ serial
+ 0.0.0.0
+
+ -
+ time
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_html.xml
index 5dc908a56f6f2ba1c2400899b213a6acabe19ffd..eea64e07df362f739d1ac78196fcff8047ac570f 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_html.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_html.xml
@@ -236,7 +236,7 @@
-
serial
- 960.57151.51816.16622
+ 968.44071.55411.42615
-
state
@@ -254,7 +254,7 @@
- 1501251929.75
+ 1533135741.41
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_js.js
index ff4406faa453b1d62f6ca74b07f562ae6a586cf0..b95cb9589f1d4ff101378516bb372ef4aa4f38c6 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_js.js
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_js.js
@@ -17,7 +17,6 @@
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
-
.declareMethod("render", function (options) {
return this.changeState({
jio_key: options.jio_key,
@@ -150,7 +149,8 @@
return RSVP.all([
gadget.getUrlFor({command: 'history_previous'}),
gadget.getUrlFor({command: 'selection_previous'}),
- gadget.getUrlFor({command: 'selection_next'})
+ gadget.getUrlFor({command: 'selection_next'}),
+ gadget.getUrlFor({command: "change", options: {"page": "ojs_see_history"}})
]);
})
.push(function (url_list) {
@@ -159,7 +159,8 @@
save_action: true,
selection_url: url_list[0],
previous_url: url_list[1],
- next_url: url_list[2]
+ next_url: url_list[2],
+ see_history: url_list[3]
});
});
});
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_js.xml
index 0e76ea42e23793c7e7ba8805cb1ad8c7cc4b9d5e..534cf497be762b29fbe736fce88d7efbacf87167 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_js.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_web_page_view_js.xml
@@ -218,7 +218,7 @@
-
actor
- vincent
+ zope
-
comment
@@ -232,7 +232,7 @@
-
serial
- 964.48513.5538.10342
+ 969.19249.10625.64000
-
state
@@ -250,7 +250,7 @@
- 1515766909.33
+ 1533136525.71
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.js
index ec991d79add7fecb4dd88ed5504d79b8970537b2..15f5b339183dba189eb629676f12a430bf90c308 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.js
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.js
@@ -36,8 +36,11 @@
.declareAcquiredMethod('getSetting', 'getSetting')
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareAcquiredMethod("redirect", "redirect")
+ .declareAcquiredMethod("jio_toggleRevisionOption",
+ "jio_toggleRevisionOption")
.allowPublicAcquisition("jio_allDocs", function (param_list) {
var gadget = this;
+ gadget.jio_toggleRevisionOption(false);
return this.jio_allDocs.apply(this, param_list)
.push(function (result) {
var i,
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.xml
index 01be8061d7fe026b8ab5bc44035084a781cd362e..8782bbecd92667d63ea0da339942ac8e79845515 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.xml
@@ -267,7 +267,7 @@
-
serial
- 959.44888.46554.50039
+ 968.63157.27775.20480
-
state
@@ -285,7 +285,7 @@
- 1498035961.94
+ 1531928420.68
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.js
index 6eac842dbd0daba0ae6ed92dbfd59141d8dbf943..ead9c6d54af3bc86c259c572abb32bd026657493 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.js
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.js
@@ -23,12 +23,18 @@
"local": {
"setConfiguration": function (gadget) {
var configuration = {
- type: "query",
+ type: "uuid",
sub_storage: {
- type: "uuid",
+ type: "query",
sub_storage: {
- type: "indexeddb",
- database: "local_default"
+ type: "history",
+ sub_storage: {
+ type: "query",
+ sub_storage: {
+ type: "indexeddb",
+ database: "local_default"
+ }
+ }
}
}
};
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.xml
index e78be35cd92b076d69f2589d587c393e8ed3e728..c9934b647806cc063a4b555c5268ae8fec7b336d 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.xml
@@ -236,7 +236,7 @@
-
serial
- 961.10686.10882.5973
+ 968.61786.19635.10274
-
state
@@ -254,7 +254,7 @@
- 1501771018.12
+ 1531816452.69
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_appcache.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_appcache.xml
index d8e84e384012e2fda3572292b9cda79019e4f0fa..ca33fbd47fbd7302124c23070ce66abed1fa5698 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_appcache.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_appcache.xml
@@ -153,6 +153,8 @@ gadget_erp5_page_ojs_controller.html\n
gadget_erp5_page_ojs_controller.js\n
gadget_erp5_page_ojs_add_document.html\n
gadget_erp5_page_ojs_add_document.js\n
+gadget_erp5_page_ojs_see_history.html\n
+gadget_erp5_page_ojs_see_history.js\n
gadget_erp5_page_ojs_configurator.html\n
gadget_erp5_page_ojs_configurator.js\n
gadget_erp5_page_ojs_dav_configurator.html\n
@@ -685,7 +687,7 @@ NETWORK:\n
-
actor
- vincent
+ zope
-
comment
@@ -699,7 +701,7 @@ NETWORK:\n
-
serial
- 964.48519.41997.58350
+ 969.16222.16646.56320
-
state
@@ -717,7 +719,7 @@ NETWORK:\n
- 1515675473.77
+ 1532954835.43
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/ojs_page_drive_app_configurator_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/ojs_page_drive_app_configurator_js.xml
index ec824ee8ee27754fb0e41d7c6c55cf883ea74f95..486a1e7f878eda381265e27f5846a96ee655691a 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/ojs_page_drive_app_configurator_js.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/ojs_page_drive_app_configurator_js.xml
@@ -236,7 +236,7 @@
-
serial
- 962.48398.15828.27938
+ 968.44071.55411.42615
-
state
@@ -254,8 +254,8 @@
- 1507880576.48
- GMT+9
+ 1530708459.0
+ UTC
diff --git a/erp5/util/testbrowser/browser.py b/erp5/util/testbrowser/browser.py
index 96760699b452f4de1fd317ac6e8e5fdc38149f8b..fbf3a704384b53050c0feb16fd70c9f6a2405dd4 100644
--- a/erp5/util/testbrowser/browser.py
+++ b/erp5/util/testbrowser/browser.py
@@ -36,10 +36,9 @@ import urllib
import Cookie
import re
-from zope.testbrowser._compat import urlparse
+from urlparse import urljoin
from z3c.etestbrowser.browser import ExtendedTestBrowser
from zope.testbrowser.browser import onlyOne
-from contextlib import contextmanager
def measurementMetaClass(prefix):
"""
@@ -202,7 +201,7 @@ class Browser(ExtendedTestBrowser):
# In case url_or_path is an absolute URL, urljoin() will return
# it, otherwise it is a relative path and will be concatenated to
# ERP5 base URL
- url_or_path = urlparse.urljoin(self._erp5_base_url, url_or_path)
+ url_or_path = urljoin(self._erp5_base_url, url_or_path)
if isinstance(data, dict):
data = urllib.urlencode(data)
@@ -210,100 +209,6 @@ class Browser(ExtendedTestBrowser):
self._logger.debug("Opening: " + url_or_path)
super(Browser, self).open(url_or_path, data)
- @contextmanager
- def _preparedRequest(self, url, no_visit=False):
- """
- Monkey patched for openNoVisit()
- """
- from zope.testbrowser._compat import urlparse
-
- self.timer.start()
-
- headers = {}
- if self.url:
- headers['Referer'] = self.url
-
- if self._req_content_type:
- headers['Content-Type'] = self._req_content_type
-
- headers['Connection'] = 'close'
- headers['Host'] = urlparse.urlparse(url).netloc
- headers['User-Agent'] = 'Python-urllib/2.4'
-
- headers.update(self._req_headers)
-
- extra_environ = {}
- if self.handleErrors:
- extra_environ['paste.throw_errors'] = None
- headers['X-zope-handle-errors'] = 'True'
- else:
- extra_environ['wsgi.handleErrors'] = False
- extra_environ['paste.throw_errors'] = True
- extra_environ['x-wsgiorg.throw_errors'] = True
- headers.pop('X-zope-handle-errors', None)
-
- kwargs = {'headers': sorted(headers.items()),
- 'extra_environ': extra_environ,
- 'expect_errors': True}
-
- yield kwargs
-
- if not no_visit:
- self._changed()
-
- self.timer.stop()
-
- def _processRequest(self, url, make_request, no_visit=False):
- """
- Monkey patched for openNoVisit()
- """
- from zope.testbrowser.browser import REDIRECTS
- from zope.testbrowser._compat import urlparse
-
- with self._preparedRequest(url, no_visit=no_visit) as reqargs:
- if not no_visit:
- self._history.add(self._response)
-
- resp = make_request(reqargs)
- remaining_redirects = 100 # infinite loops protection
- while resp.status_int in REDIRECTS and remaining_redirects:
- remaining_redirects -= 1
- # BEGIN: Bugfix
- location = resp.headers['location']
- if '?' in location:
- location_without_query_string, query_string = location.split('?')
- location = (
- location_without_query_string +
- '?' + urllib.urlencode(urlparse.parse_qs(query_string,
- strict_parsing=True),
- doseq=True))
- # END: Bugfix
- url = urlparse.urljoin(url, location)
-
- with self._preparedRequest(url, no_visit=no_visit) as reqargs:
- resp = self.testapp.get(url, **reqargs)
- assert remaining_redirects > 0, "redirects chain looks infinite"
-
- if not no_visit:
- self._setResponse(resp)
- self._checkStatus()
-
- return resp
-
- def _absoluteUrl(self, url):
- absolute = url.startswith('http://') or url.startswith('https://')
- if absolute:
- return str(url)
-
- if self._response is None:
- raise BrowserStateError(
- "can't fetch relative reference: not viewing any document")
-
- if not isinstance(url, unicode):
- url = url.decode('utf-8')
-
- return str(urlparse.urljoin(self._getBaseUrl(), url).encode('utf-8'))
-
def openNoVisit(self, url_or_path, data=None, site_relative=True):
"""
Copy/paste from zope.testbrowser.Browser.open() to allow opening an URL
@@ -315,22 +220,40 @@ class Browser(ExtendedTestBrowser):
# In case url_or_path is an absolute URL, urljoin() will return
# it, otherwise it is a relative path and will be concatenated to
# ERP5 base URL
- url_or_path = urlparse.urljoin(self._erp5_base_url, url_or_path)
+ url_or_path = urljoin(self._erp5_base_url, url_or_path)
+
+ import mechanize
if isinstance(data, dict):
data = urllib.urlencode(data)
- url = self._absoluteUrl(url_or_path)
- self._logger.debug("Opening: " + url)
-
- if data is not None:
- def make_request(args):
- return self.testapp.post(url, data, **args)
- else:
- def make_request(args):
- return self.testapp.get(url, **args)
-
- return self._processRequest(url, make_request, no_visit=True)
+ response = None
+ url_or_path = str(url_or_path)
+ self._logger.debug("Opening: " + url_or_path)
+ self._start_timer()
+ try:
+ try:
+ try:
+ response = self.mech_browser.open_novisit(url_or_path, data)
+ except Exception, e:
+ raise
+ except mechanize.HTTPError, e:
+ if e.code >= 200 and e.code <= 299:
+ # 200s aren't really errors
+ pass
+ elif self.raiseHttpErrors:
+ raise
+ finally:
+ self._stop_timer()
+
+ # if the headers don't have a status, I suppose there can't be an error
+ if 'Status' in self.headers:
+ code, msg = self.headers['Status'].split(' ', 1)
+ code = int(code)
+ if self.raiseHttpErrors and code >= 400:
+ raise mechanize.HTTPError(url_or_path, code, msg, self.headers, fp=None)
+
+ return response
def randomSleep(self, minimum, maximum):
"""
@@ -434,28 +357,31 @@ class Browser(ExtendedTestBrowser):
elif url and '?' not in url:
url += '?'
- from zope.testbrowser.browser import isMatching, LinkNotFoundError
- qa = 'a' if id is None else 'a#%s' % id
- qarea = 'area' if id is None else 'area#%s' % id
- html = self._html
- links = html.select(qa)
- links.extend(html.select(qarea))
-
- matching = []
- for elem in links:
- matches = (isMatching(elem.text.encode('utf-8'), text) and
- isMatching(elem.get('href', ''), url))
-
- if matches:
- matching.append(elem)
+ if id is not None:
+ def predicate(link):
+ return dict(link.attrs).get('id') == id
+ args = {'predicate': predicate}
+ else:
+ import re
+ from zope.testbrowser.browser import RegexType
- if index >= len(matching):
- raise LinkNotFoundError()
- elem = matching[index]
+ if isinstance(text, RegexType):
+ text_regex = text
+ elif text is not None:
+ text_regex = re.compile(re.escape(text), re.DOTALL)
+ else:
+ text_regex = None
- baseurl = self._getBaseUrl()
+ if isinstance(url, RegexType):
+ url_regex = url
+ elif url is not None:
+ url_regex = re.compile(re.escape(url), re.DOTALL)
+ else:
+ url_regex = None
+ args = {'text_regex': text_regex, 'url_regex': url_regex}
- return LinkWithTime(elem, self, baseurl)
+ args['nr'] = index
+ return LinkWithTime(self.mech_browser.find_link(**args), self)
def getImportExportLink(self):
"""
@@ -681,8 +607,8 @@ class Browser(ExtendedTestBrowser):
@rtype: int
"""
self._logger.debug("Checking the number of remaining activities")
- response = self.openNoVisit('portal_activities/countMessage')[1]
- activity_counter = response.body
+ activity_counter = self.mech_browser.open_novisit(
+ self._erp5_base_url + 'portal_activities/countMessage').read()
activity_counter = activity_counter and int(activity_counter) or 0
self._logger.debug("Remaining activities: %d" % activity_counter)
@@ -1289,23 +1215,26 @@ class ImageControlWithTime(ImageControl):
import zope.testbrowser.browser
-browser_simpleControlFactory = zope.testbrowser.browser.simpleControlFactory
-def simpleControlFactory(wtcontrol, form, elemindex, browser):
+browser_controlFactory = zope.testbrowser.browser.controlFactory
+def controlFactory(control, *args, **kwargs):
"""
- Monkey patched to get elapsed time on ImageControl and SubmitControl
+ Monkey patch controlFactory in zope.testbrowser to get elapsed time on
+ ImageControl and SubmitControl
"""
- import webtest
-
- elem = elemindex[wtcontrol.pos]
- if isinstance(wtcontrol, webtest.forms.Submit):
- if wtcontrol.attrs.get('type', 'submit') == 'image':
- return ImageControlWithTime(wtcontrol, form, elem, browser)
- else:
- return SubmitControlWithTime(wtcontrol, form, elem, browser)
-
- return browser_simpleControlFactory(wtcontrol, form, elemindex, browser)
-
-zope.testbrowser.browser.simpleControlFactory = simpleControlFactory
+ try:
+ t = control.type
+ except AttributeError:
+ # This is a subcontrol
+ pass
+ else:
+ if t in ('submit', 'submitbutton'):
+ return SubmitControlWithTime(control, *args, **kwargs)
+ elif t == 'image':
+ return ImageControlWithTime(control, *args, **kwargs)
+
+ return browser_controlFactory(control, *args, **kwargs)
+
+zope.testbrowser.browser.controlFactory = controlFactory
from zope.testbrowser.browser import Link
diff --git a/tests/__init__.py b/tests/__init__.py
index b2b4b116e4cf45ef207f2f85c0644b10ac22f622..a57469a9e35893bb016179ef8781f58e8dc8992d 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -35,9 +35,8 @@ class _ERP5(ERP5TypeTestSuite):
component_re = re.compile(".*/([^/]+)/TestTemplateItem/portal_components"
"/test\.[^.]+\.([^.]+).py$")
for test_path in (
- glob('%s/product/*/tests/test*.py' % path) +
- glob('%s/bt5/*/TestTemplateItem/test*.py' % path) +
- glob('%s/bt5/*/TestTemplateItem/portal_components/test.*.test*.py' % path)):
+ glob('%s/bt5/erp5_ui_test/TestTemplateItem/portal_components/test.*.test*.py' % path) +
+ glob('%s/bt5/erp5_officejs_ui_test/TestTemplateItem/portal_components/test.*.test*.py' % path)):
component_re_match = component_re.match(test_path)
if component_re_match is not None:
test_case = "%s:%s" % (component_re_match.group(1),