diff --git a/bt5/erp5_discussion/ActionTemplateItem/portal_types/Discussion%20Thread%20Module/new_thread.xml b/bt5/erp5_discussion/ActionTemplateItem/portal_types/Discussion%20Thread%20Module/new_thread.xml
new file mode 100644
index 0000000000000000000000000000000000000000..748670ba3d854b857dc9fb4c2fce21f3bd1eafeb
--- /dev/null
+++ b/bt5/erp5_discussion/ActionTemplateItem/portal_types/Discussion%20Thread%20Module/new_thread.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+ -
+
action
+
+ AAAAAAAAAAI=
+
+
+ -
+
categories
+
+
+ action_type/object_jio_action
+
+
+
+ -
+
category
+ object_jio_action
+
+ -
+
condition
+
+
+ -
+
description
+
+
+
+
+ -
+
icon
+
+
+ -
+
id
+ new_thread
+
+ -
+
permissions
+
+
+ Add portal content
+
+
+
+ -
+
portal_type
+ Action Information
+
+ -
+
priority
+ 1.0
+
+ -
+
title
+ New Thread
+
+ -
+
visible
+ 1
+
+
+
+
+
+
+
+
+
+
+ -
+
text
+ string:${object_url}/DiscussionThreadModule_viewAddThreadDialog
+
+
+
+
+
diff --git a/bt5/erp5_discussion/ActionTemplateItem/portal_types/Discussion%20Thread/reply.xml b/bt5/erp5_discussion/ActionTemplateItem/portal_types/Discussion%20Thread/reply.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0145cb357baccf6baf1443ef32c21bc14c203914
--- /dev/null
+++ b/bt5/erp5_discussion/ActionTemplateItem/portal_types/Discussion%20Thread/reply.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+ -
+
action
+
+ AAAAAAAAAAI=
+
+
+ -
+
categories
+
+
+ action_type/object_jio_action
+
+
+
+ -
+
category
+ object_jio_action
+
+ -
+
condition
+
+
+ -
+
description
+
+
+
+
+ -
+
icon
+
+
+ -
+
id
+ reply
+
+ -
+
permissions
+
+
+ Add portal content
+
+
+
+ -
+
portal_type
+ Action Information
+
+ -
+
priority
+ 1.0
+
+ -
+
title
+ Reply
+
+ -
+
visible
+ 1
+
+
+
+
+
+
+
+
+
+
+ -
+
text
+ string:${object_url}/DiscussionThread_viewAddReplyDialog
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_addThread.py b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_addThread.py
new file mode 100644
index 0000000000000000000000000000000000000000..45b7c80cd664db658aa02c1c11f7aa07ce73601f
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_addThread.py
@@ -0,0 +1,10 @@
+discussion_thread = context.getPortalObject().discussion_thread_module.newContent(
+ title = thread_title,
+ portal_type = "Discussion Thread"
+)
+discussion_thread.setReference(discussion_thread.getId())
+
+discussion_thread.DiscussionThread_createPost(thread_title, text_content)
+
+portal_status_message = "New thread created"
+discussion_thread.Base_redirect("view", keep_items = dict(portal_status_message = portal_status_message))
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_addThread.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_addThread.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5475c9332ec743c9828ac9ddc7d5f06be1547852
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_addThread.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+ -
+
Script_magic
+ 3
+
+ -
+
_bind_names
+
+
+
+
+
+
+
+
+ -
+
_asgns
+
+
+ -
+
name_container
+ container
+
+ -
+
name_context
+ context
+
+ -
+
name_m_self
+ script
+
+ -
+
name_subpath
+ traverse_subpath
+
+
+
+
+
+
+
+
+
+ -
+
_params
+ thread_title, text_content, form_id, **kw
+
+ -
+
id
+ DiscussionThreadModule_addThread
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewAddThreadDialog.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewAddThreadDialog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e1a87110d278563bea6a835cdcfcb9b53460af8b
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewAddThreadDialog.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+ DiscussionThreadModule_addThread
+
+ -
+
description
+
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+ my_text_content
+
+
+
+ -
+
center
+
+
+
+
+ -
+
hidden
+
+
+
+
+ -
+
left
+
+
+ my_thread_title
+
+
+
+ -
+
right
+
+
+
+
+
+
+
+ -
+
id
+ DiscussionThreadModule_viewAddThreadDialog
+
+ -
+
method
+ POST
+
+ -
+
name
+ DiscussionThreadModule_viewAddThreadDialog
+
+ -
+
pt
+ form_dialog
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+ New Thread
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewAddThreadDialog/my_text_content.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewAddThreadDialog/my_text_content.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7637a4afbc0497d1745505c8a3563e0801d44b5c
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewAddThreadDialog/my_text_content.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ default
+ title
+
+
+
+ -
+
id
+ my_text_content
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
default
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+ -
+
title
+
+
+
+
+
+ -
+
values
+
+
+ -
+
default
+
+
+ -
+
field_id
+ my_text_content
+
+ -
+
form_id
+ Base_viewWebFieldLibrary
+
+ -
+
title
+ Text
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewAddThreadDialog/my_thread_title.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewAddThreadDialog/my_thread_title.xml
new file mode 100644
index 0000000000000000000000000000000000000000..981ee1c72205b076524d7aaa189d523b44cc9872
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewAddThreadDialog/my_thread_title.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_thread_title
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Title
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewDiscussionThreadList.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewDiscussionThreadList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..34dd07d075083d4f16e217055925c533153d0f63
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewDiscussionThreadList.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+ Base_doSelect
+
+ -
+
description
+
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+ listbox
+
+
+
+ -
+
center
+
+
+
+
+ -
+
hidden
+
+
+
+
+ -
+
left
+
+
+
+
+ -
+
right
+
+
+
+
+
+
+
+ -
+
id
+ DiscussionThreadModule_viewDiscussionThreadList
+
+ -
+
method
+ POST
+
+ -
+
name
+ DiscussionThreadModule_viewDiscussionThreadList
+
+ -
+
pt
+ form_list
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+ Discussion Threads
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewDiscussionThreadList/listbox.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewDiscussionThreadList/listbox.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4955eff37f90c986a8bd54ec4578a47e965a0b76
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThreadModule_viewDiscussionThreadList/listbox.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ portal_type
+ selection_name
+ title
+
+
+
+ -
+
id
+ listbox
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
field_id
+ my_list_mode_listbox
+
+ -
+
form_id
+ Base_viewFieldLibrary
+
+ -
+
portal_type
+
+
+
+ Discussion Thread
+ Discussion Thread
+
+
+
+
+ -
+
selection_name
+ discussion_thread_module_selection
+
+ -
+
title
+ Discussion Threads
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_addReply.py b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_addReply.py
new file mode 100644
index 0000000000000000000000000000000000000000..7010195918a689e4fc338d820ac31c400f9b783c
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_addReply.py
@@ -0,0 +1,8 @@
+assert context.getPortalType() == "Discussion Thread"
+
+title = "Re: " + context.getTitle()
+
+context.DiscussionThread_createPost(title, text_content)
+
+portal_status_message = "New post created"
+context.Base_redirect("view", keep_items = dict(portal_status_message = portal_status_message))
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_addReply.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_addReply.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dd11cb661b72b5ef9dfa3bac2401b6fe4f95b763
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_addReply.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+ -
+
Script_magic
+ 3
+
+ -
+
_bind_names
+
+
+
+
+
+
+
+
+ -
+
_asgns
+
+
+ -
+
name_container
+ container
+
+ -
+
name_context
+ context
+
+ -
+
name_m_self
+ script
+
+ -
+
name_subpath
+ traverse_subpath
+
+
+
+
+
+
+
+
+
+ -
+
_params
+ text_content, form_id, **kw
+
+ -
+
id
+ DiscussionThread_addReply
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_createPost.py b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_createPost.py
new file mode 100644
index 0000000000000000000000000000000000000000..462ed4739d97c9d1a46f5011ca142a19f6687621
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_createPost.py
@@ -0,0 +1,20 @@
+post = context.PostModule_createHTMLPost(
+ title = title,
+ source_reference = context.getReference(),
+ data = text_content,
+ follow_up = context.getRelativeUrl(),
+ predecessor = None
+)
+
+attached_file = None
+web_site_relative_url = None
+if attached_file not in ("undefined", None):
+ pass # TODO attached file
+else:
+ post.publish()
+
+after_ingest_document_tag = 'after-ingest-%s' % post.getId()
+post.activate(
+ after_tag=after_ingest_document_tag
+ ).Post_ingestAndCreateEvent(
+ web_site_relative_url=web_site_relative_url)
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_createPost.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_createPost.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0ee03ae451ff0b80b1587fafe9851b924747ca0d
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_createPost.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+ -
+
Script_magic
+ 3
+
+ -
+
_bind_names
+
+
+
+
+
+
+
+
+ -
+
_asgns
+
+
+ -
+
name_container
+ container
+
+ -
+
name_context
+ context
+
+ -
+
name_m_self
+ script
+
+ -
+
name_subpath
+ traverse_subpath
+
+
+
+
+
+
+
+
+
+ -
+
_params
+ title, text_content
+
+ -
+
id
+ DiscussionThread_createPost
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_view.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_view.xml
index 0c1d0f6928548fa9562399d7da896ef1ea284ee5..52972713b53ef1e19f6835a7a8a3c21ce387d5ff 100644
--- a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_view.xml
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_view.xml
@@ -72,6 +72,7 @@
listbox
+ my_listbox
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_view/my_listbox.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_view/my_listbox.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a16ffd3f841490aee6702c57574512fa82415136
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_view/my_listbox.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ description
+ gadget_url
+ renderjs_extra
+ title
+
+
+
+ -
+
id
+ my_listbox
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+ -
+
target
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
description
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+ -
+
gadget_url
+
+ AAAAAAAAAAI=
+
+
+ -
+
height
+
+
+ -
+
renderjs_extra
+
+ AAAAAAAAAAM=
+
+
+ -
+
target
+
+
+ -
+
title
+
+
+
+
+
+ -
+
values
+
+
+ -
+
description
+ Content of the web page
+
+ -
+
field_id
+ my_text_content
+
+ -
+
form_id
+ Base_viewWebFieldLibrary
+
+ -
+
gadget_url
+
+
+ -
+
height
+ 40
+
+ -
+
renderjs_extra
+
+
+
+
+ -
+
target
+ Click to edit the target
+
+ -
+
title
+ Post List
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
_text
+ python: field.restrictedTraverse(\'gadget_postlist.html\').absolute_url()
+
+
+
+
+
+
+
+
+
+
+ -
+
_text
+ python: [ ( \'query\', context.getPortalObject().portal_catalog.getSQLCatalog().buildQuery({"portal_type":[\'Web Message\'], "source_reference":context.getId()}).asSearchTextExpression(context.getPortalObject().portal_catalog.getSQLCatalog()) ), (\'view\', "view"), (\'jio_key\', context.getRelativeUrl()), (\'portal_type\', context.getPortalType()), (\'maximize\', \'listbox\' not in field.id)]
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_viewAddReplyDialog.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_viewAddReplyDialog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ac492624f6b5078574c6180d3542d3552dd7989d
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_viewAddReplyDialog.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+ DiscussionThread_addReply
+
+ -
+
description
+
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+ my_text_content
+
+
+
+ -
+
center
+
+
+
+
+ -
+
hidden
+
+
+
+
+ -
+
left
+
+
+
+
+ -
+
right
+
+
+
+
+
+
+
+ -
+
id
+ DiscussionThread_viewAddReplyDialog
+
+ -
+
method
+ POST
+
+ -
+
name
+ DiscussionThread_viewAddReplyDialog
+
+ -
+
pt
+ form_dialog
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+ Reply
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_viewAddReplyDialog/my_text_content.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_viewAddReplyDialog/my_text_content.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d3dcb558e4f77c06c9ed6323f8c7adb5f8a0c5ae
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/DiscussionThread_viewAddReplyDialog/my_text_content.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ default
+ title
+
+
+
+ -
+
id
+ my_text_content
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
default
+
+
+ -
+
field_id
+ my_text_content
+
+ -
+
form_id
+ Base_viewWebFieldLibrary
+
+ -
+
title
+ Content
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/Post_ingestAndCreateEvent.py b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/Post_ingestAndCreateEvent.py
new file mode 100644
index 0000000000000000000000000000000000000000..1bd17ba1d918255eda433bfc623186f6877bd0f1
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/Post_ingestAndCreateEvent.py
@@ -0,0 +1,35 @@
+from Products.ERP5Type.Message import translateString
+portal = context.getPortalObject()
+messenger_thread = context.getFollowUpValue()
+web_site_value = portal.restrictedTraverse(web_site_relative_url) if web_site_relative_url else None
+
+data = str(context.getData())
+is_html = context.getPortalType() == 'HTML Post'
+if is_html: # sanitize HTML
+ data = portal.portal_transforms.convertToData(
+ 'text/x-html-safe',
+ data,
+ context=context,
+ mimetype=context.getContentType())
+
+# TODO: check resource, in support_request seems to be important
+resource = None
+source_value = context.ERP5Site_getAuthenticatedMemberPersonValue()
+
+web_message = portal.event_module.newContent(
+ portal_type = 'Web Message',
+ title = context.getTitle(),
+ content_type = 'text/html' if is_html else 'text/plain',
+ text_content = data,
+ follow_up_value = messenger_thread,
+ aggregate_value_list = [context] + context.getSuccessorValueList(
+ portal_type = portal.getPortalDocumentTypeList()),
+ resource = resource,
+ source_value = source_value,
+ start_date = context.getCreationDate(),
+ source_reference = context.getSourceReference())
+
+web_message.stop()
+context.archive(
+ comment=translateString('Ingested as ${web_message_reference}',
+ mapping={'web_message_reference': web_message.getReference()}))
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/Post_ingestAndCreateEvent.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/Post_ingestAndCreateEvent.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e9670258baca120975560e4b2de5c133f611fc04
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/Post_ingestAndCreateEvent.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+ -
+
Script_magic
+ 3
+
+ -
+
_bind_names
+
+
+
+
+
+
+
+
+ -
+
_asgns
+
+
+ -
+
name_container
+ container
+
+ -
+
name_context
+ context
+
+ -
+
name_m_self
+ script
+
+ -
+
name_subpath
+ traverse_subpath
+
+
+
+
+
+
+
+
+
+ -
+
_params
+ web_site_relative_url=None
+
+ -
+
id
+ Post_ingestAndCreateEvent
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.html.html b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.html.html
new file mode 100644
index 0000000000000000000000000000000000000000..d5eff64dc94f107754af662e49335c0cdb6f2647
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.html.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+ Post list gadget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.html.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c7d44dc3090724c6193b1349f4a52c9332ff8283
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.html.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+ -
+
__name__
+ gadget_postlist.html
+
+ -
+
content_type
+ text/html
+
+ -
+
precondition
+
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.js.js b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.js.js
new file mode 100644
index 0000000000000000000000000000000000000000..bcf0a67fcbea1a671a3189ce516543108c18347f
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.js.js
@@ -0,0 +1,95 @@
+/*jslint nomen: true, indent: 2 */
+/*global window, rJS, RSVP, document, moment, jIO, Handlebars, console*/
+(function (window, rJS, RSVP, document, moment, jIO, Handlebars, console) {
+ "use strict";
+ var gadget_klass = rJS(window),
+ comment_list_template = Handlebars.compile(
+ gadget_klass.__template_element.getElementById("template-document-list").innerHTML
+ );
+
+ rJS(window)
+
+ .declareAcquiredMethod("getSetting", "getSetting")
+ .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+
+ .declareMethod('render', function (options) {
+ var gadget = this;
+ gadget.options = options;
+ return gadget.getSetting('hateoas_url')
+ .push(function (hateoas_url) {
+ gadget.hateoas_url = hateoas_url;
+ })
+ .push(function () {
+ var state_dict = {
+ id: options.jio_key,
+ view: options.view,
+ editable: options.editable,
+ query: options.query,
+ erp5_form: options.erp5_form || {}
+ };
+ return gadget.changeState(state_dict);
+ });
+ })
+
+ .onStateChange(function () {
+ var gadget = this;
+ return gadget.jio_allDocs({
+ "query": gadget.state.query,
+ "select_list": ["text_content", "modification_date", "source_title"],
+ "sort_on": [["modification_date", "ascending"]]
+ })
+ .push(function (results) {
+ var post_list = results.data.rows;
+ function getPostWithLinkAndLocalDate(post) {
+ post.date = post.value.modification_date;
+ post.date_formatted = moment(post.date).format('LLLL');
+ post.date_relative = moment(post.date).fromNow();
+ if (post.attachment_link === null) {
+ return post;
+ }
+ if (post.attachment_link.indexOf("image_module") !== -1) {
+ return gadget.getImageUrl(post.attachment_link).push(
+ function (attachment_link) {
+ post.attachment_link = attachment_link;
+ return post;
+ }
+ );
+ }
+ return gadget.getDocumentUrl(post.attachment_link).push(
+ function (attachment_link) {
+ post.attachment_link = attachment_link;
+ return post;
+ }
+ );
+ }
+ var queue_list = [], i = 0;
+ for (i = 0; i < post_list.length; i += 1) {
+ post_list[i].user = post_list[i].value.source_title;
+ // TODO: attachments
+ post_list[i].attachment_link = null;
+ post_list[i].attachment_name = null;
+ queue_list.push(getPostWithLinkAndLocalDate(post_list[i]));
+ }
+ return RSVP.all(queue_list);
+ })
+ .push(function (comment_list) {
+ console.log("comment_list results:");
+ console.log(comment_list);
+ var comments = gadget.element.querySelector("#post_list");
+ comments.innerHTML = comment_list_template({comments: comment_list});
+ });
+ })
+
+ .onLoop(function () {
+ // update relative time
+ var elements = this.element.querySelectorAll("li>time");
+ [].forEach.call(elements, function (element) {
+ element.textContent = moment(element.getAttribute('datetime')).fromNow();
+ });
+ }, 5000)
+
+ /*.onEvent('submit', function () {
+ return this.submitPostComment();
+ })*/;
+
+}(window, rJS, RSVP, document, moment, jIO, Handlebars, console));
\ No newline at end of file
diff --git a/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.js.xml b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1b6dbe0e3dbaba13dd2a1b6d19158653f9c896dc
--- /dev/null
+++ b/bt5/erp5_discussion/SkinTemplateItem/portal_skins/erp5_discussion/gadget_postlist.js.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+ -
+
__name__
+ gadget_postlist.js
+
+ -
+
content_type
+ application/javascript
+
+ -
+
precondition
+
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_discussion/bt/change_log b/bt5/erp5_discussion/bt/change_log
index dcf8678feec94d3ae4a1ac03a9e30ae3388739ac..0916b05a1e5f138706cf9ff401881e7eda48f3a6 100644
--- a/bt5/erp5_discussion/bt/change_log
+++ b/bt5/erp5_discussion/bt/change_log
@@ -1,3 +1,6 @@
+2019-02-14 Ivan
+* first changes for new discussion tool and refactoring in officejs for form rendering
+
2010-03-18 Ivan
* use default DMS publication workflow
diff --git a/bt5/erp5_discussion/bt/dependency_list b/bt5/erp5_discussion/bt/dependency_list
index c83dbbece2695011437971e022234282a242bdd4..974d37fe9f0f4bf1e3616f2ef79d87023a5289db 100644
--- a/bt5/erp5_discussion/bt/dependency_list
+++ b/bt5/erp5_discussion/bt/dependency_list
@@ -2,4 +2,7 @@ erp5_base
erp5_rss_style
erp5_knowledge_pad
erp5_jquery
-erp5_dms
\ No newline at end of file
+erp5_dms
+erp5_post
+erp5_officejs
+erp5_officejs_connector
\ No newline at end of file
diff --git a/bt5/erp5_discussion/bt/description b/bt5/erp5_discussion/bt/description
index eb8db2a55d68a90247b6750ed01d859449343bf1..2971e0d099a2a286d2743013bcc5a83dea0a4833 100644
--- a/bt5/erp5_discussion/bt/description
+++ b/bt5/erp5_discussion/bt/description
@@ -1 +1 @@
-This business template provides discussions for any ERP5 document.
\ No newline at end of file
+This business template provides discussions for any ERP5 document. It will gradually become a messenger platform for discussion and communication on ERP5
\ No newline at end of file
diff --git a/bt5/erp5_discussion/bt/template_action_path_list b/bt5/erp5_discussion/bt/template_action_path_list
index d9f06073ff6d828ddecb58b91bf4ef00ef3c4122..94db8d9bc2ded1cb728f9c88e1f5e9a556c7266a 100644
--- a/bt5/erp5_discussion/bt/template_action_path_list
+++ b/bt5/erp5_discussion/bt/template_action_path_list
@@ -2,8 +2,10 @@ Discussion Post | view
Discussion Post | view_edit
Discussion Post | web_view
Discussion Thread Module | newThread
+Discussion Thread Module | new_thread
Discussion Thread Module | view
Discussion Thread | add_discussion_post
+Discussion Thread | reply
Discussion Thread | view
Discussion Thread | web_view
Preference | forum_style_preferences
\ No newline at end of file
diff --git a/bt5/erp5_hal_json_style/ActionTemplateItem/portal_types/ERP5%20Form/jio_view.xml b/bt5/erp5_hal_json_style/ActionTemplateItem/portal_types/ERP5%20Form/jio_view.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4c75d1dc4a7bcaaa9655bd6b68e4bffd04becb79
--- /dev/null
+++ b/bt5/erp5_hal_json_style/ActionTemplateItem/portal_types/ERP5%20Form/jio_view.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+ -
+
action
+
+ AAAAAAAAAAI=
+
+
+ -
+
categories
+
+
+ action_type/object_jio_view
+
+
+
+ -
+
category
+ object_jio_view
+
+ -
+
condition
+
+
+ -
+
description
+
+
+
+
+ -
+
icon
+
+
+ -
+
id
+ jio_view
+
+ -
+
permissions
+
+
+ View
+
+
+
+ -
+
portal_type
+ Action Information
+
+ -
+
priority
+ 1.0
+
+ -
+
title
+ View
+
+ -
+
visible
+ 1
+
+
+
+
+
+
+
+
+
+
+ -
+
text
+ string:${object_url}/ERP5Form_viewAsJio
+
+
+
+
+
diff --git a/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py
index 72c5ba6520a31be53c4bf5cb505b3c486d9415fd..2d1b71e4904625a745b71a96cacb40fc32669d84 100644
--- a/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py
+++ b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py
@@ -47,6 +47,7 @@ When handling form, we can expect field values to be stored in REQUEST.form in t
- python-object parsed from raw values under
"""
+
from ZTUtils import make_query
import json
from base64 import urlsafe_b64encode, urlsafe_b64decode
@@ -66,6 +67,9 @@ from collections import OrderedDict
MARKER = []
COUNT_LIMIT = 1000
+# TODO replace appcache var use by (mode = 'appcache')
+appcache = True if mode == "appcache" else False
+
if REQUEST is None:
recursive_call = True
REQUEST = context.REQUEST
@@ -75,7 +79,6 @@ else:
if response is None:
response = REQUEST.RESPONSE
-
def isFieldType(field, type_name):
if field.meta_type == 'ProxyField':
field = field.getRecursiveTemplateField()
@@ -391,6 +394,56 @@ def getFieldDefault(form, field, key, value=MARKER):
return "%s" % value
return value
+def getFieldRawProperties(field, meta_type=None, key=None, key_prefix=None):
+ """ Return the raw properties of the field """
+ if meta_type is None:
+ meta_type = field.meta_type
+ if key is None:
+ key = field.generate_field_key(key_prefix=key_prefix)
+ if meta_type == "ProxyField":
+ meta_type = field.getRecursiveTemplateField().meta_type
+ result = {
+ "type": meta_type,
+ "key": key,
+ "values": {},
+ "tales": {},
+ "overrides": field.overrides,
+ "message_values": field.message_values
+ }
+ # these patchs change the field property names as are required by js rendering
+ form_list_patch = False
+ gadget_field_patch = False
+ for key in field.values.keys():
+ # sometimes, field.values returns a key as string and also as a tuple
+ if type(key) is str:
+ result["values"][key] = field.values[key]
+ if key == "columns":
+ form_list_patch = True
+ if key == "gadget_url":
+ gadget_field_patch = True
+ if form_list_patch:
+ try:
+ result["values"]["column_list"] = result["values"]["columns"]
+ result["values"]["sort_column_list"] = result["values"]["sort_columns"]
+ result["values"]["search_column_list"] = result["values"]["search_columns"]
+ portal_type = result["values"]["portal_types"][0][0] if "portal_types" in result["values"] else False
+ if not portal_type:
+ portal_type = result["values"]["portal_type"][0][0] if "portal_type" in result["values"] else False
+ query = "portal_type%3A%22" + portal_type + "%22" if portal_type else ""
+ full_query = "urn:jio:allDocs?query=" + query
+ result["values"]["query"] = full_query
+ except KeyError:
+ log("error while patching form list definition")
+ if gadget_field_patch:
+ try:
+ result["values"]["url"] = result["values"]["gadget_url"]
+ result["values"]["renderjs_extra"] = result["values"]["renderjs_extra"][0][0]
+ except KeyError:
+ log("error while patching form gadget list definition")
+ for key in field.tales.keys():
+ if field.tales[key]:
+ result["tales"][key] = str(field.tales[key])
+ return result
def renderField(traversed_document, field, form, value=MARKER, meta_type=None, key=None, key_prefix=None, selection_params=None, request_field=True):
"""Extract important field's attributes into `result` dictionary."""
@@ -850,7 +903,7 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti
action_to_call = "Base_callDialogMethod"
else:
action_to_call = form.action
- if (action_to_call == 'Base_edit') and (not portal.portal_membership.checkPermission('Modify portal content', traversed_document)):
+ if (not appcache) and (action_to_call == 'Base_edit') and (not portal.portal_membership.checkPermission('Modify portal content', traversed_document)):
# prevent allowing editing if user doesn't have permission
include_action = False
@@ -913,7 +966,6 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti
view='view'
)
}
-
use_relation_form_page_template = (form.pt == "relation_form")
if use_relation_form_page_template:
# Provide the list of possible listboxes
@@ -1107,7 +1159,6 @@ def renderFormDefinition(form, response_dict):
for field in form.get_fields_in_group(group['goid'], include_disabled=1):
field_list.append((field.id, {'meta_type': field.meta_type}))
-
group_list.append((group['gid'], field_list))
# some forms might not have any fields so we put empty bottom group
@@ -1154,7 +1205,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
relative_url=None, restricted=None, list_method=None,
default_param_json=None, form_relative_url=None, extra_param_json=None):
- if (restricted == 1) and (portal.portal_membership.isAnonymousUser()):
+ if (not appcache) and (restricted == 1) and (portal.portal_membership.isAnonymousUser()):
login_relative_url = site_root.getLayoutProperty("configuration_login", default="")
if (login_relative_url):
response.setHeader(
@@ -1264,6 +1315,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
for k, v in byteify(extra_param_json.items()):
REQUEST.set(k, v)
+
# Add a link to the portal type if possible
if not is_portal:
# traversed_document should always have its Portal Type in ERP5 Portal Types
@@ -1363,66 +1415,72 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
for erp5_action_key in erp5_action_dict.keys():
erp5_action_list = []
for view_action in erp5_action_dict[erp5_action_key]:
+ continue_iteration = True
# Action condition is probably checked in Base_filterDuplicateActions
- erp5_action_list.append({
- 'href': '%s' % view_action['url'],
- 'name': view_action['id'],
- 'icon': view_action['icon'],
- 'title': Base_translateString(view_action['title'])
- })
-
- global_action_type = ("view", "workflow", "object_new_content_action",
- "object_clone_action", "object_delete_action",
- "object_list_action")
- if (erp5_action_key == view_action_type or
- erp5_action_key in global_action_type or
- "_jio" in erp5_action_key):
-
- # select correct URL template based on action_type and form page template
- url_template_key = "traverse_generator"
- if erp5_action_key not in ("view", "object_view", "object_jio_view"):
- url_template_key = "traverse_generator_action"
- # but when we do not have the last form id we do not pass is of course
- if not (current_action.get('view_id', '') or last_form_id):
+ try:
+ erp5_action_list.append({
+ 'href': '%s' % view_action['url'],
+ 'name': view_action['id'],
+ 'icon': view_action['icon'],
+ 'title': Base_translateString(view_action['title'])
+ })
+ except:
+ continue_iteration = False
+
+ if continue_iteration:
+
+ global_action_type = ("view", "workflow", "object_new_content_action",
+ "object_clone_action", "object_delete_action",
+ "object_list_action")
+ if (erp5_action_key == view_action_type or
+ erp5_action_key in global_action_type or
+ "_jio" in erp5_action_key):
+
+ # select correct URL template based on action_type and form page template
url_template_key = "traverse_generator"
+ if erp5_action_key not in ("view", "object_view", "object_jio_view"):
+ url_template_key = "traverse_generator_action"
+ # but when we do not have the last form id we do not pass is of course
+ if not (current_action.get('view_id', '') or last_form_id):
+ url_template_key = "traverse_generator"
+
+ # some dialogs need previous form_id when rendering to pass UID to embedded Listbox
+ extra_param_json['form_id'] = current_action['view_id'] \
+ if current_action.get('view_id', '') and view_instance.pt in ("form_view", "form_list") \
+ else last_form_id
+
+ erp5_action_list[-1]['href'] = url_template_dict[url_template_key] % {
+ "root_url": site_root.absolute_url(),
+ "script_id": script.id, # this script (ERP5Document_getHateoas)
+ "relative_url": traversed_document.getRelativeUrl().replace("/", "%2F"),
+ "view": erp5_action_list[-1]['name'],
+ "extra_param_json": urlsafe_b64encode(json.dumps(ensureSerializable(extra_param_json)))
+ }
- # some dialogs need previous form_id when rendering to pass UID to embedded Listbox
- extra_param_json['form_id'] = current_action['view_id'] \
- if current_action.get('view_id', '') and view_instance.pt in ("form_view", "form_list") \
- else last_form_id
-
- erp5_action_list[-1]['href'] = url_template_dict[url_template_key] % {
- "root_url": site_root.absolute_url(),
- "script_id": script.id, # this script (ERP5Document_getHateoas)
- "relative_url": traversed_document.getRelativeUrl().replace("/", "%2F"),
- "view": erp5_action_list[-1]['name'],
- "extra_param_json": urlsafe_b64encode(json.dumps(ensureSerializable(extra_param_json)))
+ if erp5_action_key == 'object_jump':
+ if 'Base_jumpToRelatedObject?' in view_action['url']:
+ # Fetch the URL arguments
+ # XXX Correctly unquote arguments
+ argument_dict = dict([x.split('=') for x in view_action['url'].split('?', 1)[1].split("&")])
+ jump_portal_type = argument_dict.pop('portal_type', None)
+ if (jump_portal_type is not None):
+ jump_portal_type = jump_portal_type.replace('+', ' ')
+ final_argument_dict = {'portal_type': jump_portal_type}
+ jump_related = argument_dict.pop('related', 1)
+ if (jump_related):
+ jump_related_suffix = ''
+ else:
+ jump_related_suffix = 'related_'
+
+ jump_uid = portal.restrictedTraverse(argument_dict.pop('jump_from_relative_url', getRealRelativeUrl(traversed_document))).getUid()
+ final_argument_dict['default_%s_%suid' % (argument_dict.pop('base_category'), jump_related_suffix)] = jump_uid
+
+ erp5_action_list[-1]['href'] = url_template_dict["jio_search_template"] % {
+ "query": make_query({"query": sql_catalog.buildQuery(final_argument_dict).asSearchTextExpression(sql_catalog)})
}
-
- if erp5_action_key == 'object_jump':
- if 'Base_jumpToRelatedObject?' in view_action['url']:
- # Fetch the URL arguments
- # XXX Correctly unquote arguments
- argument_dict = dict([x.split('=') for x in view_action['url'].split('?', 1)[1].split("&")])
- jump_portal_type = argument_dict.pop('portal_type', None)
- if (jump_portal_type is not None):
- jump_portal_type = jump_portal_type.replace('+', ' ')
- final_argument_dict = {'portal_type': jump_portal_type}
- jump_related = argument_dict.pop('related', 1)
- if (jump_related):
- jump_related_suffix = ''
else:
- jump_related_suffix = 'related_'
-
- jump_uid = portal.restrictedTraverse(argument_dict.pop('jump_from_relative_url', getRealRelativeUrl(traversed_document))).getUid()
- final_argument_dict['default_%s_%suid' % (argument_dict.pop('base_category'), jump_related_suffix)] = jump_uid
-
- erp5_action_list[-1]['href'] = url_template_dict["jio_search_template"] % {
- "query": make_query({"query": sql_catalog.buildQuery(final_argument_dict).asSearchTextExpression(sql_catalog)})
- }
- else:
- # XXX How to handle all custom jump actions?
- erp5_action_list.pop(-1)
+ # XXX How to handle all custom jump actions?
+ erp5_action_list.pop(-1)
if erp5_action_list:
if len(erp5_action_list) == 1:
@@ -1439,7 +1497,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
# XXX Custom slapos code
##############
if is_site_root:
-
+
result_dict['default_view'] = 'view'
REQUEST.set("X-HATEOAS-CACHE", 1)
@@ -1483,19 +1541,19 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
'method': 'POST',
'name': 'Bulk'
}
-
+
# Handle also other kind of users: instance, computer, master
person = portal.portal_membership.getAuthenticatedMember().getUserValue()
if person is not None and portal.portal_membership.checkPermission('View', person):
result_dict['_links']['me'] = {
"href": default_document_uri_template % {
"root_url": site_root.absolute_url(),
- "relative_url": person.getRelativeUrl(),
+ "relative_url": person.getRelativeUrl(),
"script_id": script.id
},
- # '_relative_url': person.getRelativeUrl()
+ #'_relative_url': person.getRelativeUrl()
}
-
+
else:
traversed_document_portal_type = traversed_document.getPortalType()
if traversed_document_portal_type in ("ERP5 Form", "ERP5 Report"):
@@ -1505,6 +1563,21 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
response.setHeader("Vary", "Cookie,Authorization,Accept-Encoding")
response.setHeader("Last-Modified", DateTime().rfc822())
REQUEST.set("X-HATEOAS-CACHE", 1)
+
+ fields_raw_properties = {}
+ # check if it's the first call to calculateHateoas so nothing was rendered yet
+ if appcache and REQUEST != None and response != None:
+ for group in traversed_document.Form_getGroupTitleAndId():
+ if 'hidden' in group['gid']:
+ for field in traversed_document.get_fields_in_group(group['goid']):
+ if field.id == "gadget_field_action_js_script":
+ fields_raw_properties[field.id] = getFieldRawProperties(field, key_prefix=None)
+ continue
+ for field in traversed_document.get_fields_in_group(group['goid']):
+ fields_raw_properties[field.id] = getFieldRawProperties(field, key_prefix=None)
+ if fields_raw_properties:
+ result_dict['fields_raw_properties'] = fields_raw_properties
+
elif relative_url == 'portal_workflow':
result_dict['_links']['action_worklist'] = {
"href": url_template_dict['worklist_template'] % {
@@ -2148,11 +2221,116 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
result_dict["worklist"] = work_list
+ elif (mode == 'appcache'):
+ ##
+ # return raw form definition
+ # render will be done in js side
+
+ # Default properties shared by all ERP5 Document and Site
+ current_action = {}
+ result_dict['title'] = traversed_document.getTitle()
+ extra_param_json = {}
+
+ # TODO: 'type' should be include outside "_links", but itrequires changes on js side rendering
+ if not is_portal:
+ document_type_name = traversed_document.getPortalType()
+ document_type = getattr(portal.portal_types, document_type_name, None)
+ if document_type is not None:
+ result_dict['_links']['type'] = {
+ "href": default_document_uri_template % {
+ "root_url": site_root.absolute_url(),
+ "relative_url": document_type.getRelativeUrl(),
+ "script_id": script.id
+ },
+ "name": Base_translateString(traversed_document.getPortalType())
+ }
+
+ # TODO: 'parent' should be include outside "_links", but it requires changes on js side rendering
+ if not is_portal:
+ container = traversed_document.getParentValue()
+ if container != portal:
+ result_dict['_links']['parent'] = {
+ "href": default_document_uri_template % {
+ "root_url": site_root.absolute_url(),
+ "relative_url": container.getRelativeUrl(),
+ "script_id": script.id
+ },
+ "name": Base_translateString(container.getTitle()),
+ }
+
+ # Find current action URL and extract embedded view
+ erp5_action_dict = portal.Base_filterDuplicateActions(
+ portal.portal_actions.listFilteredActionsFor(traversed_document))
+ for erp5_action_key in erp5_action_dict.keys():
+ for view_action in erp5_action_dict[erp5_action_key]:
+ if (view == view_action['id']):
+ current_action = parseActionUrl('%s' % view_action['url'])
+ if view and (view != 'view') and (current_action.get('view_id', None) is None):
+ current_action['view_id'] = view
+ current_action['url'] = '%s/%s' % (traversed_document.getRelativeUrl(), view)
+ current_action['params'] = {}
+
+ if current_action.get('view_id', ''):
+ view_instance = getattr(traversed_document, current_action['view_id'])
+ if (view_instance is not None):
+ embedded_dict = {
+ '_links': {
+ 'self': {
+ 'href': current_action['url']
+ }
+ }
+ }
+ # TODO: get from this method what is needed for appcaching, and avoid all rendering stuff
+ renderForm(traversed_document, view_instance, embedded_dict,
+ selection_params=extra_param_json, extra_param_json=extra_param_json)
+ result_dict['_embedded'] = {
+ '_view': embedded_dict
+ }
+
+ if is_site_root:
+ result_dict['default_view'] = 'view'
+ REQUEST.set("X-HATEOAS-CACHE", 1)
+
+ else:
+ traversed_document_portal_type = traversed_document.getPortalType()
+ if traversed_document_portal_type in ("ERP5 Form", "ERP5 Report"):
+ # TODO: get from this method what is needed for appcaching, and avoid all rendering stuff
+ renderFormDefinition(traversed_document, result_dict)
+ if response is not None:
+ response.setHeader("Cache-Control", "private, max-age=1800")
+ response.setHeader("Vary", "Cookie,Authorization,Accept-Encoding")
+ response.setHeader("Last-Modified", DateTime().rfc822())
+ REQUEST.set("X-HATEOAS-CACHE", 1)
+ fields_raw_properties = {}
+ # check if it's the first call to calculateHateoas so nothing was rendered yet
+ if appcache and REQUEST != None and response != None:
+ for group in traversed_document.Form_getGroupTitleAndId():
+ if 'hidden' in group['gid']:
+ for field in traversed_document.get_fields_in_group(group['goid']):
+ if field.id == "gadget_field_action_js_script":
+ fields_raw_properties[field.id] = getFieldRawProperties(field, key_prefix=None)
+ continue
+ for field in traversed_document.get_fields_in_group(group['goid']):
+ fields_raw_properties[field.id] = getFieldRawProperties(field, key_prefix=None)
+ if fields_raw_properties:
+ result_dict['fields_raw_properties'] = fields_raw_properties
+
else:
raise NotImplementedError("Unsupported mode %s" % mode)
-
- return result_dict
+ # if form has my_form_definition field, set it with fields_raw_properties and form_definition
+ # my_form_definition will be used for rendering in JS side
+ if "_embedded" in result_dict:
+ if "_view" in result_dict["_embedded"]:
+ if "my_form_definition" in result_dict["_embedded"]["_view"]:
+ default_form_definition = result_dict["_embedded"]["_view"]["_embedded"]["form_definition"].copy()
+ default_form_definition["group_list"] = result_dict["group_list"]
+ default_form_definition["_actions"] = result_dict["_embedded"]["_view"]["_actions"]
+ if result_dict["fields_raw_properties"]:
+ default_form_definition["fields_raw_properties"] = result_dict["fields_raw_properties"].copy()
+ result_dict.pop('fields_raw_properties', None)
+ result_dict["_embedded"]["_view"]["my_form_definition"]["default"] = default_form_definition
+ return result_dict
mime_type = 'application/hal+json'
portal = context.getPortalObject()
@@ -2178,6 +2356,18 @@ hateoas = calculateHateoas(relative_url=relative_url,
default_param_json=default_param_json,
form_relative_url=form_relative_url,
extra_param_json=extra_param_json)
+
+
+# [HARDCODED] expresion string:${object_url} must be evaluated before return
+try:
+ if "_embedded" in hateoas.keys() and "_view" in hateoas["_embedded"].keys() and "my_action" in hateoas["_embedded"]["_view"].keys():
+ if hateoas["_embedded"]["_view"]["my_action"]["default"] == 'string:${object_url}/HTMLPost_viewAsJio':
+ hateoas["_embedded"]["_view"]["my_action"]["default"] = 'portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio'
+
+ if hateoas["_embedded"]["_view"]["my_action"]["default"] == 'string:${object_url}/WebPage_viewAsJio' or hateoas["_embedded"]["_view"]["my_action"]["default"] == 'string:${object_url}/WebPage_view':
+ hateoas["_embedded"]["_view"]["my_action"]["default"] = 'portal_skins/erp5_officejs_jio_connector/WebPage_viewAsJio'
+except:
+ pass
if hateoas == "":
return hateoas
else:
diff --git a/bt5/erp5_hal_json_style/bt/template_action_path_list b/bt5/erp5_hal_json_style/bt/template_action_path_list
index bc882e200c8f5e7bfa0864c081ffeb52c3c99049..b56a23e79255b8f942e78e54ef74fa943032911f 100644
--- a/bt5/erp5_hal_json_style/bt/template_action_path_list
+++ b/bt5/erp5_hal_json_style/bt/template_action_path_list
@@ -1,6 +1,7 @@
+ERP5 Form | jio_view
portal_actions | clone_document
portal_actions | create_a_document
portal_actions | delete_document
portal_actions | delete_document_list
portal_actions | mass_workflow_jio
-portal_actions | paste_document_list
\ No newline at end of file
+portal_actions | paste_document_list
diff --git a/bt5/erp5_officejs/ActionTemplateItem/portal_types/Web%20Page%20Module/jio_view.xml b/bt5/erp5_officejs/ActionTemplateItem/portal_types/Web%20Page%20Module/jio_view.xml
new file mode 100644
index 0000000000000000000000000000000000000000..68fdac62e8de37a65682a0386fa0ba748d73fad6
--- /dev/null
+++ b/bt5/erp5_officejs/ActionTemplateItem/portal_types/Web%20Page%20Module/jio_view.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+ -
+
action
+
+ AAAAAAAAAAI=
+
+
+ -
+
categories
+
+
+ action_type/object_list
+
+
+
+ -
+
category
+ object_list
+
+ -
+
condition
+
+
+ -
+
description
+
+
+
+
+ -
+
icon
+
+
+ -
+
id
+ jio_view
+
+ -
+
language
+
+
+
+
+ -
+
permissions
+
+
+ View
+
+
+
+ -
+
portal_type
+ Action Information
+
+ -
+
priority
+ 40.0
+
+ -
+
title
+ View
+
+ -
+
visible
+ 1
+
+
+
+
+
+
+
+
+
+
+ -
+
text
+ portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio
+
+
+
+
+
diff --git a/bt5/erp5_officejs/ActionTemplateItem/portal_types/Web%20Page/text_editor_view.xml b/bt5/erp5_officejs/ActionTemplateItem/portal_types/Web%20Page/text_editor_view.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2da50ea5c45e20e742f4f53ea008cc3a20f8dc62
--- /dev/null
+++ b/bt5/erp5_officejs/ActionTemplateItem/portal_types/Web%20Page/text_editor_view.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+ -
+
action
+
+ AAAAAAAAAAI=
+
+
+ -
+
categories
+
+
+ action_type/object_jio_view
+
+
+
+ -
+
category
+ object_jio_view
+
+ -
+
condition
+
+
+ -
+
description
+
+
+
+
+ -
+
icon
+
+
+ -
+
id
+ text_editor_view
+
+ -
+
permissions
+
+
+ View
+
+
+
+ -
+
portal_type
+ Action Information
+
+ -
+
priority
+ 35.0
+
+ -
+
title
+ View
+
+ -
+
visible
+ 1
+
+
+
+
+
+
+
+
+
+
+ -
+
text
+ portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..c511043a0f21f35f9e3cab72cfb335a55d6bbc24
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_html.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+ OfficeJS Common Utils
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..84c6d364d7ae8e8b75a9070ca3fc92d117f7a0ad
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_html.xml
@@ -0,0 +1,363 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
categories
+
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
creators
+
+
+ cedric.le.ninivin
+
+
+
+ -
+
default_reference
+ gadget_officejs_common_utils.html
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_common_utils_html
+
+ -
+
language
+
+
+
+
+ -
+
modification_date
+
+
+
+
+
+
+
+
+
+
+ 1455284351.46
+ UTC
+
+
+
+
+
+ -
+
portal_type
+ Web Page
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget OfficeJS Common Utils
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1556112006.95
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 975.16160.7600.5734
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1556112059.78
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1556111928.55
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..6b2d9c64e2757ec1a43689f9d39add9bd4560e3e
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_js.js
@@ -0,0 +1,257 @@
+/*global window, rJS, RSVP, Query, SimpleQuery, ComplexQuery, console */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP, Query, SimpleQuery, ComplexQuery, console) {
+ "use strict";
+
+ // TODO: check if there are other categories that are 'views' and find a less hardcoded way to get this
+ var view_categories = ["object_view", "object_jio_view", "object_web_view", "object_list"];
+
+ function filterViews(views_dict, app_view, default_view) {
+ // there must be only one "View" action (title = "View")
+ // this is for scenarios were the portal type has several "View" (like view, jio_view, custom_view)
+ // priority: app_view ; default_view ; other
+ var only_view, key,
+ view_list = Object.keys(views_dict).map(function (key) {
+ if (views_dict[key].title === "View") { return key; }
+ });
+ if (view_list.includes(app_view)) {
+ only_view = app_view;
+ } else if (view_list.includes(default_view)) {
+ only_view = default_view;
+ } else {
+ only_view = view_list[0];
+ }
+ for (key in view_list) {
+ if (view_list[key] !== only_view) {
+ delete views_dict[view_list[key]];
+ }
+ }
+ return views_dict;
+ }
+
+ rJS(window)
+ /////////////////////////////////////////////////////////////////
+ // Acquired methods
+ /////////////////////////////////////////////////////////////////
+ .declareAcquiredMethod("updateHeader", "updateHeader")
+ .declareAcquiredMethod("isDesktopMedia", "isDesktopMedia")
+ .declareAcquiredMethod("getUrlForList", "getUrlForList")
+ .declareAcquiredMethod("getSetting", "getSetting")
+ .declareAcquiredMethod("redirect", "redirect")
+ .declareAcquiredMethod("jio_get", "jio_get")
+ .declareAcquiredMethod("jio_put", "jio_put")
+ .declareAcquiredMethod("jio_post", "jio_post")
+ .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+ .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+ .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+ .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+
+ /////////////////////////////////////////////////////////////////
+ // declared methods
+ /////////////////////////////////////////////////////////////////
+
+ .declareMethod("formatSettingList", function (configuration_list_string, portal_type) {
+ var i = 0, formatted_list = [], configuration_list, pair;
+ try {
+ configuration_list_string = configuration_list_string.replace(/\(/g, '[')
+ .replace(/\)/g, ']')
+ .replace(/,\]/g, ']')
+ .replace(/\'/g, '"');
+ configuration_list = JSON.parse(configuration_list_string);
+ for (i = 0; i < configuration_list.length; i += 1) {
+ pair = configuration_list[i].split(" | ");
+ if (!portal_type || pair[0] === portal_type) {
+ formatted_list.push(pair);
+ }
+ }
+ } catch (e) {
+ console.log("Error while parsing configuration settings. Format error maybe?");
+ console.log(e);
+ }
+ return formatted_list;
+ })
+
+ .declareMethod("getAppActions", function (portal_type) {
+ var gadget = this;
+ return gadget.getSetting('app_actions')
+ .push(function (app_actions_setting) {
+ return gadget.formatSettingList(app_actions_setting, portal_type);
+ });
+ })
+
+ .declareMethod("getAllViewsAndActions", function (portal_type, jio_key) {
+ var gadget = this,
+ action_info_dict = {views: {}, actions: {}},
+ query_type = new SimpleQuery({
+ key: "portal_type",
+ operator: "",
+ type: "simple",
+ value: "Action Information"
+ }),
+ query_parent = new SimpleQuery({
+ key: "parent_relative_url",
+ operator: "",
+ type: "simple",
+ value: "portal_types/" + portal_type
+ }),
+ query = Query.objectToSearchText(new ComplexQuery({
+ operator: "AND",
+ query_list: [query_type, query_parent],
+ type: "complex"
+ })),
+ app_actions,
+ app_view,
+ default_view;
+ return RSVP.Queue()
+ .push(function () {
+ return RSVP.all([
+ gadget.getSetting('app_view_reference'),
+ gadget.getSetting('default_view_reference')
+ ]);
+ })
+ .push(function (result_list) {
+ app_view = result_list[0];
+ default_view = result_list[1];
+ return gadget.getAppActions(portal_type);
+ })
+ .push(function (app_actions_result) {
+ app_actions = app_actions_result.map(function (pair) {
+ return pair[1];
+ });
+ return gadget.jio_allDocs({query: query})
+ .push(function (action_list) {
+ var path_for_jio_get_list = [], row;
+ for (row in action_list.data.rows) {
+ if (action_list.data.rows.hasOwnProperty(row)) {
+ path_for_jio_get_list.push(gadget.jio_get(action_list.data.rows[row].id));
+ }
+ }
+ return RSVP.all(path_for_jio_get_list);
+ })
+ .push(function (action_document_list) {
+ var action_key, action_doc, action_settings;
+ for (action_key in action_document_list) {
+ if (action_document_list.hasOwnProperty(action_key)) {
+ action_doc = action_document_list[action_key];
+ if (app_actions.includes(action_doc.reference)) {
+ action_settings = {
+ page: undefined,
+ jio_key: jio_key,
+ title: action_doc.title,
+ action: action_doc.reference,
+ reference: action_doc.reference,
+ action_type: action_doc.action_type,
+ parent_portal_type: portal_type
+ };
+ if (view_categories.includes(action_settings.action_type)) {
+ action_settings.page = "ojs_local_controller";
+ action_info_dict.views[action_settings.action] = action_settings;
+ } else {
+ action_settings.page = "handle_action";
+ action_info_dict.actions[action_settings.action] = action_settings;
+ }
+ }
+ }
+ }
+ action_info_dict.views = filterViews(action_info_dict.views, app_view, default_view);
+ return action_info_dict;
+ });
+ });
+ })
+
+ .declareMethod("getFormInfo", function (form_definition) {
+ var child_gadget_url,
+ form_type,
+ action_category = form_definition.action_type;
+ switch (action_category) {
+ case 'object_list':
+ form_type = 'list';
+ child_gadget_url = 'gadget_erp5_pt_form_list.html';
+ break;
+ case 'object_dialog':
+ form_type = 'dialog';
+ child_gadget_url = 'gadget_erp5_pt_form_dialog.html';
+ break;
+ case 'object_jio_js_script':
+ form_type = 'dialog';
+ child_gadget_url = 'gadget_erp5_pt_form_dialog.html';
+ break;
+ default:
+ form_type = 'page';
+ child_gadget_url = 'gadget_erp5_pt_form_view_editable.html';
+ }
+ return [form_type, child_gadget_url];
+ })
+
+ .declareMethod("getFormDefinition", function (portal_type, action_reference) {
+ var gadget = this,
+ query,
+ action_type,
+ action_title,
+ form_definition,
+ query_type,
+ query_parent,
+ query_reference;
+ query_reference = new SimpleQuery({
+ key: "reference",
+ operator: "",
+ type: "simple",
+ value: action_reference
+ });
+ query_type = new SimpleQuery({
+ key: "portal_type",
+ operator: "",
+ type: "simple",
+ value: "Action Information"
+ });
+ query_parent = new SimpleQuery({
+ key: "parent_relative_url",
+ operator: "",
+ type: "simple",
+ value: "portal_types/" + portal_type
+ });
+ query = Query.objectToSearchText(new ComplexQuery({
+ operator: "AND",
+ query_list: [query_type, query_parent, query_reference],
+ type: "complex"
+ }));
+ return gadget.jio_allDocs({query: query})
+ .push(function (data) {
+ if (data.data.rows.length === 0) {
+ throw "Can not find action '" + action_reference + "' for portal type '" + portal_type + "'";
+ }
+ return gadget.jio_get(data.data.rows[0].id);
+ })
+ .push(function (action_result) {
+ action_title = action_result.title;
+ action_type = action_result.action_type;
+ return gadget.jio_get(action_result.action);
+ })
+ .push(function (form_result) {
+ form_definition = form_result.form_definition;
+ form_definition.action_type = action_type;
+ form_definition.title = action_title;
+ return gadget.getSetting("app_allowed_sub_types");
+ })
+ .push(function (allowed_sub_types_setting) {
+ return gadget.formatSettingList(allowed_sub_types_setting, portal_type);
+ })
+ .push(function (allowed_sub_types_pairs) {
+ var allowed_sub_types = allowed_sub_types_pairs.map(function (pair) {
+ return pair[1];
+ });
+ form_definition.allowed_sub_types_list = allowed_sub_types;
+ return gadget.getAllViewsAndActions(portal_type);
+ })
+ .push(function (actions_views_dict) {
+ form_definition.has_more_views = Object.keys(actions_views_dict.views).length > 1;
+ form_definition.has_more_actions = Object.keys(actions_views_dict.actions).length > 0;
+ return gadget.getSetting('hide_header_add_button');
+ })
+ .push(function (hide_add_button_setting) {
+ form_definition.hide_add_button = hide_add_button_setting === "1";
+ return form_definition;
+ });
+ });
+
+}(window, rJS, RSVP, Query, SimpleQuery, ComplexQuery, console));
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..13ef6571488f597fc972a811fa5688ba6c3a13f1
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_common_utils_js.xml
@@ -0,0 +1,359 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
categories
+
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
creators
+
+
+ cedric.le.ninivin
+
+
+
+ -
+
default_reference
+ gadget_officejs_common_utils.js
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_common_utils_js
+
+ -
+
language
+
+
+
+
+ -
+
modification_date
+
+
+
+
+
+
+
+
+
+
+ 1455284351.49
+ UTC
+
+
+
+
+
+ -
+
portal_type
+ Web Script
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget OfficeJS Common Utils JS
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1556112172.71
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.34277.31524.53111
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1561477042.12
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1556112092.1
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_local_controller_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_local_controller_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..04fedd9efa099777879f67897ede94c87bd41162
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_local_controller_js.js
@@ -0,0 +1,144 @@
+/*global document, window, rJS, RSVP */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (document, window, rJS, RSVP) {
+ "use strict";
+
+ rJS(window)
+
+ /////////////////////////////////////////////////////////////////
+ // Acquired methods
+ /////////////////////////////////////////////////////////////////
+ .declareAcquiredMethod("jio_get", "jio_get")
+ .declareAcquiredMethod("jio_put", "jio_put")
+ .declareAcquiredMethod("jio_post", "jio_post")
+ .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+ .declareAcquiredMethod("isDesktopMedia", "isDesktopMedia")
+ .declareAcquiredMethod("getSetting", "getSetting")
+ .declareAcquiredMethod("getUrlForList", "getUrlForList")
+ .declareAcquiredMethod('getUrlParameter', 'getUrlParameter')
+ .declareAcquiredMethod("updateHeader", "updateHeader")
+ .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+ .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+ .declareAcquiredMethod("redirect", "redirect")
+
+ /////////////////////////////////////////////////////////////////
+ // declared methods
+ /////////////////////////////////////////////////////////////////
+
+ .declareMethod("render", function (options) {
+ var gadget = this,
+ default_view,
+ app_view,
+ form_definition,
+ gadget_utils,
+ jio_document,
+ portal_type,
+ front_page;
+ return RSVP.Queue()
+ .push(function () {
+ return RSVP.all([
+ gadget.declareGadget("gadget_officejs_common_utils.html"),
+ gadget.getSetting('app_view_reference'),
+ gadget.getSetting('default_view_reference')
+ ]);
+ })
+ .push(function (result_list) {
+ gadget_utils = result_list[0];
+ app_view = options.action || result_list[1];
+ default_view = result_list[2];
+ return gadget.jio_get(options.jio_key);
+ })
+ .push(function (result) {
+ jio_document = result;
+ if (jio_document.portal_type === undefined) {
+ throw new Error('Can not display document: ' + options.jio_key);
+ }
+ }, function () {})
+ .push(function () {
+ return gadget.getSetting('parent_portal_type');
+ })
+ .push(function (parent_portal_type) {
+ if (jio_document) {
+ portal_type = jio_document.portal_type;
+ } else if (options.portal_type) {
+ portal_type = options.portal_type;
+ } else {
+ portal_type = parent_portal_type;
+ }
+ front_page = portal_type === parent_portal_type;
+ return gadget_utils.getFormDefinition(portal_type, app_view);
+ })
+ .push(function (result) {
+ return result;
+ }, function () {
+ return gadget_utils.getFormDefinition(portal_type, default_view);
+ })
+ .push(function (result) {
+ form_definition = result;
+ return gadget_utils.getFormInfo(form_definition);
+ })
+ .push(function (form_info) {
+ var form_type = form_info[0],
+ child_gadget_url = form_info[1];
+ return gadget.changeState({
+ jio_key: options.jio_key,
+ doc: jio_document,
+ portal_type: portal_type,
+ child_gadget_url: child_gadget_url,
+ form_definition: form_definition,
+ form_type: form_type,
+ editable: options.editable,
+ view: options.view || default_view,
+ front_page: front_page
+ });
+ });
+ })
+
+ .onStateChange(function () {
+ var fragment = document.createElement('div'),
+ gadget = this;
+ while (this.element.firstChild) {
+ this.element.removeChild(this.element.firstChild);
+ }
+ this.element.appendChild(fragment);
+ return gadget.declareGadget("gadget_officejs_form_view.html", {element: fragment,
+ scope: 'form_view'})
+ .push(function (form_view_gadget) {
+ return form_view_gadget.render(gadget.state);
+ });
+ })
+
+ .allowPublicAcquisition('notifySubmit', function () {
+ return this.triggerSubmit();
+ })
+ .allowPublicAcquisition('submitContent', function (param_list) {
+ var gadget = this,
+ //target_url = options[1],
+ content_dict = param_list[2];
+ return gadget.jio_get(gadget.state.jio_key)
+ .push(function (doc) {
+ var property;
+ for (property in content_dict) {
+ if (content_dict.hasOwnProperty(property)) {
+ doc[property] = content_dict[property];
+ }
+ }
+ return gadget.jio_put(gadget.state.jio_key, doc);
+ })
+ .push(function () {
+ return gadget.notifySubmitting();
+ })
+ .push(function () {
+ return gadget.notifySubmitted({message: 'Data Updated', status: 'success'});
+ });
+ })
+
+ .declareMethod("triggerSubmit", function () {
+ var argument_list = arguments;
+ return this.getDeclaredGadget('form_view')
+ .push(function (view_gadget) {
+ return view_gadget.triggerSubmit(argument_list);
+ });
+ });
+
+}(document, window, rJS, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_local_controller_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_local_controller_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..56a8d314043a7d6b6f741a85d554933dc29c876f
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_controller_page_local_controller_js.xml
@@ -0,0 +1,318 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
default_reference
+ gadget_erp5_page_ojs_local_controller.js
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_controller_page_local_controller_js
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Script
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget Local Controller JS
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558970639.42
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.41486.5263.546
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1561478018.46
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558970191.13
+ 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_discussion_tool_appcache.xml
similarity index 85%
rename from bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_appcache.xml
rename to bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_appcache.xml
index cdf1c8145e9771476ae9d78fe60a2bbc2041e419..f1ef1c6ec762bd9b25d980eb3035eda18221d90e 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_discussion_tool_appcache.xml
@@ -23,6 +23,7 @@
_Add_portal_content_Permission
+ Assignee
Assignor
Manager
@@ -41,6 +42,8 @@
_Modify_portal_content_Permission
+ Assignee
+ Assignor
Manager
@@ -78,7 +81,7 @@
-
default_reference
- gadget_officejs_text_editor.appcache
+ gadget_officejs_discussion_tool.appcache
-
description
@@ -88,7 +91,7 @@
-
id
- gadget_officejs_text_editor_appcache
+ gadget_officejs_discussion_tool_appcache
-
language
@@ -106,8 +109,10 @@
-
text_content
- CACHE MANIFEST\n
-# generated on Fri, 01 Feb 2019 10:45:33 +0000\n
+
+*
+
+]]>
-
title
- OfficeJS Text Editor AppCache
+ OfficeJS Discussion Tool AppCache
-
url_string
@@ -630,7 +700,7 @@ NETWORK:\n
-
action
- publish
+ publish_alive
-
actor
@@ -656,7 +726,7 @@ NETWORK:\n
- 1486561449.89
+ 1548345203.18
UTC
@@ -665,7 +735,7 @@ NETWORK:\n
-
validation_state
- published
+ published_alive
@@ -701,7 +771,7 @@ NETWORK:\n
-
serial
- 973.23494.2134.9352
+ 976.43028.42826.42086
-
state
@@ -719,7 +789,7 @@ NETWORK:\n
- 1549009744.56
+ 1561571190.65
UTC
@@ -776,7 +846,7 @@ NETWORK:\n
- 1486127422.56
+ 1548345134.5
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_configuration.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_configuration.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ce82453fe4352c3b4360e7e1c3f16f56a93d8868
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_configuration.xml
@@ -0,0 +1,374 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
categories
+
+
+ contributor/person_module/1
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
default_reference
+ gadget_officejs_discussion_tool.configuration
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_discussion_tool_configuration
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Manifest
+
+ -
+
short_title
+
+
+
+
+ -
+
text_content
+
+
+ -
+
title
+ OfficeJS Discussion Tool Configuration
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1552575414.66
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.43028.40236.42222
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1561571185.19
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1552575268.51
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_json.json b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_json.json
new file mode 100644
index 0000000000000000000000000000000000000000..723b0f99de653727fab4d364434fe22a1da2ea5a
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_json.json
@@ -0,0 +1,12 @@
+{
+ "short_name": "Discussion Tool",
+ "name": "OfficeJS Discussion Tool",
+ "description": "App to support communication",
+ "icons": [{
+ "src": "officejs_logo_text_editor.png",
+ "sizes": "128x128",
+ "type": "image/png"
+ }],
+ "start_url": "../../",
+ "display": "standalone"
+}
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_json.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_json.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2d62a447f012f67d9cfd0c075507f455c1093306
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_json.xml
@@ -0,0 +1,326 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
categories
+
+
+ classification/collaborative/team
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
default_reference
+ gadget_officejs_discussion_tool.json
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_discussion_tool_json
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Script
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Officejs Discussion Tool Web Manifest
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1550237456.6
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 973.45002.61840.55552
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1552583178.36
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1550237340.91
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_router_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_router_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..a889501984bafb5785fd6f505d2d576e97392fff
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_router_html.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+ OfficeJS Router Gadget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_router_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_router_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d2ae941ea2c2bb31e517235e5c8b3943ad6502cb
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_discussion_tool_router_html.xml
@@ -0,0 +1,367 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ 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_officejs_discussion_tool_router.html
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_discussion_tool_router_html
+
+ -
+
language
+ en
+
+ -
+
modification_date
+
+
+
+
+
+
+
+
+
+
+ 1455284352.21
+ UTC
+
+
+
+
+
+ -
+
portal_type
+ Web Page
+
+ -
+
short_title
+
+
+
+
+ -
+
text_content_substitution_mapping_method_id
+ WebPage_getRenderJSSubstitutionMappingDict
+
+ -
+
title
+ OfficeJS Discussion Tool router Gadget
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1547819538.55
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 973.32055.15787.50517
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1555088964.88
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1547819391.93
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..596b923db9bf4aa65f50eb04fb58ecc54a79867c
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_html.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+ OfficeJS Form View
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5ebb35c12ae3cb9fb4da0a3bb72ffb2e5f98c53b
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_html.xml
@@ -0,0 +1,363 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
categories
+
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
creators
+
+
+ cedric.le.ninivin
+
+
+
+ -
+
default_reference
+ gadget_officejs_form_view.html
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_form_view_html
+
+ -
+
language
+
+
+
+
+ -
+
modification_date
+
+
+
+
+
+
+
+
+
+
+ 1455284351.46
+ UTC
+
+
+
+
+
+ -
+
portal_type
+ Web Page
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget OfficeJS Form View
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554830674.25
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 975.7931.26448.43366
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1556112021.33
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554830045.47
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..9d5bde45e157b6f6eb6504a947efc2977c8f08ad
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_js.js
@@ -0,0 +1,264 @@
+/*global document, window, rJS, RSVP, ensureArray */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (document, window, rJS, RSVP, ensureArray) {
+ "use strict";
+
+ function renderField(field_id, field_definition, document) {
+ var key, raw_value, tales_expr, override, final_value, item_list, result = {};
+ for (key in field_definition.values) {
+ if (field_definition.values.hasOwnProperty(key)) {
+ // order to get the final value (based on Field.py get_value)
+ // 1.tales, 2.override, 3.form-def-value, 4.context-default
+ raw_value = field_definition.values[key];
+ tales_expr = field_definition.tales[key];
+ override = field_definition.overrides[key];
+ final_value = undefined;
+ if (tales_expr !== undefined && tales_expr !== null && tales_expr !== '') {
+ try {
+ throw "error";
+ //final_value = eval(tales_expr);
+ } catch (ignore) {} // TALES expressions are usually python code, so for now ignore
+ }
+ if (final_value === undefined) {
+ if (override !== undefined && override !== null && override !== '') {
+ final_value = override;
+ } else if (raw_value !== undefined && raw_value !== null && raw_value !== '') {
+ final_value = raw_value;
+ } else if (document && document.hasOwnProperty(key)) {
+ final_value = document[key];
+ }
+ }
+ if (final_value !== undefined && final_value !== null && final_value !== '') {
+ result[key] = final_value;
+ }
+ }
+ }
+ result.type = field_definition.type;
+ result.key = field_id;
+ if (document && document.hasOwnProperty(field_id)) {
+ if (field_definition.type === "ListField") {
+ item_list = ensureArray(document[field_id]).map(function (item) {
+ if (Array.isArray(item)) {return item; }
+ return [item, item];
+ });
+ result.items = item_list;
+ } else {
+ result["default"] = document[field_id];
+ }
+ }
+ return result;
+ }
+
+ rJS(window)
+ /////////////////////////////////////////////////////////////////
+ // Acquired methods
+ /////////////////////////////////////////////////////////////////
+ .declareAcquiredMethod("updateHeader", "updateHeader")
+ .declareAcquiredMethod("isDesktopMedia", "isDesktopMedia")
+ .declareAcquiredMethod("getUrlForList", "getUrlForList")
+ .declareAcquiredMethod("getSetting", "getSetting")
+ .declareAcquiredMethod("redirect", "redirect")
+ .declareAcquiredMethod("jio_get", "jio_get")
+ .declareAcquiredMethod("jio_put", "jio_put")
+ .declareAcquiredMethod("jio_post", "jio_post")
+ .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+ .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+ .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+ .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+
+ // XXX Hardcoded for modification_date rendering
+ .allowPublicAcquisition("jio_allDocs", function (param_list) {
+ var gadget = this;
+ 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) {
+ 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;
+ });
+ })
+
+ /////////////////////////////////////////////////////////////////
+ // declared methods
+ /////////////////////////////////////////////////////////////////
+
+ .declareMethod("renderForm", function (form_definition, document) {
+ var i, j, fields, field_info, my_element, element_id, rendered_field,
+ raw_properties = form_definition.fields_raw_properties,
+ form_json = {
+ erp5_document: {
+ "_embedded": {"_view": {}},
+ "_links": {}
+ },
+ form_definition: form_definition
+ };
+ for (i = 0; i < form_definition.group_list.length; i += 1) {
+ fields = form_definition.group_list[i][1];
+ for (j = 0; j < fields.length; j += 1) {
+ my_element = fields[j][0];
+ if (my_element.startsWith("my_")) {
+ element_id = my_element.replace("my_", "");
+ } else if (my_element.startsWith("your_")) {
+ element_id = my_element.replace("your_", "");
+ } else {
+ element_id = my_element;
+ }
+ if (element_id && raw_properties.hasOwnProperty(my_element)) {
+ field_info = raw_properties[my_element];
+ rendered_field = renderField(element_id, field_info, document);
+ form_json.erp5_document._embedded._view[my_element] = rendered_field;
+ }
+ }
+ }
+ form_json.erp5_document._embedded._view._actions = form_definition._actions;
+ form_json.erp5_document._links = form_definition._links;
+ return form_json;
+ })
+
+ .declareMethod("triggerSubmit", function (argument_list) {
+ return this.getDeclaredGadget('fg')
+ .push(function (gadget) {
+ return gadget.triggerSubmit(argument_list);
+ });
+ })
+
+ .declareMethod("render", function (options) {
+ var fragment = document.createElement('div'),
+ gadget = this,
+ form_json;
+ return gadget.renderForm(options.form_definition, options.doc)
+ .push(function (json) {
+ form_json = json;
+ while (gadget.element.firstChild) {
+ gadget.element.removeChild(gadget.element.firstChild);
+ }
+ gadget.element.appendChild(fragment);
+ return gadget.declareGadget(options.child_gadget_url, {element: fragment, scope: 'fg'});
+ })
+ .push(function (form_gadget) {
+ return gadget.renderSubGadget(options, form_gadget, form_json);
+ });
+ })
+
+ .declareMethod("renderSubGadget", function (options, subgadget, form_json) {
+ var this_gadget = this, erp5_document = form_json.erp5_document,
+ page_title = options.portal_type,
+ add_url = false;
+ return subgadget.render({
+ jio_key: options.jio_key,
+ doc: options.doc,
+ erp5_document: form_json.erp5_document,
+ form_definition: form_json.form_definition,
+ editable: options.editable,
+ view: options.view,
+ form_json: form_json
+ })
+ // render the header
+ .push(function () {
+ var url_for_parameter_list = [
+ {command: 'change', options: {page: "tab"}},
+ {command: 'change', options: {page: "action_officejs", jio_key: options.jio_key, portal_type: options.portal_type}},
+ {command: 'history_previous'},
+ {command: 'selection_previous'},
+ {command: 'selection_next'},
+ {command: 'change', options: {page: "export"}},
+ {command: 'display', options: {}}
+ ];
+ if (options.doc) {
+ page_title = options.doc.title;
+ }
+ erp5_document = form_json.erp5_document;
+ if (form_json.form_definition.allowed_sub_types_list &&
+ form_json.form_definition.allowed_sub_types_list.length > 0 &&
+ !form_json.form_definition.hide_add_button) {
+ url_for_parameter_list.push({command: 'change', options: {page: "create_document", jio_key: options.jio_key, portal_type: options.portal_type, allowed_sub_types_list: form_json.form_definition.allowed_sub_types_list}});
+ add_url = true;
+ }
+ return RSVP.all([
+ this_gadget.getUrlForList(url_for_parameter_list),
+ this_gadget.isDesktopMedia(),
+ this_gadget.getSetting('document_title_plural'),
+ this_gadget.getSetting('upload_dict', false)
+ ]);
+ })
+ .push(function (result_list) {
+ var url_list = result_list[0], header_dict;
+ if (options.form_type === 'dialog') {
+ header_dict = {
+ page_title: page_title,
+ //TODO: find correct url
+ cancel_url: url_list[6]
+ };
+ } else {
+ if (options.form_type === 'list') {
+ header_dict = {
+ panel_action: true,
+ //TODO which header links/buttons will be displayed
+ //should be come from the configuration (form_definition)
+ //jump_url: "",
+ //fast_input_url: "",
+ filter_action: true,
+ page_title: result_list[2]
+ };
+ if (!options.front_page) {
+ header_dict.selection_url = url_list[2];
+ header_dict.front_url = url_list[6];
+ }
+ } else {
+ header_dict = {
+ selection_url: url_list[2],
+ previous_url: url_list[3],
+ next_url: url_list[4],
+ page_title: page_title
+ };
+ if (options.form_definition.has_more_views) {
+ header_dict.tab_url = url_list[0];
+ }
+ if (options.editable === true || options.editable === "true") {
+ header_dict.save_action = true;
+ }
+ }
+ if (options.form_definition.has_more_actions || options.form_definition.has_more_views) {
+ header_dict.actions_url = url_list[1];
+ }
+ if (add_url) {
+ header_dict.add_url = url_list[url_list.length - 1];
+ }
+ if (result_list[1]) {
+ header_dict.export_url = (
+ erp5_document._links.action_object_jio_report ||
+ erp5_document._links.action_object_jio_exchange ||
+ erp5_document._links.action_object_jio_print
+ ) ? url_list[5] : '';
+ }
+ }
+ return this_gadget.updateHeader(header_dict);
+ });
+ });
+
+}(document, window, rJS, RSVP, ensureArray));
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..da7b68cf60bfd68be91b1e7993dfefeb80b79470
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_form_view_js.xml
@@ -0,0 +1,359 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
categories
+
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
creators
+
+
+ cedric.le.ninivin
+
+
+
+ -
+
default_reference
+ gadget_officejs_form_view.js
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_form_view_js
+
+ -
+
language
+
+
+
+
+ -
+
modification_date
+
+
+
+
+
+
+
+
+
+
+ 1455284351.49
+ UTC
+
+
+
+
+
+ -
+
portal_type
+ Web Script
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget OfficeJS Form View JS
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554912716.44
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.42504.22348.43298
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1561538602.13
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554830050.17
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_appcachestorage_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_appcachestorage_js.js
index 29d75bfadc88d6182dde692f502c4c24e744de4a..98c53e8f0c145a8919281bb40cafa4ed5e41bc65 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_appcachestorage_js.js
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_jio_appcachestorage_js.js
@@ -87,13 +87,14 @@
};
AppCacheStorage.prototype.repair = function () {
- var storage = this;
+ var storage = this, url = "";
return new RSVP.Queue()
.push(function () {
+ url = new URL(storage._manifest, new URL(storage._version,
+ storage._origin_url));
return jIO.util.ajax({
type: "GET",
- url: new URL(storage._manifest, new URL(storage._version,
- storage._origin_url))
+ url: url
});
})
.push(function (response) {
@@ -123,7 +124,7 @@
})
.push(undefined, function (error) {
if (!error.message) {
- error.message = "Can't get manifest";
+ error.message = "Can't get manifest. URL: " + url;
}
throw error;
});
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..caa46b19bd45827ab4fcccd6b9bb7fa35bfb0d3a
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_html.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+ Local Jio Gadget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4ba251880c31b8a8375eedeec781e7c83c156c54
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_html.xml
@@ -0,0 +1,326 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
default_reference
+ gadget_ojs_local_jio.html
+
+ -
+
description
+ Jio access
+
+ -
+
id
+ gadget_officejs_local_jio_html
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Page
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Local Jio Gadget for OfficeJS
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558984826.8
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 975.65475.7453.44288
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558984516.48
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558984460.76
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..54ef36fd5347c3aff19202842096cba9ce6a093d
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_js.js
@@ -0,0 +1,248 @@
+/*global window, window, rJS, jIO, RSVP, document, URLSearchParams, UriTemplate, console */
+/*jslint indent: 2, maxerr: 3 */
+(function (window, rJS, jIO, RSVP, document, URLSearchParams, UriTemplate, console) {
+ "use strict";
+
+ // jIO call wrapper for redirection to authentication page if needed
+ function wrapJioCall(gadget, method_name, argument_list) {
+ var storage = gadget.state_parameter_dict.jio_storage;
+ if (storage === undefined) {
+ return gadget.redirect({command: 'display', options: {page: 'ojs_configurator'}});
+ }
+ return storage[method_name].apply(storage, argument_list)
+ .push(undefined, function (error) {
+ if ((error.target !== undefined) && (error.target.status === 401)) {
+ var regexp,
+ site,
+ login_page;
+ if (gadget.state_parameter_dict.jio_storage_name === "ERP5") {
+ regexp = /^X-Delegate uri=\"(http[s]?:\/\/[\/\-\[\]{}()*+=:?&.,\\\^$|#\s\w%]+)\"$/;
+ login_page = error.target.getResponseHeader('WWW-Authenticate');
+ if (regexp.test(login_page)) {
+ return gadget.getUrlFor({
+ command: 'login',
+ absolute_url: true
+ })
+ .push(function (came_from) {
+ return gadget.redirect({
+ command: 'raw',
+ options: {
+ url: UriTemplate.parse(regexp.exec(login_page)[1]).expand({came_from: came_from})
+ }
+ });
+ });
+ }
+ }
+ if (gadget.state_parameter_dict.jio_storage_name === "DAV") {
+ regexp = /^Nayookie login_url=(http[s]?:\/\/[\/\-\[\]{}()*+=:?&.,\\\^$|#\s\w%]+)$/;
+ login_page = error.target.getResponseHeader('WWW-Authenticate');
+ if (regexp.test(login_page)) {
+ site = UriTemplate.parse(
+ regexp.exec(login_page)[1]
+ ).expand({
+ back_url: window.location.href,
+ origin: window.location.origin
+ });
+ }
+ }
+ if (site) {
+ return gadget.redirect({ command: "row", url: site});
+ }
+ // User entered wrong password ?
+ // Notify
+ return gadget.notifySubmitted({message: 'Unauthorized storage access', status: 'error'})
+ .push(function () {
+ return gadget.redirect({command: 'display',
+ options: {page: 'ojs_configurator'}});
+ });
+ }
+ throw error;
+ });
+ }
+
+ function processHateoasDict(raw_dict) {
+ var raw_fields, type, parent, field_key, field_id, return_dict = {};
+ return_dict.raw_dict = raw_dict;
+ /*jslint nomen: true*/
+ if (raw_dict.hasOwnProperty("_embedded") && raw_dict._embedded.hasOwnProperty("_view")) {
+ raw_fields = raw_dict._embedded._view;
+ type = raw_dict._links.type.name;
+ parent = raw_dict._links.parent.name;
+ /*jslint nomen: false*/
+ return_dict.parent_relative_url = "portal_types/" + parent;
+ return_dict.portal_type = type;
+ for (field_key in raw_fields) {
+ if (raw_fields.hasOwnProperty(field_key)) {
+ field_id = "";
+ if (raw_fields[field_key]["default"] !== undefined && raw_fields[field_key]["default"] !== "") {
+ if (field_key.startsWith("my_")) {
+ field_id = field_key.replace("my_", "");
+ } else if (field_key.startsWith("your_")) {
+ field_id = field_key.replace("your_", "");
+ } else {
+ field_id = field_key;
+ }
+ return_dict[field_id] = raw_fields[field_key]["default"];
+ }
+ }
+ }
+ } else {
+ // raw_dict is a blob
+ return raw_dict;
+ }
+ return return_dict;
+ }
+
+ rJS(window)
+
+ .ready(function (gadget) {
+ // Initialize the gadget local parameters
+ gadget.state_parameter_dict = {};
+ })
+
+ .declareAcquiredMethod("notifySubmitted", "notifySubmitted")
+ .declareAcquiredMethod("redirect", "redirect")
+ .declareAcquiredMethod("getSetting", "getSetting")
+ .declareAcquiredMethod("setSetting", "setSetting")
+ .declareAcquiredMethod('getUrlFor', 'getUrlFor')
+
+ .declareMethod('createJio', function (jio_options) {
+ var appcache_storage,
+ origin_url = window.location.href,
+ hateoas_script = "hateoas/ERP5Document_getHateoas",
+ // TODO manifest should come from gadget.props.cache_file -add script in html body
+ manifest = "gadget_officejs_discussion_tool.configuration",
+ jio_appchache_options = {
+ type: "replicate",
+ parallel_operation_attachment_amount: 10,
+ parallel_operation_amount: 1,
+ conflict_handling: 2,
+ signature_hash_key: 'hash',
+ check_remote_attachment_modification: true,
+ check_remote_attachment_creation: true,
+ check_remote_attachment_deletion: true,
+ check_remote_deletion: true,
+ check_local_creation: false,
+ check_local_deletion: false,
+ check_local_modification: false,
+ signature_sub_storage: {
+ type: "query",
+ sub_storage: {
+ type: "memory"
+ }
+ },
+ local_sub_storage: {},
+ remote_sub_storage: {
+ type: "saferepair",
+ sub_storage: {
+ type: "appcache",
+ manifest: manifest
+ }
+ }
+ },
+ sync_flag = "appcache-stored",
+ configuration_ids_list = [];
+ if (jio_options === undefined) {
+ return;
+ }
+ jio_appchache_options.local_sub_storage = JSON.parse(JSON.stringify(jio_options));
+ jio_options = {
+ type: 'dateupdater',
+ sub_storage: jio_options,
+ property_list: ['modification_date']
+ };
+ try {
+ this.state_parameter_dict.jio_storage = jIO.createJIO(jio_options);
+ } catch (error) {
+ this.state_parameter_dict.jio_storage = undefined;
+ }
+ return this.getSetting("jio_storage_name")
+ .push(function (jio_storage_name) {
+ if (jio_storage_name === undefined) { return; }
+ appcache_storage = jIO.createJIO(jio_appchache_options);
+ // verify if appcache-local sync needs to be done
+ return appcache_storage.get(sync_flag)
+ .push(undefined, function (error) {
+ if (error && String(error.status_code) !== "404") {
+ throw error;
+ }
+ return appcache_storage.repair()
+ .push(function () {
+ return appcache_storage.allAttachments(origin_url)
+ .push(function (attachment_dict) {
+ var id, promise_list = [], i = 0;
+ for (id in attachment_dict) {
+ if (attachment_dict.hasOwnProperty(id)) {
+ if (id.indexOf(hateoas_script) === -1) {
+ promise_list.push(appcache_storage.getAttachment(origin_url, id));
+ } else {
+ promise_list.push(appcache_storage.getAttachment(origin_url, id, {"format": "json"}));
+ }
+ configuration_ids_list[i] = id;
+ i += 1;
+ }
+ }
+ return RSVP.all(promise_list);
+ })
+ .push(function (content_list) {
+ var i, id, parser, urlParams, content, promise_list = [];
+ for (i = 0; i < content_list.length; i += 1) {
+ id = configuration_ids_list[i];
+ parser = document.createElement('a');
+ parser.href = id;
+ urlParams = new URLSearchParams(parser.search);
+ id = urlParams.get("relative_url");
+ if (id !== null) { // ignore non configuration elements
+ content = processHateoasDict(content_list[i]);
+ promise_list.push(appcache_storage.put(id, content));
+ }
+ }
+ return RSVP.all(promise_list);
+ })
+ .push(function () {
+ return appcache_storage.put(sync_flag, {})
+ .push(undefined);
+ });
+ }, function (error) {
+ console.log("Error while appcache-local storage synchronization");
+ if (error && error.currentTarget && error.currentTarget.status === "401") {
+ console.log("Unauthorized access to storage, sync cancelled");
+ return;
+ }
+ throw error;
+ });
+ });
+ });
+ })
+ .declareMethod('allDocs', function () {
+ return wrapJioCall(this, 'allDocs', arguments);
+ })
+ .declareMethod('allAttachments', function () {
+ return wrapJioCall(this, 'allAttachments', arguments);
+ })
+ .declareMethod('get', function () {
+ return wrapJioCall(this, 'get', arguments);
+ })
+ .declareMethod('put', function () {
+ return wrapJioCall(this, 'put', arguments);
+ })
+ .declareMethod('post', function () {
+ return wrapJioCall(this, 'post', arguments);
+ })
+ .declareMethod('remove', function () {
+ return wrapJioCall(this, 'remove', arguments);
+ })
+ .declareMethod('getAttachment', function () {
+ return wrapJioCall(this, 'getAttachment', arguments);
+ })
+ .declareMethod('putAttachment', function () {
+ return wrapJioCall(this, 'putAttachment', arguments);
+ })
+ .declareMethod('removeAttachment', function () {
+ return wrapJioCall(this, 'removeAttachment', arguments);
+ })
+ .declareMethod('repair', function () {
+ return wrapJioCall(this, 'repair', arguments);
+ });
+
+}(window, rJS, jIO, RSVP, document, URLSearchParams, UriTemplate, console));
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5b612a001241c4fd3fee6d1f0234232c62021505
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_local_jio_js.xml
@@ -0,0 +1,324 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
default_reference
+ gadget_ojs_local_jio.js
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_local_jio_js
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Script
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Local Jio Gadget JS
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558984833.24
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.41487.334.13226
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1561477486.75
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558984551.23
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..7953e9f7c8435ebad56ee5b8d6b778d71f128f56
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_html.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Officejs Page Action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..93239fff4e0d28dcb13aa8aef9b079fb1794fba6
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_html.xml
@@ -0,0 +1,322 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
default_reference
+ gadget_erp5_page_action_officejs.html
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_page_action_officejs_html
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Page
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget Officejs Action
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554147637.54
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 975.36364.25043.48520
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1557237874.86
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554146177.96
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..7362a2161c6335a45cab97ca30b5c44f10aaa64a
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_js.js
@@ -0,0 +1,135 @@
+/*global window, rJS, RSVP, Handlebars */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP, Handlebars) {
+ "use strict";
+
+ /////////////////////////////////////////////////////////////////
+ // Handlebars
+ /////////////////////////////////////////////////////////////////
+ // Precompile the templates while loading the first gadget instance
+ var gadget_klass = rJS(window),
+ table_template = Handlebars.compile(gadget_klass.__template_element
+ .getElementById("table-template")
+ .innerHTML);
+
+ /** Render translated HTML of title + links
+ *
+ * @param {string} title - H3 title of the section with the links
+ * @param {string} icon - alias used in font-awesome iconset
+ * @param {Array} command_list - array of links obtained from ERP5 HATEOAS
+ */
+ function renderLinkList(gadget, title, icon, erp5_link_list) {
+ // prepare links for template (replace @href for RJS link)
+ return gadget.translateHtml(
+ table_template({
+ "definition_i18n": title,
+ "definition_title": title,
+ "definition_icon": icon,
+ "document_list": erp5_link_list.map(function (erp5_link, index) {
+ return {
+ "title": erp5_link.title,
+ "i18n": erp5_link.title,
+ "link": erp5_link_list[index].href
+ };
+ })
+ })
+ );
+ }
+
+ gadget_klass
+ /////////////////////////////////////////////////////////////////
+ // Acquired methods
+ /////////////////////////////////////////////////////////////////
+ .declareAcquiredMethod("jio_get", "jio_get")
+ .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+ .declareAcquiredMethod("translateHtml", "translateHtml")
+ .declareAcquiredMethod("getUrlFor", "getUrlFor")
+ .declareAcquiredMethod("getUrlForList", "getUrlForList")
+ .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+ .declareAcquiredMethod("updateHeader", "updateHeader")
+ .declareAcquiredMethod("getSetting", "getSetting")
+
+ /////////////////////////////////////////////////////////////////
+ // declared methods
+ /////////////////////////////////////////////////////////////////
+
+ .declareMethod("getHTMLElementList", function (element_list) {
+ var gadget = this,
+ i = 0,
+ element_info_list = [],
+ url_for_parameter_list = [],
+ element_info,
+ key;
+ for (key in element_list) {
+ if (element_list.hasOwnProperty(key)) {
+ element_info = element_list[key];
+ url_for_parameter_list.push({ command: 'change', options: element_info });
+ element_info_list[i] = { reference: element_info.reference, title: element_info.title};
+ i += 1;
+ }
+ }
+ return gadget.getUrlForList(url_for_parameter_list)
+ .push(function (url_list) {
+ var html_element_list = [], j, element;
+ for (j = 0; j < url_list.length; j += 1) {
+ element = { href: url_list[j],
+ icon: null,
+ name: element_info_list[j].reference,
+ title: element_info_list[j].title };
+ html_element_list.push(element);
+ }
+ return html_element_list;
+ });
+ })
+
+ .declareMethod("render", function (options) {
+ var gadget = this,
+ portal_type,
+ document_title;
+ return gadget.jio_get(options.jio_key)
+ .push(function (document) {
+ document_title = document.title;
+ return document.portal_type;
+ }, function () {
+ document_title = options.portal_type;
+ return options.portal_type;
+ })
+ .push(function (result) {
+ portal_type = result;
+ return gadget.declareGadget("gadget_officejs_common_utils.html");
+ })
+ .push(function (gadget_utils) {
+ // TODO views are also listed here
+ // should views be handled in another gadget like "..tab_office.js" ?
+ return gadget_utils.getAllViewsAndActions(portal_type, options.jio_key);
+ })
+ .push(function (action_info_dict) {
+ return RSVP.all([
+ gadget.getHTMLElementList(action_info_dict.views),
+ gadget.getHTMLElementList(action_info_dict.actions)
+ ]);
+ })
+ // check other lists like clone or delete? NO. For now, they will be actions
+ .push(function (all_html_elements) {
+ return RSVP.all([
+ renderLinkList(gadget, "Views", "eye", all_html_elements[0]),
+ renderLinkList(gadget, "Actions", "gear", all_html_elements[1])
+ ]);
+ })
+ .push(function (translated_html_link_list) {
+ gadget.element.innerHTML = translated_html_link_list.join("\n");
+ return gadget.getUrlFor({command: 'change', options: {page: undefined}});
+ })
+ .push(function (back_url) {
+ return gadget.updateHeader({
+ page_title: document_title,
+ back_url: back_url
+ });
+ });
+ })
+
+ .declareMethod("triggerSubmit", function () {
+ return;
+ });
+
+}(window, rJS, RSVP, Handlebars));
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ab1d72ca40981839059f83585f997dc28df26c25
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_action_officejs_js.xml
@@ -0,0 +1,318 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
default_reference
+ gadget_erp5_page_action_officejs.js
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_page_action_officejs_js
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Script
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget Officejs Action JS
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554147641.25
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.41484.14260.5085
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1561477231.0
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554146176.89
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..20a8f7a5e178fe08f0d7497dfb5ae4c40e00eda1
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_html.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Officejs Page Action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dcd7030ee8d8bf561351acba68f4071eebe4daa1
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_html.xml
@@ -0,0 +1,322 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
default_reference
+ gadget_erp5_page_create_document.html
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_page_create_document_html
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Page
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget Officejs Create Document
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1559070857.25
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.2496.7104.8857
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1559157569.58
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1559070222.28
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..c0a10b07d2a164d6be063b4e958ec23cbe68ae07
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_js.js
@@ -0,0 +1,105 @@
+/*global window, document, rJS */
+/*jslint nomen: true, indent: 2, maxerr: 13 */
+(function (window, document, rJS) {
+ "use strict";
+
+ rJS(window)
+ /////////////////////////////////////////////////////////////////
+ // Acquired methods
+ /////////////////////////////////////////////////////////////////
+ .declareAcquiredMethod("jio_get", "jio_get")
+ .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
+ .declareAcquiredMethod("translateHtml", "translateHtml")
+ .declareAcquiredMethod("getUrlFor", "getUrlFor")
+ .declareAcquiredMethod("getUrlForList", "getUrlForList")
+ .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+ .declareAcquiredMethod("updateHeader", "updateHeader")
+ .declareAcquiredMethod("getSetting", "getSetting")
+ .declareAcquiredMethod("redirect", "redirect")
+ .declareAcquiredMethod("jio_post", "jio_post")
+
+ /////////////////////////////////////////////////////////////////
+ // declared methods
+ /////////////////////////////////////////////////////////////////
+
+ .declareMethod("createDocument", function (portal_type, parent_portal_type) {
+ var gadget = this,
+ doc = {
+ title: "Untitled Document",
+ portal_type: portal_type,
+ parent_relative_url: parent_portal_type
+ };
+ return gadget.jio_post(doc)
+ .push(function (id) {
+ return gadget.redirect({
+ command: 'display',
+ options: {
+ jio_key: id,
+ editable: true
+ }
+ });
+ });
+ })
+
+ .declareMethod("render", function (options) {
+ var gadget = this,
+ allowed_sub_types_list = options.allowed_sub_types_list.split(","),
+ parent_portal_type = options.portal_type,
+ portal_type,
+ document_title;
+ return gadget.jio_get(options.jio_key)
+ .push(function (document) {
+ document_title = document.title;
+ return document.portal_type;
+ }, function () {
+ document_title = options.portal_type;
+ return options.portal_type;
+ })
+ .push(function (portal_type_result) {
+ portal_type = portal_type_result;
+ // TODO: somehow (a generic action?) get the path string:${object_url}/Base_viewNewContentDialog
+ return gadget.jio_get("portal_skins/erp5_hal_json_style/Base_viewNewContentDialog");
+ })
+ .push(function (form_result) {
+ form_result.form_definition.title = "Create Document";
+ return gadget.changeState({
+ doc: { title: document_title, portal_type: allowed_sub_types_list },
+ parent_portal_type: parent_portal_type,
+ action_options: options,
+ child_gadget_url: 'gadget_erp5_pt_form_dialog.html',
+ form_type: 'dialog',
+ form_definition: form_result.form_definition,
+ view: "view",
+ show_dialog: allowed_sub_types_list.length > 1
+ });
+ });
+ })
+
+ .onStateChange(function () {
+ var fragment = document.createElement('div'),
+ gadget = this;
+ if (gadget.state.show_dialog) {
+ while (this.element.firstChild) {
+ this.element.removeChild(this.element.firstChild);
+ }
+ this.element.appendChild(fragment);
+ return gadget.declareGadget("gadget_officejs_form_view.html", {element: fragment,
+ scope: 'fg'})
+ .push(function (form_view_gadget) {
+ return form_view_gadget.render(gadget.state);
+ });
+ } else {
+ // if there is only one sub portal type, skip create document dialog rendering
+ return gadget.createDocument(gadget.state.doc.portal_type[0],
+ gadget.state.parent_portal_type.replace(/ /g, '_').toLowerCase());
+ }
+ })
+
+ .allowPublicAcquisition('submitContent', function (options) {
+ var gadget = this,
+ content_dict = options[2];
+ return gadget.createDocument(content_dict.portal_type,
+ gadget.state.parent_portal_type.replace(/ /g, '_').toLowerCase());
+ });
+
+}(window, document, rJS));
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fcd20a234569782641b6d420d486e931ec6bd885
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_create_document_js.xml
@@ -0,0 +1,318 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
default_reference
+ gadget_erp5_page_create_document.js
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_page_create_document_js
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Script
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget Officejs Create Document JS
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1559070421.22
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.41482.55363.33194
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1561477140.56
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1559070247.95
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..c5fc7bc26597a4fe2f05359ce5726ebda73e5239
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_html.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+ OfficeJS Handle Action
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2a32511e7c6c2b51c660aaea296363da16e2954f
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_html.xml
@@ -0,0 +1,363 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
categories
+
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
creators
+
+
+ cedric.le.ninivin
+
+
+
+ -
+
default_reference
+ gadget_erp5_page_handle_action.html
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_page_handle_action_html
+
+ -
+
language
+
+
+
+
+ -
+
modification_date
+
+
+
+
+
+
+
+
+
+
+ 1455284351.46
+ UTC
+
+
+
+
+
+ -
+
portal_type
+ Web Page
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ OfficeJS Handle Action
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554734926.95
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 974.63378.56871.18141
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1556111736.92
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554734850.15
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_js.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed4ec0666ed2b4a0f90adb3236955209f51a13ff
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_js.js
@@ -0,0 +1,153 @@
+/*global window, document, rJS, RSVP */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+
+(function (window, document, rJS, RSVP) {
+ "use strict";
+
+ rJS(window)
+ /////////////////////////////////////////////////////////////////
+ // Acquired methods
+ /////////////////////////////////////////////////////////////////
+ .declareAcquiredMethod("getSetting", "getSetting")
+ .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+ .declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
+ .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
+ .declareAcquiredMethod("redirect", "redirect")
+
+ /////////////////////////////////////////////////////////////////
+ // declared methods
+ /////////////////////////////////////////////////////////////////
+
+ .declareMethod("getActionFormDefinition", function (action_reference) {
+ var gadget = this, parent_portal_type;
+ return RSVP.Queue()
+ .push(function () {
+ return RSVP.all([
+ gadget.getUrlParameter("parent_portal_type"),
+ gadget.declareGadget("gadget_officejs_common_utils.html")
+ ]);
+ })
+ .push(function (result) {
+ parent_portal_type = result[0];
+ return result[1].getFormDefinition(parent_portal_type, action_reference);
+ });
+ })
+
+ .declareMethod("render", function (options) {
+ var gadget = this, action_reference, gadget_utils, form_definition;
+ return RSVP.Queue()
+ .push(function () {
+ return RSVP.all([
+ gadget.getUrlParameter('portal_type'),
+ gadget.getUrlParameter('parent_relative_url'),
+ gadget.getUrlParameter("action"),
+ gadget.declareGadget("gadget_officejs_common_utils.html")
+ ]);
+ })
+ .push(function (result) {
+ if (result[0] !== undefined) { options.portal_type = result[0]; }
+ if (result[1] !== undefined) { options.parent_relative_url = result[1]; }
+ action_reference = result[2];
+ gadget_utils = result[3];
+ return gadget.getActionFormDefinition(action_reference);
+ })
+ .push(function (result) {
+ form_definition = result;
+ return gadget_utils.getFormInfo(form_definition);
+ })
+ .push(function (form_info) {
+ var fragment = document.createElement('div'),
+ action_gadget_url,
+ form_type = form_info[0],
+ child_gadget_url = form_info[1],
+ valid_action = form_definition.action_type === "object_jio_js_script" &&
+ form_definition.fields_raw_properties.hasOwnProperty("gadget_field_action_js_script"),
+ state_options = {
+ doc: {},
+ action_options: options,
+ child_gadget_url: child_gadget_url,
+ form_type: form_type,
+ form_definition: form_definition,
+ view: action_reference,
+ valid_action: valid_action
+ };
+ if (valid_action) {
+ action_gadget_url = form_definition.fields_raw_properties.gadget_field_action_js_script.values.gadget_url;
+ gadget.element.appendChild(fragment);
+ return gadget.declareGadget(action_gadget_url, {
+ scope: "action_field",
+ element: fragment
+ })
+ .push(function (action_gadget) {
+ return action_gadget.preRenderDocument(options);
+ })
+ .push(function (doc) {
+ state_options.doc = doc;
+ return gadget.changeState(state_options);
+ });
+ } else {
+ return gadget.changeState(state_options);
+ }
+ });
+ })
+
+ .onStateChange(function () {
+ var fragment = document.createElement('div'),
+ gadget = this;
+ while (this.element.firstChild) {
+ this.element.removeChild(this.element.firstChild);
+ }
+ this.element.appendChild(fragment);
+ return gadget.declareGadget("gadget_officejs_form_view.html", {element: fragment,
+ scope: 'fg'})
+ .push(function (form_view_gadget) {
+ return form_view_gadget.render(gadget.state);
+ });
+ })
+
+ .declareMethod('triggerSubmit', function () {
+ return this.getDeclaredGadget('fg')
+ .push(function (gadget) {
+ return gadget.triggerSubmit();
+ });
+ })
+
+ .allowPublicAcquisition('submitContent', function (options) {
+ var gadget = this,
+ //target_url = options[1],
+ content_dict = options[2],
+ fragment = document.createElement('div'),
+ action_gadget_url,
+ jio_key;
+ if (gadget.state.valid_action) {
+ action_gadget_url = gadget.state.form_definition.fields_raw_properties.gadget_field_action_js_script.values.gadget_url;
+ gadget.element.appendChild(fragment);
+ return gadget.declareGadget(action_gadget_url, {
+ scope: "action_field",
+ element: fragment
+ })
+ .push(function (action_gadget) {
+ return action_gadget.handleSubmit(content_dict, gadget.state);
+ })
+ .push(function (id) {
+ jio_key = id;
+ return gadget.notifySubmitting();
+ })
+ .push(function () {
+ return gadget.notifySubmitted({message: 'Data Updated', status: 'success'});
+ })
+ .push(function () {
+ return gadget.redirect({
+ command: 'display',
+ options: {
+ jio_key: jio_key,
+ editable: gadget.state.view === "edit"
+ }
+ });
+ });
+ } else {
+ return gadget.notifySubmitted({message: 'Could not perform this action: configuration error', status: 'fail'});
+ }
+ });
+
+}(window, document, rJS, RSVP));
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b605ac2a349196feb5069778680003fffaae61db
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_handle_action_js.xml
@@ -0,0 +1,359 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
categories
+
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
creators
+
+
+ cedric.le.ninivin
+
+
+
+ -
+
default_reference
+ gadget_erp5_page_handle_action.js
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_page_handle_action_js
+
+ -
+
language
+
+
+
+
+ -
+
modification_date
+
+
+
+
+
+
+
+
+
+
+ 1455284351.49
+ UTC
+
+
+
+
+
+ -
+
portal_type
+ Web Script
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ OfficeJS Handle Action JS
+
+ -
+
url_string
+
+
+
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1557423724.15
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.25281.11252.14848
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1560514683.49
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1554735299.05
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_local_controller_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_local_controller_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..6f75fabdb646d442bbbff539898904d82da12ada
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_local_controller_html.html
@@ -0,0 +1,18 @@
+
+
+
+
+ ERP5 Local Controller
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_local_controller_html.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_local_controller_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..038aae1def4d6c0f1055e865af58b3542dd20648
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_local_controller_html.xml
@@ -0,0 +1,322 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_Change_local_roles_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Manager
+
+
+
+ -
+
content_md5
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
default_reference
+ gadget_erp5_page_ojs_local_controller.html
+
+ -
+
description
+
+
+
+
+ -
+
id
+ gadget_officejs_page_local_controller_html
+
+ -
+
language
+ en
+
+ -
+
portal_type
+ Web Page
+
+ -
+
short_title
+
+
+
+
+ -
+
title
+ Gadget Local Controller
+
+ -
+
version
+ 001
+
+ -
+
workflow_history
+
+ AAAAAAAAAAI=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
document_publication_workflow
+
+ AAAAAAAAAAM=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAQ=
+
+
+ -
+
processing_status_workflow
+
+ AAAAAAAAAAU=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish_alive
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558970648.04
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published_alive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 975.65241.35464.1518
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558970503.56
+ UTC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ detect_converted_file
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
external_processing_state
+ converted
+
+ -
+
serial
+ 0.0.0.0
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1558970180.48
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_json.json b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_json.json
index fc03d6182e96bd57575468a9eb480e8e90b34ced..aaa46d5e5376590101d267274fb9d8d96b08671a 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_json.json
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_json.json
@@ -4,7 +4,7 @@
"description": "Simple Text Web Editor",
"icons": [{
"src": "officejs_logo_text_editor.png",
- "sizes": "any",
+ "sizes": "128x128",
"type": "image/png"
}],
"start_url": "../../",
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_router_html.html b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_router_html.html
index 6ebbfd8d964caa395e15075f041dcfd30681cc17..c8e295fb9eab9bb2070b091a57ce0f7054e4e8dd 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_router_html.html
+++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_router_html.html
@@ -17,6 +17,7 @@
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_discussion_tool.xml b/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_discussion_tool.xml
new file mode 100644
index 0000000000000000000000000000000000000000..487525ea01d24cee9dd6630642c49fee2e2676b5
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_discussion_tool.xml
@@ -0,0 +1,765 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Authenticated
+ Author
+ Manager
+ Member
+ Owner
+ Reviewer
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Add_portal_folders_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Copy_or_Move_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Delete_objects_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Authenticated
+ Author
+ Manager
+ Member
+ Owner
+ Reviewer
+
+
+
+ -
+
__before_publishing_traverse__
+
+
+
+
+
+
+
+
+ -
+
_defined_in_class
+ 1
+
+ -
+
_hookname
+ __before_publishing_traverse__
+
+ -
+
_list
+
+
+ AAAAAAAAAAI=
+
+
+
+ -
+
_prior
+
+
+
+
+
+
+
+
+
+ -
+
__before_traverse__
+
+
+ -
+
+
+ 99
+ ERP5 Web Site/officejs_discussion_tool
+
+
+
+ AAAAAAAAAAI=
+
+
+
+
+
+ -
+
_count
+
+ AAAAAAAAAAM=
+
+
+ -
+
_identity_criterion
+
+ AAAAAAAAAAQ=
+
+
+ -
+
_local_properties
+
+
+
+ -
+
id
+ frontpage_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_frontpage_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_application_title
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_hateoas_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_view_action_category
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_default_view_action_reference
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_panel_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_router_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_jio_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_translation_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_manifest_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_header_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_content_security_policy
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_x_frame_options
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_latest_document_version
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_latest_version
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_cache_file
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_redirect_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_landing_page
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_sub_gadget_installer
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_webapp_manifest_url
+
+ -
+
type
+ string
+
+
+
+
+
+ -
+
_mt_index
+
+ AAAAAAAAAAU=
+
+
+ -
+
_range_criterion
+
+ AAAAAAAAAAY=
+
+
+ -
+
_tree
+
+ AAAAAAAAAAc=
+
+
+ -
+
available_language
+
+
+ en
+
+
+
+ -
+
categories
+
+
+ caching_policy/must-revalidate
+ aggregate/web_page_module/gadget_officejs_bootloader.html
+
+
+
+ -
+
configuration_application_title
+ Text Editor
+
+ -
+
configuration_cache_file
+ gadget_officejs_discussion_tool.appcache
+
+ -
+
configuration_content_security_policy
+ default-src \'self\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' https://content.dropboxapi.com https://api.dropboxapi.com mail.tiolive.com data: *.host.vifib.net *.node.vifib.com *.erp5.net https://netdna.bootstrapcdn.com; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; font-src \'self\' netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:
+
+ -
+
configuration_default_view_action_reference
+
+
+
+
+ -
+
configuration_frontpage_gadget_url
+
+
+
+
+ -
+
configuration_hateoas_url
+ hateoas/
+
+ -
+
configuration_header_gadget_url
+ gadget_officejs_header.html
+
+ -
+
configuration_jio_gadget_url
+ gadget_officejs_jio.html
+
+ -
+
configuration_landing_page
+
+
+
+
+ -
+
configuration_latest_document_version
+ 001
+
+ -
+
configuration_latest_version
+ app
+
+ -
+
configuration_manifest_url
+ gadget_officejs.appcache
+
+ -
+
configuration_panel_gadget_url
+ gadget_officejs_application_panel.html
+
+ -
+
configuration_redirect_url
+ app
+
+ -
+
configuration_router_gadget_url
+ gadget_officejs_text_editor_router.html
+
+ -
+
configuration_sub_gadget_installer
+
+
+
+
+ -
+
configuration_translation_gadget_url
+ gadget_translation.html
+
+ -
+
configuration_view_action_category
+
+
+
+
+ -
+
configuration_webapp_manifest_url
+ gadget_officejs_discussion_tool.json
+
+ -
+
configuration_x_frame_options
+ SAMEORIGIN
+
+ -
+
container_layout
+ WebSection_renderOfficeJSApplicationPage
+
+ -
+
content_layout
+ WebSection_renderOfficeJSApplicationPage
+
+ -
+
custom_render_method_id
+ WebSection_renderOfficeJSApplicationPage
+
+ -
+
description
+
+
+
+
+ -
+
frontpage_gadget_url
+ gadget_woelfel_pt_frontpage.html
+
+ -
+
id
+ officejs_discussion_tool
+
+ -
+
layout_configuration_form_id
+ WebSection_viewOfficeJSApplicationPreference
+
+ -
+
portal_type
+ Web Site
+
+ -
+
short_title
+
+
+
+
+ -
+
skin_selection_name
+ RJS
+
+ -
+
static_language_selection
+ 0
+
+ -
+
title
+ Office JS Discussion Tool
+
+ -
+
visible
+ 1
+
+ -
+
workflow_history
+
+ AAAAAAAAAAg=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+ -
+
data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
category_publication_workflow
+
+ AAAAAAAAAAk=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAo=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1547819548.36
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 973.45016.36327.54340
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1550239966.98
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_discussion_tool/app.xml b/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_discussion_tool/app.xml
new file mode 100644
index 0000000000000000000000000000000000000000..024db0f21da7df37983fde1c5de3e9b069475efa
--- /dev/null
+++ b/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_discussion_tool/app.xml
@@ -0,0 +1,820 @@
+
+
+
+
+
+
+
+
+ -
+
_Access_contents_information_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Authenticated
+ Author
+ Manager
+ Member
+ Owner
+ Reviewer
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Add_portal_folders_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Copy_or_Move_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Delete_objects_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+
+
+
+ -
+
_View_Permission
+
+
+ Anonymous
+ Assignee
+ Assignor
+ Associate
+ Auditor
+ Authenticated
+ Author
+ Manager
+ Member
+ Owner
+ Reviewer
+
+
+
+ -
+
__before_publishing_traverse__
+
+
+
+
+
+
+
+
+ -
+
_defined_in_class
+ 1
+
+ -
+
_hookname
+ __before_publishing_traverse__
+
+ -
+
_list
+
+
+ AAAAAAAAAAI=
+
+
+
+ -
+
_prior
+
+
+
+
+
+
+
+
+
+ -
+
__before_traverse__
+
+
+ -
+
+
+ 99
+ ERP5 Web Section/app
+
+
+
+ AAAAAAAAAAI=
+
+
+
+
+
+ -
+
__translation_dict
+
+
+
+
+ -
+
_count
+
+ AAAAAAAAAAM=
+
+
+ -
+
_identity_criterion
+
+ AAAAAAAAAAQ=
+
+
+ -
+
_local_properties
+
+
+
+ -
+
id
+ configuration_router_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_application_title
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_jio_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_content_security_policy
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_panel_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_translation_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_header_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_hateoas_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_manifest_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_x_frame_options
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_default_jio_document_page_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_default_view_action_reference
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_frontpage_gadget_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_view_action_category
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_stylesheet_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_webapp_manifest_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ app_action_prefix
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ jump_button
+
+ -
+
type
+ int
+
+
+
+ -
+
id
+ configuration_app_action_prefix
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_header_jump_button
+
+ -
+
type
+ int
+
+
+
+ -
+
id
+ configuration_app_actions
+
+ -
+
type
+ lines
+
+
+
+ -
+
id
+ configuration_app_allowed_sub_types
+
+ -
+
type
+ lines
+
+
+
+ -
+
id
+ configuration_hide_header_add_button
+
+ -
+
type
+ int
+
+
+
+
+
+ -
+
_mt_index
+
+ AAAAAAAAAAU=
+
+
+ -
+
_range_criterion
+
+ AAAAAAAAAAY=
+
+
+ -
+
_tree
+
+ AAAAAAAAAAc=
+
+
+ -
+
app_action_prefix
+ some_app_prefix
+
+ -
+
categories
+
+
+ caching_policy/must-revalidate
+ aggregate/web_page_module/rjs_gadget_erp5_launcher_html
+
+
+
+ -
+
configuration_app_action_prefix
+ some_action_prefix
+
+ -
+
configuration_app_actions
+
+
+ Post Module | new_html_post
+ HTML Post | reply
+
+
+
+ -
+
configuration_app_allowed_sub_types
+
+
+ Post Module | HTML Post
+
+
+
+ -
+
configuration_application_title
+ Discussion Tool
+
+ -
+
configuration_content_security_policy
+ default-src \'self\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' https://content.dropboxapi.com https://api.dropboxapi.com mail.tiolive.com data: *.host.vifib.net *.node.vifib.com *.erp5.net https://netdna.bootstrapcdn.com; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; font-src \'self\' netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:
+
+ -
+
configuration_default_jio_document_page_gadget_url
+ ojs_local_controller
+
+ -
+
configuration_default_view_action_reference
+ jio_view
+
+ -
+
configuration_frontpage_gadget_url
+ ojs_local_controller
+
+ -
+
configuration_hateoas_url
+ ../hateoas/
+
+ -
+
configuration_header_gadget_url
+ gadget_erp5_header.html
+
+ -
+
configuration_header_jump_button
+ 0
+
+ -
+
configuration_hide_header_add_button
+ 1
+
+ -
+
configuration_jio_gadget_url
+ gadget_ojs_local_jio.html
+
+ -
+
configuration_manifest_url
+ gadget_officejs_discussion_tool.appcache
+
+ -
+
configuration_panel_gadget_url
+ gadget_erp5_ojs_panel.html
+
+ -
+
configuration_router_gadget_url
+ gadget_officejs_discussion_tool_router.html
+
+ -
+
configuration_stylesheet_url
+
+
+
+
+ -
+
configuration_translation_gadget_url
+
+
+
+
+ -
+
configuration_view_action_category
+
+
+
+
+ -
+
configuration_webapp_manifest_url
+ gadget_officejs_discussion_tool.json
+
+ -
+
configuration_x_frame_options
+ SAMEORIGIN
+
+ -
+
container_layout
+ WebSection_renderDefaultPageAsGadget
+
+ -
+
content_layout
+ WebSection_renderDefaultPageAsGadget
+
+ -
+
custom_render_method_id
+ WebSection_renderDefaultPageAsGadget
+
+ -
+
description
+
+
+
+
+ -
+
empty_criterion_valid
+ 1
+
+ -
+
id
+ app
+
+ -
+
int_index
+
+
+
+
+ -
+
jump_button
+ 1
+
+ -
+
layout_configuration_form_id
+ WebSection_viewRenderJSPreference
+
+ -
+
membership_criterion_category
+
+
+
+
+ -
+
portal_type
+ Web Section
+
+ -
+
short_title
+
+
+
+
+ -
+
skin_selection_name
+ RJS
+
+ -
+
string_index
+
+
+
+
+ -
+
test_method_id
+
+
+
+
+ -
+
title
+ Discussion Tool App
+
+ -
+
visible
+ 0
+
+ -
+
workflow_history
+
+ AAAAAAAAAAg=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+ -
+
data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
category_publication_workflow
+
+ AAAAAAAAAAk=
+
+
+ -
+
edit_workflow
+
+ AAAAAAAAAAo=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ publish
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+ -
+
error_message
+
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1548341309.83
+ UTC
+
+
+
+
+
+ -
+
validation_state
+ published
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ edit
+
+ -
+
actor
+ zope
+
+ -
+
comment
+
+
+
+
+ -
+
error_message
+
+
+ -
+
serial
+ 976.34272.58294.24337
+
+ -
+
state
+ current
+
+ -
+
time
+
+
+
+
+
+
+
+
+
+
+ 1561044558.86
+ UTC
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor.xml b/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor.xml
index 12d30cedcfdf54b2656956c55ade93588308ca95..65492f60a6c96b118fbb73e19999e081ee850bc2 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor.xml
@@ -413,7 +413,7 @@
-
configuration_cache_file
- gadget_officejs_text_editor.appcache
+ gadget_officejs_discussion_tool.appcache
-
configuration_content_security_policy
@@ -732,7 +732,7 @@
-
serial
- 973.35104.39622.59955
+ 975.50798.33418.15411
-
state
@@ -750,7 +750,7 @@
- 1549643621.84
+ 1558530049.62
UTC
diff --git a/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor/app.xml b/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor/app.xml
index a0d79fd7e1edcb402e0aead6e0fa7d24a3a8438e..46eb9880fdfd78d848b9793eef1e5f6c64059f0d 100644
--- a/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor/app.xml
+++ b/bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor/app.xml
@@ -325,6 +325,66 @@
string
+
+ -
+
id
+ configuration_wallpaper_url
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_app_action_prefix
+
+ -
+
type
+ string
+
+
+
+ -
+
id
+ configuration_header_jump_button
+
+ -
+
type
+ int
+
+
+
+ -
+
id
+ configuration_app_actions
+
+ -
+
type
+ lines
+
+
+
+ -
+
id
+ configuration_app_allowed_sub_types
+
+ -
+
type
+ lines
+
+
+
+ -
+
id
+ configuration_app_view_action_reference
+
+ -
+
type
+ string
+
+
@@ -355,6 +415,31 @@
+ -
+
configuration_app_action_prefix
+ some_action_prefix
+
+ -
+
configuration_app_actions
+
+
+ Web Page | text_editor_view
+ Web Page | jio_view
+
+
+
+ -
+
configuration_app_allowed_sub_types
+
+
+ Web Page Module | Web Page
+
+
+
+ -
+
configuration_app_view_action_reference
+ text_editor_view
+
-
configuration_application_title
Text Editor
@@ -365,7 +450,7 @@
-
configuration_default_jio_document_page_gadget_url
- ojs_controller
+ ojs_local_controller
-
configuration_default_view_action_reference
@@ -373,7 +458,7 @@
-
configuration_frontpage_gadget_url
- ojs_document_list
+ ojs_local_controller
-
configuration_hateoas_url
@@ -383,9 +468,13 @@
configuration_header_gadget_url
gadget_erp5_header.html
+ -
+
configuration_header_jump_button
+ 0
+
-
configuration_jio_gadget_url
- gadget_ojs_jio.html
+ gadget_ojs_local_jio.html
-
configuration_manifest_url
@@ -417,6 +506,10 @@
+ -
+
configuration_wallpaper_url
+ officejs_logo_text_editor.png
+
-
configuration_webapp_manifest_url
gadget_officejs_text_editor.json
@@ -680,7 +773,7 @@
-
serial
- 973.20242.23513.55227
+ 976.31037.397.45636
-
state
@@ -698,7 +791,7 @@
- 1548752015.22
+ 1560857896.33
UTC
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1eaea8025fbcd680477c422642d36c2161864e91
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+
+
+ -
+
description
+
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+
+
+ -
+
center
+
+
+
+
+ -
+
hidden
+
+
+ gadget_field_action_js_script
+
+
+
+ -
+
left
+
+
+ my_text_content
+
+
+
+ -
+
right
+
+
+
+
+
+
+
+ -
+
id
+ HTMLPost_viewReplyDialog
+
+ -
+
method
+ POST
+
+ -
+
name
+ HTMLPost_viewReplyDialog
+
+ -
+
pt
+ form_dialog
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+ Reply
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog/gadget_field_action_js_script.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog/gadget_field_action_js_script.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f8f241cea7ef5f5d32a7b1c49083590b5149d7f2
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog/gadget_field_action_js_script.xml
@@ -0,0 +1,251 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ gadget_field_action_js_script
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
no_validator
+ Does not support this operation.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
data_url
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
gadget_url
+
+
+ -
+
hidden
+
+
+ -
+
js_sandbox
+
+
+ -
+
renderjs_extra
+
+
+ -
+
title
+
+
+ -
+
validator_field_id
+
+
+ -
+
validator_form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
data_url
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
gadget_url
+
+
+ -
+
hidden
+
+
+ -
+
js_sandbox
+
+
+ -
+
renderjs_extra
+
+
+ -
+
title
+
+
+ -
+
validator_field_id
+
+
+ -
+
validator_form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
data_url
+ 0
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
gadget_url
+ gadget_field_reply_action_js_script.html
+
+ -
+
hidden
+ 0
+
+ -
+
js_sandbox
+
+
+ -
+
renderjs_extra
+
+
+
+ var child_gadget_url = \'gadget_erp5_pt_form_view_editable.html\'; return gadget.jio_get(options.jio_key).push(function (result) { parent_document = result; var title = parent_document.title; if (!title.startsWith(\'Re: \')) { title = \'Re: \' + parent_document.title; } return gadget.changeState({ doc: {title: title}, submit_code: submit_code, parent_document: parent_document, child_gadget_url: child_gadget_url, form_definition: form_definition, view: action_reference, editable: true, has_more_views: false, has_more_actions: false, is_form_list: false }); });
+ var document = { my_title: gadget.state.doc.title, portal_type: gadget.state.parent_document.portal_type, parent_relative_url: gadget.state.parent_document.parent_relative_url, my_source_reference: gadget.state.parent_document.source_reference }, property; for (property in content_dict) { if (content_dict.hasOwnProperty(property)) { document[\'my_\' + property] = content_dict[property]; } } return gadget_utils.createDocument(document).push(function(id) { jio_key = id; return gadget.notifySubmitting(); }).push(function() { return gadget.notifySubmitted({ message: \'Data Updated\', status: \'success\' }); }).push(function() { return gadget.redirect({ command: \'display\', options: { jio_key: jio_key, editable: true } }); });
+
+
+
+
+ -
+
title
+ gadget_field_action_js_script
+
+ -
+
validator_field_id
+
+
+ -
+
validator_form_id
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog/my_text_content.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog/my_text_content.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4ee6372d5fdf6c6f600033a6cfbb5ec62ced463e
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog/my_text_content.xml
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_text_content
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
line_too_long
+ A line was too long.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ You entered too many characters.
+
+ -
+
too_many_lines
+ You entered too many lines.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+ 5
+
+ -
+
hidden
+ 0
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ My Text Content
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+ -
+
width
+ 40
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/PostModule_viewHTMLPostListAsJio.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/PostModule_viewHTMLPostListAsJio.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9947ae7e768574a7e66c7d9c6dbcf792ff18cdbb
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/PostModule_viewHTMLPostListAsJio.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+ Base_doSelect
+
+ -
+
description
+
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+ my_listbox
+
+
+
+ -
+
center
+
+
+
+
+ -
+
hidden
+
+
+
+
+ -
+
left
+
+
+
+
+ -
+
right
+
+
+
+
+
+
+
+ -
+
id
+ PostModule_viewHTMLPostListAsJio
+
+ -
+
method
+ POST
+
+ -
+
name
+ PostModule_viewHTMLPostList
+
+ -
+
pt
+ form_list
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+ Posts
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/PostModule_viewHTMLPostListAsJio/my_listbox.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/PostModule_viewHTMLPostListAsJio/my_listbox.xml
new file mode 100644
index 0000000000000000000000000000000000000000..950b1956b2bcda5530bdc420a9428734b7b0d0dc
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/PostModule_viewHTMLPostListAsJio/my_listbox.xml
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ all_columns
+ columns
+ lines
+ search_columns
+ selection_name
+ sort
+ sort_columns
+ title
+
+
+
+ -
+
id
+ my_listbox
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
all_columns
+
+
+
+
+ -
+
columns
+
+
+
+ title
+ Title
+
+
+ modification_date
+ Modification Date
+
+
+
+
+ -
+
field_id
+ my_list_mode_listbox
+
+ -
+
form_id
+ Base_viewFieldLibrary
+
+ -
+
lines
+ 20
+
+ -
+
portal_type
+
+
+
+ HTML Post
+ HTML Post
+
+
+
+
+ -
+
search_columns
+
+
+
+ title
+ Title
+
+
+ modification_date
+ Modification Date
+
+
+
+
+ -
+
selection_name
+ post_module_selection
+
+ -
+
sort
+
+
+
+ modification_date
+ descending
+
+
+
+
+ -
+
sort_columns
+
+
+
+ title
+ Title
+
+
+ modification_date
+ Modification Date
+
+
+
+
+ -
+
title
+ Posts
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0a728b5f73d120b80d30d62e6987d97e9dcca7b3
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+
+
+ -
+
description
+
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+ listbox
+
+
+
+ -
+
center
+
+
+
+
+ -
+
hidden
+
+
+ listbox_effective_date
+ listbox_modification_date
+ listbox_subject
+
+
+
+ -
+
left
+
+
+
+
+ -
+
right
+
+
+
+
+
+
+
+ -
+
id
+ WebPageModule_viewWebPageListAsJio
+
+ -
+
method
+ POST
+
+ -
+
name
+ WebPageModule_viewWebPageListAsJio
+
+ -
+
pt
+ form_view
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+ Documents
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox.xml
new file mode 100644
index 0000000000000000000000000000000000000000..82a98d4fd6fa1a225c8303a3837ed045453e48d4
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox.xml
@@ -0,0 +1,339 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ all_columns
+ columns
+ domain_root_list
+ domain_tree
+ editable_columns
+ lines
+ portal_types
+ search_columns
+ selection_name
+ sort
+ sort_columns
+ title
+
+
+
+ -
+
id
+ listbox
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+ -
+
target
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+ -
+
target
+
+
+
+
+
+ -
+
values
+
+
+ -
+
all_columns
+
+
+
+ id
+ ID
+
+
+ reference
+ Reference
+
+
+ short_title
+ Short Title
+
+
+ title
+ Long Title
+
+
+ description
+ Description
+
+
+ version
+ Version
+
+
+ language
+ Language
+
+
+ int_index
+ Index
+
+
+ translated_validation_state_title
+ State
+
+
+ follow_up_title
+ Follow-up
+
+
+ publication_section_translated_title
+ Publication Section
+
+
+ group_translated_title
+ Group
+
+
+ site_translated_title
+ Site
+
+
+ function_translated_title
+ Function
+
+
+ subject
+ Keywords
+
+
+ contributor_title
+ Contributors
+
+
+ effective_date
+ Publication Date
+
+
+ description
+ Description
+
+
+ translated_portal_type
+ Type
+
+
+ owner_title
+ Owner
+
+
+ creation_date
+ Creation Date
+
+
+ modification_date
+ Modification Date
+
+
+
+
+ -
+
columns
+
+
+
+ title
+ Title
+
+
+ reference
+ Reference
+
+
+ language
+ Language
+
+
+ description
+ Description
+
+
+ version
+ Version
+
+
+ modification_date
+ Modification Date
+
+
+
+
+ -
+
domain_root_list
+
+
+
+ publication_section
+ Publication Section
+
+
+
+
+ -
+
domain_tree
+ 1
+
+ -
+
editable_columns
+
+
+
+ creation_date
+ Creation Date
+
+
+ modification_date
+ Modification Date
+
+
+
+
+ -
+
field_id
+ my_list_mode_listbox
+
+ -
+
form_id
+ Base_viewWebFieldLibrary
+
+ -
+
lines
+ 20
+
+ -
+
portal_types
+
+
+
+ Web Page
+ Web Page
+
+
+
+
+ -
+
search_columns
+
+
+
+ title
+ Title
+
+
+ modification_date
+ Modification Date
+
+
+
+
+ -
+
selection_name
+ web_page_module_view_web_page_list_selection
+
+ -
+
sort
+
+
+
+ modification_date
+ descending
+
+
+
+
+ -
+
sort_columns
+
+
+
+ title
+ Title
+
+
+ reference
+ Reference
+
+
+ language
+ Language
+
+
+ description
+ Description
+
+
+ version
+ Version
+
+
+ modification_date
+ Modification Date
+
+
+
+
+ -
+
target
+ Click to edit the target
+
+ -
+
title
+ Web Pages
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox_effective_date.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox_effective_date.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fff69cc567a3cf87e3c65813acd1cd79b65dfa4f
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox_effective_date.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ title
+ editable
+
+
+
+ -
+
id
+ listbox_effective_date
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+ -
+
target
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+ -
+
target
+
+
+
+
+
+ -
+
values
+
+
+ -
+
editable
+ 0
+
+ -
+
field_id
+ my_date
+
+ -
+
form_id
+ Base_viewWebFieldLibrary
+
+ -
+
target
+ Click to edit the target
+
+ -
+
title
+ Modification Date
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox_modification_date.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox_modification_date.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a9cc95700598a7dfc0d00321f91d995cb9f5fd5f
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox_modification_date.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ title
+ editable
+
+
+
+ -
+
id
+ listbox_modification_date
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+ -
+
target
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+ -
+
target
+
+
+
+
+
+ -
+
values
+
+
+ -
+
editable
+ 0
+
+ -
+
field_id
+ my_date
+
+ -
+
form_id
+ Base_viewWebFieldLibrary
+
+ -
+
target
+ Click to edit the target
+
+ -
+
title
+ Modification Date
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox_subject.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox_subject.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fd0ecff9da5a21894af306d8a140a0b58e953015
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPageModule_viewWebPageListAsJio/listbox_subject.xml
@@ -0,0 +1,314 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ listbox_subject
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
line_too_long
+ A line was too long.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ You entered too many characters.
+
+ -
+
too_many_lines
+ You entered too many lines.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
view_separator
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+ AAAAAAAAAAI=
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
view_separator
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+
+
+ -
+
description
+
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+ 5
+
+ -
+
hidden
+ 0
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Keywords
+
+ -
+
unicode
+ 0
+
+ -
+
view_separator
+ \n
+
+
+]]>
+
+ -
+
whitespace_preserve
+ 0
+
+ -
+
width
+ 40
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
_text
+ cell/getSubjectList
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument.xml
new file mode 100644
index 0000000000000000000000000000000000000000..292af6afe80051b04cc9334679a709843047818c
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+ Base_edit
+
+ -
+
description
+
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+ my_text_content
+
+
+
+ -
+
center
+
+
+ my_description
+
+
+
+ -
+
hidden
+
+
+
+
+ -
+
left
+
+
+ my_title
+ my_reference
+ your_modification_date
+
+
+
+ -
+
right
+
+
+ my_version
+ my_language
+
+
+
+
+
+
+ -
+
id
+ WebPage_viewAsTextDocument
+
+ -
+
method
+ POST
+
+ -
+
name
+ WebTable_viewAsJio
+
+ -
+
pt
+ form_view
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_description.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_description.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fbf482999559dd3d1448d8075dfe4121be1d9241
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_description.xml
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_description
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
line_too_long
+ A line was too long.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ You entered too many characters.
+
+ -
+
too_many_lines
+ You entered too many lines.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+ 5
+
+ -
+
hidden
+ 0
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Description
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+ -
+
width
+ 40
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_language.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_language.xml
new file mode 100644
index 0000000000000000000000000000000000000000..768912b01bb5f79a6857767f0e8e52d1711fb449
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_language.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_language
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Language
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_reference.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_reference.xml
new file mode 100644
index 0000000000000000000000000000000000000000..758ff8086c55af193202a6179dd39f7596c995e7
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_reference.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_reference
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Reference
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_text_content.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_text_content.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9c6ee03b12cbb3ceba900f69d5dd19b6dc11b065
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_text_content.xml
@@ -0,0 +1,251 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_text_content
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
no_validator
+ Does not support this operation.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
data_url
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
gadget_url
+
+
+ -
+
hidden
+
+
+ -
+
js_sandbox
+
+
+ -
+
renderjs_extra
+
+
+ -
+
title
+
+
+ -
+
validator_field_id
+
+
+ -
+
validator_form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
data_url
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
gadget_url
+
+
+ -
+
hidden
+
+
+ -
+
js_sandbox
+
+
+ -
+
renderjs_extra
+
+
+ -
+
title
+
+
+ -
+
validator_field_id
+
+
+ -
+
validator_form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
data_url
+ 0
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
gadget_url
+ gadget_editor.html
+
+ -
+
hidden
+ 0
+
+ -
+
js_sandbox
+
+
+ -
+
renderjs_extra
+
+
+
+ {"editor": "fck_editor", "maximize": true}
+ {"editor": "fck_editor", "maximize": true}
+
+
+
+
+ -
+
title
+ My Text Content
+
+ -
+
validator_field_id
+
+
+ -
+
validator_form_id
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_title.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_title.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4cc7d2e889b694839cd669fac164e3a5b87a9ff5
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_title.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_title
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Title
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_version.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_version.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a2c90fb795a177c74ffe7676fdfcb48da074682f
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/my_version.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_version
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Version
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/your_modification_date.xml b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/your_modification_date.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fa11263ee166d6268b211b091de6dd199a0a54ef
--- /dev/null
+++ b/bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_web_officejs_ui/WebPage_viewAsTextDocument/your_modification_date.xml
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ your_modification_date
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+ AAAAAAAAAAI=
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 0
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 1
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Modification Date
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
_text
+ python: here.getModificationDate().rfc822()
+
+
+
+
+
diff --git a/bt5/erp5_officejs/bt/template_action_path_list b/bt5/erp5_officejs/bt/template_action_path_list
new file mode 100644
index 0000000000000000000000000000000000000000..1d63677327a06b178d8e2f8aa6bb33998449f1d8
--- /dev/null
+++ b/bt5/erp5_officejs/bt/template_action_path_list
@@ -0,0 +1,2 @@
+Web Page Module | jio_view
+Web Page | text_editor_view
\ No newline at end of file
diff --git a/bt5/erp5_officejs/bt/template_keep_last_workflow_history_only_path_list b/bt5/erp5_officejs/bt/template_keep_last_workflow_history_only_path_list
index cb2bc79e417176bc1f1cd8f14646c74f6c57c27a..dd9e4e88b3c5af68902427284da13c1c12097ec6 100644
--- a/bt5/erp5_officejs/bt/template_keep_last_workflow_history_only_path_list
+++ b/bt5/erp5_officejs/bt/template_keep_last_workflow_history_only_path_list
@@ -36,6 +36,8 @@ web_site_module/officejs_svg_editor
web_site_module/officejs_svg_editor/**
web_site_module/officejs_text_editor
web_site_module/officejs_text_editor/**
+web_site_module/officejs_discussion_tool
+web_site_module/officejs_discussion_tool/**
web_site_module/officejs_todomvc
web_site_module/officejs_wallsearch
web_site_module/officejs_wallsearch/**
diff --git a/bt5/erp5_officejs/bt/template_keep_workflow_path_list b/bt5/erp5_officejs/bt/template_keep_workflow_path_list
index 83a60b52b17f24e30a44e977f16103216fdf5fce..e809bcdf9802018491b842bf162568b67f9bc6df 100644
--- a/bt5/erp5_officejs/bt/template_keep_workflow_path_list
+++ b/bt5/erp5_officejs/bt/template_keep_workflow_path_list
@@ -36,6 +36,8 @@ web_site_module/officejs_svg_editor
web_site_module/officejs_svg_editor/**
web_site_module/officejs_text_editor
web_site_module/officejs_text_editor/**
+web_site_module/officejs_discussion_tool
+web_site_module/officejs_discussion_tool/**
web_site_module/officejs_todomvc
web_site_module/officejs_wallsearch
web_site_module/officejs_wallsearch/**
diff --git a/bt5/erp5_officejs/bt/template_path_list b/bt5/erp5_officejs/bt/template_path_list
index af67fdb2e7e38be66f43dfcf53b33ef79f555c66..b4d33c8de19b402a065ede2e2c59c6ffa9240232 100644
--- a/bt5/erp5_officejs/bt/template_path_list
+++ b/bt5/erp5_officejs/bt/template_path_list
@@ -22,6 +22,8 @@ web_site_module/officejs_codemirror
web_site_module/officejs_codemirror/**
web_site_module/officejs_cribjs
web_site_module/officejs_cribjs/**
+web_site_module/officejs_discussion_tool
+web_site_module/officejs_discussion_tool/**
web_site_module/officejs_drive_app
web_site_module/officejs_drive_app/**
web_site_module/officejs_export
diff --git a/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/ERP5Form_viewAsJio.xml b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/ERP5Form_viewAsJio.xml
new file mode 100644
index 0000000000000000000000000000000000000000..94d73fe39181ce32a3e70e2e60e994c6afeaa53e
--- /dev/null
+++ b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/ERP5Form_viewAsJio.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+ Base_edit
+
+ -
+
description
+ Base ERP5 Form view for rendering in renderjs UI
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+
+
+ -
+
center
+
+
+
+
+ -
+
hidden
+
+
+
+
+ -
+
left
+
+
+ my_form_definition
+
+
+
+ -
+
right
+
+
+
+
+
+
+
+ -
+
id
+ ERP5Form_viewAsJio
+
+ -
+
method
+ POST
+
+ -
+
name
+ ERP5Form_viewAsJio
+
+ -
+
pt
+ form_view
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/ERP5Form_viewAsJio/my_form_definition.xml b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/ERP5Form_viewAsJio/my_form_definition.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4ff654935ccd0ac876e905f3a4b8dddba2cb1f84
--- /dev/null
+++ b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/ERP5Form_viewAsJio/my_form_definition.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_form_definition
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Form definition
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio.xml b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c1dd13d7de1364dcd803353cc3ce4e2c0ed85c2d
--- /dev/null
+++ b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+ Base_edit
+
+ -
+
description
+
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+ my_text_content
+
+
+
+ -
+
center
+
+
+
+
+ -
+
hidden
+
+
+
+
+ -
+
left
+
+
+ my_title
+ your_modification_date
+ my_source_reference
+
+
+
+ -
+
right
+
+
+
+
+
+
+
+ -
+
id
+ HTMLPost_viewAsJio
+
+ -
+
method
+ POST
+
+ -
+
name
+ HTMLPost_view
+
+ -
+
pt
+ form_view
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+ HTML Post
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/my_source_reference.xml b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/my_source_reference.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a933355f2dbd7ee8400dad4c0ebc355711452675
--- /dev/null
+++ b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/my_source_reference.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_source_reference
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 1
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ my_source_reference
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/my_text_content.xml b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/my_text_content.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4ee6372d5fdf6c6f600033a6cfbb5ec62ced463e
--- /dev/null
+++ b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/my_text_content.xml
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_text_content
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
line_too_long
+ A line was too long.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ You entered too many characters.
+
+ -
+
too_many_lines
+ You entered too many lines.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+ 5
+
+ -
+
hidden
+ 0
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ My Text Content
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+ -
+
width
+ 40
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/my_title.xml b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/my_title.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4cc7d2e889b694839cd669fac164e3a5b87a9ff5
--- /dev/null
+++ b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/my_title.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_title
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Title
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/your_modification_date.xml b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/your_modification_date.xml
new file mode 100644
index 0000000000000000000000000000000000000000..904a8cfc87868f33a015590e74c89372f8f8a584
--- /dev/null
+++ b/bt5/erp5_officejs_connector/SkinTemplateItem/portal_skins/erp5_officejs_jio_connector/HTMLPost_viewAsJio/your_modification_date.xml
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ your_modification_date
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+ AAAAAAAAAAI=
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 0
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Modification Date
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
_text
+ python: here.getModificationDate().rfc822()
+
+
+
+
+
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite.xml b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite.xml
new file mode 100644
index 0000000000000000000000000000000000000000..40b211a43176b45362e1ea5de19da2acc029af35
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
id
+ officejs_ui_discussiontool_zuite
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionTool.xml b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionTool.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dbbe4e20abb0ffbaba9fba75622241fd51f21bda
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionTool.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+ -
+
_bind_names
+
+
+
+
+
+
+
+
+ -
+
_asgns
+
+
+ -
+
name_subpath
+ traverse_subpath
+
+
+
+
+
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
expand
+ 0
+
+ -
+
id
+ testOfficeJSDiscussionTool
+
+ -
+
output_encoding
+ utf-8
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionTool.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionTool.zpt
new file mode 100644
index 0000000000000000000000000000000000000000..b2c24bfcd855e23f07be7d97e0c6c94d3a1bc6bf
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionTool.zpt
@@ -0,0 +1,220 @@
+
+
+
+Test OfficeJS UI
+
+
+
+
+
+
+Test OfficeJS UI
+
+
+
+
+ open
+ ${base_url}/bar_module/ListBoxZuite_reset
+
+
+
+ assertTextPresent
+ Reset Successfully.
+
+
+
+
+
+
+
+ waitForElementPresent
+ //a[@data-i18n='Storages']
+
+
+
+ open
+ ${base_url}/web_site_module/${install_url}/app/gadget_officejs_discussion_tool.configuration
+
+
+
+ assertTextPresent
+ mode=appcache
+
+
+
+ open
+ ${base_url}/web_site_module/${install_url}/
+
+
+
+ waitForElementPresent
+ //a[@data-i18n='Storages']
+
+
+
+ click
+ //a[@data-i18n='Storages']
+
+
+
+ waitForElementPresent
+ link=Local is Enough
+
+
+
+ click
+ link=Local is Enough
+
+
+
+
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ click
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+
+ waitForElementPresent
+ link=New Post
+
+
+
+ click
+ link=New Post
+
+
+
+
+
+ store
+ Titre
+ title
+
+
+ store
+ Re: ${title}
+ retitle
+
+
+ waitForElementPresent
+ //input[@title='Title']
+
+
+
+ type
+ //input[@title='Title']
+ ${title}
+
+
+ waitForElementPresent
+ //input[@title='Title']
+
+
+
+
+
+
+
+
+
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ click
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ waitForElementPresent
+ link=Reply
+
+
+
+ click
+ link=Reply
+
+
+
+
+
+ assertElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//h1//a[@data-i18n="${retitle}"]
+
+
+ assertElementNotPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ assertElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_label_field.html')]//label[@for="text_content"]
+
+
+
+ type
+ name=text_content
+ some_content
+
+
+
+
+
+
+
+
+
+
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ waitForElementPresent
+ //input[@title='Title']
+
+
+
+ verifyValue
+ //input[@title='Title']
+ ${retitle}
+
+
+ click
+ //a[@data-i18n='Document']
+
+
+
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ waitForElementPresent
+ link=${title}
+
+
+
+ click
+ link=${title}
+
+
+
+ waitForElementPresent
+ //input[@title='Title']
+
+
+
+ verifyValue
+ //input[@title='Title']
+ ${title}
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolActionReply.xml b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolActionReply.xml
new file mode 100644
index 0000000000000000000000000000000000000000..724209827051edd383e3c5f2525d0cffbc9576cd
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolActionReply.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+ -
+
_bind_names
+
+
+
+
+
+
+
+
+ -
+
_asgns
+
+
+ -
+
name_subpath
+ traverse_subpath
+
+
+
+
+
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
expand
+ 0
+
+ -
+
id
+ testOfficeJSDiscussionToolActionReply
+
+ -
+
output_encoding
+ utf-8
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolActionReply.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolActionReply.zpt
new file mode 100644
index 0000000000000000000000000000000000000000..e5b53b11164df1fed8bbf2b6a0b80adc7bafd8df
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolActionReply.zpt
@@ -0,0 +1,177 @@
+
+
+
+Test OfficeJS UI
+
+
+
+
+Test OfficeJS UI
+
+
+
+
+ open
+ ${base_url}/bar_module/ListBoxZuite_reset
+
+
+
+ assertTextPresent
+ Reset Successfully.
+
+
+
+
+ open
+ ${base_url}/web_site_module/officejs_discussion_tool/
+
+
+
+
+
+
+
+ waitForElementPresent
+ link=Storages
+
+
+
+ click
+ link=Storages
+
+
+
+
+
+
+ waitForElementPresent
+ link=Local is Enough
+
+
+
+ click
+ link=Local is Enough
+
+
+
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ click
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ waitForElementPresent
+ link=New Post
+
+
+
+ click
+ link=New Post
+
+
+
+
+
+ store
+ Post_base
+ title
+
+
+ store
+ Re: Post_base
+ retitle
+
+
+ type
+ name=title
+ ${title}
+
+
+ waitForElementPresent
+ //input[@title='Title']
+
+
+
+
+
+
+
+
+
+
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ click
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+
+
+ waitForElementPresent
+ link=Reply
+
+
+
+ click
+ link=Reply
+
+
+
+
+
+
+ assertElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//h1//a[@data-i18n="${retitle}"]
+
+
+ assertElementNotPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ assertElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_label_field.html')]//label[@for="text_content"]
+
+
+
+ type
+ name=text_content
+ some_content
+
+
+
+
+
+
+
+
+
+
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ waitForElementPresent
+ //input[@title='Title']
+
+
+
+ verifyValue
+ //input[@title='Title']
+ ${retitle}
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolErp5Synchronization.xml b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolErp5Synchronization.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2f911e25a240cd8d3cf5532bff2376456546e40a
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolErp5Synchronization.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+ -
+
_bind_names
+
+
+
+
+
+
+
+
+ -
+
_asgns
+
+
+ -
+
name_subpath
+ traverse_subpath
+
+
+
+
+
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
expand
+ 0
+
+ -
+
id
+ testOfficeJSDiscussionToolErp5Synchronization
+
+ -
+
output_encoding
+ utf-8
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolErp5Synchronization.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolErp5Synchronization.zpt
new file mode 100644
index 0000000000000000000000000000000000000000..1af5deb91a91491ebf79c0405621e1727d93d578
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolErp5Synchronization.zpt
@@ -0,0 +1,349 @@
+
+
+
+Test OfficeJS UI
+
+
+
+
+Test OfficeJS UI
+
+
+
+
+ open
+ ${base_url}/bar_module/ListBoxZuite_reset
+
+
+
+ assertTextPresent
+ Reset Successfully.
+
+
+
+
+ open
+ ${base_url}/web_site_module/officejs_discussion_tool/
+
+
+
+
+
+
+ waitForElementPresent
+ link=Storages
+
+
+
+ click
+ link=Storages
+
+
+
+
+
+
+ waitForElementPresent
+ link=Erp5
+
+
+
+ click
+ link=Erp5
+
+
+
+ waitForElementPresent
+ name=erp5_url
+
+
+
+ type
+ name=erp5_url
+ ${base_url}/web_site_module/
+
+
+ click
+ //button[@data-i18n='Proceed']
+
+
+
+
+
+
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ click
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+
+ waitForElementPresent
+ link=New Post
+
+
+
+ click
+ link=New Post
+
+
+
+
+
+
+ store
+ Titre
+ title
+
+
+ type
+ name=title
+ ${title}
+
+
+ waitForElementPresent
+ //input[@title='Title']
+
+
+
+
+
+
+
+
+
+
+ click
+ //a[@data-i18n='Document']
+
+
+
+
+
+
+
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+ click
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Actions"]
+
+
+
+
+ waitForElementPresent
+ link=New Post
+
+
+
+ click
+ link=New Post
+
+
+
+
+
+
+ store
+ search
+ search
+
+
+ waitForElementPresent
+ identifier=title
+
+
+
+ type
+ name=title
+ ${search}
+
+
+
+
+
+
+
+
+
+ click
+ //a[@data-i18n='Document']
+
+
+
+
+
+
+
+
+ waitForElementPresent
+ link=${title}
+
+
+
+ assertTextPresent
+ ${title}
+
+
+
+ assertFailureOnNext
+ false
+
+
+
+ verifyElementPresent
+ link=${search}
+
+
+
+ click
+ link=${title}
+
+
+
+
+
+ waitForElementPresent
+ identifier=title
+
+
+
+ assertTextPresent
+ ${title}
+
+
+
+ verifyValue
+ title
+ ${title}
+
+
+ click
+ //button[@data-i18n='Menu']
+
+
+
+ click
+ //a[@data-i18n='Synchronize']
+
+
+
+
+ waitForElementPresent
+ name=search
+
+
+
+ type
+ name=search
+ ${title}
+
+
+ waitForElementPresent
+ //button[@data-i18n='Filter']
+
+
+
+ click
+ //button[@data-i18n='Filter']
+
+
+
+ waitForElementPresent
+ //button[@data-i18n='Filter']
+
+
+
+ waitForElementPresent
+ link=${title}
+
+
+
+ assertTextPresent
+ ${title}
+
+
+
+ click
+ link=${title}
+
+
+
+
+ waitForElementPresent
+ identifier=title
+
+
+
+ verifyValue
+ title
+ ${title}
+
+
+ open
+ ${base_url}/post_module/Zuite_waitForActivities
+
+
+
+ waitForElementPresent
+ //pre[contains(text(), "Done.")]
+
+
+
+
+ verifyTextPresent
+ Done.
+
+
+
+ open
+ ${base_url}/post_module/
+
+
+
+ waitForElementPresent
+ //button[@title="Show All"]
+
+
+
+ click
+ //button[@title="Show All"]
+
+
+
+ pause
+ 1000
+
+
+
+ waitForElementPresent
+ //input[@name="listbox_title"]
+
+
+
+ type
+ name=listbox_title
+ ${title}
+
+
+ clickAndWait
+ Base_doSelect:method
+
+
+
+ assertTextPresent
+ ${title}
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolMigration.xml b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolMigration.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c332e2200feae251efed287352296cb69c272244
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolMigration.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+ -
+
_bind_names
+
+
+
+
+
+
+
+
+ -
+
_asgns
+
+
+ -
+
name_subpath
+ traverse_subpath
+
+
+
+
+
+
+
+
+
+ -
+
content_type
+ text/html
+
+ -
+
expand
+ 0
+
+ -
+
id
+ testOfficeJSDiscussionToolMigration
+
+ -
+
output_encoding
+ utf-8
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolMigration.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolMigration.zpt
new file mode 100644
index 0000000000000000000000000000000000000000..db0005829dd58c6a0dc52aa01e0d8927bd7eb6d7
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_discussiontool_zuite/testOfficeJSDiscussionToolMigration.zpt
@@ -0,0 +1,44 @@
+
+
+
+Test OfficeJS UI
+
+
+
+
+Test OfficeJS UI
+
+
+
+
+ open
+ ${base_url}/bar_module/ListBoxZuite_reset
+
+
+
+ assertTextPresent
+ Reset Successfully.
+
+
+
+
+ open
+ ${base_url}/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage.html
+
+
+
+ waitForElementPresent
+ //div[text()='Storage Created']
+
+
+
+ open
+ ${base_url}/web_site_module/officejs_discussion_tool/app/
+
+
+
+ waitForElementPresent
+ link=Local is Enough
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditor.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditor.zpt
index cd63f5a8bef99504210e41b110117d69a5913c5a..c5402b03fc291587cba669e0282bcdf89f4c07dd 100644
--- a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditor.zpt
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditor.zpt
@@ -46,21 +46,35 @@
link=Local is Enough
+
- waitForElementPresent
- link=Add
-
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Add"]
+
- click
- link=Add
-
+ click
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Add"]
+
+
+
store
Titre
@@ -116,25 +130,27 @@
//textarea[@title='Description']
${description}
+
click
//button[@data-i18n='Save']
-
- waitForElementPresent
- //div[@data-gadget-scope="notification"]//button[text()='Data Updated']
-
-
+
+
+
+
+
click
//a[@data-i18n='Document']
- waitForElementPresent
- link=Add
-
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Add"]
+
waitForElementPresent
@@ -175,9 +191,4 @@
verifyValue
//textarea[@title='Description']
${description}
-
-
- waitForElementPresent
- identifier=cke_1_contents
-
\ No newline at end of file
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditorErp5Synchronization.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditorErp5Synchronization.zpt
index 1e8bc69160d279b657fe6e1a92222226787b93d5..1cd59e448cec8fd74d265306a6d2758793755ad0 100644
--- a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditorErp5Synchronization.zpt
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditorErp5Synchronization.zpt
@@ -62,21 +62,35 @@
//button[@data-i18n='Proceed']
+
- waitForElementPresent
- link=Add
-
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Add"]
+
- click
- link=Add
-
+ click
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Add"]
+
+
+
waitForElementPresent
identifier=title
@@ -117,11 +131,12 @@
//button[@data-i18n='Save']
-
- waitForElementPresent
- //div[@data-gadget-scope="notification"]//button[text()='Data Updated']
-
-
+
+
+
+
+
click
//a[@data-i18n='Document']
@@ -129,21 +144,35 @@
+
- waitForElementPresent
- //a[@data-i18n='Add']
-
+ waitForElementPresent
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Add"]
+
- click
- //a[@data-i18n='Add']
-
+ click
+ //div[contains(@data-gadget-url, 'gadget_erp5_header.html')]//a[@data-i18n="Add"]
+
+
+
store
search
@@ -169,6 +198,12 @@
//button[@data-i18n='Save']
+
+
+
+
+
click
//a[@data-i18n='Document']
@@ -209,8 +244,13 @@
- assertTextPresent
- ${title}
+ waitForElementPresent
+ //input[@name='title']
+
+
+
+ waitForElementPresent
+ //input[@value='${title}']
@@ -308,6 +348,11 @@
${base_url}/web_page_module/Zuite_waitForActivities
+
+ waitForElementPresent
+ //pre
+
+
assertTextPresent
Done.
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditorMigration.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditorMigration.zpt
index 587346fa97b2fbbb898ef89576fa97bb7f784a61..d3ad5c0ae63755f831c7da119788409b2225d603 100644
--- a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditorMigration.zpt
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_texteditor_zuite/testOfficeJSTextEditorMigration.zpt
@@ -24,7 +24,7 @@
open
- ${base_url}/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage.html
+ ${base_url}/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.html
diff --git a/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage.js.js b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage.js.js
index 4668c6d6d99e380da1a99f73c4e4ac796f3ca534..feb91d4c7a1e7900edb6e5b9708093c53d70f631 100644
--- a/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage.js.js
+++ b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage.js.js
@@ -11,7 +11,7 @@
}),
gadget = this;
return storage.put(
- 'setting/Text Editor',
+ 'setting/Discussion Tool',
{'jio_storage_description': {type: 'unknownstorage'}}
)
.push(function () {
diff --git a/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.html.html b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.html.html
new file mode 100644
index 0000000000000000000000000000000000000000..ab377b08b53636bd9a4bcebe88e89f7376fa8b99
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.html.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ Bad Storage Creation
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.html.xml b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..255479f702f35857ebbd8b8f1b85acc39f160a05
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.html.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+ -
+
__name__
+ gadget_officejs_create_bad_storage_for_text_editor.html
+
+ -
+
content_type
+ text/html
+
+ -
+
precondition
+
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.js.js b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.js.js
new file mode 100644
index 0000000000000000000000000000000000000000..4668c6d6d99e380da1a99f73c4e4ac796f3ca534
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.js.js
@@ -0,0 +1,23 @@
+/*jslint indent: 2, nomen: true */
+/*global window, rJS, jIO, document*/
+(function (window, rJS, jIO) {
+ "use strict";
+
+ rJS(window)
+ .declareService(function () {
+ var storage = jIO.createJIO({
+ type: "indexeddb",
+ database: "setting"
+ }),
+ gadget = this;
+ return storage.put(
+ 'setting/Text Editor',
+ {'jio_storage_description': {type: 'unknownstorage'}}
+ )
+ .push(function () {
+ var div = document.createElement('div');
+ div.textContent = 'Storage Created';
+ gadget.element.appendChild(div);
+ });
+ });
+}(window, rJS, jIO, document));
diff --git a/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.js.xml b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..38fc137108d26a6135da65f202906011fb4e59a5
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/gadget_officejs_create_bad_storage_for_text_editor.js.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+ -
+
_Cacheable__manager_id
+ http_cache
+
+ -
+
__name__
+ gadget_officejs_create_bad_storage_for_text_editor.js
+
+ -
+
content_type
+ application/javascript
+
+ -
+
precondition
+
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalOfficeJSDiscussionTool.py b/bt5/erp5_officejs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalOfficeJSDiscussionTool.py
new file mode 100644
index 0000000000000000000000000000000000000000..bd8acc011ea11acae356dc9048beab4bedf1c5d2
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalOfficeJSDiscussionTool.py
@@ -0,0 +1,49 @@
+##############################################################################
+#
+# Copyright (c) 2011 Nexedi SARL and Contributors. All Rights Reserved.
+# Kazuhiko
+# Rafael Monnerat
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability 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
+# garantees 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+##############################################################################
+import unittest
+
+from Products.ERP5Type.tests.ERP5TypeFunctionalTestCase import ERP5TypeFunctionalTestCase
+
+class TestOfficejSUIDiscussionTool(ERP5TypeFunctionalTestCase):
+ foreground = 0
+ run_only = "officejs_ui_discussiontool_zuite"
+
+ def getBusinessTemplateList(self):
+ return (
+ 'erp5_officejs',
+ 'erp5_officejs_ui_test',
+ 'erp5_ui_test_core',
+ 'erp5_post',
+ 'erp5_discussion'
+ )
+
+def test_suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestOfficejSUIDiscussionTool))
+ return suite
\ No newline at end of file
diff --git a/bt5/erp5_officejs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalOfficeJSDiscussionTool.xml b/bt5/erp5_officejs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalOfficeJSDiscussionTool.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e9f35d2f8a718dfd293924d77c440fe8f83e1cd0
--- /dev/null
+++ b/bt5/erp5_officejs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalOfficeJSDiscussionTool.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+ -
+
_recorded_property_dict
+
+ AAAAAAAAAAI=
+
+
+ -
+
default_reference
+ testFunctionalOfficeJSDiscussionTool
+
+ -
+
description
+
+
+
+
+ -
+
id
+ test.erp5.testFunctionalOfficeJSDiscussionTool
+
+ -
+
portal_type
+ Test Component
+
+ -
+
sid
+
+
+
+
+ -
+
text_content_error_message
+
+
+
+
+ -
+
text_content_warning_message
+
+
+
+
+ -
+
version
+ erp5
+
+ -
+
workflow_history
+
+ AAAAAAAAAAM=
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
data
+
+
+ -
+
component_validation_workflow
+
+ AAAAAAAAAAQ=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
action
+ validate
+
+ -
+
validation_state
+ validated
+
+
+
+
+
+
+
diff --git a/bt5/erp5_officejs_ui_test/bt/dependency_list b/bt5/erp5_officejs_ui_test/bt/dependency_list
index 16b64819f1ac8802c3e3876f34f5c28080f9db2f..0e89286095b95281ab22bf563e40105819a4ecfa 100644
--- a/bt5/erp5_officejs_ui_test/bt/dependency_list
+++ b/bt5/erp5_officejs_ui_test/bt/dependency_list
@@ -4,4 +4,6 @@ erp5_officejs
erp5_officejs_jquery_app
erp5_officejs_ooffice
erp5_officejs_connector
-erp5_web_renderjs_ui_test
\ No newline at end of file
+erp5_web_renderjs_ui_test
+erp5_discussion
+erp5_post
\ No newline at end of file
diff --git a/bt5/erp5_officejs_ui_test/bt/template_test_id_list b/bt5/erp5_officejs_ui_test/bt/template_test_id_list
index d99e0ec7233dd3e00fad42a93ed774981c3dd93e..4f8db83321f27720bf7a864c6fbaa2d6fd2299f1 100644
--- a/bt5/erp5_officejs_ui_test/bt/template_test_id_list
+++ b/bt5/erp5_officejs_ui_test/bt/template_test_id_list
@@ -1,5 +1,6 @@
test.erp5.testFunctionalOfficeJSSmartAssistant
test.erp5.testFunctionalOfficeJSTextEditor
+test.erp5.testFunctionalOfficeJSDiscussionTool
test.erp5.testFunctionalOfficeJSCodeMirror
test.erp5.testFunctionalOfficeJSMediaPlayer
test.erp5.testFunctionalOfficeJSCribJS
diff --git a/bt5/erp5_post/ActionTemplateItem/portal_types/HTML%20Post/jio_view.xml b/bt5/erp5_post/ActionTemplateItem/portal_types/HTML%20Post/jio_view.xml
new file mode 100644
index 0000000000000000000000000000000000000000..25436ef3e36fbb9e6d302f30debf8201b64492ae
--- /dev/null
+++ b/bt5/erp5_post/ActionTemplateItem/portal_types/HTML%20Post/jio_view.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+ -
+
action
+
+ AAAAAAAAAAI=
+
+
+ -
+
categories
+
+
+ action_type/object_jio_view
+
+
+
+ -
+
category
+ object_jio_view
+
+ -
+
condition
+
+
+ -
+
description
+
+
+
+
+ -
+
icon
+
+
+ -
+
id
+ jio_view
+
+ -
+
permissions
+
+
+ View
+
+
+
+ -
+
portal_type
+ Action Information
+
+ -
+
priority
+ 1.0
+
+ -
+
title
+ View
+
+ -
+
visible
+ 1
+
+
+
+
+
+
+
+
+
+
+ -
+
text
+ string:${object_url}/HTMLPost_viewAsJio
+
+
+
+
+
diff --git a/bt5/erp5_post/ActionTemplateItem/portal_types/HTML%20Post/reply.xml b/bt5/erp5_post/ActionTemplateItem/portal_types/HTML%20Post/reply.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cbbb5cffc500034dc393041a8d99b56e4150428c
--- /dev/null
+++ b/bt5/erp5_post/ActionTemplateItem/portal_types/HTML%20Post/reply.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+ -
+
action
+
+ AAAAAAAAAAI=
+
+
+ -
+
categories
+
+
+ action_type/object_jio_js_script
+
+
+
+ -
+
category
+ object_jio_js_script
+
+ -
+
condition
+
+
+ -
+
description
+
+
+
+
+ -
+
icon
+
+
+ -
+
id
+ reply
+
+ -
+
language
+
+
+
+
+ -
+
permissions
+
+
+ Add portal content
+
+
+
+ -
+
portal_type
+ Action Information
+
+ -
+
priority
+ 1.0
+
+ -
+
title
+ Reply
+
+ -
+
visible
+ 1
+
+
+
+
+
+
+
+
+
+
+ -
+
text
+ portal_skins/erp5_web_officejs_ui/HTMLPost_viewReplyDialog
+
+
+
+
+
diff --git a/bt5/erp5_post/ActionTemplateItem/portal_types/Post%20Module/jio_view.xml b/bt5/erp5_post/ActionTemplateItem/portal_types/Post%20Module/jio_view.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1cd1198825c2da8c45ae90d7a2c97d0f9f69f2fd
--- /dev/null
+++ b/bt5/erp5_post/ActionTemplateItem/portal_types/Post%20Module/jio_view.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+ -
+
action
+
+ AAAAAAAAAAI=
+
+
+ -
+
categories
+
+
+ action_type/object_list
+
+
+
+ -
+
category
+ object_list
+
+ -
+
condition
+
+
+ -
+
description
+
+
+
+
+ -
+
icon
+
+
+ -
+
id
+ jio_view
+
+ -
+
language
+
+
+
+
+ -
+
permissions
+
+
+ View
+
+
+
+ -
+
portal_type
+ Action Information
+
+ -
+
priority
+ 1.0
+
+ -
+
title
+ View
+
+ -
+
visible
+ 1
+
+
+
+
+
+
+
+
+
+
+ -
+
text
+ portal_skins/erp5_web_officejs_ui/PostModule_viewHTMLPostListAsJio
+
+
+
+
+
diff --git a/bt5/erp5_post/ActionTemplateItem/portal_types/Post%20Module/new_html_post.xml b/bt5/erp5_post/ActionTemplateItem/portal_types/Post%20Module/new_html_post.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7bb776b4aeffe61847ccd6a26704e99a2dd0352d
--- /dev/null
+++ b/bt5/erp5_post/ActionTemplateItem/portal_types/Post%20Module/new_html_post.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+ -
+
action
+
+ AAAAAAAAAAI=
+
+
+ -
+
categories
+
+
+ action_type/object_jio_js_script
+
+
+
+ -
+
category
+ object_jio_js_script
+
+ -
+
condition
+
+
+ -
+
description
+
+
+
+
+ -
+
icon
+
+
+ -
+
id
+ new_html_post
+
+ -
+
language
+
+
+
+
+ -
+
permissions
+
+
+ Add portal content
+
+
+
+ -
+
portal_type
+ Action Information
+
+ -
+
priority
+ 1.0
+
+ -
+
title
+ New Post
+
+ -
+
visible
+ 1
+
+
+
+
+
+
+
+
+
+
+ -
+
text
+ portal_skins/erp5_post/PostModule_newHTMLPost
+
+
+
+
+
diff --git a/bt5/erp5_post/PortalTypeTemplateItem/portal_types/HTML%20Post.xml b/bt5/erp5_post/PortalTypeTemplateItem/portal_types/HTML%20Post.xml
index 2438c50ddc54635865e19246c2b480698e2d071f..c22d95ccff22a2fc92da8c70f3354725fd96caee 100644
--- a/bt5/erp5_post/PortalTypeTemplateItem/portal_types/HTML%20Post.xml
+++ b/bt5/erp5_post/PortalTypeTemplateItem/portal_types/HTML%20Post.xml
@@ -22,6 +22,12 @@
factory
addXMLObject
+ -
+
group_list
+
+
+
+
-
id
HTML Post
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/HTMLPost_view.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/HTMLPost_view.xml
index ee1a20568aad36a7d22c2a6ec7633b460fb5cab0..5b6289cbacd5739565bae59bf99ae4afdd93132a 100644
--- a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/HTMLPost_view.xml
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/HTMLPost_view.xml
@@ -80,9 +80,7 @@
-
right
-
- my_translated_validation_state_title
-
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e7e8f1710e2ad58b194e94a6d99a9ac4fac19bc0
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost.xml
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+ -
+
_objects
+
+
+
+
+ -
+
action
+ Base_edit
+
+ -
+
description
+
+
+ -
+
edit_order
+
+
+
+
+ -
+
encoding
+ UTF-8
+
+ -
+
enctype
+
+
+ -
+
group_list
+
+
+ left
+ right
+ center
+ bottom
+ hidden
+
+
+
+ -
+
groups
+
+
+ -
+
bottom
+
+
+ my_text_content
+
+
+
+ -
+
center
+
+
+
+
+ -
+
hidden
+
+
+ gadget_field_action_js_script
+
+
+
+ -
+
left
+
+
+ my_title
+ your_modification_date
+ my_source_reference
+
+
+
+ -
+
right
+
+
+
+
+
+
+
+ -
+
id
+ PostModule_newHTMLPost
+
+ -
+
method
+ POST
+
+ -
+
name
+ HTMLPost_view
+
+ -
+
pt
+ form_view
+
+ -
+
row_length
+ 4
+
+ -
+
stored_encoding
+ UTF-8
+
+ -
+
title
+ HTML Post
+
+ -
+
unicode_mode
+ 0
+
+ -
+
update_action
+
+
+ -
+
update_action_title
+
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/gadget_field_action_js_script.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/gadget_field_action_js_script.xml
new file mode 100644
index 0000000000000000000000000000000000000000..64628769c32d4c27e283aa8255089fb672135d0f
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/gadget_field_action_js_script.xml
@@ -0,0 +1,251 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ gadget_field_action_js_script
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
no_validator
+ Does not support this operation.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
data_url
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
gadget_url
+
+
+ -
+
hidden
+
+
+ -
+
js_sandbox
+
+
+ -
+
renderjs_extra
+
+
+ -
+
title
+
+
+ -
+
validator_field_id
+
+
+ -
+
validator_form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
data_url
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
gadget_url
+
+
+ -
+
hidden
+
+
+ -
+
js_sandbox
+
+
+ -
+
renderjs_extra
+
+
+ -
+
title
+
+
+ -
+
validator_field_id
+
+
+ -
+
validator_form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
data_url
+ 0
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
gadget_url
+ gadget_field_new_action_js_script.html
+
+ -
+
hidden
+ 0
+
+ -
+
js_sandbox
+
+
+ -
+
renderjs_extra
+
+
+
+ var child_gadget_url = \'gadget_erp5_pt_form_view_editable.html\'; return RSVP.Queue().push(function () { return RSVP.all([gadget.getUrlParameter(\'portal_type\'), gadget.getUrlParameter(\'parent_relative_url\'), gadget.getSetting(\'portal_type\'), gadget.getSetting(\'parent_relative_url\'), ]); }) .push(function (result) { if (result[0] != undefined) {options.portal_type = result[0];} else {options.portal_type = result[2];} if (result[1] != undefined) {options.parent_relative_url = result[1];} else {options.parent_relative_url = result[3];} return gadget_utils.getFormDefinition(parent_portal_type, action_reference).push(function (result) { form_definition = result; return gadget_utils.createDocument(options); }) .push(function (jio_key) { return gadget.jio_get(jio_key) .push(function (new_document) { return gadget.changeState({ jio_key: jio_key, doc: new_document, submit_code: submit_code, child_gadget_url: child_gadget_url, form_definition: form_definition, view: action_reference, editable: true, has_more_views: false, has_more_actions: true, is_form_list: false }); }); }); });
+ return gadget.notifySubmitting() .push(function () { return gadget.jio_get(jio_key); }) .push(function (document) { var property; for (property in content_dict) { if (content_dict.hasOwnProperty(property)) { document[property] = content_dict[property]; } } return gadget.jio_put(jio_key, document); }) .push(function () { return gadget.notifySubmitted({message: \'Data Updated\', status: \'success\'}); }) .push(function () { return gadget.redirect({ command: \'display\', options: { jio_key: jio_key, editable: true } }); });
+
+
+
+
+ -
+
title
+ gadget_field_action_js_script
+
+ -
+
validator_field_id
+
+
+ -
+
validator_form_id
+
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/my_source_reference.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/my_source_reference.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a933355f2dbd7ee8400dad4c0ebc355711452675
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/my_source_reference.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_source_reference
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 1
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ my_source_reference
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/my_text_content.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/my_text_content.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4ee6372d5fdf6c6f600033a6cfbb5ec62ced463e
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/my_text_content.xml
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_text_content
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
line_too_long
+ A line was too long.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ You entered too many characters.
+
+ -
+
too_many_lines
+ You entered too many lines.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+
+
+ -
+
hidden
+
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+ -
+
width
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
height
+ 5
+
+ -
+
hidden
+ 0
+
+ -
+
max_length
+
+
+ -
+
max_linelength
+
+
+ -
+
max_lines
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ My Text Content
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+ -
+
width
+ 40
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/my_title.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/my_title.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4cc7d2e889b694839cd669fac164e3a5b87a9ff5
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/my_title.xml
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ my_title
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 1
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Title
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/your_modification_date.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/your_modification_date.xml
new file mode 100644
index 0000000000000000000000000000000000000000..904a8cfc87868f33a015590e74c89372f8f8a584
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_newHTMLPost/your_modification_date.xml
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+ -
+
id
+ your_modification_date
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+ -
+
required_not_found
+ Input is required but no input given.
+
+ -
+
too_long
+ Too much input was given.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+ AAAAAAAAAAI=
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+
+
+ -
+
editable
+
+
+ -
+
enabled
+
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+
+
+ -
+
input_type
+
+
+ -
+
max_length
+
+
+ -
+
required
+
+
+ -
+
title
+
+
+ -
+
truncate
+
+
+ -
+
unicode
+
+
+ -
+
whitespace_preserve
+
+
+
+
+
+ -
+
values
+
+
+ -
+
alternate_name
+
+
+ -
+
css_class
+
+
+ -
+
default
+
+
+ -
+
description
+
+
+ -
+
display_maxwidth
+
+
+ -
+
display_width
+ 20
+
+ -
+
editable
+ 0
+
+ -
+
enabled
+ 1
+
+ -
+
external_validator
+
+
+ -
+
extra
+
+
+ -
+
hidden
+ 0
+
+ -
+
input_type
+ text
+
+ -
+
max_length
+
+
+ -
+
required
+ 0
+
+ -
+
title
+ Modification Date
+
+ -
+
truncate
+ 0
+
+ -
+
unicode
+ 0
+
+ -
+
whitespace_preserve
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
_text
+ python: here.getModificationDate().rfc822()
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_viewHTMLPostList/listbox.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_viewHTMLPostList/listbox.xml
index c90b6233cce4cd3ed7865b57591935e41e347d97..0c7eaad3ba3540a80c3e87852630b941b9479698 100644
--- a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_viewHTMLPostList/listbox.xml
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/PostModule_viewHTMLPostList/listbox.xml
@@ -85,6 +85,10 @@
translated_validation_state_title
State
+
+ modification_date
+ Modification Date
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.html.html b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.html.html
new file mode 100644
index 0000000000000000000000000000000000000000..b6c223b5721001a5451420e1105711ed012d0f0d
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.html.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+ OfficeJS NEW HTML Post Action
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.html.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5d6daa70ddffca8d98e3bf46b33e833eeadf54f9
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.html.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+ -
+
__name__
+ gadget_field_new_action_js_script.html
+
+ -
+
content_type
+ text/html
+
+ -
+
precondition
+
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.js.js b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.js.js
new file mode 100644
index 0000000000000000000000000000000000000000..0f871160d8aac9e26810d1a29425f10b46f5656a
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.js.js
@@ -0,0 +1,40 @@
+/*global window, rJS, RSVP */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP) {
+ "use strict";
+
+ rJS(window)
+
+ /////////////////////////////////////////////////////////////////
+ // Acquired methods
+ /////////////////////////////////////////////////////////////////
+ .declareAcquiredMethod("jio_post", "jio_post")
+
+ /////////////////////////////////////////////////////////////////
+ // declared methods
+ /////////////////////////////////////////////////////////////////
+
+ .declareMethod("preRenderDocument", function (parent_options) {
+ return {title: "Untitled Post"};
+ })
+
+ .declareMethod('handleSubmit', function (content_dict, parent_options) {
+ var gadget = this,
+ document = {
+ title: parent_options.doc.title,
+ //hardcoded portal_type and relative url (because this action is 'new HTML Post' on 'post_module')
+ //or, we can get those values from parent_options.form_definition if needed
+ portal_type: "HTML Post",
+ parent_relative_url: "post_module"
+ }, property;
+ delete content_dict.dialog_method;
+ for (property in content_dict) {
+ if (content_dict.hasOwnProperty(property)) {
+ document[property] = content_dict[property];
+ }
+ }
+ document.source_reference = parent_options.action_options.source_reference;
+ return gadget.jio_post(document);
+ });
+
+}(window, rJS, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.js.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9bd9c5a6725ca877018fb09e99b8851923c12db3
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_new_action_js_script.js.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+ -
+
__name__
+ gadget_field_new_action_js_script.js
+
+ -
+
content_type
+ application/javascript
+
+ -
+
precondition
+
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.html.html b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.html.html
new file mode 100644
index 0000000000000000000000000000000000000000..36a9545277bb9600cf6ef0f9ec897b43bce77997
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.html.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+ OfficeJS Reply Action
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.html.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2934850de87901f0a6e9f12a5194d47ba33c464d
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.html.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+ -
+
__name__
+ gadget_field_reply_action_js_script.html
+
+ -
+
content_type
+ text/html
+
+ -
+
precondition
+
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.js.js b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.js.js
new file mode 100644
index 0000000000000000000000000000000000000000..696d90866dad8969771f459fd15657bc06940bdb
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.js.js
@@ -0,0 +1,46 @@
+/*global window, rJS, RSVP */
+/*jslint nomen: true, indent: 2, maxerr: 3 */
+(function (window, rJS, RSVP) {
+ "use strict";
+
+ rJS(window)
+
+ /////////////////////////////////////////////////////////////////
+ // Acquired methods
+ /////////////////////////////////////////////////////////////////
+ .declareAcquiredMethod("jio_get", "jio_get")
+ .declareAcquiredMethod("jio_post", "jio_post")
+
+ /////////////////////////////////////////////////////////////////
+ // declared methods
+ /////////////////////////////////////////////////////////////////
+
+ .declareMethod("preRenderDocument", function (parent_options) {
+ var gadget = this;
+ return gadget.jio_get(parent_options.jio_key)
+ .push(function (parent_document) {
+ var title = parent_document.title;
+ if (!title.startsWith('Re: ')) { title = 'Re: ' + parent_document.title; }
+ return {
+ title: title,
+ parent_relative_url: parent_document.parent_relative_url,
+ portal_type: parent_document.portal_type,
+ source_reference: parent_document.source_reference
+ };
+ });
+ })
+
+ .declareMethod('handleSubmit', function (content_dict, parent_options) {
+ var gadget = this,
+ document = parent_options.doc,
+ property;
+ delete content_dict.dialog_method;
+ for (property in content_dict) {
+ if (content_dict.hasOwnProperty(property)) {
+ document[property] = content_dict[property];
+ }
+ }
+ return gadget.jio_post(document);
+ });
+
+}(window, rJS, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.js.xml b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b4244368bcabeb1f3840590b144b21ccd73cca83
--- /dev/null
+++ b/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/gadget_field_reply_action_js_script.js.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+ -
+
__name__
+ gadget_field_reply_action_js_script.js
+
+ -
+
content_type
+ application/javascript
+
+ -
+
precondition
+
+
+ -
+
title
+
+
+
+
+
+
diff --git a/bt5/erp5_post/bt/template_action_path_list b/bt5/erp5_post/bt/template_action_path_list
index 0f94e1f3c0c75f3355f870b4f2398beacda5c6e4..c2f5dd60de17ca8760c4b33d1f189b369fef5b02 100644
--- a/bt5/erp5_post/bt/template_action_path_list
+++ b/bt5/erp5_post/bt/template_action_path_list
@@ -1,3 +1,7 @@
+HTML Post | jio_view
+HTML Post | reply
HTML Post | view
+Post Module | jio_view
+Post Module | new_html_post
Post Module | view
Text Post | view
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.html
index 84fcbf779256ef475019beef6de2828528af40d0..c6a365633d22ae72dde6859faac6aa2fad6b08c8 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.html
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.html
@@ -24,6 +24,11 @@
+
+
+
+
+
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js
index 66d06a0ce0b7a31a69dc122f12c0e9857d8c5f45..fe81744344338be30b8d7068485940fc4228b45d 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js
@@ -443,7 +443,9 @@
if (displayed_column_item_list.length === 0) {
displayed_column_item_list = field_json.column_list;
}
-
+ if (field_json.sort === undefined) {
+ field_json.sort = []
+ }
return gadget.changeState({
key: field_json.key,
title: field_json.title,
@@ -767,7 +769,7 @@
button_element.setAttribute('data-rel', 'clipboard');
button_element.setAttribute('name', 'Clipboard');
button_element.type = 'button';
- button_element.setAttribute('class', 'ui-icon-list-ul ui-btn-icon-left ');
+ button_element.setAttribute('class', 'ui-icon-list-ul ui-btn-icon-left ' + gadget.state.hide_class);
button_element.textContent = translation_list[5];
div_element.appendChild(button_element);
@@ -1180,7 +1182,6 @@
if (gadget.state.show_count === true) {
aggregation_option_list.push("count");
}
-
return gadget.jio_allDocs({
// XXX Not jIO compatible, but until a better api is found...
"list_method_template": this.state.list_method_template,
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.js
index bac75a9e28ecd2ce13d9d095d0f6072294141705..e046a0c5fbafc7ed6054df3d210df455910b1998 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.js
@@ -74,6 +74,7 @@
.declareAcquiredMethod("getUrlParameter", "getUrlParameter")
.declareAcquiredMethod("renderEditorPanel", "renderEditorPanel")
.declareAcquiredMethod("getTranslationList", "getTranslationList")
+ .declareAcquiredMethod("getSetting", "getSetting")
/////////////////////////////////////////////////////////////////
// Proxy methods to the child gadget
@@ -111,10 +112,23 @@
})
.onStateChange(function onStateChange() {
- var form_gadget = this;
+ var form_gadget = this, hide_enabled;
- // render the erp5 form
- return form_gadget.getDeclaredGadget("erp5_form")
+
+ return RSVP.Queue()
+ .push(function () {
+ return RSVP.all([
+ form_gadget.getSetting('portal_type'),
+ form_gadget.getSetting('document_title'),
+ form_gadget.getSetting('parent_portal_type')
+ ]);
+ })
+ .push(function (result_list) {
+ // XXX Disable select and clipboard functionalities on migrated apps: 'uid'-workaround made for renderjs UI doesn't work on officejs
+ hide_enabled = result_list[0] !== "Web Page" || result_list[1] !== "Text Document" || result_list[2] !== "Web Page Module";
+ // render the erp5 form
+ return form_gadget.getDeclaredGadget("erp5_form");
+ })
.push(function (erp5_form) {
var form_options = form_gadget.state.erp5_form;
@@ -125,8 +139,8 @@
form_options.editable = form_gadget.state.editable;
// XXX Hardcoded for listbox's hide/configure functionalities
- form_options.form_definition.hide_enabled = true;
form_options.form_definition.configure_enabled = true;
+ form_options.form_definition.hide_enabled = hide_enabled;
// XXX not generic, fix later
if (form_gadget.state.extended_search) {
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference.xml b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference.xml
index f2c7b3e7d4debe1844060052de02c722dc8d63f6..edbd916c238362ca93a768fde32d2403418e7451 100644
--- a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference.xml
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference.xml
@@ -90,6 +90,11 @@
my_configuration_default_jio_document_page_gadget_url
my_configuration_stylesheet_url
my_configuration_wallpaper_url
+ my_configuration_header_jump_button
+ my_configuration_app_actions
+ my_configuration_app_allowed_sub_types
+ my_configuration_app_view_action_reference
+ my_configuration_hide_header_add_button
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_app_actions.xml b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_app_actions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..316f85c7c19c0a51e599df70ae6665948ea7bb48
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_app_actions.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ title
+
+
+
+ -
+
id
+ my_configuration_app_actions
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
field_id
+ my_lines_field
+
+ -
+
form_id
+ Base_viewFieldLibrary
+
+ -
+
title
+ App Actions
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_app_allowed_sub_types.xml b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_app_allowed_sub_types.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d0517552177d8112981113f7aec8b453ee6e1d8e
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_app_allowed_sub_types.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ title
+
+
+
+ -
+
id
+ my_configuration_app_allowed_sub_types
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
field_id
+ my_lines_field
+
+ -
+
form_id
+ Base_viewFieldLibrary
+
+ -
+
title
+ App Allowed Sub Types
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/HTMLPost_view/my_translated_validation_state_title.xml b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_app_view_action_reference.xml
similarity index 84%
rename from bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/HTMLPost_view/my_translated_validation_state_title.xml
rename to bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_app_view_action_reference.xml
index 438a289a63d608fba1fb8ac8afd2afde4d58fe51..0f5535f9cec97dae72f22b71871ddcc6a8d38e4b 100644
--- a/bt5/erp5_post/SkinTemplateItem/portal_skins/erp5_post/HTMLPost_view/my_translated_validation_state_title.xml
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_app_view_action_reference.xml
@@ -9,12 +9,14 @@
-
delegated_list
-
+
+ title
+
-
id
- my_translated_validation_state_title
+ my_configuration_app_view_action_reference
-
message_values
@@ -71,16 +73,20 @@
-
field_id
- my_translated_simulation_state_title
+ my_view_mode_reference
-
form_id
- Base_viewCRMFieldLibrary
+ Base_viewFieldLibrary
-
target
Click to edit the target
+ -
+
title
+ App View Action Reference
+
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_header_jump_button.xml b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_header_jump_button.xml
new file mode 100644
index 0000000000000000000000000000000000000000..da2db8f89ff75a42c60fd2becfda47a09f8a2f6b
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_header_jump_button.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ title
+
+
+
+ -
+
id
+ my_configuration_header_jump_button
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
field_id
+ my_checkbox
+
+ -
+
form_id
+ Base_viewFieldLibrary
+
+ -
+
title
+ Header Jump Button
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_hide_header_add_button.xml b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_hide_header_add_button.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cea14b0a202041371966eae657e6396ec7f36c7b
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs/WebSection_viewRenderJSPreference/my_configuration_hide_header_add_button.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+ -
+
delegated_list
+
+
+ title
+
+
+
+ -
+
id
+ my_configuration_hide_header_add_button
+
+ -
+
message_values
+
+
+ -
+
external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+
overrides
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
tales
+
+
+ -
+
field_id
+
+
+ -
+
form_id
+
+
+
+
+
+ -
+
values
+
+
+ -
+
field_id
+ my_checkbox
+
+ -
+
form_id
+ Base_viewFieldLibrary
+
+ -
+
title
+ Hide Header Add Button
+
+
+
+
+
+
+
+
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSection_renderDefaultPageAsGadget.py b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSection_renderDefaultPageAsGadget.py
index 893f9067f997c24b0017a689037b4a10a70a2e4e..a6e31778717c43f358c002d5cf3cfe0b926c5c3a 100644
--- a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSection_renderDefaultPageAsGadget.py
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSection_renderDefaultPageAsGadget.py
@@ -51,6 +51,11 @@ mapping_dict = {
"website_url_set": json.dumps(website_url_set),
"site_description": web_section.getLayoutProperty("description", default=""),
"site_keywords": web_section.getLayoutProperty("subject", default=""),
+ "app_view_reference": web_section.getLayoutProperty("configuration_app_view_action_reference", default=""),
+ "app_allowed_sub_types": web_section.getLayoutProperty("configuration_app_allowed_sub_types", default=""),
+ "header_jump_button": web_section.getLayoutProperty("configuration_header_jump_button", default=0),
+ "hide_header_add_button": web_section.getLayoutProperty("configuration_hide_header_add_button", default=0),
+ "app_actions": web_section.getLayoutProperty("configuration_app_actions", default=""),
}
configuration_manifest_url = web_section.getLayoutProperty("configuration_manifest_url", default=None)
diff --git a/product/ERP5/bootstrap/erp5_core/PathTemplateItem/portal_categories/action_type/object_jio_js_script.xml b/product/ERP5/bootstrap/erp5_core/PathTemplateItem/portal_categories/action_type/object_jio_js_script.xml
new file mode 100644
index 0000000000000000000000000000000000000000..424e26cc872253ab7b6891822d02ad8e157e8bc9
--- /dev/null
+++ b/product/ERP5/bootstrap/erp5_core/PathTemplateItem/portal_categories/action_type/object_jio_js_script.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+ -
+
_Add_portal_content_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Add_portal_folders_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Copy_or_Move_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Delete_objects_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+
_Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+ Owner
+
+
+
+ -
+
categories
+
+
+ action_type/object_jio_js_script
+
+
+
+ -
+
description
+
+
+
+
+ -
+
id
+ object_jio_js_script
+
+ -
+
portal_type
+ Category
+
+ -
+
title
+ object_jio_js_script
+
+
+
+
+
diff --git a/product/ERP5Type/Core/ActionInformation.py b/product/ERP5Type/Core/ActionInformation.py
index 1db697464a613570a9bf8d5acd867ef44ffa5dff..0312a8cc30bdae26dc08bba81efa75217836b2ae 100644
--- a/product/ERP5Type/Core/ActionInformation.py
+++ b/product/ERP5Type/Core/ActionInformation.py
@@ -188,8 +188,11 @@ class CacheableAction(object):
def cook(self, ec):
param_dict = self.param_dict.copy()
- action = self.action
- param_dict['url'] = action is not None and action(ec) or ''
- icon = self.icon
- param_dict['icon'] = icon is not None and icon(ec) or ''
+ try:
+ action = self.action
+ param_dict['url'] = action is not None and action(ec) or ''
+ icon = self.icon
+ param_dict['icon'] = icon is not None and icon(ec) or ''
+ except KeyError:
+ pass
return param_dict
diff --git a/tests/__init__.py b/tests/__init__.py
index 580935d622e98b70ce2b2f976a2339adbca29f28..cd4f9710a219c2011b30ecffa9ec9d4bf35b32fe 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -35,9 +35,9 @@ 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_hal_json_style/TestTemplateItem/portal_components/test.*.test*Hal*.py' % path) +
+ glob('%s/bt5/erp5_web_renderjs_ui_test/TestTemplateItem/portal_components/test.*.test*RJS*.py' % path) +
+ glob('%s/bt5/erp5_officejs_ui_test/TestTemplateItem/portal_components/test.*.test*OfficeJS*.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),