Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yusei Tahara
erp5
Commits
36d170b6
Commit
36d170b6
authored
May 25, 2016
by
Cédric Le Ninivin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_officejs: Text Editor Application use generic gadget when not viewing document
parent
27ef7772
Changes
19
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
838 additions
and
156 deletions
+838
-156
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_appcache.xml
...TemplateItem/web_page_module/gadget_officejs_appcache.xml
+20
-12
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_application_panel_html.html
...b_page_module/gadget_officejs_application_panel_html.html
+2
-2
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_application_panel_html.xml
...eb_page_module/gadget_officejs_application_panel_html.xml
+44
-7
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_application_panel_js.js
...m/web_page_module/gadget_officejs_application_panel_js.js
+27
-1
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_application_panel_js.xml
.../web_page_module/gadget_officejs_application_panel_js.xml
+41
-6
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_document_html.html
...b_page_module/gadget_officejs_page_add_document_html.html
+1
-1
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_document_html.xml
...eb_page_module/gadget_officejs_page_add_document_html.xml
+41
-6
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_document_js.js
...m/web_page_module/gadget_officejs_page_add_document_js.js
+18
-6
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_document_js.xml
.../web_page_module/gadget_officejs_page_add_document_js.xml
+41
-6
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_html.html
..._page_module/gadget_officejs_page_document_list_html.html
+1
-1
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_html.xml
...b_page_module/gadget_officejs_page_document_list_html.xml
+41
-6
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.js
.../web_page_module/gadget_officejs_page_document_list_js.js
+15
-6
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_document_list_js.xml
...web_page_module/gadget_officejs_page_document_list_js.xml
+41
-6
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.js
...b_page_module/gadget_officejs_page_jio_configurator_js.js
+44
-41
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_dav_configurator_js.js
...ge_module/gadget_officejs_page_jio_dav_configurator_js.js
+49
-42
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_router_js.js
...TemplateItem/web_page_module/gadget_officejs_router_js.js
+25
-1
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_router_html.html
..._page_module/gadget_officejs_text_editor_router_html.html
+22
-0
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_router_html.xml
...b_page_module/gadget_officejs_text_editor_router_html.xml
+359
-0
bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor.xml
...PathTemplateItem/web_site_module/officejs_text_editor.xml
+6
-6
No files found.
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_appcache.xml
View file @
36d170b6
...
...
@@ -63,6 +63,14 @@
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
contributor/person_module/1
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
...
...
@@ -130,17 +138,15 @@ renderjs.js\n
rsvp.js\n
gadget_officejs_header.html\n
gadget_officejs_jio.html\n
gadget_officejs_jio_web_page_view.html\n
gadget_officejs_page_add_text_document.html\n
gadget_officejs_page_add_document.html\n
gadget_officejs_page_jio_configurator.html\n
gadget_officejs_page_jio_dav_configurator.html\n
gadget_officejs_page_login.html\n
gadget_officejs_page_logout.html\n
gadget_officejs_page_share_webrtc_jio.html\n
gadget_officejs_page_sync.html\n
gadget_officejs_page_text_editor_list.html\n
gadget_officejs_router.html\n
gadget_officejs_text_editor_application_panel.html\n
gadget_officejs_page_document_list.html\n
gadget_officejs_application_panel.html\n
gadget_translation.html\n
gadget_officejs_webrtc_jio.html\n
gadget_officejs_widget_listbox.html\n
...
...
@@ -148,23 +154,25 @@ gadget_erp5_editor_panel.html\n
gadget_erp5_editor_panel.js\n
gadget_officejs_header.js\n
gadget_officejs_jio.js\n
gadget_officejs_jio_web_page_view.js\n
gadget_officejs_page_add_text_document.js\n
gadget_officejs_page_add_document.js\n
gadget_officejs_page_jio_configurator.js\n
gadget_officejs_page_jio_dav_configurator.js\n
gadget_officejs_page_login.js\n
gadget_officejs_page_logout.js\n
gadget_officejs_page_share_webrtc_jio.js\n
gadget_officejs_page_sync.js\n
gadget_officejs_page_
text_editor
_list.js\n
gadget_officejs_page_
document
_list.js\n
gadget_officejs_router.js\n
gadget_officejs_
text_editor_
application_panel.js\n
gadget_officejs_application_panel.js\n
gadget_translation.js\n
gadget_translation_data.js\n
gadget_officejs_webrtc_jio.js\n
gadget_officejs_widget_listbox.js\n
erp5_launcher.js\n
erp5_launcher.html\n
gadget_officejs_text_editor_router.html\n
gadget_officejs_jio_web_page_view.html\n
gadget_officejs_jio_web_page_view.js\n
rjsunsafe/gadget_ckeditor.js\n
rjsunsafe/gadget_ckeditor.html\n
NETWORK:\n
...
...
@@ -285,7 +293,7 @@ NETWORK:\n
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
<value>
<string>
supercedriclen
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -299,7 +307,7 @@ NETWORK:\n
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
49.23979.35291.18500
</string>
</value>
<value>
<string>
9
51.28225.30234.4522
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -317,7 +325,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>
14
56912025.89
</float>
<float>
14
64192136.06
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_
text_editor_
application_panel_html.html
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_application_panel_html.html
View file @
36d170b6
...
...
@@ -35,7 +35,7 @@
<script
id=
"panel-template-body"
type=
"text/x-handlebars-template"
>
<
div
class
=
"
ui-content
"
>
<
ul
data
-
role
=
"
listview
"
class
=
"
ui-listview
"
>
<
li
><
a
href
=
"
#page=
text_editor_list
"
data
-
i18n
=
"
Text Documents
"
>
Text
Documents
<
/a></
li
>
<
li
><
a
href
=
"
#page=
document_list
"
data
-
i18n
=
"
Document List
"
>
Document
List
<
/a></
li
>
<
li
><
a
href
=
"
#page=jio_configurator
"
data
-
i18n
=
"
Storage Configuration
"
>
Storage
Configuration
<
/a></
li
>
<
li
><
a
href
=
"
#page=sync
"
data
-
i18n
=
"
Synchronization
"
>
Synchronization
<
/a></
li
>
<
li
class
=
"
ui-last-child
"
><
a
href
=
"
#page=logout
"
data
-
i18n
=
"
Logout
"
>
Logout
<
/a></
li
>
...
...
@@ -44,7 +44,7 @@
</script>
<!-- custom script -->
<script
src=
"gadget_officejs_
text_editor_
application_panel.js"
type=
"text/javascript"
></script>
<script
src=
"gadget_officejs_application_panel.js"
type=
"text/javascript"
></script>
</head>
<body>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_
text_editor_
application_panel_html.xml
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_application_panel_html.xml
View file @
36d170b6
...
...
@@ -63,6 +63,14 @@
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
contributor/person_module/1
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
...
...
@@ -73,22 +81,51 @@
<key>
<string>
content_type
</string>
</key>
<value>
<string>
text/html
</string>
</value>
</item>
<item>
<key>
<string>
creators
</string>
</key>
<value>
<tuple>
<string>
cedric.le.ninivin
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
gadget_officejs_
text_editor_
application_panel.html
</string>
</value>
<value>
<string>
gadget_officejs_application_panel.html
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string>
Jio access
</string>
</value>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
gadget_officejs_
text_editor_
application_panel_html
</string>
</value>
<value>
<string>
gadget_officejs_application_panel_html
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
<value>
<string>
en
</string>
</value>
</item>
<item>
<key>
<string>
modification_date
</string>
</key>
<value>
<object>
<klass>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>
1455284352.46
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Page
</string>
</value>
...
...
@@ -101,7 +138,7 @@
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Text Editor
Application Panel Gadget
</string>
</value>
<value>
<string>
OfficeJS
Application Panel Gadget
</string>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
...
...
@@ -218,7 +255,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
cedric.le.ninivi
n
</string>
</value>
<value>
<string>
supercedricle
n
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -232,7 +269,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
47.12629.17894.5580
8
</string>
</value>
<value>
<string>
9
51.28216.64976.6336
8
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -250,7 +287,7 @@
</tuple>
<state>
<tuple>
<float>
14
48034490.12
</float>
<float>
14
64191586.4
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_
text_editor_
application_panel_js.js
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_application_panel_js.js
View file @
36d170b6
...
...
@@ -50,6 +50,10 @@
});
})
.
declareAcquiredMethod
(
'
getSetting
'
,
'
getSetting
'
)
.
declareAcquiredMethod
(
'
setSetting
'
,
'
setSetting
'
)
.
declareMethod
(
'
toggle
'
,
function
()
{
this
.
props
.
jelement
.
panel
(
"
toggle
"
);
})
...
...
@@ -59,7 +63,29 @@
})
.
declareMethod
(
'
render
'
,
function
()
{
return
;
// Extract configuration parameters stored in HTML
// XXX Will work only if top gadget...
var
gadget
=
this
,
element_list
=
gadget
.
props
.
element
.
querySelectorAll
(
"
[data-renderjs-configuration]
"
),
len
=
element_list
.
length
,
key
,
value
,
i
,
queue
=
new
RSVP
.
Queue
();
function
push
(
a
,
b
)
{
queue
.
push
(
function
()
{
return
gadget
.
setSetting
(
a
,
b
);
});
}
for
(
i
=
0
;
i
<
len
;
i
+=
1
)
{
key
=
element_list
[
i
].
getAttribute
(
'
data-renderjs-configuration
'
);
value
=
element_list
[
i
].
textContent
;
push
(
key
,
value
);
}
return
queue
;
})
/////////////////////////////////////////////////////////////////
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_
text_editor_
application_panel_js.xml
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_application_panel_js.xml
View file @
36d170b6
...
...
@@ -63,15 +63,31 @@
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
contributor/person_module/1
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
creators
</string>
</key>
<value>
<tuple>
<string>
cedric.le.ninivin
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
gadget_officejs_
text_editor_
application_panel.js
</string>
</value>
<value>
<string>
gadget_officejs_application_panel.js
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
...
...
@@ -81,12 +97,31 @@
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
gadget_officejs_
text_editor_
application_panel_js
</string>
</value>
<value>
<string>
gadget_officejs_application_panel_js
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
<value>
<string>
en
</string>
</value>
</item>
<item>
<key>
<string>
modification_date
</string>
</key>
<value>
<object>
<klass>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>
1455284352.49
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Script
</string>
</value>
...
...
@@ -99,7 +134,7 @@
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Text Editor
Application Panel Gadget JS
</string>
</value>
<value>
<string>
OfficeJS
Application Panel Gadget JS
</string>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
...
...
@@ -216,7 +251,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
<value>
<string>
supercedriclen
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -230,7 +265,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
46.4378.53544.28347
</string>
</value>
<value>
<string>
9
51.28200.51773.38570
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -248,7 +283,7 @@
</tuple>
<state>
<tuple>
<float>
14
46730020.92
</float>
<float>
14
64190613.09
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_
text_
document_html.html
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_document_html.html
View file @
36d170b6
...
...
@@ -9,7 +9,7 @@
<script
src=
"rsvp.js"
></script>
<script
src=
"renderjs.js"
></script>
<script
src=
"handlebars.js"
></script>
<script
src=
"gadget_officejs_page_add_
text_
document.js"
></script>
<script
src=
"gadget_officejs_page_add_document.js"
></script>
</head>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_
text_
document_html.xml
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_document_html.xml
View file @
36d170b6
...
...
@@ -63,6 +63,14 @@
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
contributor/person_module/1
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
...
...
@@ -73,9 +81,17 @@
<key>
<string>
content_type
</string>
</key>
<value>
<string>
text/html
</string>
</value>
</item>
<item>
<key>
<string>
creators
</string>
</key>
<value>
<tuple>
<string>
cedric.le.ninivin
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
gadget_officejs_page_add_
text_
document.html
</string>
</value>
<value>
<string>
gadget_officejs_page_add_document.html
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
...
...
@@ -85,7 +101,7 @@
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
gadget_officejs_page_add_
text_
document_html
</string>
</value>
<value>
<string>
gadget_officejs_page_add_document_html
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
...
...
@@ -93,6 +109,25 @@
<none/>
</value>
</item>
<item>
<key>
<string>
modification_date
</string>
</key>
<value>
<object>
<klass>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>
1455284351.46
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Page
</string>
</value>
...
...
@@ -105,7 +140,7 @@
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
OfficeJS Add
Text
Document
</string>
</value>
<value>
<string>
OfficeJS Add Document
</string>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
...
...
@@ -224,7 +259,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
cedric.le.ninivi
n
</string>
</value>
<value>
<string>
supercedricle
n
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -238,7 +273,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
45.18366.40175.43093
</string>
</value>
<value>
<string>
9
51.28177.1205.52650
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -256,7 +291,7 @@
</tuple>
<state>
<tuple>
<float>
14
40439606.24
</float>
<float>
14
64189188.67
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_
text_
document_js.js
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_document_js.js
View file @
36d170b6
...
...
@@ -18,14 +18,26 @@
.
declareAcquiredMethod
(
"
post
"
,
"
jio_post
"
)
.
declareAcquiredMethod
(
"
redirect
"
,
"
redirect
"
)
.
declareAcquiredMethod
(
"
updateHeader
"
,
"
updateHeader
"
)
.
declareAcquiredMethod
(
'
getSetting
'
,
'
getSetting
'
)
.
declareMethod
(
"
render
"
,
function
(
options
)
{
var
gadget
=
this
;
gadget
.
props
.
options
=
options
;
return
gadget
.
updateHeader
({
title
:
"
New Web Page
"
})
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
RSVP
.
all
([
gadget
.
getSetting
(
"
portal_type
"
),
gadget
.
getSetting
(
"
document_title
"
),
gadget
.
getSetting
(
"
parent_relative_url
"
)
]);
}).
push
(
function
(
answer_list
)
{
gadget
.
props
.
portal_type
=
answer_list
[
0
];
gadget
.
props
.
document_title
=
answer_list
[
1
];
gadget
.
props
.
parent_relative_url
=
answer_list
[
2
];
return
gadget
.
updateHeader
({
title
:
"
New
"
+
gadget
.
props
.
document_title
});
})
.
push
(
function
()
{
gadget
.
props
.
deferred
.
resolve
();
});
...
...
@@ -41,8 +53,8 @@
.
push
(
function
()
{
var
doc
=
{
// XXX Hardcoded
parent_relative_url
:
"
web_page_module
"
,
portal_type
:
"
Web Page
"
parent_relative_url
:
gadget
.
props
.
parent_relative_url
,
portal_type
:
gadget
.
props
.
portal_type
};
return
gadget
.
post
(
doc
);
})
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_
text_
document_js.xml
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_add_document_js.xml
View file @
36d170b6
...
...
@@ -63,15 +63,31 @@
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
contributor/person_module/1
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
creators
</string>
</key>
<value>
<tuple>
<string>
cedric.le.ninivin
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
gadget_officejs_page_add_
text_
document.js
</string>
</value>
<value>
<string>
gadget_officejs_page_add_document.js
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
...
...
@@ -81,7 +97,7 @@
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
gadget_officejs_page_add_
text_
document_js
</string>
</value>
<value>
<string>
gadget_officejs_page_add_document_js
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
...
...
@@ -89,6 +105,25 @@
<none/>
</value>
</item>
<item>
<key>
<string>
modification_date
</string>
</key>
<value>
<object>
<klass>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>
1455284351.49
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Script
</string>
</value>
...
...
@@ -101,7 +136,7 @@
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
OfficeJS Add
Text
Document JS
</string>
</value>
<value>
<string>
OfficeJS Add Document JS
</string>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
...
...
@@ -220,7 +255,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
cedric.le.ninivi
n
</string>
</value>
<value>
<string>
supercedricle
n
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -234,7 +269,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
45.34038.48545.63795
</string>
</value>
<value>
<string>
9
51.28187.42881.35293
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -252,7 +287,7 @@
</tuple>
<state>
<tuple>
<float>
14
43093586.17
</float>
<float>
14
64189839.22
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_
text_editor
_list_html.html
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_
document
_list_html.html
View file @
36d170b6
...
...
@@ -9,7 +9,7 @@
<script
src=
"rsvp.js"
></script>
<script
src=
"renderjs.js"
></script>
<script
src=
"gadget_officejs_page_
text_editor
_list.js"
></script>
<script
src=
"gadget_officejs_page_
document
_list.js"
></script>
</head>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_
text_editor
_list_html.xml
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_
document
_list_html.xml
View file @
36d170b6
...
...
@@ -63,6 +63,14 @@
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
contributor/person_module/1
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
...
...
@@ -73,9 +81,17 @@
<key>
<string>
content_type
</string>
</key>
<value>
<string>
text/html
</string>
</value>
</item>
<item>
<key>
<string>
creators
</string>
</key>
<value>
<tuple>
<string>
cedric.le.ninivin
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
gadget_officejs_page_
text_editor
_list.html
</string>
</value>
<value>
<string>
gadget_officejs_page_
document
_list.html
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
...
...
@@ -85,7 +101,7 @@
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
gadget_officejs_page_
text_editor
_list_html
</string>
</value>
<value>
<string>
gadget_officejs_page_
document
_list_html
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
...
...
@@ -93,6 +109,25 @@
<none/>
</value>
</item>
<item>
<key>
<string>
modification_date
</string>
</key>
<value>
<object>
<klass>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>
1455284352.14
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Page
</string>
</value>
...
...
@@ -105,7 +140,7 @@
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
OfficeJS
Text Editor
List
</string>
</value>
<value>
<string>
OfficeJS
Document
List
</string>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
...
...
@@ -224,7 +259,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
cedric.le.ninivi
n
</string>
</value>
<value>
<string>
supercedricle
n
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -238,7 +273,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
45.18323.23284.1450
</string>
</value>
<value>
<string>
9
51.28165.23904.20428
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -256,7 +291,7 @@
</tuple>
<state>
<tuple>
<float>
14
40439735.4
8
</float>
<float>
14
64188540.
8
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_
text_editor
_list_js.js
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_
document
_list_js.js
View file @
36d170b6
...
...
@@ -33,6 +33,7 @@
.
declareAcquiredMethod
(
"
translate
"
,
"
translate
"
)
.
declareAcquiredMethod
(
"
getUrlFor
"
,
"
getUrlFor
"
)
.
declareAcquiredMethod
(
"
updateHeader
"
,
"
updateHeader
"
)
.
declareAcquiredMethod
(
'
getSetting
'
,
'
getSetting
'
)
.
declareAcquiredMethod
(
"
jio_allDocs
"
,
"
jio_allDocs
"
)
.
allowPublicAcquisition
(
"
jio_allDocs
"
,
function
(
param_list
)
{
var
gadget
=
this
;
...
...
@@ -60,11 +61,19 @@
var
gadget
=
this
;
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
gadget
.
getUrlFor
({
page
:
"
add_text_document
"
});
return
RSVP
.
all
([
gadget
.
getSetting
(
"
portal_type
"
),
gadget
.
getSetting
(
"
document_title_plural
"
)
]);
})
.
push
(
function
(
answer_list
)
{
gadget
.
props
.
portal_type
=
answer_list
[
0
];
gadget
.
props
.
document_title_plural
=
answer_list
[
1
];
return
gadget
.
getUrlFor
({
page
:
"
add_document
"
});
})
.
push
(
function
(
url
)
{
return
gadget
.
updateHeader
({
title
:
"
Text Documents
"
,
title
:
gadget
.
props
.
document_title_plural
,
add_url
:
url
});
})
...
...
@@ -73,7 +82,7 @@
})
.
push
(
function
(
listbox
)
{
return
listbox
.
render
({
search_page
:
'
text_editor
_list
'
,
search_page
:
'
document
_list
'
,
search
:
options
.
search
,
column_list
:
[{
select
:
'
title
'
,
...
...
@@ -95,11 +104,11 @@
title
:
'
Modification Date
'
}],
query
:
{
query
:
'
portal_type:("
Web Page
")
'
,
query
:
'
portal_type:("
'
+
gadget
.
props
.
portal_type
+
'
")
'
,
select_list
:
[
'
title
'
,
'
reference
'
,
'
language
'
,
'
description
'
,
'
version
'
,
'
modification_date
'
],
limit
:
[
0
,
30
]
//sort_on: [["
date", "descending"]]
limit
:
[
0
,
30
]
,
sort_on
:
[[
"
modification_
date
"
,
"
descending
"
]]
}
});
});
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_
text_editor
_list_js.xml
→
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_
document
_list_js.xml
View file @
36d170b6
...
...
@@ -63,15 +63,31 @@
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
contributor/person_module/1
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
creators
</string>
</key>
<value>
<tuple>
<string>
cedric.le.ninivin
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
gadget_officejs_page_
text_editor
_list.js
</string>
</value>
<value>
<string>
gadget_officejs_page_
document
_list.js
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
...
...
@@ -81,7 +97,7 @@
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
gadget_officejs_page_
text_editor
_list_js
</string>
</value>
<value>
<string>
gadget_officejs_page_
document
_list_js
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
...
...
@@ -89,6 +105,25 @@
<none/>
</value>
</item>
<item>
<key>
<string>
modification_date
</string>
</key>
<value>
<object>
<klass>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>
1455284352.18
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Script
</string>
</value>
...
...
@@ -101,7 +136,7 @@
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
OfficeJS
Text Editor
List JS
</string>
</value>
<value>
<string>
OfficeJS
Document
List JS
</string>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
...
...
@@ -214,7 +249,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
cedric.le.ninivi
n
</string>
</value>
<value>
<string>
supercedricle
n
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -228,7 +263,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
45.58608.35906.7321
</string>
</value>
<value>
<string>
9
51.28163.54980.41130
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -246,7 +281,7 @@
</tuple>
<state>
<tuple>
<float>
14
42858189.31
</float>
<float>
14
64188897.32
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_configurator_js.js
View file @
36d170b6
...
...
@@ -5,48 +5,51 @@
"
use strict
"
;
function
setERP5Configuration
(
gadget
)
{
var
old_date
=
new
Date
(),
configuration
=
{};
// We are looking for documents modified in the past 3 month
old_date
=
new
Date
(
old_date
.
getFullYear
(),
old_date
.
getMonth
()
-
3
);
configuration
=
{
type
:
"
replicate
"
,
// XXX This drop the signature lists...
query
:
{
query
:
'
portal_type:"Web Page"
'
// XX Synchonizing the whole module is too much, here is a way to start quietly
// Supsended until modification_date is handled for synchronization
+
'
AND modification_date:>="
'
+
old_date
.
toISOString
()
+
'
"
'
,
limit
:
[
0
,
1234567890
]
},
use_remote_post
:
true
,
conflict_handling
:
1
,
check_local_modification
:
true
,
check_local_creation
:
true
,
check_local_deletion
:
false
,
check_remote_modification
:
true
,
check_remote_creation
:
true
,
check_remote_deletion
:
true
,
local_sub_storage
:
{
type
:
"
query
"
,
sub_storage
:
{
type
:
"
uuid
"
,
sub_storage
:
{
type
:
"
indexeddb
"
,
database
:
"
officejs-erp5
"
return
gadget
.
getSetting
(
"
portal_type
"
)
.
push
(
function
(
portal_type
)
{
var
old_date
=
new
Date
(),
configuration
=
{};
// We are looking for documents modified in the past 3 month
old_date
=
new
Date
(
old_date
.
getFullYear
(),
old_date
.
getMonth
()
-
3
);
configuration
=
{
type
:
"
replicate
"
,
// XXX This drop the signature lists...
query
:
{
query
:
'
portal_type:
'
+
portal_type
// XX Synchonizing the whole module is too much, here is a way to start quietly
// Supsended until modification_date is handled for synchronization
+
'
AND modification_date:>="
'
+
old_date
.
toISOString
()
+
'
"
'
,
limit
:
[
0
,
1234567890
]
},
use_remote_post
:
true
,
conflict_handling
:
1
,
check_local_modification
:
true
,
check_local_creation
:
true
,
check_local_deletion
:
false
,
check_remote_modification
:
true
,
check_remote_creation
:
true
,
check_remote_deletion
:
true
,
local_sub_storage
:
{
type
:
"
query
"
,
sub_storage
:
{
type
:
"
uuid
"
,
sub_storage
:
{
type
:
"
indexeddb
"
,
database
:
"
officejs-erp5
"
}
}
},
remote_sub_storage
:
{
type
:
"
erp5
"
,
url
:
(
new
URI
(
"
hateoas
"
))
.
absoluteTo
(
location
.
href
)
.
toString
(),
default_view_reference
:
"
jio_view
"
}
}
},
remote_sub_storage
:
{
type
:
"
erp5
"
,
url
:
(
new
URI
(
"
hateoas
"
))
.
absoluteTo
(
location
.
href
)
.
toString
(),
default_view_reference
:
"
jio_view
"
}
};
return
gadget
.
setSetting
(
'
jio_storage_description
'
,
configuration
)
};
return
gadget
.
setSetting
(
'
jio_storage_description
'
,
configuration
);
})
.
push
(
function
()
{
return
gadget
.
setSetting
(
'
jio_storage_name
'
,
"
ERP5
"
);
})
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_page_jio_dav_configurator_js.js
View file @
36d170b6
...
...
@@ -5,49 +5,56 @@
"
use strict
"
;
function
setjIODAVConfiguration
(
gadget
)
{
var
configuration
=
{
type
:
"
replicate
"
,
// XXX This drop the signature lists...
query
:
{
query
:
'
portal_type:"Web Page"
'
,
// XX Synchonizing the whole module is too much, here is a way to start quietly
//+ 'AND local_roles: ("Owner") '
//+ 'AND validation_state: ("draft", "released_alive", "shared_alive", "published_alive") ',
limit
:
[
0
,
1234567890
]
},
use_remote_post
:
false
,
conflict_handling
:
2
,
check_local_modification
:
true
,
check_local_creation
:
true
,
check_local_deletion
:
true
,
check_remote_modification
:
true
,
check_remote_creation
:
true
,
check_remote_deletion
:
true
,
local_sub_storage
:
{
type
:
"
query
"
,
sub_storage
:
{
type
:
"
uuid
"
,
sub_storage
:
{
type
:
"
indexeddb
"
,
database
:
"
officejs-dav
"
}
}
},
remote_sub_storage
:
{
type
:
"
query
"
,
sub_storage
:
{
type
:
"
drivetojiomapping
"
,
sub_storage
:
{
type
:
"
dav
"
,
url
:
gadget
.
props
.
element
.
querySelector
(
"
input[name='dav_url']
"
).
value
,
basic_login
:
btoa
(
gadget
.
props
.
element
.
querySelector
(
"
input[name='dav_username']
"
).
value
+
'
:
'
+
gadget
.
props
.
element
.
querySelector
(
"
input[name='dav_password']
"
).
value
),
with_credentials
:
true
return
gadget
.
getSetting
(
"
portal_type
"
)
.
push
(
function
(
portal_type
)
{
var
old_date
=
new
Date
(),
configuration
=
{};
// We are looking for documents modified in the past 3 month
old_date
=
new
Date
(
old_date
.
getFullYear
(),
old_date
.
getMonth
()
-
3
);
configuration
=
{
type
:
"
replicate
"
,
// XXX This drop the signature lists...
query
:
{
query
:
'
portal_type:"
'
+
portal_type
+
'
"
'
,
// XX Synchonizing the whole module is too much, here is a way to start quietly
//+ 'AND local_roles: ("Owner") '
//+ 'AND validation_state: ("draft", "released_alive", "shared_alive", "published_alive") ',
limit
:
[
0
,
1234567890
]
},
use_remote_post
:
false
,
conflict_handling
:
2
,
check_local_modification
:
true
,
check_local_creation
:
true
,
check_local_deletion
:
true
,
check_remote_modification
:
true
,
check_remote_creation
:
true
,
check_remote_deletion
:
true
,
local_sub_storage
:
{
type
:
"
query
"
,
sub_storage
:
{
type
:
"
uuid
"
,
sub_storage
:
{
type
:
"
indexeddb
"
,
database
:
"
officejs-dav
"
}
}
},
remote_sub_storage
:
{
type
:
"
query
"
,
sub_storage
:
{
type
:
"
drivetojiomapping
"
,
sub_storage
:
{
type
:
"
dav
"
,
url
:
gadget
.
props
.
element
.
querySelector
(
"
input[name='dav_url']
"
).
value
,
basic_login
:
btoa
(
gadget
.
props
.
element
.
querySelector
(
"
input[name='dav_username']
"
).
value
+
'
:
'
+
gadget
.
props
.
element
.
querySelector
(
"
input[name='dav_password']
"
).
value
),
with_credentials
:
true
}
}
}
}
}
};
return
gadget
.
setSetting
(
'
jio_storage_description
'
,
configuration
)
};
return
gadget
.
setSetting
(
'
jio_storage_description
'
,
configuration
);
})
.
push
(
function
()
{
return
gadget
.
setSetting
(
'
jio_storage_name
'
,
"
DAV
"
);
})
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_router_js.js
View file @
36d170b6
...
...
@@ -5,7 +5,7 @@
var
gadget_klass
=
rJS
(
window
),
MAIN_PAGE_PREFIX
=
"
gadget_officejs_
"
,
DEFAULT_PAGE
=
"
text_editor
_list
"
,
DEFAULT_PAGE
=
"
document
_list
"
,
REDIRECT_TIMEOUT
=
5000
;
function
listenHashChange
(
gadget
)
{
...
...
@@ -52,6 +52,10 @@
gadget
.
props
=
{
start_deferred
:
RSVP
.
defer
()
};
return
gadget
.
getElement
()
.
push
(
function
(
element
)
{
gadget
.
props
.
element
=
element
;
});
})
.
declareMethod
(
"
getCommandUrlFor
"
,
function
(
options
)
{
...
...
@@ -127,6 +131,26 @@
.
declareAcquiredMethod
(
'
jio_get
'
,
'
jio_get
'
)
.
declareAcquiredMethod
(
'
renderApplication
'
,
'
renderApplication
'
)
.
declareMethod
(
'
start
'
,
function
()
{
var
gadget
=
this
,
element_list
=
gadget
.
props
.
element
.
querySelectorAll
(
"
[data-renderjs-configuration]
"
),
len
=
element_list
.
length
,
key
,
value
,
i
,
queue
=
new
RSVP
.
Queue
();
function
push
(
a
,
b
)
{
queue
.
push
(
function
()
{
return
gadget
.
setSetting
(
a
,
b
);
});
}
for
(
i
=
0
;
i
<
len
;
i
+=
1
)
{
key
=
element_list
[
i
].
getAttribute
(
'
data-renderjs-configuration
'
);
value
=
element_list
[
i
].
textContent
;
push
(
key
,
value
);
}
this
.
props
.
start_deferred
.
resolve
();
})
.
declareService
(
function
()
{
...
...
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_router_html.html
0 → 100644
View file @
36d170b6
<!DOCTYPE html>
<html>
<head>
<meta
http-equiv=
"Content-type"
content=
"text/html; charset=utf-8"
/>
<meta
name=
"viewport"
content=
"width=device-width, user-scalable=no"
/>
<title>
OfficeJS Router Gadget
</title>
<!-- renderjs -->
<script
src=
"rsvp.js"
type=
"text/javascript"
></script>
<script
src=
"renderjs.js"
type=
"text/javascript"
></script>
<!-- custom script -->
<script
src=
"gadget_officejs_router.js"
type=
"text/javascript"
></script>
</head>
<body>
<script
data-renderjs-configuration=
"portal_type"
type=
"text/x-renderjs-configuration"
>
Web
Page
</script>
<script
data-renderjs-configuration=
"parent_relative_url"
type=
"text/x-renderjs-configuration"
>
web_page_module
</script>
<script
data-renderjs-configuration=
"document_title"
type=
"text/x-renderjs-configuration"
>
Text
Document
</script>
<script
data-renderjs-configuration=
"document_title_plural"
type=
"text/x-renderjs-configuration"
>
Text
Documents
</script>
</body>
</html>
\ No newline at end of file
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_text_editor_router_html.xml
0 → 100644
View file @
36d170b6
This diff is collapsed.
Click to expand it.
bt5/erp5_officejs/PathTemplateItem/web_site_module/officejs_text_editor.xml
View file @
36d170b6
...
...
@@ -437,11 +437,11 @@
</item>
<item>
<key>
<string>
configuration_panel_gadget_url
</string>
</key>
<value>
<string>
gadget_officejs_
text_editor_
application_panel.html
</string>
</value>
<value>
<string>
gadget_officejs_application_panel.html
</string>
</value>
</item>
<item>
<key>
<string>
configuration_router_gadget_url
</string>
</key>
<value>
<string>
gadget_officejs_router.html
</string>
</value>
<value>
<string>
gadget_officejs_
text_editor_
router.html
</string>
</value>
</item>
<item>
<key>
<string>
configuration_translation_gadget_url
</string>
</key>
...
...
@@ -481,7 +481,7 @@
</item>
<item>
<key>
<string>
layout_configuration_form_id
</string>
</key>
<value>
<string>
WebSection_view
Hateoas
Preference
</string>
</value>
<value>
<string>
WebSection_view
RenderJS
Preference
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
...
...
@@ -722,7 +722,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
cedric.le.ninivi
n
</string>
</value>
<value>
<string>
supercedricle
n
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -736,7 +736,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
95
0.31827.25865.2385
9
</string>
</value>
<value>
<string>
95
1.28218.17096.453
9
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -754,7 +754,7 @@
</tuple>
<state>
<tuple>
<float>
146
0563397.66
</float>
<float>
146
4191710.27
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment