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
Labels
Merge Requests
139
Merge Requests
139
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
Jobs
Commits
Open sidebar
nexedi
erp5
Commits
07fcb8d5
Commit
07fcb8d5
authored
Jun 17, 2024
by
Roque
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_web_monitoring: update opml portal type (and app impact)
parent
fc9ca479
Changes
30
Show whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
346 additions
and
1039 deletions
+346
-1039
bt5/erp5_web_monitoring/PathTemplateItem/portal_types/Opml/monitoring_view.xml
...ng/PathTemplateItem/portal_types/Opml/monitoring_view.xml
+1
-1
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.js
...web_page_module/gadget_erp5_page_ojsm_import_export_js.js
+8
-7
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.xml
...eb_page_module/gadget_erp5_page_ojsm_import_export_js.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_js.js
..._page_module/gadget_erp5_page_settings_configurator_js.js
+3
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.html
...m/web_page_module/gadget_officejs_jio_opml_view_html.html
+0
-29
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.xml
...em/web_page_module/gadget_officejs_jio_opml_view_html.xml
+0
-358
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.js
...eItem/web_page_module/gadget_officejs_jio_opml_view_js.js
+0
-246
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.xml
...Item/web_page_module/gadget_officejs_jio_opml_view_js.xml
+0
-358
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring.configuration.xml
..._page_module/gadget_officejs_monitoring.configuration.xml
+4
-4
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_opml_edit_js.js
...eb_page_module/gadget_officejs_monitoring_opml_edit_js.js
+17
-3
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_opml_edit_js.xml
...b_page_module/gadget_officejs_monitoring_opml_edit_js.xml
+6
-4
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.html
...b_page_module/gadget_officejs_monitoring_router_html.html
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.xml
...eb_page_module/gadget_officejs_monitoring_router_html.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/monitoring_jio_storage_js.js
...TemplateItem/web_page_module/monitoring_jio_storage_js.js
+5
-4
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/monitoring_jio_storage_js.xml
...emplateItem/web_page_module/monitoring_jio_storage_js.xml
+2
-2
bt5/erp5_web_monitoring/PortalTypeTemplateItem/portal_types/Opml.xml
...b_monitoring/PortalTypeTemplateItem/portal_types/Opml.xml
+1
-1
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring.xml
...rtal_skins/erp5_web_monitoring/Opml_viewForMonitoring.xml
+2
-1
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring/my_active.xml
.../erp5_web_monitoring/Opml_viewForMonitoring/my_active.xml
+0
-0
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring/my_password.xml
...rp5_web_monitoring/Opml_viewForMonitoring/my_password.xml
+0
-0
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring/my_slapos_master_url.xml
...onitoring/Opml_viewForMonitoring/my_slapos_master_url.xml
+284
-0
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring/my_title.xml
...s/erp5_web_monitoring/Opml_viewForMonitoring/my_title.xml
+0
-0
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring/my_translated_state.xml
...monitoring/Opml_viewForMonitoring/my_translated_state.xml
+0
-0
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring/my_url.xml
...ins/erp5_web_monitoring/Opml_viewForMonitoring/my_url.xml
+0
-0
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring/my_username.xml
...rp5_web_monitoring/Opml_viewForMonitoring/my_username.xml
+0
-0
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring/my_verify.xml
.../erp5_web_monitoring/Opml_viewForMonitoring/my_verify.xml
+0
-0
bt5/erp5_web_monitoring/bt/template_keep_last_workflow_history_only_path_list
...ing/bt/template_keep_last_workflow_history_only_path_list
+1
-3
bt5/erp5_web_monitoring/bt/template_keep_path_list
bt5/erp5_web_monitoring/bt/template_keep_path_list
+2
-2
bt5/erp5_web_monitoring/bt/template_keep_workflow_path_list
bt5/erp5_web_monitoring/bt/template_keep_workflow_path_list
+1
-3
bt5/erp5_web_monitoring/bt/template_path_list
bt5/erp5_web_monitoring/bt/template_path_list
+1
-3
bt5/erp5_web_monitoring/bt/template_portal_type_id_list
bt5/erp5_web_monitoring/bt/template_portal_type_id_list
+2
-2
No files found.
bt5/erp5_web_monitoring/PathTemplateItem/portal_types/
o
pml/monitoring_view.xml
→
bt5/erp5_web_monitoring/PathTemplateItem/portal_types/
O
pml/monitoring_view.xml
View file @
07fcb8d5
...
...
@@ -75,7 +75,7 @@
<dictionary>
<item>
<key>
<string>
text
</string>
</key>
<value>
<string>
string:${object_url}/
o
pml_viewForMonitoring
</string>
</value>
<value>
<string>
string:${object_url}/
O
pml_viewForMonitoring
</string>
</value>
</item>
</dictionary>
</pickle>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.js
View file @
07fcb8d5
...
...
@@ -5,6 +5,7 @@
URLSearchParams
)
{
"
use strict
"
;
var
OPML_PORTAL_TYPE
=
"
Opml
"
;
var
gadget_klass
=
rJS
(
window
),
templater
=
gadget_klass
.
__template_element
,
notify_msg_template
=
Handlebars
.
compile
(
...
...
@@ -19,8 +20,9 @@
function
getMonitorSetting
(
gadget
)
{
return
gadget
.
jio_allDocs
({
select_list
:
[
"
basic_login
"
,
"
url
"
,
"
title
"
,
"
active
"
,
"
state
"
],
query
:
'
(portal_type:"opml")
'
select_list
:
[
"
basic_login
"
,
"
url
"
,
"
title
"
,
"
active
"
,
"
state
"
,
"
slapos_master_url
"
],
query
:
'
(portal_type:"
'
+
OPML_PORTAL_TYPE
+
'
")
'
})
.
push
(
function
(
opml_result
)
{
var
i
,
...
...
@@ -194,7 +196,7 @@
title
:
configuration_dict
.
opml_description
[
i
].
title
,
url
:
configuration_dict
.
opml_description
[
i
].
href
,
active
:
configuration_dict
.
opml_description
[
i
].
active
,
portal_type
:
"
opml
"
,
portal_type
:
OPML_PORTAL_TYPE
,
has_monitor
:
configuration_dict
.
opml_description
[
i
]
.
href
.
startsWith
(
"
https://
"
),
state
:
configuration_dict
.
opml_description
[
i
].
state
||
"
Started
"
...
...
@@ -220,7 +222,7 @@
}
else
{
for
(
i
=
0
;
i
<
configuration_dict
.
opml_description_list
.
length
;
i
+=
1
)
{
item
=
configuration_dict
.
opml_description_list
[
i
];
item
.
portal_type
=
"
opml
"
;
item
.
portal_type
=
OPML_PORTAL_TYPE
;
cred_list
=
atob
(
item
.
basic_login
).
split
(
'
:
'
);
item
.
username
=
cred_list
[
0
];
item
.
password
=
cred_list
[
1
];
...
...
@@ -381,7 +383,7 @@
}
if
(
instance_tree_list
[
uid_dict
[
tmp_uid
]])
{
opml_list
.
push
({
portal_type
:
"
opml
"
,
portal_type
:
OPML_PORTAL_TYPE
,
title
:
instance_tree_list
[
uid_dict
[
tmp_uid
]]
.
title
,
relative_url
:
instance_tree_list
[
uid_dict
[
tmp_uid
]]
...
...
@@ -613,8 +615,7 @@
return
[];
})
.
push
(
function
(
opml_list
)
{
var
i
,
push_queue
=
new
RSVP
.
Queue
();
var
i
,
push_queue
=
new
RSVP
.
Queue
();
function
pushOPML
(
opml_dict
)
{
push_queue
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_ojsm_import_export_js.xml
View file @
07fcb8d5
...
...
@@ -260,7 +260,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
4.43844.29599.4367
3
</string>
</value>
<value>
<string>
101
7.21736.40219.184
3
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -280,7 +280,7 @@
</tuple>
<state>
<tuple>
<float>
17
08448979.03
</float>
<float>
17
18659745.0
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_erp5_page_settings_configurator_js.js
View file @
07fcb8d5
...
...
@@ -3,6 +3,7 @@
(
function
(
window
,
rJS
,
RSVP
,
Handlebars
)
{
"
use strict
"
;
var
OPML_PORTAL_TYPE
=
"
Opml
"
;
var
gadget_klass
=
rJS
(
window
),
templater
=
gadget_klass
.
__template_element
,
...
...
@@ -101,7 +102,7 @@
.
push
(
function
()
{
element
.
setAttribute
(
"
disabled
"
,
"
disabled
"
);
return
gadget
.
jio_allDocs
({
query
:
'
portal_type: "
opml
"
'
,
query
:
'
portal_type: "
'
+
OPML_PORTAL_TYPE
+
'
"
'
,
select_list
:
[
'
title
'
]
})
.
push
(
function
(
result
)
{
...
...
@@ -317,7 +318,7 @@
"
key
"
:
"
monitoring_setting_listbox
"
,
"
lines
"
:
20
,
"
list_method
"
:
"
portal_catalog
"
,
"
query
"
:
"
urn:jio:allDocs?query=portal_type%3A%22
opml
%22
"
,
"
query
"
:
"
urn:jio:allDocs?query=portal_type%3A%22
"
+
OPML_PORTAL_TYPE
+
"
%22
"
,
"
portal_type
"
:
[],
"
search_column_list
"
:
column_list
,
"
sort_column_list
"
:
column_list
,
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.html
deleted
100644 → 0
View file @
fc9ca479
<!doctype html>
<html>
<head>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1"
>
<title>
OfficeJS Jio Web Page View
</title>
<link
href=
"gadget_officejs_monitoring_custom.css"
rel=
"stylesheet"
type=
"text/css"
/>
<script
src=
"rsvp.js"
></script>
<script
src=
"renderjs.js"
></script>
<script
src=
"gadget_officejs_jio_opml_view.js"
></script>
</head>
<body>
<div
class=
"template-view"
></div>
<form
class=
"save_form ui-body-c"
novalidate
>
<button
type=
"submit"
class=
"ui-btn ui-btn-b ui-btn-inline
ui-icon-edit ui-btn-icon-right ui-screen-hidden"
></button>
<div
data-gadget-url=
"gadget_officejs_monitoring_opml_edit.html"
data-gadget-scope=
"opml_gadget"
data-gadget-sandbox=
"public"
></div>
<div
data-gadget-url=
"gadget_erp5_form.html"
data-gadget-scope=
"form_view"
data-gadget-sandbox=
"public"
>
</div>
</form>
</body>
</html>
\ No newline at end of file
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_html.xml
deleted
100644 → 0
View file @
fc9ca479
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Web Page"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_Access_contents_information_Permission
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
<string>
Owner
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Add_portal_content_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Change_local_roles_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Modify_portal_content_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_View_Permission
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
<string>
Owner
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
classification/collaborative/team
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
content_type
</string>
</key>
<value>
<string>
text/html
</string>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
gadget_officejs_jio_opml_view.html
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
gadget_officejs_jio_opml_view_html
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Page
</string>
</value>
</item>
<item>
<key>
<string>
short_title
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
OfficeJS Jio OPML View
</string>
</value>
</item>
<item>
<key>
<string>
url_string
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
001
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
document_publication_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
edit_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAQ=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
processing_status_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAU=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
publish_alive
</string>
</value>
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
error_message
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
time
</string>
</key>
<value>
<object>
<klass>
<global
name=
"_reconstructor"
module=
"copy_reg"
/>
</klass>
<tuple>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
<global
name=
"object"
module=
"__builtin__"
/>
<none/>
</tuple>
<state>
<tuple>
<float>
1506358065.91
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
published_alive
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"4"
aka=
"AAAAAAAAAAQ="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
edit
</string>
</value>
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
error_message
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
963.29465.32349.33501
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
<value>
<string>
current
</string>
</value>
</item>
<item>
<key>
<string>
time
</string>
</key>
<value>
<object>
<klass>
<global
name=
"_reconstructor"
module=
"copy_reg"
/>
</klass>
<tuple>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
<global
name=
"object"
module=
"__builtin__"
/>
<none/>
</tuple>
<state>
<tuple>
<float>
1510675412.13
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"5"
aka=
"AAAAAAAAAAU="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
detect_converted_file
</string>
</value>
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
error_message
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
external_processing_state
</string>
</key>
<value>
<string>
converted
</string>
</value>
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
0.0.0.0
</string>
</value>
</item>
<item>
<key>
<string>
time
</string>
</key>
<value>
<object>
<klass>
<global
name=
"_reconstructor"
module=
"copy_reg"
/>
</klass>
<tuple>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
<global
name=
"object"
module=
"__builtin__"
/>
<none/>
</tuple>
<state>
<tuple>
<float>
1506358032.88
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.js
deleted
100644 → 0
View file @
fc9ca479
/*global window, rJS, RSVP, Handlebars */
/*jslint nomen: true, indent: 2, maxerr: 3 */
(
function
(
window
,
rJS
,
RSVP
,
Rusha
)
{
"
use strict
"
;
var
rusha
=
new
Rusha
();
rJS
(
window
)
/////////////////////////////////////////////////////////////////
// Acquired methods
/////////////////////////////////////////////////////////////////
.
declareAcquiredMethod
(
"
updateHeader
"
,
"
updateHeader
"
)
.
declareAcquiredMethod
(
"
getUrlFor
"
,
"
getUrlFor
"
)
.
declareAcquiredMethod
(
"
notifySubmitting
"
,
"
notifySubmitting
"
)
.
declareAcquiredMethod
(
"
notifySubmitted
"
,
'
notifySubmitted
'
)
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
.
onEvent
(
'
submit
'
,
function
()
{
var
gadget
=
this
,
doc
,
opml_gadget
;
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
gadget
.
getDeclaredGadget
(
'
opml_gadget
'
);
})
.
push
(
function
(
g
)
{
opml_gadget
=
g
;
return
gadget
.
getDeclaredGadget
(
'
form_view
'
);
})
.
push
(
function
(
form_gadget
)
{
return
form_gadget
.
getContent
();
})
.
push
(
function
(
form_doc
)
{
doc
=
form_doc
;
if
(
doc
.
password
!==
gadget
.
state
.
password
)
{
// password was modified, update on backend
doc
.
new_password
=
doc
.
password
;
doc
.
confirm_new_password
=
doc
.
new_password
;
doc
.
password
=
gadget
.
state
.
password
;
doc
.
verify_password
=
1
;
}
else
{
doc
.
verify_password
=
(
doc
.
verify_password
===
"
on
"
)
?
1
:
0
;
}
return
opml_gadget
.
checkOPMLForm
(
doc
);
})
.
push
(
function
(
state
)
{
if
(
state
)
{
return
gadget
.
notifySubmitting
()
.
push
(
function
()
{
var
verify_opml
=
doc
.
title
===
""
||
doc
.
title
===
undefined
||
doc
.
verify_password
===
1
;
if
(
gadget
.
state
.
active
===
false
&&
doc
.
active
===
"
on
"
)
{
verify_opml
=
true
;
}
doc
.
title
=
gadget
.
state
.
opml_title
;
return
opml_gadget
.
saveOPML
(
doc
,
verify_opml
);
})
.
push
(
function
(
state
)
{
var
msg
=
{
message
:
'
Document Updated
'
,
status
:
'
success
'
};
if
(
!
state
.
status
)
{
msg
=
{
message
:
'
Document update failed
'
,
status
:
"
error
"
};
}
return
RSVP
.
all
([
gadget
.
notifySubmitted
(
msg
),
state
]);
})
.
push
(
function
(
result
)
{
if
(
result
[
1
].
status
)
{
return
gadget
.
changeState
({
"
password
"
:
doc
.
password
});
}
});
}
});
})
.
declareMethod
(
"
triggerSubmit
"
,
function
()
{
return
this
.
element
.
querySelector
(
'
button[type="submit"]
'
).
click
();
})
.
declareMethod
(
"
render
"
,
function
(
options
)
{
var
gadget
=
this
,
doc
=
options
.
doc
;
return
RSVP
.
Queue
()
.
push
(
function
()
{
return
gadget
.
changeState
({
"
opml_title
"
:
doc
.
title
||
""
,
"
opml_key
"
:
options
.
jio_key
,
"
password
"
:
doc
.
password
,
"
active
"
:
doc
.
active
});
})
.
push
(
function
()
{
return
RSVP
.
all
([
gadget
.
getDeclaredGadget
(
'
form_view
'
)
]);
})
.
push
(
function
(
result
)
{
return
result
[
0
].
render
({
erp5_document
:
{
"
_embedded
"
:
{
"
_view
"
:
{
"
my_title
"
:
{
"
description
"
:
"
The name of OPML
"
,
"
title
"
:
"
Title
"
,
"
default
"
:
doc
.
title
||
""
,
"
css_class
"
:
""
,
"
required
"
:
0
,
"
editable
"
:
0
,
"
key
"
:
"
title
"
,
"
hidden
"
:
doc
.
title
===
undefined
?
1
:
0
,
"
type
"
:
"
StringField
"
},
"
my_url
"
:
{
"
description
"
:
""
,
"
title
"
:
"
OPML URL
"
,
"
default
"
:
doc
.
url
||
options
.
url
||
""
,
"
css_class
"
:
""
,
"
required
"
:
1
,
"
editable
"
:
1
,
"
key
"
:
"
url
"
,
"
hidden
"
:
0
,
"
type
"
:
"
StringField
"
},
"
my_username
"
:
{
"
description
"
:
"
Username for access private URLs
"
,
"
title
"
:
"
Username
"
,
"
default
"
:
doc
.
username
||
""
,
"
css_class
"
:
""
,
"
required
"
:
1
,
"
editable
"
:
0
,
"
key
"
:
"
username
"
,
"
hidden
"
:
0
,
"
type
"
:
"
StringField
"
},
"
my_password
"
:
{
"
description
"
:
"
Password for access private URLs
"
,
"
title
"
:
"
Password
"
,
"
default
"
:
doc
.
password
||
""
,
"
css_class
"
:
""
,
"
required
"
:
1
,
"
editable
"
:
1
,
"
key
"
:
"
password
"
,
"
hidden
"
:
0
,
"
type
"
:
"
PasswordField
"
},
"
my_requested_state
"
:
{
"
description
"
:
"
Instance tree state
"
,
"
title
"
:
"
Requested State
"
,
"
default
"
:
doc
.
state
||
(
doc
.
active
?
"
Started
"
:
"
Stopped
"
),
"
css_class
"
:
""
,
"
required
"
:
1
,
"
editable
"
:
0
,
"
key
"
:
"
state
"
,
"
hidden
"
:
0
,
"
type
"
:
"
StringField
"
},
"
my_active
"
:
{
"
description
"
:
"
Sync this opml or not
"
,
"
title
"
:
"
Active (Enable Sync)
"
,
"
default
"
:
doc
.
active
||
doc
.
active
===
undefined
?
1
:
0
,
"
css_class
"
:
""
,
"
required
"
:
1
,
"
editable
"
:
1
,
"
key
"
:
"
active
"
,
"
hidden
"
:
0
,
"
type
"
:
"
CheckBoxField
"
},
"
my_new_password
"
:
{
"
description
"
:
"
Change current OPML password
"
,
"
title
"
:
"
New Password
"
,
"
default
"
:
""
,
"
css_class
"
:
""
,
"
required
"
:
1
,
"
editable
"
:
1
,
"
key
"
:
"
new_password
"
,
"
hidden
"
:
1
,
"
type
"
:
"
PasswordField
"
},
"
my_verify_password
"
:
{
"
description
"
:
"
Check if this OPML is valid, and also verify that password match
"
,
"
title
"
:
"
Verify OPML & Password
"
,
"
default
"
:
0
,
"
css_class
"
:
""
,
"
required
"
:
1
,
"
editable
"
:
1
,
"
key
"
:
"
verify_password
"
,
"
hidden
"
:
0
,
"
type
"
:
"
CheckBoxField
"
}
}},
"
_links
"
:
{
"
type
"
:
{
// form_list display portal_type in header
name
:
""
}
}
},
form_definition
:
{
group_list
:
[[
"
left
"
,
[[
"
my_title
"
],
[
"
my_url
"
],
[
"
my_username
"
],
[
"
my_password
"
],
[
"
my_requested_state
"
],
[
"
my_active
"
],
[
"
my_verify_password
"
],
[
"
my_new_password
"
]]
]]
}
});
})
.
push
(
function
()
{
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
var
hosting_key
=
rusha
.
digestFromString
(
gadget
.
state
.
opml_key
);
return
RSVP
.
all
([
gadget
.
getUrlFor
({
command
:
'
history_previous
'
}),
gadget
.
getUrlFor
({
command
:
'
selection_previous
'
}),
gadget
.
getUrlFor
({
command
:
'
selection_next
'
}),
gadget
.
getUrlFor
({
command
:
'
push_history
'
,
options
:
{
page
:
"
ojsm_jump
"
,
jio_key
:
hosting_key
,
title
:
gadget
.
state
.
opml_title
,
view_title
:
"
Related Instance Tree
"
}}),
gadget
.
getUrlFor
({
command
:
'
change
'
,
options
:
{
page
:
'
ojsm_opml_delete
'
,
jio_key
:
gadget
.
state
.
opml_key
,
return_url
:
'
settings_configurator
'
}})
]);
})
.
push
(
function
(
url_list
)
{
return
gadget
.
updateHeader
({
page_title
:
options
.
doc
.
title
||
"
OPML View
"
,
selection_url
:
url_list
[
0
],
previous_url
:
url_list
[
1
],
next_url
:
url_list
[
2
],
jump_url
:
url_list
[
3
],
delete_url
:
url_list
[
4
],
save_action
:
true
});
});
});
});
}(
window
,
rJS
,
RSVP
,
Rusha
));
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_jio_opml_view_js.xml
deleted
100644 → 0
View file @
fc9ca479
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Web Script"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_Access_contents_information_Permission
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
<string>
Owner
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Add_portal_content_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Change_local_roles_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Modify_portal_content_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_View_Permission
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
<string>
Owner
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
classification/collaborative/public
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
content_md5
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
content_type
</string>
</key>
<value>
<string>
text/javascript
</string>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
gadget_officejs_jio_opml_view.js
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
gadget_officejs_jio_opml_view_js
</string>
</value>
</item>
<item>
<key>
<string>
language
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Script
</string>
</value>
</item>
<item>
<key>
<string>
short_title
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
OfficeJS Jio Monitoring OPML view JS
</string>
</value>
</item>
<item>
<key>
<string>
url_string
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
001
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
document_publication_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
edit_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAQ=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
processing_status_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAU=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
publish_alive
</string>
</value>
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
error_message
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
time
</string>
</key>
<value>
<object>
<klass>
<global
name=
"_reconstructor"
module=
"copy_reg"
/>
</klass>
<tuple>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
<global
name=
"object"
module=
"__builtin__"
/>
<none/>
</tuple>
<state>
<tuple>
<float>
1507911358.15
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
published_alive
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"4"
aka=
"AAAAAAAAAAQ="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
edit
</string>
</value>
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
error_message
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
971.63925.15236.1962
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
<value>
<string>
current
</string>
</value>
</item>
<item>
<key>
<string>
time
</string>
</key>
<value>
<object>
<klass>
<global
name=
"_reconstructor"
module=
"copy_reg"
/>
</klass>
<tuple>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
<global
name=
"object"
module=
"__builtin__"
/>
<none/>
</tuple>
<state>
<tuple>
<float>
1543595657.95
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"5"
aka=
"AAAAAAAAAAU="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
detect_converted_file
</string>
</value>
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
error_message
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
external_processing_state
</string>
</key>
<value>
<string>
converted
</string>
</value>
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
0.0.0.0
</string>
</value>
</item>
<item>
<key>
<string>
time
</string>
</key>
<value>
<object>
<klass>
<global
name=
"_reconstructor"
module=
"copy_reg"
/>
</klass>
<tuple>
<global
name=
"DateTime"
module=
"DateTime.DateTime"
/>
<global
name=
"object"
module=
"__builtin__"
/>
<none/>
</tuple>
<state>
<tuple>
<float>
1506357952.51
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring.configuration.xml
View file @
07fcb8d5
...
...
@@ -87,7 +87,7 @@
<item>
<key>
<string>
text_content
</string>
</key>
<value>
<string>
CONFIGURATION MANIFEST\n
# generated on
Fri May 24 14:46:38
2024\n
# generated on
Mon Jun 3 13:55:24
2024\n
CACHE:\n
\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1NvZnR3YXJlIEluc3RhbmNl\n
...
...
@@ -97,9 +97,9 @@ hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1NvZnR3YXJlIEluc3RhbmNlL21vbml
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3JpbmcvU29mdHdhcmVJbnN0YW5jZV92aWV3Rm9yTW9uaXRvcmluZ1Jlc291cmNlcw==\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1NvZnR3YXJlIEluc3RhbmNlL21vbml0b3JpbmdfcHJvY2Vzc2VzX3ZpZXc=\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3JpbmcvU29mdHdhcmVJbnN0YW5jZV92aWV3Rm9yTW9uaXRvcmluZ1Byb2Nlc3Nlcw==\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL
2
9wbWw=\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL
2
9wbWwvbW9uaXRvcmluZ192aWV3\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3Jpbmcv
b
3BtbF92aWV3Rm9yTW9uaXRvcmluZw==\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL
0
9wbWw=\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL
0
9wbWwvbW9uaXRvcmluZ192aWV3\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3Jpbmcv
T
3BtbF92aWV3Rm9yTW9uaXRvcmluZw==\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL0luc3RhbmNlIFRyZWU=\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL0luc3RhbmNlIFRyZWUvbW9uaXRvcmluZ192aWV3\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3JpbmcvSW5zdGFuY2VUcmVlX3ZpZXdGb3JNb25pdG9yaW5n\n
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_opml_edit_js.js
View file @
07fcb8d5
...
...
@@ -3,6 +3,7 @@
(
function
(
window
,
rJS
,
RSVP
,
btoa
,
XMLHttpRequest
,
Handlebars
,
jIO
)
{
"
use strict
"
;
var
OPML_PORTAL_TYPE
=
"
Opml
"
;
var
gadget_klass
=
rJS
(
window
),
templater
=
gadget_klass
.
__template_element
,
notify_msg_template
=
Handlebars
.
compile
(
...
...
@@ -139,9 +140,9 @@
function
saveOPML
(
gadget
,
doc
,
verify_password
)
{
var
opml_dict
=
{
type
:
"
opml
"
,
type
:
OPML_PORTAL_TYPE
,
title
:
doc
.
title
,
portal_type
:
"
opml
"
,
portal_type
:
OPML_PORTAL_TYPE
,
url
:
doc
.
url
,
basic_login
:
btoa
(
doc
.
username
+
'
:
'
+
doc
.
password
),
username
:
doc
.
username
,
...
...
@@ -151,7 +152,12 @@
state
:
doc
.
state
||
(
doc
.
active
===
"
on
"
?
"
Started
"
:
"
Stopped
"
)
},
update_password_list
=
[],
allow_force
=
false
;
allow_force
=
false
,
return_dict
;
if
(
doc
.
slapos_master_url
&&
doc
.
slapos_master_url
!==
undefined
&&
doc
.
slapos_master_url
!==
""
)
{
opml_dict
.
slapos_master_url
=
doc
.
slapos_master_url
;
}
gadget
.
state
.
message
.
textContent
=
""
;
function
validateOPML
()
{
...
...
@@ -328,6 +334,13 @@
});
}
return
{
status
:
status
,
can_force
:
allow_force
};
})
.
push
(
function
(
dict
)
{
return_dict
=
dict
;
return
gadget
.
setSetting
(
"
latest_import_date
"
,
new
Date
().
getTime
());
})
.
push
(
function
(
dict
)
{
return
return_dict
;
});
}
...
...
@@ -359,6 +372,7 @@
// Acquired methods
/////////////////////////////////////////////////////////////////
.
declareAcquiredMethod
(
"
getSetting
"
,
"
getSetting
"
)
.
declareAcquiredMethod
(
"
setSetting
"
,
"
setSetting
"
)
.
declareAcquiredMethod
(
"
redirect
"
,
"
redirect
"
)
.
declareAcquiredMethod
(
"
jio_put
"
,
"
jio_put
"
)
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_opml_edit_js.xml
View file @
07fcb8d5
...
...
@@ -79,7 +79,9 @@
</item>
<item>
<key>
<string>
content_type
</string>
</key>
<value>
<string>
text/javascript
</string>
</value>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
...
...
@@ -236,7 +238,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<
string>
zope
</string
>
</value>
<value>
<
unicode>
zope
</unicode
>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -250,7 +252,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
971.63860.22689.21760
</string>
</value>
<value>
<string>
1016.62588.18488.24661
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -270,7 +272,7 @@
</tuple>
<state>
<tuple>
<float>
1
543593317.26
</float>
<float>
1
717178789.09
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.html
View file @
07fcb8d5
...
...
@@ -25,7 +25,7 @@
<!-- new router -->
<script
data-renderjs-configuration=
"portal_skin_folder"
type=
"text/x-renderjs-configuration"
>
erp5_web_monitoring
</script>
<script
data-renderjs-configuration=
"app_view_reference"
type=
"text/x-renderjs-configuration"
>
monitoring_view
</script>
<script
data-renderjs-configuration=
"app_actions"
type=
"text/x-renderjs-configuration"
>
(
'
Software Instance | monitoring_view
'
,
'
Software Instance | monitoring_resources_view
'
,
'
Software Instance | monitoring_processes_view
'
,
'
Software Instance Module | monitoring_view
'
,
'
Instance Tree | monitoring_view
'
,
'
Instance Tree Module | monitoring_view
'
,
'
Promise Module | monitoring_view
'
,
'
Promise | monitoring_view
'
,
'
o
pml | monitoring_view
'
)
</script>
<script
data-renderjs-configuration=
"app_actions"
type=
"text/x-renderjs-configuration"
>
(
'
Software Instance | monitoring_view
'
,
'
Software Instance | monitoring_resources_view
'
,
'
Software Instance | monitoring_processes_view
'
,
'
Software Instance Module | monitoring_view
'
,
'
Instance Tree | monitoring_view
'
,
'
Instance Tree Module | monitoring_view
'
,
'
Promise Module | monitoring_view
'
,
'
Promise | monitoring_view
'
,
'
O
pml | monitoring_view
'
)
</script>
<script
data-renderjs-configuration=
"app_allowed_sub_types"
type=
"text/x-renderjs-configuration"
>
(
'
Software Instance Module | Software Instance
'
,
'
Instance Tree Module | Instance Tree
'
,
'
Software Instance | Promise
'
)
</script>
<script
data-renderjs-configuration=
"app_configurator"
type=
"text/x-renderjs-configuration"
>
ojsm_import_export
</script>
<script
data-renderjs-configuration=
"software_instance_module_dict"
type=
"text/x-renderjs-configuration"
>
{
"
front_page
"
:
1
,
"
upload_button
"
:
0
,
"
download_button
"
:
0
,
"
editable
"
:
0
,
"
hide_add_button
"
:
1
,
"
jump_button
"
:
0
,
"
fast_input_button
"
:
0
,
"
export_button
"
:
0
,
"
filter_action
"
:
1
,
"
panel_action
"
:
1
,
"
previous_next_button
"
:
0
,
"
history_previous_link
"
:
0
,
"
title
"
:
"
Software Instances Status
"
,
"
hide_listbox_buttons
"
:
1
,
"
blob_type
"
:
""
,
"
blob_create_object_url
"
:
0
}
</script>
...
...
@@ -34,6 +34,6 @@
<script
data-renderjs-configuration=
"instance_tree_dict"
type=
"text/x-renderjs-configuration"
>
{
"
front_page
"
:
0
,
"
upload_button
"
:
0
,
"
download_button
"
:
0
,
"
editable
"
:
0
,
"
hide_add_button
"
:
1
,
"
jump_button
"
:
0
,
"
fast_input_button
"
:
0
,
"
export_button
"
:
0
,
"
filter_action
"
:
0
,
"
panel_action
"
:
1
,
"
previous_next_button
"
:
1
,
"
history_previous_link
"
:
1
,
"
title
"
:
"
Instance Tree:
"
,
"
hide_listbox_buttons
"
:
1
,
"
blob_type
"
:
""
,
"
blob_create_object_url
"
:
0
,
"
custom_header
"
:
"
gadget_officejs_monitoring_options_header.html
"
,
"
view
"
:
"
instance_tree
"
,
"
custom_submit
"
:
"
gadget_officejs_monitoring_submit.html
"
}
</script>
<script
data-renderjs-configuration=
"promise_module_dict"
type=
"text/x-renderjs-configuration"
>
{
"
front_page
"
:
1
,
"
upload_button
"
:
0
,
"
download_button
"
:
0
,
"
editable
"
:
0
,
"
hide_add_button
"
:
1
,
"
jump_button
"
:
0
,
"
fast_input_button
"
:
0
,
"
export_button
"
:
0
,
"
filter_action
"
:
1
,
"
panel_action
"
:
1
,
"
previous_next_button
"
:
0
,
"
history_previous_link
"
:
0
,
"
title
"
:
"
Monitoring Promises Status
"
,
"
hide_listbox_buttons
"
:
1
,
"
blob_type
"
:
""
,
"
blob_create_object_url
"
:
0
}
</script>
<script
data-renderjs-configuration=
"promise_dict"
type=
"text/x-renderjs-configuration"
>
{
"
front_page
"
:
0
,
"
upload_button
"
:
0
,
"
download_button
"
:
0
,
"
editable
"
:
0
,
"
hide_add_button
"
:
1
,
"
jump_button
"
:
0
,
"
fast_input_button
"
:
0
,
"
export_button
"
:
0
,
"
filter_action
"
:
0
,
"
panel_action
"
:
1
,
"
previous_next_button
"
:
1
,
"
history_previous_link
"
:
1
,
"
title
"
:
"
Promise:
"
,
"
hide_listbox_buttons
"
:
1
,
"
blob_type
"
:
""
,
"
blob_create_object_url
"
:
0
,
"
custom_header
"
:
"
gadget_officejs_monitoring_options_header.html
"
,
"
view
"
:
"
promise
"
,
"
custom_submit
"
:
"
gadget_officejs_monitoring_submit.html
"
}
</script>
<script
data-renderjs-configuration=
"opml_dict"
type=
"text/x-renderjs-configuration"
>
{
"
front_page
"
:
0
,
"
upload_button
"
:
0
,
"
download_button
"
:
0
,
"
editable
"
:
0
,
"
hide_add_button
"
:
1
,
"
jump_button
"
:
0
,
"
fast_input_button
"
:
0
,
"
export_button
"
:
0
,
"
filter_action
"
:
0
,
"
panel_action
"
:
1
,
"
previous_next_button
"
:
1
,
"
history_previous_link
"
:
1
,
"
hide_listbox_buttons
"
:
1
,
"
blob_type
"
:
""
,
"
blob_create_object_url
"
:
0
,
"
custom_header
"
:
"
gadget_officejs_monitoring_options_header.html
"
,
"
view
"
:
"
opml
"
}
</script>
<script
data-renderjs-configuration=
"opml_dict"
type=
"text/x-renderjs-configuration"
>
{
"
front_page
"
:
0
,
"
upload_button
"
:
0
,
"
download_button
"
:
0
,
"
editable
"
:
0
,
"
hide_add_button
"
:
1
,
"
jump_button
"
:
0
,
"
fast_input_button
"
:
0
,
"
export_button
"
:
0
,
"
filter_action
"
:
0
,
"
panel_action
"
:
1
,
"
previous_next_button
"
:
1
,
"
history_previous_link
"
:
1
,
"
hide_listbox_buttons
"
:
1
,
"
blob_type
"
:
""
,
"
blob_create_object_url
"
:
0
,
"
custom_header
"
:
"
gadget_officejs_monitoring_options_header.html
"
,
"
view
"
:
"
opml
"
,
"
custom_submit
"
:
"
gadget_officejs_monitoring_submit.html
"
}
</script>
</body>
</html>
\ No newline at end of file
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_officejs_monitoring_router_html.xml
View file @
07fcb8d5
...
...
@@ -265,7 +265,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
1016.
14833.52348.59392
</string>
</value>
<value>
<string>
1016.
62603.53500.56064
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -285,7 +285,7 @@
</tuple>
<state>
<tuple>
<float>
171
4498936.34
</float>
<float>
171
7428289.21
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/monitoring_jio_storage_js.js
View file @
07fcb8d5
...
...
@@ -35,6 +35,7 @@
PROMISE_TYPE
=
"
Promise
"
,
SOFTWARE_INSTANCE_TYPE
=
"
Software Instance
"
,
INSTANCE_TREE_TYPE
=
"
Instance Tree
"
,
OPML_PORTAL_TYPE
=
"
Opml
"
,
ZONE_LIST
=
[
"
-1200
"
,
"
-1100
"
,
...
...
@@ -154,7 +155,7 @@
var
storage
=
this
.
_local_sub_storage
;
return
storage
.
get
(
id
)
.
push
(
function
(
doc
)
{
if
(
doc
.
portal_type
!==
'
opml
'
)
{
if
(
doc
.
portal_type
!==
OPML_PORTAL_TYPE
)
{
return
storage
.
remove
(
id
);
}
function
removeOPMLTree
(
url
)
{
...
...
@@ -809,7 +810,7 @@
function
syncOpmlStorage
(
context
)
{
return
context
.
_local_sub_storage
.
allDocs
({
query
:
'
(portal_type:"
opml
") AND (active:true) AND (url:"https://%")
'
,
query
:
'
(portal_type:"
'
+
OPML_PORTAL_TYPE
+
'
") AND (active:true) AND (url:"https://%")
'
,
select_list
:
[
"
title
"
,
"
url
"
,
"
basic_login
"
]
})
.
push
(
function
(
storage_result
)
{
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/monitoring_jio_storage_js.xml
View file @
07fcb8d5
...
...
@@ -249,7 +249,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
101
5.32774.1126.37956
</string>
</value>
<value>
<string>
101
7.22812.19597.42137
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -269,7 +269,7 @@
</tuple>
<state>
<tuple>
<float>
171
2157668.63
</float>
<float>
171
8724260.35
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PortalTypeTemplateItem/portal_types/
o
pml.xml
→
bt5/erp5_web_monitoring/PortalTypeTemplateItem/portal_types/
O
pml.xml
View file @
07fcb8d5
...
...
@@ -24,7 +24,7 @@
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
o
pml
</string>
</value>
<value>
<string>
O
pml
</string>
</value>
</item>
<item>
<key>
<string>
init_script
</string>
</key>
...
...
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
o
pml_viewForMonitoring.xml
→
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
O
pml_viewForMonitoring.xml
View file @
07fcb8d5
...
...
@@ -105,6 +105,7 @@
<string>
my_url
</string>
<string>
my_username
</string>
<string>
my_password
</string>
<string>
my_slapos_master_url
</string>
<string>
my_active
</string>
<string>
my_verify
</string>
<string>
my_translated_state
</string>
...
...
@@ -122,7 +123,7 @@
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
o
pml_viewForMonitoring
</string>
</value>
<value>
<string>
O
pml_viewForMonitoring
</string>
</value>
</item>
<item>
<key>
<string>
method
</string>
</key>
...
...
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
o
pml_viewForMonitoring/my_active.xml
→
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
O
pml_viewForMonitoring/my_active.xml
View file @
07fcb8d5
File moved
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
o
pml_viewForMonitoring/my_password.xml
→
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
O
pml_viewForMonitoring/my_password.xml
View file @
07fcb8d5
File moved
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/Opml_viewForMonitoring/my_slapos_master_url.xml
0 → 100644
View file @
07fcb8d5
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"StringField"
module=
"Products.Formulator.StandardFields"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
my_slapos_master_url
</string>
</value>
</item>
<item>
<key>
<string>
message_values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
external_validator_failed
</string>
</key>
<value>
<string>
The input failed the external validator.
</string>
</value>
</item>
<item>
<key>
<string>
required_not_found
</string>
</key>
<value>
<string>
Input is required but no input given.
</string>
</value>
</item>
<item>
<key>
<string>
too_long
</string>
</key>
<value>
<string>
Too much input was given.
</string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
overrides
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
alternate_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
autocomplete
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_maxwidth
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_width
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
editable
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
enabled
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
external_validator
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
input_type
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
max_length
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
required
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
truncate
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
unicode
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
whitespace_preserve
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
tales
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
alternate_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
autocomplete
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_maxwidth
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_width
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
editable
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
enabled
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
external_validator
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
input_type
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
max_length
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
required
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
truncate
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
unicode
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
whitespace_preserve
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
alternate_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
autocomplete
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string>
not provided
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_maxwidth
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_width
</string>
</key>
<value>
<int>
20
</int>
</value>
</item>
<item>
<key>
<string>
editable
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
<item>
<key>
<string>
enabled
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
<item>
<key>
<string>
external_validator
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
input_type
</string>
</key>
<value>
<string>
text
</string>
</value>
</item>
<item>
<key>
<string>
max_length
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
required
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Slapos master URL
</string>
</value>
</item>
<item>
<key>
<string>
truncate
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
unicode
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
whitespace_preserve
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
o
pml_viewForMonitoring/my_title.xml
→
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
O
pml_viewForMonitoring/my_title.xml
View file @
07fcb8d5
File moved
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
o
pml_viewForMonitoring/my_translated_state.xml
→
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
O
pml_viewForMonitoring/my_translated_state.xml
View file @
07fcb8d5
File moved
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
o
pml_viewForMonitoring/my_url.xml
→
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
O
pml_viewForMonitoring/my_url.xml
View file @
07fcb8d5
File moved
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
o
pml_viewForMonitoring/my_username.xml
→
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
O
pml_viewForMonitoring/my_username.xml
View file @
07fcb8d5
File moved
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
o
pml_viewForMonitoring/my_verify.xml
→
bt5/erp5_web_monitoring/SkinTemplateItem/portal_skins/erp5_web_monitoring/
O
pml_viewForMonitoring/my_verify.xml
View file @
07fcb8d5
File moved
bt5/erp5_web_monitoring/bt/template_keep_last_workflow_history_only_path_list
View file @
07fcb8d5
image_module/gadget_officejs_appstore_rapid_spage
portal_types/Instance Tree Module/monitoring_view
portal_types/Instance Tree/monitoring_view
portal_types/Opml/monitoring_view
portal_types/Promise Module/monitoring_view
portal_types/Promise/monitoring_view
portal_types/Software Instance Module/monitoring_view
portal_types/Software Instance/monitoring_processes_view
portal_types/Software Instance/monitoring_resources_view
portal_types/Software Instance/monitoring_view
portal_types/opml/monitoring_view
web_page_module/gadget_erp5_field_status_*
web_page_module/gadget_erp5_page_ojsm_*
web_page_module/gadget_erp5_page_settings_configurator_*
web_page_module/gadget_officejs_jio_opml_view_html
web_page_module/gadget_officejs_jio_opml_view_js
web_page_module/gadget_officejs_monitoring.configuration
web_page_module/gadget_officejs_monitoring_*
web_page_module/gadget_ojsm_*
...
...
bt5/erp5_web_monitoring/bt/template_keep_path_list
View file @
07fcb8d5
portal_types/Instance Tree Module/monitoring_view
portal_types/Instance Tree/monitoring_view
portal_types/Opml/monitoring_view
portal_types/Promise Module/monitoring_view
portal_types/Promise/monitoring_view
portal_types/Software Instance Module/monitoring_view
portal_types/Software Instance/monitoring_processes_view
portal_types/Software Instance/monitoring_resources_view
portal_types/Software Instance/monitoring_view
\ No newline at end of file
portal_types/opml/monitoring_view
\ No newline at end of file
bt5/erp5_web_monitoring/bt/template_keep_workflow_path_list
View file @
07fcb8d5
image_module/gadget_officejs_appstore_rapid_spage
portal_types/Instance Tree Module/monitoring_view
portal_types/Instance Tree/monitoring_view
portal_types/Opml/monitoring_view
portal_types/Promise Module/monitoring_view
portal_types/Promise/monitoring_view
portal_types/Software Instance Module/monitoring_view
portal_types/Software Instance/monitoring_processes_view
portal_types/Software Instance/monitoring_resources_view
portal_types/Software Instance/monitoring_view
portal_types/opml/monitoring_view
web_page_module/gadget_erp5_field_status_*
web_page_module/gadget_erp5_page_ojsm_*
web_page_module/gadget_erp5_page_settings_configurator_*
web_page_module/gadget_officejs_jio_opml_view_html
web_page_module/gadget_officejs_jio_opml_view_js
web_page_module/gadget_officejs_monitoring.configuration
web_page_module/gadget_officejs_monitoring_*
web_page_module/gadget_ojsm_*
...
...
bt5/erp5_web_monitoring/bt/template_path_list
View file @
07fcb8d5
image_module/gadget_officejs_appstore_rapid_spage
portal_types/Instance Tree Module/monitoring_view
portal_types/Instance Tree/monitoring_view
portal_types/Opml/monitoring_view
portal_types/Promise Module/monitoring_view
portal_types/Promise/monitoring_view
portal_types/Software Instance Module/monitoring_view
portal_types/Software Instance/monitoring_processes_view
portal_types/Software Instance/monitoring_resources_view
portal_types/Software Instance/monitoring_view
portal_types/opml/monitoring_view
web_page_module/gadget_erp5_field_status_*
web_page_module/gadget_erp5_page_ojsm_*
web_page_module/gadget_erp5_page_settings_configurator_*
web_page_module/gadget_officejs_jio_opml_view_html
web_page_module/gadget_officejs_jio_opml_view_js
web_page_module/gadget_officejs_monitoring.configuration
web_page_module/gadget_officejs_monitoring_*
web_page_module/gadget_ojsm_*
...
...
bt5/erp5_web_monitoring/bt/template_portal_type_id_list
View file @
07fcb8d5
Instance Tree
Instance Tree Module
Opml
Promise
Promise Module
Software Instance
Software Instance Module
\ No newline at end of file
opml
\ No newline at end of file
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