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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Noah Brackenbury
erp5
Commits
b18fe54e
Commit
b18fe54e
authored
Aug 30, 2017
by
Alain Takoudjou
Committed by
Alain Takoudjou
Sep 01, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[officejs_monitoring] Some performances improvement, use officejs bootloader to install application
parent
1923807c
Changes
32
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
1108 additions
and
579 deletions
+1108
-579
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_appcache.xml
...mplateItem/web_page_module/gadget_monitoring_appcache.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.css
...lateItem/web_page_module/gadget_monitoring_custom_css.css
+3
-0
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.xml
...lateItem/web_page_module/gadget_monitoring_custom_css.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.html
...web_page_module/gadget_monitoring_document_edit_html.html
+11
-1
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.xml
.../web_page_module/gadget_monitoring_document_edit_html.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.js
...tem/web_page_module/gadget_monitoring_document_edit_js.js
+41
-66
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.xml
...em/web_page_module/gadget_monitoring_document_edit_js.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.js
..._module/gadget_monitoring_hosting_subscription_list_js.js
+71
-91
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.xml
...module/gadget_monitoring_hosting_subscription_list_js.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.html
...ule/gadget_monitoring_hosting_subscription_view_html.html
+2
-4
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.xml
...dule/gadget_monitoring_hosting_subscription_view_html.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.js
..._module/gadget_monitoring_hosting_subscription_view_js.js
+32
-31
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.xml
...module/gadget_monitoring_hosting_subscription_view_js.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_js.js
...hTemplateItem/web_page_module/gadget_monitoring_jio_js.js
+2
-0
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_js.xml
...TemplateItem/web_page_module/gadget_monitoring_jio_js.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.html
...page_module/gadget_monitoring_promise_interface_html.html
+1
-1
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.xml
..._page_module/gadget_monitoring_promise_interface_html.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_html.xml
.../web_page_module/gadget_monitoring_resource_view_html.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_js.xml
...em/web_page_module/gadget_monitoring_resource_view_js.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.html
..._module/gadget_monitoring_settings_configurator_html.html
+3
-3
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.xml
...e_module/gadget_monitoring_settings_configurator_html.xml
+1
-1
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.js
...page_module/gadget_monitoring_settings_configurator_js.js
+165
-76
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.xml
...age_module/gadget_monitoring_settings_configurator_js.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.js
...eItem/web_page_module/gadget_monitoring_status_list_js.js
+3
-3
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.xml
...Item/web_page_module/gadget_monitoring_status_list_js.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.js
...TemplateItem/web_page_module/gadget_monitoring_sync_js.js
+2
-1
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.xml
...emplateItem/web_page_module/gadget_monitoring_sync_js.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
+160
-109
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/PathTemplateItem/web_page_module/rjs_gadget_monitoring_html.xml
...mplateItem/web_page_module/rjs_gadget_monitoring_html.xml
+2
-2
bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js.xml
...PathTemplateItem/web_site_module/monitoring_render_js.xml
+26
-160
bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js/app.xml
...TemplateItem/web_site_module/monitoring_render_js/app.xml
+553
-0
No files found.
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_appcache.xml
View file @
b18fe54e
...
...
@@ -328,7 +328,7 @@ NETWORK:\n
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
22192.23748.64392
</string>
</value>
<value>
<string>
961.
46782.15224.10001
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -346,7 +346,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>
150
2462901.33
</float>
<float>
150
3935899.97
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.css
View file @
b18fe54e
...
...
@@ -83,6 +83,9 @@ html.ui-mobile .ui-grid-container.ui-responsive > ul > li, html.ui-mobile .ui-gr
.ui-text
{
padding
:
0
10px
;
}
.ui-text-pre
{
white-space
:
pre-wrap
;
}
.ui-text-left
{
text-align
:
left
;}
.ui-text-right
{
text-align
:
right
;}
.ui-text-center
{
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.xml
View file @
b18fe54e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
21883.33309.38348
</string>
</value>
<value>
<string>
961.
46334.51033.4727
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
150
2455104.39
</float>
<float>
150
4086678.92
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.html
View file @
b18fe54e
...
...
@@ -14,6 +14,17 @@
<script
id=
"login-toltip-template"
type=
"text/x-handlebars-template"
>
</script>
<script
id=
"monitor-parameters-template"
type=
"text/x-handlebars-template"
>
{{
#
each
parameter_list
}}
<
span
class
=
"
label-text
"
>
{{
title
}}:
<
/span
>
{{
#
if
key
}}
<
input
type
=
"
text
"
name
=
"
{{key}}
"
placeholder
=
"
{{title}}
"
value
=
"
{{value}}
"
data
-
mini
=
"
true
"
>
{{
else
}}
<
input
type
=
"
text
"
name
=
"
{{key}}
"
placeholder
=
"
{{title}}
"
value
=
"
{{value}}
"
data
-
mini
=
"
true
"
disabled
=
"
disabled
"
>
{{
/
if
}}
{{
/each}
}
</script>
<!-- magnific-popup -->
<script
src=
"jquery.magnific-popup.min.js"
type=
"text/javascript"
></script>
<!-- custom script -->
...
...
@@ -22,7 +33,6 @@
</head>
<body>
<div
data-gadget-url=
"gadget_monitoring_jio.html"
data-gadget-scope=
"jio_gadget"
data-gadget-sandbox=
"public"
></div>
<div
data-gadget-url=
"gadget_monitoring_login_widget.html"
data-gadget-scope=
"login_gadget"
data-gadget-sandbox=
"public"
></div>
<div
class=
"white-popup mfp-hide"
>
<div
class=
"ui-promise-title"
><h2
style=
"font-size: 1.1em;"
></h2></div>
<form>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_html.xml
View file @
b18fe54e
...
...
@@ -237,7 +237,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
49.48450.25809.9642
</string>
</value>
<value>
<string>
9
61.40703.61920.55040
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -255,7 +255,7 @@
</tuple>
<state>
<tuple>
<float>
1
457629718.71
</float>
<float>
1
503583997.49
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.js
View file @
b18fe54e
...
...
@@ -5,26 +5,9 @@
var
gadget_klass
=
rJS
(
window
),
templater
=
gadget_klass
.
__template_element
,
hashCode
=
new
Rusha
().
digestFromString
;
/*function getHtmlFromJson(parameter_list) {
var i,
html_content = '';
for (i = 0; i < parameter_list.length; i += 1) {
html_content += '<span class="label-text">' + parameter_list[i].title + ':</span>\n';
if (parameter_list[i].key) {
html_content += '<input type="text" name="' + parameter_list[i].key +
'" placeholder="' + parameter_list[i].title + '" value="' +
parameter_list[i].value +'" data-mini="true">\n';
} else {
html_content += '<input type="text" name="' + parameter_list[i].key +
'" placeholder="' + parameter_list[i].title + '" value="'+
parameter_list[i].value +'" data-mini="true" disabled="disabled">\n';
}
}
return html_content;
}
parameters_widget_template
=
Handlebars
.
compile
(
templater
.
getElementById
(
"
monitor-parameters-template
"
).
innerHTML
);
function
getFormDataList
(
formElement
,
parameter_list
)
{
var
i
,
...
...
@@ -34,47 +17,24 @@
if
(
parameter_list
[
i
].
key
)
{
// Editable fields
if
(
formElement
.
querySelector
(
'
input[name="
'
+
parameter_list
[
i
].
key
+
'
"]
'
).
value
!==
undefined
)
{
formData_list[i].value = formElement.querySelector('input[name="' + parameter_list[i].key + '"]').value;
formData_list
[
i
].
value
=
formElement
.
querySelector
(
'
input[name="
'
+
parameter_list
[
i
].
key
+
'
"]
'
).
value
;
}
}
}
return
formData_list
;
}
function saveDocument(gadget, jio_document) {
function
saveDocument
(
gadget
,
document_id
,
jio_document
)
{
// Authenticate before save
return gadget.props.login_gadget.getUrlInfo(
hashCode(gadget.props.options.url)
)
.push(function (cred) {
var url = gadget.props.options.url;
if (gadget.props.options.path) {
url += (url.endsWith('/') ? '':'/') + gadget.props.options.path;
}
if (cred === undefined) {
cred = {};
}
gadget.props.jio_gadget.createJio({
type: "query",
sub_storage: {
type: "drivetojiomapping",
sub_storage: {
type: "dav",
url: url,
basic_login: cred.hash
}
}
}, false);
return gadget.props.jio_gadget.put(gadget.props.options.key, jio_document);
})
return
gadget
.
props
.
jio_gadget
.
put
(
document_id
,
jio_document
)
.
push
(
function
(
result
)
{
return
{
status
:
'
OK
'
};
},
function
(
error
)
{
console
.
log
(
error
);
return
{
status
:
'
ERROR
'
,
code
:
error
.
target
.
status
};
});
}*/
}
gadget_klass
.
ready
(
function
(
g
)
{
...
...
@@ -91,34 +51,40 @@
gadget
.
props
.
jio_gadget
=
jio_gadget
;
});
})
.
ready
(
function
(
gadget
)
{
return
gadget
.
getDeclaredGadget
(
"
login_gadget
"
)
.
push
(
function
(
login_gadget
)
{
gadget
.
props
.
login_gadget
=
login_gadget
;
});
})
.
declareMethod
(
"
render
"
,
function
(
options
)
{
var
gadget
=
this
;
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
gadget
.
props
.
jio_gadget
.
createJio
({
type
:
"
query
"
,
sub_storage
:
{
type
:
"
drivetojiomapping
"
,
sub_storage
:
{
type
:
"
dav
"
,
url
:
options
.
url
,
basic_login
:
options
.
basic_login
}
}
});
gadget
.
props
.
options
=
options
;
return
gadget
.
props
.
deferred
.
resolve
();
});
})
.
declareMethod
(
"
popupEdit
"
,
function
(
options
,
updateMethod
)
{
var
gadget
=
this
,
title
=
'
Edit
'
+
(
options
.
title
||
'
Monitoring Parameters
'
)
,
title
=
'
Edit
-
'
+
options
.
title
,
html_form
=
''
;
gadget
.
props
.
options
=
options
;
/*html_form = getHtmlFromJson(options.parameters || []
);
html_form
=
parameters_widget_template
({
parameter_list
:
options
.
parameters
||
[]
}
);
gadget
.
props
.
element
.
querySelector
(
'
.form-controlgroup
'
)
.
innerHTML
=
html_form
;
gadget
.
props
.
element
.
querySelector
(
'
.ui-promise-title h2
'
)
.
innerHTML = title;*/
.
textContent
=
title
;
return
new
RSVP
.
Queue
()
/*
.push(function () {
.
push
(
function
()
{
return
$
.
magnificPopup
.
open
({
items
:
{
src
:
'
.white-popup
'
,
...
...
@@ -147,23 +113,32 @@
'
click
'
,
false
,
function
(
evt
)
{
var data = getFormDataList(document.querySelector('.mfp-content form'), options.parameters);
var
data
=
getFormDataList
(
document
.
querySelector
(
'
.mfp-content form
'
),
options
.
parameters
);
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
$(document.querySelector('.mfp-content spinner')).toggleClass('ui-content-hidden');
return RSVP.all([saveDocument(gadget, data)]);
$
(
document
.
querySelector
(
'
.mfp-content spinner
'
))
.
toggleClass
(
'
ui-content-hidden
'
);
return
RSVP
.
all
([
saveDocument
(
gadget
,
options
.
document_id
,
data
)]);
})
.
push
(
function
(
result
)
{
if
(
result
[
0
].
status
===
'
ERROR
'
)
{
document
.
querySelector
(
'
.mfp-content .ui-text-error
'
)
.innerHTML = 'ERROR ' + result[0].code + ': Failed to save your document! ' +
.
innerHTML
=
'
ERROR
'
+
result
[
0
].
code
+
'
: Failed to save your document!
'
+
"
Parameters cannot be saved in Offline mode.
"
;
}
else
{
$
.
magnificPopup
.
close
();
return
updateMethod
(
data
);}
})
.
push
(
function
()
{
$(document.querySelector('.mfp-content spinner')).toggleClass('ui-content-hidden');
$
(
document
.
querySelector
(
'
.mfp-content spinner
'
))
.
toggleClass
(
'
ui-content-hidden
'
);
});
}
));
...
...
@@ -176,7 +151,7 @@
}
}
});
})
*/
})
.
push
(
function
()
{
return
gadget
.
props
.
deferred
.
resolve
();
});
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_document_edit_js.xml
View file @
b18fe54e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
21935.10239.63812
</string>
</value>
<value>
<string>
961.
40921.12598.30395
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
150
2457634.68
</float>
<float>
150
3585066.29
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.js
View file @
b18fe54e
/*global window, rJS, Handlebars
, Rusha
*/
/*global window, rJS, Handlebars */
/*jslint nomen: true, indent: 2, maxerr: 3*/
(
function
(
window
,
rJS
,
Handlebars
,
Rusha
)
{
(
function
(
window
,
rJS
,
Handlebars
)
{
"
use strict
"
;
var
gadget_klass
=
rJS
(
window
),
...
...
@@ -8,65 +8,80 @@
hosting_widget_template
=
Handlebars
.
compile
(
templater
.
getElementById
(
"
template-hostings-list
"
).
innerHTML
),
rusha
=
new
Rusha
();
);
function
generateHash
(
str
)
{
return
rusha
.
digestFromString
(
str
);
}
function
getHostingStatus
(
gadget
,
id
)
{
function
getHostingData
(
gadget
)
{
// optimized way to fetch hosting subscription list
var
hosting_dict
=
{},
instance_dict
=
{};
return
gadget
.
jio_allDocs
({
query
:
'
(portal_type:"opml-outline") AND (parent_id:"
'
+
id
+
'
")
'
})
.
push
(
function
(
ouline_list
)
{
var
j
,
promise_list
=
[];
for
(
j
=
0
;
j
<
ouline_list
.
data
.
total_rows
;
j
+=
1
)
{
// fetch all instance info to build hosting status
promise_list
.
push
(
gadget
.
jio_allDocs
({
select_list
:
[
"
status
"
,
"
date
"
],
query
:
'
(portal_type:"global") AND (parent_id:"
'
+
ouline_list
.
data
.
rows
[
j
].
id
+
'
")
'
})
);
select_list
:
[
"
basic_login
"
,
"
url
"
,
"
title
"
],
query
:
'
(portal_type:"opml") AND (active:true)
'
,
sort_on
:
[[
"
title
"
,
"
descending
"
]]
})
.
push
(
function
(
result
)
{
var
i
;
for
(
i
=
0
;
i
<
result
.
data
.
total_rows
;
i
+=
1
)
{
hosting_dict
[
result
.
data
.
rows
[
i
].
id
]
=
{
url
:
result
.
data
.
rows
[
i
].
value
.
url
,
basic_login
:
result
.
data
.
rows
[
i
].
value
.
basic_login
,
status
:
"
WARNING
"
,
date
:
'
Not Synchronized
'
,
title
:
result
.
data
.
rows
[
i
].
value
.
title
,
amount
:
0
};
}
return
RSVP
.
all
(
promise_list
);
return
gadget
.
jio_allDocs
({
query
:
'
(portal_type:"opml-outline")
'
,
select_list
:
[
"
parent_url
"
]
});
})
.
push
(
function
(
result_list
)
{
var
i
,
j
,
status
=
"
OK
"
,
warning
=
""
,
date
=
'
Not Synchronized
'
;
for
(
i
=
0
;
i
<
result_list
.
length
;
i
+=
1
)
{
for
(
j
=
0
;
j
<
result_list
[
i
].
data
.
total_rows
;
j
+=
1
)
{
if
(
warning
!==
""
&&
result_list
[
i
].
data
.
rows
[
j
].
value
.
status
===
"
WARNING
"
)
{
warning
=
"
WARNING
"
;
}
if
(
status
!==
"
ERROR
"
&&
status
!==
"
WARNING
"
&&
result_list
[
i
].
data
.
rows
[
j
].
value
.
status
===
"
ERROR
"
)
{
// continue and only change the status if we found Warning === state inconsistent
status
=
result_list
[
i
].
data
.
rows
[
j
].
value
.
status
;
date
=
result_list
[
i
].
data
.
rows
[
j
].
value
.
date
;
}
else
{
date
=
result_list
[
i
].
data
.
rows
[
j
].
value
.
date
;
}
.
push
(
function
(
result
)
{
var
i
;
for
(
i
=
0
;
i
<
result
.
data
.
total_rows
;
i
+=
1
)
{
if
(
hosting_dict
.
hasOwnProperty
(
result
.
data
.
rows
[
i
].
value
.
parent_url
))
{
instance_dict
[
result
.
data
.
rows
[
i
].
id
]
=
{
parent_id
:
result
.
data
.
rows
[
i
].
value
.
parent_url
};
}
}
return
gadget
.
jio_allDocs
({
query
:
'
(portal_type:"global")
'
,
select_list
:
[
"
status
"
,
"
parent_id
"
,
"
date
"
]
});
})
.
push
(
function
(
result
)
{
var
i
;
for
(
i
=
0
;
i
<
result
.
data
.
total_rows
;
i
+=
1
)
{
if
(
instance_dict
.
hasOwnProperty
(
result
.
data
.
rows
[
i
].
value
.
parent_id
))
{
instance_dict
[
result
.
data
.
rows
[
i
].
value
.
parent_id
].
date
=
result
.
data
.
rows
[
i
].
value
.
date
;
instance_dict
[
result
.
data
.
rows
[
i
].
value
.
parent_id
].
status
=
result
.
data
.
rows
[
i
].
value
.
status
;
}
}
if
(
date
===
'
Not Synchronized
'
)
{
status
=
"
WARNING
"
;
})
.
push
(
function
()
{
//build hosting subscription data
var
key
,
item
;
for
(
key
in
instance_dict
)
{
if
(
instance_dict
.
hasOwnProperty
(
key
))
{
item
=
hosting_dict
[
instance_dict
[
key
].
parent_id
];
item
.
amount
+=
1
;
if
(
item
.
status
!==
"
ERROR
"
)
{
item
.
status
=
instance_dict
[
key
].
status
;
}
item
.
date
=
instance_dict
[
key
].
date
;
}
}
return
{
id
:
id
,
status
:
warning
||
status
,
amount
:
result_list
.
length
,
date
:
date
};
return
gadget
.
changeState
({
opml_dict
:
hosting_dict
});
});
}
...
...
@@ -92,42 +107,7 @@
title
:
'
Monitoring Hosting Subscriptions
'
})
.
push
(
function
()
{
return
gadget
.
jio_allDocs
({
select_list
:
[
"
basic_login
"
,
"
url
"
,
"
title
"
],
query
:
'
(portal_type:"opml") AND (active:true)
'
,
sort_on
:
[[
"
title
"
,
"
descending
"
]]
});
})
.
push
(
function
(
opml_result
)
{
var
i
,
opml_dict
=
{},
promise_list
=
[],
id
;
for
(
i
=
0
;
i
<
opml_result
.
data
.
total_rows
;
i
+=
1
)
{
id
=
generateHash
(
opml_result
.
data
.
rows
[
i
].
value
.
url
);
opml_dict
[
id
]
=
{
url
:
opml_result
.
data
.
rows
[
i
].
value
.
url
,
basic_login
:
opml_result
.
data
.
rows
[
i
].
value
.
basic_login
,
status
:
"
WARNING
"
,
date
:
'
Not Synchronized
'
,
title
:
opml_result
.
data
.
rows
[
i
].
value
.
title
,
amount
:
0
};
promise_list
.
push
(
getHostingStatus
(
gadget
,
id
));
}
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
RSVP
.
all
(
promise_list
);
})
.
push
(
function
(
status_list
)
{
var
i
;
for
(
i
=
0
;
i
<
status_list
.
length
;
i
+=
1
)
{
opml_dict
[
status_list
[
i
].
id
].
status
=
status_list
[
i
].
status
;
opml_dict
[
status_list
[
i
].
id
].
date
=
status_list
[
i
].
date
;
opml_dict
[
status_list
[
i
].
id
].
amount
=
status_list
[
i
].
amount
;
}
return
gadget
.
changeState
({
opml_dict
:
opml_dict
});
});
return
getHostingData
(
gadget
);
})
.
push
(
function
()
{
var
content
,
...
...
@@ -203,4 +183,4 @@
});
}(
window
,
rJS
,
Handlebars
,
Rusha
));
\ No newline at end of file
}(
window
,
rJS
,
Handlebars
));
\ No newline at end of file
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_list_js.xml
View file @
b18fe54e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
21883.33309.38348
</string>
</value>
<value>
<string>
961.
36732.50199.26692
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
150
2445069.07
</float>
<float>
150
3333754.52
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.html
View file @
b18fe54e
...
...
@@ -113,9 +113,7 @@
{{
/
if
}}
<
td
class
=
"
ui-text-center
"
>
{{
#
if
key
}}
<!--<
a
rel
=
"
{{../index}}
"
class
=
"
prop-edit
"
title
=
'
Edit this value
'
><
i
class
=
"
fa fa-pencil
"
><
/i></
a
>-->
<!--
disable
edit
for
now
-->
<
a
><
span
class
=
"
ui-text-desabled
"
title
=
'
Edit this value
'
><
i
class
=
"
fa fa-pencil
"
><
/i></
span
><
/a
>
<
a
rel
=
"
{{../index}}
"
class
=
"
prop-edit
"
title
=
'
Edit this value
'
><
i
class
=
"
fa fa-pencil
"
><
/i></
a
>
{{
else
}}
<
a
><
span
class
=
"
ui-text-desabled
"
title
=
'
Edit this value
'
><
i
class
=
"
fa fa-pencil
"
><
/i></
span
><
/a
>
{{
/
if
}}
...
...
@@ -125,7 +123,7 @@
<
/table
>
{{
/
if
}}
{{
/each}
}
<
div
class
=
"
alert alert-info ui-content-hidden
"
>
Your
Changes
can
take
a
few
minutes
to
appear
in
this
screen
!<
/div
>
<
div
class
=
"
alert alert-info ui-content-hidden
"
>
Your
changes
will
be
persistent
in
this
screen
after
the
next
sync
!<
/div
>
{{
else
}}
<
h2
>
No
parameters
.
<
/h2
>
{{
/
if
}}
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_html.xml
View file @
b18fe54e
...
...
@@ -246,7 +246,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
20822.44689.64102
</string>
</value>
<value>
<string>
961.
40879.58115.22357
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -264,7 +264,7 @@
</tuple>
<state>
<tuple>
<float>
150
2430987.78
</float>
<float>
150
3583096.3
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.js
View file @
b18fe54e
...
...
@@ -19,10 +19,20 @@
}
function
getInstanceDict
(
gadget
,
monitor_dict
)
{
var
private_url
=
monitor_dict
.
_links
.
private_url
.
href
.
replace
(
"
jio_private
"
,
"
private
"
),
public_url
=
monitor_dict
.
_links
.
public_url
.
href
.
replace
(
"
jio_public
"
,
"
public
"
),
var
private_url
=
monitor_dict
.
_links
.
private_url
.
href
.
replace
(
"
jio_private
"
,
"
private
"
),
public_url
=
monitor_dict
.
_links
.
public_url
.
href
.
replace
(
"
jio_public
"
,
"
public
"
),
pass_url
=
"
https://
"
+
atob
(
gadget
.
state
.
opml
.
basic_login
)
+
"
@
"
+
private_url
.
split
(
"
//
"
)[
1
];
"
@
"
+
private_url
.
split
(
"
//
"
)[
1
],
i
;
for
(
i
=
0
;
i
<
monitor_dict
.
parameters
.
length
;
i
+=
1
)
{
if
(
monitor_dict
.
parameters
[
i
].
key
===
"
monitor-password
"
)
{
// disabled edit of monitor password from here!!
monitor_dict
.
parameters
[
i
].
key
=
""
;
}
}
return
{
key
:
monitor_dict
.
reference
,
...
...
@@ -103,6 +113,7 @@
instance_list
=
[],
parameter_list
=
[],
status_url
=
''
,
instance_dict
,
i
,
instance_content
;
...
...
@@ -112,13 +123,15 @@
for
(
i
=
0
;
i
<
document_list
.
length
;
i
+=
1
)
{
// Only one instance per opml-outline
if
(
document_list
[
i
].
data
.
total_rows
===
1
)
{
instance_list
.
push
(
getInstanceDict
(
gadget
,
document_list
[
i
].
data
.
rows
[
0
].
value
)
instance_dict
=
getInstanceDict
(
gadget
,
document_list
[
i
].
data
.
rows
[
0
].
value
);
instance_list
.
push
(
instance_dict
);
if
(
document_list
[
i
].
data
.
rows
[
0
].
value
.
hasOwnProperty
(
'
parameters
'
))
{
parameter_list
.
push
({
title
:
document_list
[
i
].
data
.
rows
[
0
].
value
.
title
,
parameters
:
document_list
[
i
].
data
.
rows
[
0
].
value
.
parameters
,
parameters
:
instance_dict
.
parameters
,
base_url
:
document_list
[
i
].
data
.
rows
[
0
].
value
.
_links
.
private_url
.
href
||
''
,
index
:
i
...
...
@@ -172,9 +185,8 @@
function
updateParameterBox
(
parameter_list
,
title
)
{
var
element
=
gadget
.
element
.
querySelector
(
'
table[title="
'
+
title
+
'
"]
'
),
tmp
,
i
;
if
(
!
element
)
{
return
;
}
...
...
@@ -182,7 +194,8 @@
if
(
!
parameter_list
[
i
].
key
)
{
continue
;
}
element
.
querySelector
(
'
.v-
'
+
parameter_list
[
i
].
key
).
textContent
=
parameter_list
[
i
].
value
;
element
.
querySelector
(
'
.v-
'
+
parameter_list
[
i
].
key
)
.
textContent
=
parameter_list
[
i
].
value
;
}
}
...
...
@@ -213,34 +226,22 @@
})
.
push
(
function
(
config_gadget
)
{
gadget
.
props
.
config_gadget
=
config_gadget
;
return
gadget
.
props
.
config_gadget
.
render
({
url
:
gadget
.
state
.
instance_list
[
index
].
private_url
+
'
/config
'
,
basic_login
:
gadget
.
state
.
opml
.
basic_login
});
})
.
push
(
function
()
{
return
gadget
.
props
.
config_gadget
.
popupEdit
({
url
:
gadget
.
state
.
instance_list
.
_links
.
private_url
.
href
,
parameters
:
gadget
.
state
.
instance_list
[
index
].
parameters
,
title
:
gadget
.
state
.
instance_list
[
index
].
title
,
root_title
:
gadget
.
state
.
instance_list
[
index
][
'
hosting-title
'
],
page_options
:
gadget
.
props
.
options
,
path
:
'
config
'
,
key
:
'
config.tmp
'
parameters
:
gadget
.
state
.
instance_list
[
index
].
parameters
,
document_id
:
'
config.tmp
'
},
function
(
data
)
{
var
update_promise
=
[],
i
,
monitor_user
=
''
,
monitor_password
=
''
;
// Try to save monitor credential if they are pres
for
(
i
=
0
;
i
<
data
.
length
;
i
+=
1
)
{
if
(
data
[
i
].
key
===
'
monitor-password
'
)
{
monitor_password
=
data
[
i
].
value
;
}
if
((
data
[
i
].
key
||
data
[
i
].
title
)
===
'
monitor-user
'
)
{
monitor_user
=
data
[
i
].
value
;
}
}
gadget
.
state
.
instance_list
[
index
].
parameters
=
data
;
updateParameterBox
(
data
,
gadget
.
props
.
document
_list
[
index
].
title
);
updateParameterBox
(
data
,
gadget
.
state
.
instance
_list
[
index
].
title
);
$
(
gadget
.
element
.
querySelector
(
'
.alert-info
'
))
.
removeClass
(
'
ui-content-hidden
'
);
return
RSVP
.
all
(
update_promise
);
});
});
}
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_hosting_subscription_view_js.xml
View file @
b18fe54e
...
...
@@ -242,7 +242,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
21935.10239.63812
</string>
</value>
<value>
<string>
961.
40930.22839.30634
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -260,7 +260,7 @@
</tuple>
<state>
<tuple>
<float>
150
2452997.
2
</float>
<float>
150
3585188.8
2
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_js.js
View file @
b18fe54e
...
...
@@ -16,6 +16,8 @@
}
else
{
this
.
props
.
jio_storage
=
jIO
.
createJIO
({
type
:
"
replicatedopml
"
,
remote_storage_unreachable_status
:
"
WARNING
"
,
remote_opml_check_time_interval
:
86400000
,
local_sub_storage
:
{
type
:
"
query
"
,
sub_storage
:
{
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_jio_js.xml
View file @
b18fe54e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
21883.33309.38348
</string>
</value>
<value>
<string>
961.
37911.38494.42700
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
150
2445069.09
</float>
<float>
150
3418549.74
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.html
View file @
b18fe54e
...
...
@@ -41,7 +41,7 @@
<
div
style
=
"
border: 1px solid rgba(0,0,0,0.1); margin-top: 10px;
"
>
<
div
class
=
"
ui-body
"
>
{{
#
if
message
}}
<
p
><
strong
>
{{
status
}}
<
/strong>: {{message}}</
p
>
<
p
class
=
"
ui-text ui-text-pre
"
><
strong
>
{{
status
}}
<
/strong>: {{message}}</
p
>
{{
else
}}
<
p
><
strong
>
No
output
message
!<
/strong></
p
>
{{
/
if
}}
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_promise_interface_html.xml
View file @
b18fe54e
...
...
@@ -243,7 +243,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.2
0815.19432.23961
</string>
</value>
<value>
<string>
961.2
1883.33309.38348
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -261,7 +261,7 @@
</tuple>
<state>
<tuple>
<float>
150
2378039.46
</float>
<float>
150
4086738.54
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_html.xml
View file @
b18fe54e
...
...
@@ -243,7 +243,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
17644.54835.143
3
</string>
</value>
<value>
<string>
961.
47920.32703.1749
3
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -261,7 +261,7 @@
</tuple>
<state>
<tuple>
<float>
150
2188014.54
</float>
<float>
150
4086069.06
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_resource_view_js.xml
View file @
b18fe54e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.2
1935.10239.63812
</string>
</value>
<value>
<string>
961.2
2271.22355.17766
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
150
2465240.4
1
</float>
<float>
150
4086036.2
1
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.html
View file @
b18fe54e
...
...
@@ -73,9 +73,9 @@
<input
type=
"password"
name=
"password"
required
value=
""
/>
</div>
</div>
<
!--<
label class="configure-auth">
<input type="checkbox" name="configure-newpwd">Show/hide
chang
e password form
</label>
-->
<label
class=
"configure-auth"
>
<input
type=
"checkbox"
name=
"configure-newpwd"
>
Show/hide
updat
e password form
</label>
<div
class=
"new-password"
style=
"display: none"
>
<div
class=
"ui-form"
>
<div
class=
"ui-field-contain"
>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.xml
View file @
b18fe54e
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
150
2455270.08
</float>
<float>
150
3497281.04
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.js
View file @
b18fe54e
...
...
@@ -30,7 +30,7 @@
+
"
:
"
+
addZero
(
d
.
getMinutes
())
+
"
:
"
+
addZero
(
d
.
getSeconds
());
}
function
checkCredential
(
gadget
,
url
,
title
,
hash
,
opml_hash
)
{
function
checkCredential
(
gadget
,
url
,
title
,
hash
)
{
var
ouput
;
// Verify if login and password are correct for this URL
if
(
url
===
undefined
)
{
...
...
@@ -38,18 +38,6 @@
}
return
testUrl
(
url
,
hash
)
.
then
(
function
(
result
)
{
/*if (result.status === 'OK') {
return result;
} else {
result.title = title;
return testUrl(url, opml_hash)
.push(function (sub_result) {
if (sub_result.status !== 'OK') {
return result;
}
return sub_result;
});
}*/
return
result
;
},
function
(
error
)
{
var
ko_msg
=
{
...
...
@@ -57,15 +45,6 @@
msg
:
error
.
msg
+
'
(
'
+
url
+
'
)
'
,
title
:
title
};
/*if (opml_hash) {
return testUrl(url, opml_hash)
.push(function (result) {
if (result.status === 'OK') {
return {status: 'OK'};
}
return ko_msg;
});
}*/
return
ko_msg
;
});
}
...
...
@@ -90,20 +69,23 @@
function
loadOPMLConfiguration
(
gadget
)
{
return
gadget
.
jio_allDocs
({
query
:
'
portal_type:"opml"
'
,
select_list
:
[
'
title
'
,
'
url
'
,
'
active
'
],
select_list
:
[
'
title
'
,
'
url
'
,
'
active
'
,
'
basic_login
'
],
sort_on
:
[[
"
title
"
,
"
ascending
"
]]
})
.
push
(
function
(
result
)
{
var
i
,
opml_list
=
[],
cred_list
,
content
;
for
(
i
=
0
;
i
<
result
.
data
.
total_rows
;
i
+=
1
)
{
cred_list
=
atob
(
result
.
data
.
rows
[
i
].
value
.
basic_login
).
split
(
"
:
"
);
opml_list
.
push
({
key
:
result
.
data
.
rows
[
i
].
value
.
title
+
"
#
"
+
result
.
data
.
rows
[
i
].
value
.
url
,
href
:
"
#page=settings_configurator&url=
"
+
result
.
data
.
rows
[
i
].
value
.
url
+
'
&tab=add
'
,
'
&tab=add&password=
'
+
cred_list
[
1
]
+
'
&username=
'
+
cred_list
[
0
],
link
:
result
.
data
.
rows
[
i
].
value
.
url
,
title
:
result
.
data
.
rows
[
i
].
value
.
title
||
''
,
status
:
(
result
.
data
.
rows
[
i
].
value
.
active
)
?
"
Enabled
"
:
"
Disabled
"
...
...
@@ -112,7 +94,7 @@
content
=
opml_url_template
({
opml_list
:
opml_list
});
gadget
.
element
.
querySelector
(
"
.opml-tablelinks > tbody
"
)
.
innerHTML
=
content
;
return
;
return
gadget
.
changeState
({
"
opml_list
"
:
opml_list
})
;
});
}
...
...
@@ -146,15 +128,66 @@
if
(
credential_hash
!==
undefined
)
{
xhr
.
setRequestHeader
(
'
Authorization
'
,
'
Basic
'
+
credential_hash
);
}
//try {
xhr
.
send
(
""
);
//} catch (e) {
// reject({status: 'ERROR', msg: e});
//}
});
});
}
function
changeMonitorPassword
(
gadget
,
base_url
,
title
,
basic_login
,
password
)
{
var
url
=
base_url
,
jio_gadget
,
jio_options
;
url
+=
(
url
.
endsWith
(
'
/
'
)
?
''
:
'
/
'
)
+
'
config/
'
;
gadget
.
props
.
gindex
+=
1
;
return
gadget
.
declareGadget
(
"
gadget_monitoring_jio.html
"
,
{
element
:
gadget
.
element
,
scope
:
'
jio_
'
+
gadget
.
props
.
gindex
+
"
_gadget
"
,
sandbox
:
"
public
"
}
).
push
(
function
(
new_gadget
)
{
jio_gadget
=
new_gadget
;
jio_gadget
.
createJio
({
type
:
"
query
"
,
sub_storage
:
{
type
:
"
drivetojiomapping
"
,
sub_storage
:
{
type
:
"
dav
"
,
url
:
url
,
basic_login
:
basic_login
}
}
});
return
jio_gadget
.
get
(
'
config
'
);
})
.
push
(
function
(
doc
)
{
var
i
;
if
(
doc
)
{
for
(
i
=
0
;
i
<
doc
.
length
;
i
+=
1
)
{
if
(
doc
[
i
].
key
===
'
monitor-password
'
)
{
doc
[
i
].
value
=
password
;
return
jio_gadget
.
put
(
'
config.tmp
'
,
doc
);
}
}
}
return
new
Error
(
"
Cannot get document 'config.json' at :
"
%
url
);
})
.
push
(
function
()
{
return
{
status
:
'
OK
'
};
},
function
(
error
)
{
console
.
log
(
error
);
return
{
status
:
'
ERROR
'
,
code
:
error
.
target
.
status
,
url
:
base_url
,
title
:
title
};
});
}
gadget_klass
/////////////////////////////
// state
...
...
@@ -163,12 +196,14 @@
deferred
:
""
,
sync_gadget
:
""
,
selected
:
""
,
jio_gadget
:
""
jio_gadget
:
""
,
opml_list
:
""
})
/////////////////////////////
// ready
/////////////////////////////
.
ready
(
function
(
gadget
)
{
gadget
.
props
=
{
gindex
:
0
};
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
gadget
.
changeState
({
deferred
:
RSVP
.
defer
()});
...
...
@@ -203,23 +238,23 @@
panel_action: false*/
})
.
push
(
function
()
{
return
loadOPMLConfiguration
(
gadget
);
})
.
push
(
function
()
{
var
i
;
if
(
options
.
url
!==
undefined
&&
options
.
url
!==
''
)
{
gadget
.
element
.
querySelector
(
"
input[name='url']
"
)
.
value
=
options
.
url
;
if
(
options
.
username
!==
undefined
&&
options
.
username
!==
''
&&
options
.
password
!==
undefined
&&
options
.
password
!==
''
)
{
//gadget.props.username = options.username;
//gadget.props.password = options.password;
gadget
.
element
.
querySelector
(
"
input[name='username']
"
)
.
value
=
options
.
username
;
gadget
.
element
.
querySelector
(
"
input[name='password']
"
)
.
value
=
options
.
password
;
}
}
if
(
options
.
username
!==
undefined
&&
options
.
username
!==
''
&&
options
.
password
!==
undefined
&&
options
.
password
!==
''
)
{
//gadget.props.username = options.username;
//gadget.props.password = options.password;
gadget
.
element
.
querySelector
(
"
input[name='username']
"
)
.
value
=
options
.
username
;
gadget
.
element
.
querySelector
(
"
input[name='password']
"
)
.
value
=
options
.
password
;
}
//return gadget.getSetting('monitor_url_description');
return
loadOPMLConfiguration
(
gadget
);
})
.
push
(
function
()
{
return
gadget
.
getSetting
(
'
latest_sync_time
'
);
})
.
push
(
function
(
latest_sync_time
)
{
...
...
@@ -303,6 +338,22 @@
return
key_list
;
}
function
setFormValue
(
data
)
{
if
(
data
===
undefined
)
{
data
=
{};
}
gadget
.
element
.
querySelector
(
"
input[name='username']
"
).
value
=
data
.
username
||
""
;
gadget
.
element
.
querySelector
(
"
input[name='password']
"
).
value
=
data
.
password
||
""
;
gadget
.
element
.
querySelector
(
"
input[name='new_password']
"
).
value
=
data
.
new_password
||
""
;
gadget
.
element
.
querySelector
(
"
input[name='new_password_confirm']
"
).
value
=
data
.
new_password_confirm
||
""
;
gadget
.
element
.
querySelector
(
"
input[name='url']
"
).
value
=
data
.
url
||
""
;
}
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
gadget
.
state
.
deferred
.
promise
;
...
...
@@ -337,7 +388,7 @@
return
gadget
.
state
.
sync_gadget
.
startSync
({
now
:
true
});
})
.
push
(
function
()
{
gadget
.
element
.
querySelector
(
'
.sync-all
'
)
gadget
.
element
.
querySelector
(
'
.sync-all
span
'
)
.
textContent
=
title
;
gadget
.
element
.
querySelector
(
'
.sync-all
'
)
.
disabled
=
false
;
...
...
@@ -530,7 +581,7 @@
gadget
.
element
.
querySelector
(
'
.msgtext-box
'
)
.
innerHTML
=
notify_msg_template
({
status
:
"
error
"
,
text
:
"
ERROR while
remov
ing OPML(s)
"
text
:
"
ERROR while
updat
ing OPML(s)
"
});
return
[];
})
...
...
@@ -594,29 +645,17 @@
button_submit
.
textContent
=
submit_text
;
}
function
clearForm
()
{
gadget
.
element
.
querySelector
(
"
input[name='username']
"
).
value
=
""
;
gadget
.
element
.
querySelector
(
"
input[name='password']
"
).
value
=
""
;
gadget
.
element
.
querySelector
(
"
input[name='new_password']
"
).
value
=
""
;
gadget
.
element
.
querySelector
(
"
input[name='new_password_confirm']
"
).
value
=
""
;
gadget
.
element
.
querySelector
(
"
input[name='url']
"
).
value
=
""
;
}
function
pushNewOPML
(
opml_url
,
username
,
password
)
{
function
pushNewOPML
(
opml_url
,
username
,
password
,
new_password
)
{
var
opml_dict
=
{
type
:
"
opml
"
,
portal_type
:
"
opml
"
,
url
:
opml_url
,
basic_login
:
btoa
(
username
+
'
:
'
+
password
),
active
:
true
};
function
validateOPML
(
basic_login
)
{
type
:
"
opml
"
,
portal_type
:
"
opml
"
,
url
:
opml_url
,
basic_login
:
btoa
(
username
+
'
:
'
+
password
),
active
:
true
},
update_password_list
=
[];
function
validateOPML
()
{
// read the opml to get the content and title
//delete gadget.state.jio_storage;
button_submit
.
textContent
=
"
Reading OPML content...
"
;
...
...
@@ -652,13 +691,18 @@
if
(
opml_result
.
data
.
total_rows
>
0
)
{
opml_dict
.
title
=
opml_result
.
data
.
rows
[
0
].
value
.
title
;
for
(
i
=
1
;
i
<
opml_result
.
data
.
total_rows
;
i
+=
1
)
{
check_list
.
push
(
checkCredential
(
gadget
,
opml_result
.
data
.
rows
[
i
].
value
.
url
,
opml_result
.
data
.
rows
[
i
].
value
.
title
,
opml_dict
.
basic_login
,
basic_login
));
if
(
opml_result
.
data
.
rows
[
i
].
value
.
url
!==
undefined
)
{
check_list
.
push
(
checkCredential
(
gadget
,
opml_result
.
data
.
rows
[
i
].
value
.
url
,
opml_result
.
data
.
rows
[
i
].
value
.
title
,
opml_dict
.
basic_login
));
update_password_list
.
push
({
base_url
:
opml_result
.
data
.
rows
[
i
].
value
.
url
,
title
:
opml_result
.
data
.
rows
[
i
].
value
.
title
});
}
}
button_submit
.
textContent
=
"
Validating password(s)...
"
;
return
RSVP
.
all
(
check_list
);
...
...
@@ -681,6 +725,50 @@
return
false
;
}
return
status_list
[
0
];
})
.
push
(
function
(
previous_status
)
{
var
i
,
update_promise_list
=
[];
if
(
new_password
===
""
)
{
return
previous_status
;
}
if
(
!
previous_status
)
{
return
false
;
}
button_submit
.
textContent
=
"
Changing password(s)...
"
;
for
(
i
=
0
;
i
<
update_password_list
.
length
;
i
+=
1
)
{
update_promise_list
.
push
(
changeMonitorPassword
(
gadget
,
update_password_list
[
i
].
base_url
,
update_password_list
[
i
].
title
,
opml_dict
.
basic_login
,
new_password
));
}
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
RSVP
.
all
(
update_promise_list
);
})
.
push
(
function
(
result_list
)
{
var
i
,
error_msg
=
""
;
for
(
i
=
0
;
i
<
result_list
.
length
;
i
+=
1
)
{
if
(
result_list
[
i
].
status
===
'
ERROR
'
)
{
error_msg
+=
'
ERROR
'
+
result_list
[
i
].
code
+
'
. [
'
+
result_list
[
i
].
title
+
'
] Failed to
'
+
'
change password, please try again
\n
'
;
}
}
if
(
error_msg
!==
""
)
{
alert_box
.
removeClass
(
'
ui-content-hidden
'
)
.
text
(
error_msg
);
return
false
;
}
else
{
opml_dict
.
basic_login
=
btoa
(
username
+
'
:
'
+
new_password
);
return
true
;
}
});
});
}
...
...
@@ -693,7 +781,7 @@
})
.
push
(
function
(
doc
)
{
current_opml
=
doc
;
return
validateOPML
(
doc
.
basic_login
);
return
validateOPML
();
})
.
push
(
function
(
status
)
{
if
(
status
)
{
...
...
@@ -728,7 +816,8 @@
);
return
false
;
}
return
pushNewOPML
(
opml_url
,
username
,
password
);
return
pushNewOPML
(
opml_url
,
username
,
password
,
new_password
);
});
}
));
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_js.xml
View file @
b18fe54e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
22290.30770.8345
</string>
</value>
<value>
<string>
961.
40699.48372.17271
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
150
2466440.16
</float>
<float>
150
3651680.71
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.js
View file @
b18fe54e
...
...
@@ -19,7 +19,7 @@
.
declareMethod
(
'
render
'
,
function
(
options
)
{
var
gadget
=
this
,
header
=
{
"
title
"
:
'
Monitoring Promise Status
'
"
title
"
:
'
Monitoring Promise
s
Status
'
},
listbox_configuration
=
{
search_page
:
'
status_list
'
,
...
...
@@ -50,7 +50,7 @@
}],
filter_column
:
{
select
:
"
category
"
,
"
title
"
:
"
Status
"
},
query
:
{
"
limit
"
:
[
0
,
6
00
],
"
limit
"
:
[
0
,
4
00
],
select_list
:
[
'
source
'
,
'
channel_item
'
,
'
channel
'
,
'
category
'
,
'
date
'
,
'
comments
'
,
'
link
'
,
'
lastBuildDate
'
,
'
parent_id
'
],
query
:
'
(portal_type:"promise") AND (active:true)
'
,
...
...
@@ -95,8 +95,8 @@
.
declareAcquiredMethod
(
"
getSetting
"
,
"
getSetting
"
)
.
declareAcquiredMethod
(
"
setSetting
"
,
"
setSetting
"
)
.
declareAcquiredMethod
(
"
redirect
"
,
"
redirect
"
)
.
declareAcquiredMethod
(
"
renderApplication
"
,
"
renderApplication
"
)
.
declareAcquiredMethod
(
"
updateHeader
"
,
"
updateHeader
"
)
.
declareAcquiredMethod
(
"
renderApplication
"
,
"
renderApplication
"
)
.
declareService
(
function
()
{
var
gadget
=
this
,
current_sync_date
;
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_status_list_js.xml
View file @
b18fe54e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
21935.10239.63812
</string>
</value>
<value>
<string>
961.
42463.34618.20070
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
150
2455678.21
</float>
<float>
150
3676888.75
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.js
View file @
b18fe54e
...
...
@@ -252,6 +252,7 @@
}
// Default sync interval to 5 minutes
gadget
.
props
.
default_sync_interval
=
300000
;
gadget
.
props
.
has_sync_interval
=
false
;
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
gadget
.
getSetting
(
'
sync_data_interval
'
);
...
...
@@ -260,9 +261,9 @@
if
(
timer_interval
===
undefined
)
{
// quickly sync because this is the first run!
gadget
.
props
.
timer_interval
=
10000
;
gadget
.
props
.
has_sync_interval
=
false
;
}
else
{
gadget
.
props
.
timer_interval
=
timer_interval
;
gadget
.
props
.
has_sync_interval
=
true
;
}
return
gadget
.
getSetting
(
'
latest_sync_time
'
);
})
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_sync_js.xml
View file @
b18fe54e
...
...
@@ -242,7 +242,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
21883.33309.38348
</string>
</value>
<value>
<string>
961.
40574.58268.18875
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -260,7 +260,7 @@
</tuple>
<state>
<tuple>
<float>
150
2445069.16
</float>
<float>
150
3563500.59
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/monitoring_jio_storage_js.js
View file @
b18fe54e
...
...
@@ -17,6 +17,7 @@
* {
* "type": "replicatedopml",
* "remote_storage_unreachable_status": "WARNING",
* "remote_opml_check_time_interval": 86400000,
* local_sub_storage: {
* type: "query",
* sub_storage: {
...
...
@@ -28,8 +29,8 @@
*
*/
var
rusha
=
new
Rusha
()
;
//SIGNATURE_PREFIX_NAME = "__signature
__";
var
rusha
=
new
Rusha
()
,
OPML_ATTACHMENT_NAME
=
"
__opml
__
"
;
function
generateHash
(
str
)
{
return
rusha
.
digestFromString
(
str
);
...
...
@@ -66,6 +67,12 @@
if
(
this
.
_remote_parser_storage_type
===
undefined
)
{
this
.
_remote_parser_storage_type
=
"
parser
"
;
}
this
.
_remote_opml_check_time_interval
=
spec
.
remote_opml_check_time_interval
;
if
(
this
.
_remote_opml_check_time_interval
===
undefined
)
{
// one day in miliseconds
this
.
_remote_opml_check_time_interval
=
86400000
;
}
}
ReplicatedOPMLStorage
.
prototype
.
get
=
function
()
{
...
...
@@ -216,7 +223,7 @@
JSON
.
stringify
(
storage_spec
));
}
function
get
SignatureDocu
ment
(
context
,
attachment_id
,
name
)
{
function
get
DocumentAsAttach
ment
(
context
,
attachment_id
,
name
)
{
return
context
.
_local_sub_storage
.
getAttachment
(
attachment_id
,
name
)
.
push
(
undefined
,
function
(
error
)
{
if
((
error
instanceof
jIO
.
util
.
jIOError
)
&&
...
...
@@ -246,8 +253,14 @@
return
context
.
_local_sub_storage
.
get
(
id
);
})
.
push
(
function
(
doc
)
{
doc
.
status
=
next_status
;
return
context
.
_local_sub_storage
.
put
(
id
,
doc
);
if
(
doc
.
portal_type
===
"
promise
"
)
{
doc
.
category
=
next_status
;
return
context
.
_local_sub_storage
.
put
(
id
,
doc
);
}
if
(
doc
.
status
!==
undefined
)
{
doc
.
status
=
next_status
;
return
context
.
_local_sub_storage
.
put
(
id
,
doc
);
}
});
}
...
...
@@ -255,10 +268,14 @@
if
(
signature_dict
.
hasOwnProperty
(
key
))
{
if
(
signature_dict
[
key
].
status
!==
next_status
)
{
updateStatus
(
key
);
signature_dict
[
key
].
status
=
next_status
;
}
}
}
return
update_status_queue
;
return
update_status_queue
.
push
(
function
()
{
return
signature_dict
;
});
}
function
loadSubStorage
(
context
,
storage_spec
,
parent_id
,
type
)
{
...
...
@@ -288,12 +305,8 @@
if
(
result
===
undefined
)
{
if
(
context
.
_remote_storage_unreachable_status
!==
undefined
)
{
// update status of local documents
// to set unreachable state
return
getSignatureDocument
(
context
,
parent_id
,
url
)
// and set unreachable status
return
getDocumentAsAttachment
(
context
,
parent_id
,
url
)
.
push
(
function
(
signature_document
)
{
return
updateSubStorageStatus
(
context
,
...
...
@@ -301,14 +314,14 @@
context
.
_remote_storage_unreachable_status
);
})
.
push
(
function
()
{
return
{}
;
.
push
(
function
(
signature_dict
)
{
return
signature_dict
;
});
}
return
{};
}
result_dict
.
result
=
result
;
return
get
SignatureDocu
ment
(
return
get
DocumentAsAttach
ment
(
context
,
parent_id
,
url
...
...
@@ -324,35 +337,60 @@
var
opml_storage
,
opml_document_list
=
[],
delete_key_list
=
[],
signature
_document_list
=
[],
attachment
_document_list
=
[],
opml_result_list
,
current_signature_dict
=
{},
fetch_remote_opml
=
false
,
id
;
id
=
generateHash
(
opml_url
);
opml_storage
=
createStorage
(
context
,
opml_spec
,
id
);
return
opml_storage
.
allDocs
({
include_docs
:
true
})
.
push
(
undefined
,
function
(
error
)
{
if
((
error
instanceof
jIO
.
util
.
jIOError
)
&&
(
error
.
status_code
===
404
))
{
return
{
data
:
{
total_rows
:
0
}};
return
getDocumentAsAttachment
(
context
,
opml_url
,
OPML_ATTACHMENT_NAME
)
.
push
(
function
(
opml_doc
)
{
var
current_time
=
new
Date
().
getTime
();
if
(
opml_doc
.
expire_time
!==
undefined
)
{
fetch_remote_opml
=
(
opml_doc
.
expire_time
-
current_time
)
<
0
;
}
else
{
fetch_remote_opml
=
true
;
}
//throw error;
// throw will cancel all remaning tasks
console
.
error
(
error
);
return
{
data
:
{
total_rows
:
0
}};
})
.
push
(
function
(
opml_result
)
{
opml_result_list
=
opml_result
;
if
(
opml_result
.
data
.
total_rows
>
0
)
{
return
getSignatureDocument
(
context
,
id
,
opml_url
);
if
(
fetch_remote_opml
)
{
return
opml_storage
.
allDocs
({
include_docs
:
true
})
.
push
(
undefined
,
function
(
error
)
{
if
((
error
instanceof
jIO
.
util
.
jIOError
)
&&
(
error
.
status_code
===
404
))
{
return
{
data
:
{
total_rows
:
0
}};
}
//throw error;
console
.
error
(
error
);
return
{
data
:
{
total_rows
:
0
}};
})
.
push
(
function
(
opml_result
)
{
opml_result_list
=
opml_result
;
if
(
opml_result
.
data
.
total_rows
>
0
)
{
attachment_document_list
.
push
({
id
:
opml_url
,
name
:
OPML_ATTACHMENT_NAME
,
doc
:
{
expire_time
:
new
Date
().
getTime
()
+
context
.
_remote_opml_check_time_interval
,
data
:
opml_result
}
});
return
getDocumentAsAttachment
(
context
,
id
,
opml_url
);
}
return
{};
})
.
push
(
function
(
signature_dict
)
{
current_signature_dict
=
signature_dict
;
});
}
return
{}
;
opml_result_list
=
opml_doc
.
data
;
})
.
push
(
function
(
current_signature_dict
)
{
.
push
(
function
()
{
var
i
,
item
,
signature
,
...
...
@@ -362,7 +400,7 @@
result_list
=
[],
header_dict
=
{};
if
(
opml_result_list
.
data
.
total_rows
>
0
)
{
if
(
opml_result_list
.
data
.
total_rows
>
0
&&
fetch_remote_opml
)
{
header_dict
=
{
dateCreated
:
opml_result_list
.
data
.
rows
[
0
].
doc
.
dateCreated
,
dateModified
:
opml_result_list
.
data
.
rows
[
0
].
doc
.
dateModified
,
...
...
@@ -374,12 +412,6 @@
item
=
opml_result_list
.
data
.
rows
[
i
];
if
(
item
.
doc
.
xmlUrl
!==
undefined
)
{
id_hash
=
generateHash
(
id
+
item
.
id
);
signature
=
generateHash
(
JSON
.
stringify
(
item
.
doc
));
// Append this document signature to the list
doc_signature_dict
[
id_hash
]
=
{
signature
:
signature
};
result_list
.
push
(
loadSubStorage
(
context
,
{
...
...
@@ -407,37 +439,46 @@
));
}
if
(
current_signature_dict
.
hasOwnProperty
(
id_hash
))
{
if
(
current_signature_dict
[
id_hash
].
signature
===
signature
)
{
// remote document was not modified, delete and skip add
if
(
fetch_remote_opml
)
{
// Append this document signature to the list
signature
=
generateHash
(
JSON
.
stringify
(
item
.
doc
));
doc_signature_dict
[
id_hash
]
=
{
signature
:
signature
};
if
(
current_signature_dict
.
hasOwnProperty
(
id_hash
))
{
if
(
current_signature_dict
[
id_hash
].
signature
===
signature
)
{
// remote document was not modified, delete and skip add
delete
current_signature_dict
[
id_hash
];
skip_add
=
true
;
}
delete
current_signature_dict
[
id_hash
];
skip_add
=
true
;
}
delete
current_signature_dict
[
id_hash
];
}
Object
.
assign
(
item
.
doc
,
{
portal_type
:
"
opml-outline
"
,
parent_id
:
id
,
parent_url
:
opml_url
,
reference
:
id_hash
,
active
:
true
});
Object
.
assign
(
item
.
doc
,
header_dict
);
if
(
!
skip_add
)
{
opml_document_list
.
push
({
id
:
id_hash
,
doc
:
item
.
doc
Object
.
assign
(
item
.
doc
,
{
portal_type
:
"
opml-outline
"
,
parent_id
:
id
,
parent_url
:
opml_url
,
reference
:
id_hash
,
active
:
true
});
Object
.
assign
(
item
.
doc
,
header_dict
);
if
(
!
skip_add
)
{
opml_document_list
.
push
({
id
:
id_hash
,
doc
:
item
.
doc
});
}
}
}
}
signature_document_list
.
push
({
id
:
opml_url
,
name
:
opml_url
,
doc
:
doc_signature_dict
});
delete_key_list
.
push
.
apply
(
delete_key_list
,
Object
.
keys
(
current_signature_dict
));
if
(
fetch_remote_opml
&&
Object
.
keys
(
doc_signature_dict
).
length
>
0
)
{
attachment_document_list
.
push
({
id
:
opml_url
,
name
:
opml_url
,
doc
:
doc_signature_dict
});
delete_key_list
.
push
.
apply
(
delete_key_list
,
Object
.
keys
(
current_signature_dict
));
}
return
RSVP
.
all
(
result_list
);
})
.
push
(
function
(
result_list
)
{
...
...
@@ -493,47 +534,57 @@
for
(
i
=
0
;
i
<
result_list
.
length
;
i
+=
1
)
{
extra_dict
=
undefined
;
start
=
0
;
if
(
result_list
[
i
].
type
===
"
promise
"
&&
result_list
[
i
].
result
.
data
.
total_rows
>
0
)
{
// the first element of rss is the header
extra_dict
=
{
lastBuildDate
:
result_list
[
i
].
result
.
data
.
rows
[
0
].
doc
.
lastBuildDate
,
channel
:
result_list
[
i
].
result
.
data
.
rows
[
0
].
doc
.
description
,
channel_item
:
result_list
[
i
].
result
.
data
.
rows
[
0
].
doc
.
title
};
applyItemToTree
(
result_list
[
i
].
result
.
data
.
rows
[
0
],
result_list
[
i
],
"
rss
"
);
start
=
1
;
}
for
(
j
=
start
;
j
<
result_list
[
i
].
result
.
data
.
total_rows
;
j
+=
1
)
{
applyItemToTree
(
result_list
[
i
].
result
.
data
.
rows
[
j
],
result_list
[
i
],
undefined
,
extra_dict
if
(
result_list
[
i
].
result
.
data
.
total_rows
>
0
)
{
if
(
result_list
[
i
].
type
===
"
promise
"
)
{
// the first element of rss is the header
extra_dict
=
{
lastBuildDate
:
result_list
[
i
].
result
.
data
.
rows
[
0
].
doc
.
lastBuildDate
,
channel
:
result_list
[
i
].
result
.
data
.
rows
[
0
].
doc
.
description
,
channel_item
:
result_list
[
i
].
result
.
data
.
rows
[
0
].
doc
.
title
};
applyItemToTree
(
result_list
[
i
].
result
.
data
.
rows
[
0
],
result_list
[
i
],
"
rss
"
);
start
=
1
;
}
for
(
j
=
start
;
j
<
result_list
[
i
].
result
.
data
.
total_rows
;
j
+=
1
)
{
applyItemToTree
(
result_list
[
i
].
result
.
data
.
rows
[
j
],
result_list
[
i
],
undefined
,
extra_dict
);
}
attachment_document_list
.
push
({
id
:
result_list
[
i
].
parent_id
,
name
:
result_list
[
i
].
url
,
doc
:
item_signature_dict
});
item_signature_dict
=
{};
delete_key_list
.
push
.
apply
(
delete_key_list
,
Object
.
keys
(
result_list
[
i
].
current_signature
)
);
}
else
if
(
Object
.
keys
(
result_list
[
i
].
current_signature
).
length
>
0
)
{
// if the remote data is empty and current_signature is not empty,
// push to storage in case the status was changed
// this help for speed optimisation
attachment_document_list
.
push
({
id
:
result_list
[
i
].
parent_id
,
name
:
result_list
[
i
].
url
,
doc
:
result_list
[
i
].
current_signature
});
}
signature_document_list
.
push
({
id
:
result_list
[
i
].
parent_id
,
name
:
result_list
[
i
].
url
,
doc
:
item_signature_dict
});
item_signature_dict
=
{};
delete_key_list
.
push
.
apply
(
delete_key_list
,
Object
.
keys
(
result_list
[
i
].
current_signature
)
);
}
return
[
opml_document_list
,
delete_key_list
,
signature
_document_list
];
return
[
opml_document_list
,
delete_key_list
,
attachment
_document_list
];
});
}
function
pushDocumentToStorage
(
context
,
document_list
,
delete_key_list
,
signature
_document_list
)
{
attachment
_document_list
)
{
var
document_queue
=
new
RSVP
.
Queue
(),
i
;
...
...
@@ -579,7 +630,7 @@
var
j
,
signature_queue
=
new
RSVP
.
Queue
();
function
push
Signature
(
id
,
name
,
element
)
{
function
push
Attachment
(
id
,
name
,
element
)
{
signature_queue
.
push
(
function
()
{
return
context
.
_local_sub_storage
.
putAttachment
(
...
...
@@ -592,11 +643,11 @@
console
.
error
(
error
);
});
}
for
(
j
=
0
;
j
<
signature
_document_list
.
length
;
j
+=
1
)
{
push
Signature
(
signature
_document_list
[
j
].
id
,
signature
_document_list
[
j
].
name
,
signature
_document_list
[
j
].
doc
for
(
j
=
0
;
j
<
attachment
_document_list
.
length
;
j
+=
1
)
{
push
Attachment
(
attachment
_document_list
[
j
].
id
,
attachment
_document_list
[
j
].
name
,
attachment
_document_list
[
j
].
doc
);
}
});
...
...
@@ -667,4 +718,4 @@
jIO
.
addStorage
(
'
replicatedopml
'
,
ReplicatedOPMLStorage
);
}(
jIO
,
RSVP
,
Rusha
,
Blob
,
console
));
\ No newline at end of file
}(
jIO
,
RSVP
,
Rusha
,
Blob
,
console
));
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/monitoring_jio_storage_js.xml
View file @
b18fe54e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
21883.33309.3834
8
</string>
</value>
<value>
<string>
961.
39289.49107.262
8
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
150
2445069.1
9
</float>
<float>
150
3487925.9
9
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_page_module/rjs_gadget_monitoring_html.xml
View file @
b18fe54e
...
...
@@ -244,7 +244,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
22124.2270.51677
</string>
</value>
<value>
<string>
961.
46449.45833.54135
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -262,7 +262,7 @@
</tuple>
<state>
<tuple>
<float>
150
2457717.67
</float>
<float>
150
3930399.38
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js.xml
View file @
b18fe54e
...
...
@@ -162,7 +162,7 @@
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
frontpage_gadget_url
</string>
</value>
<value>
<string>
configuration_latest_document_version
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
...
...
@@ -172,97 +172,7 @@
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_frontpage_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_application_title
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_hateoas_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_view_action_category
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_default_view_action_reference
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_panel_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_router_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_jio_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_translation_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_manifest_url
</string>
</value>
<value>
<string>
configuration_content_security_policy
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
...
...
@@ -272,7 +182,7 @@
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_
header_gadget_url
</string>
</value>
<value>
<string>
configuration_
latest_version
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
...
...
@@ -282,7 +192,7 @@
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_
content_security_policy
</string>
</value>
<value>
<string>
configuration_
redirect_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
...
...
@@ -302,7 +212,7 @@
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_
default_jio_document_page_gadget_url
</string>
</value>
<value>
<string>
configuration_
cache_file
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
...
...
@@ -342,86 +252,46 @@
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
caching_policy/must-revalidate
</string>
<string>
aggregate/web_page_module/rjs_gadget_monitoring_html
</string>
<string>
aggregate/web_page_module/gadget_officejs_bootloader.html
</string>
<string>
caching_policy/no-cache
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
configuration_application_title
</string>
</key>
<value>
<string>
Monitoring
</string>
</value>
</item>
<item>
<key>
<string>
configuration_content_security_policy
</string>
</key>
<value>
<string>
default-src \'none\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' mail.tiolive.com data: *; script-src \'self\' \'unsafe-eval\'; font-src netdna.bootstrapcdn.com \'self\'; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:
</string>
</value>
</item>
<item>
<key>
<string>
configuration_default_jio_document_page_gadget_url
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
configuration_default_view_action_reference
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
configuration_frontpage_gadget_url
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
configuration_hateoas_url
</string>
</key>
<value>
<string>
hateoas/
</string>
</value>
</item>
<item>
<key>
<string>
configuration_header_gadget_url
</string>
</key>
<value>
<string>
gadget_monitoring_header.html
</string>
</value>
</item>
<item>
<key>
<string>
configuration_jio_gadget_url
</string>
</key>
<value>
<string>
gadget_monitoring_jio.html
</string>
</value>
</item>
<item>
<key>
<string>
configuration_manifest_url
</string>
</key>
<key>
<string>
configuration_cache_file
</string>
</key>
<value>
<string>
gadget_monitoring.appcache
</string>
</value>
</item>
<item>
<key>
<string>
configuration_
panel_gadget_url
</string>
</key>
<value>
<string>
gadget_monitoring_application_panel.html
</string>
</value>
<key>
<string>
configuration_
content_security_policy
</string>
</key>
<value>
<string>
default-src \'self\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' https://content.dropboxapi.com https://api.dropboxapi.com mail.tiolive.com data: localhost:5378 *.host.vifib.net *.node.vifib.com *.erp5.net https://netdna.bootstrapcdn.com; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; font-src \'self\' netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:
</string>
</value>
</item>
<item>
<key>
<string>
configuration_
router_gadget_url
</string>
</key>
<value>
<string>
gadget_monitoring_router.html
</string>
</value>
<key>
<string>
configuration_
latest_document_version
</string>
</key>
<value>
<string>
001
</string>
</value>
</item>
<item>
<key>
<string>
configuration_
translation_gadget_url
</string>
</key>
<value>
<string>
gadget_translation.html
</string>
</value>
<key>
<string>
configuration_
latest_version
</string>
</key>
<value>
<string>
app
</string>
</value>
</item>
<item>
<key>
<string>
configuration_view_action_category
</string>
</key>
<value>
<none/>
</value>
<key>
<string>
configuration_redirect_url
</string>
</key>
<value>
<string>
app
</string>
</value>
</item>
<item>
<key>
<string>
configuration_x_frame_options
</string>
</key>
<value>
<string>
SAMEORIGIN
</string>
</value>
<value>
<string>
ALLOW-FROM-ALL
</string>
</value>
</item>
<item>
<key>
<string>
container_layout
</string>
</key>
<value>
<string>
WebSection_render
DefaultPageAsGadget
</string>
</value>
<value>
<string>
WebSection_render
OfficeJSApplicationPage
</string>
</value>
</item>
<item>
<key>
<string>
content_layout
</string>
</key>
<value>
<string>
WebSection_render
DefaultPageAsGadget
</string>
</value>
<value>
<string>
WebSection_render
OfficeJSApplicationPage
</string>
</value>
</item>
<item>
<key>
<string>
custom_render_method_id
</string>
</key>
<value>
<string>
WebSection_render
DefaultPageAsGadget
</string>
</value>
<value>
<string>
WebSection_render
OfficeJSApplicationPage
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
...
...
@@ -429,17 +299,13 @@
<none/>
</value>
</item>
<item>
<key>
<string>
frontpage_gadget_url
</string>
</key>
<value>
<string>
gadget_woelfel_pt_frontpage.html
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
monitoring_render_js
</string>
</value>
</item>
<item>
<key>
<string>
layout_configuration_form_id
</string>
</key>
<value>
<string>
WebSection_view
RenderJS
Preference
</string>
</value>
<value>
<string>
WebSection_view
OfficeJSApplication
Preference
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
...
...
@@ -453,7 +319,7 @@
</item>
<item>
<key>
<string>
skin_selection_name
</string>
</key>
<value>
<string>
RJS
</string>
</value>
<value>
<string>
Officejs
</string>
</value>
</item>
<item>
<key>
<string>
static_language_selection
</string>
</key>
...
...
@@ -461,7 +327,7 @@
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Monitoring Interface
</string>
</value>
<value>
<string>
Office JS Monitor App
</string>
</value>
</item>
<item>
<key>
<string>
visible
</string>
</key>
...
...
@@ -601,7 +467,7 @@
</tuple>
<state>
<tuple>
<float>
1
451487706.16
</float>
<float>
1
503922757.92
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
@@ -646,7 +512,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
961.
21901.38049.4881
</string>
</value>
<value>
<string>
961.
48211.31484.14250
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -664,7 +530,7 @@
</tuple>
<state>
<tuple>
<float>
150
2456284.8
2
</float>
<float>
150
4021651.0
2
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_monitoring/PathTemplateItem/web_site_module/monitoring_render_js/app.xml
0 → 100644
View file @
b18fe54e
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Web Section"
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>
Authenticated
</string>
<string>
Author
</string>
<string>
Manager
</string>
<string>
Member
</string>
<string>
Owner
</string>
<string>
Reviewer
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Add_portal_content_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Add_portal_folders_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Copy_or_Move_Permission
</string>
</key>
<value>
<tuple>
<string>
Assignor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
_Delete_objects_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>
Authenticated
</string>
<string>
Author
</string>
<string>
Manager
</string>
<string>
Member
</string>
<string>
Owner
</string>
<string>
Reviewer
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
__before_publishing_traverse__
</string>
</key>
<value>
<object>
<klass>
<global
name=
"MultiHook"
module=
"ZPublisher.BeforeTraverse"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_defined_in_class
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
<item>
<key>
<string>
_hookname
</string>
</key>
<value>
<string>
__before_publishing_traverse__
</string>
</value>
</item>
<item>
<key>
<string>
_list
</string>
</key>
<value>
<list>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</list>
</value>
</item>
<item>
<key>
<string>
_prior
</string>
</key>
<value>
<none/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
__before_traverse__
</string>
</key>
<value>
<dictionary>
<item>
<key>
<tuple>
<int>
99
</int>
<string>
ERP5 Web Section/app
</string>
</tuple>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
_identity_criterion
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
_local_properties
</string>
</key>
<value>
<tuple>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_router_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_application_title
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_jio_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_x_frame_options
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_content_security_policy
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_panel_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_translation_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_header_gadget_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_hateoas_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
configuration_manifest_url
</string>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
string
</string>
</value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key>
<string>
_range_criterion
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAQ=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
caching_policy/must-revalidate
</string>
<string>
aggregate/web_page_module/rjs_gadget_monitoring_html
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
configuration_application_title
</string>
</key>
<value>
<string>
Monitoring App
</string>
</value>
</item>
<item>
<key>
<string>
configuration_content_security_policy
</string>
</key>
<value>
<string>
default-src \'self\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' https://content.dropboxapi.com https://api.dropboxapi.com mail.tiolive.com data: localhost:5378 *.host.vifib.net *.node.vifib.com *.erp5.net https://netdna.bootstrapcdn.com; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; font-src \'self\' netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:
</string>
</value>
</item>
<item>
<key>
<string>
configuration_hateoas_url
</string>
</key>
<value>
<string>
hateoas/
</string>
</value>
</item>
<item>
<key>
<string>
configuration_header_gadget_url
</string>
</key>
<value>
<string>
gadget_monitoring_header.html
</string>
</value>
</item>
<item>
<key>
<string>
configuration_jio_gadget_url
</string>
</key>
<value>
<string>
gadget_monitoring_jio.html
</string>
</value>
</item>
<item>
<key>
<string>
configuration_manifest_url
</string>
</key>
<value>
<string>
gadget_monitoring.appcache
</string>
</value>
</item>
<item>
<key>
<string>
configuration_panel_gadget_url
</string>
</key>
<value>
<string>
gadget_monitoring_application_panel.html
</string>
</value>
</item>
<item>
<key>
<string>
configuration_router_gadget_url
</string>
</key>
<value>
<string>
gadget_monitoring_router.html
</string>
</value>
</item>
<item>
<key>
<string>
configuration_translation_gadget_url
</string>
</key>
<value>
<string>
gadget_translation.html
</string>
</value>
</item>
<item>
<key>
<string>
configuration_x_frame_options
</string>
</key>
<value>
<string>
ALLOW-FROM-ALL
</string>
</value>
</item>
<item>
<key>
<string>
container_layout
</string>
</key>
<value>
<string>
WebSection_renderDefaultPageAsGadget
</string>
</value>
</item>
<item>
<key>
<string>
content_layout
</string>
</key>
<value>
<string>
WebSection_renderDefaultPageAsGadget
</string>
</value>
</item>
<item>
<key>
<string>
custom_render_method_id
</string>
</key>
<value>
<string>
WebSection_renderDefaultPageAsGadget
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
empty_criterion_valid
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
app
</string>
</value>
</item>
<item>
<key>
<string>
layout_configuration_form_id
</string>
</key>
<value>
<string>
WebSection_viewRenderJSPreference
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Web Section
</string>
</value>
</item>
<item>
<key>
<string>
short_title
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
skin_selection_name
</string>
</key>
<value>
<string>
RJS
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
SlapOS Monitoring App
</string>
</value>
</item>
<item>
<key>
<string>
visible
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAU=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"WebSectionTraversalHook"
module=
"Products.ERP5.Document.WebSection"
/>
</pickle>
<pickle>
<dictionary/>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"4"
aka=
"AAAAAAAAAAQ="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"5"
aka=
"AAAAAAAAAAU="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
category_publication_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAY=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
edit_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAc=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"6"
aka=
"AAAAAAAAAAY="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.patches.WorkflowTool"
/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
publish
</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=
"DateTime"
module=
"DateTime.DateTime"
/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>
1503929920.58
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
published
</string>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record
id=
"7"
aka=
"AAAAAAAAAAc="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.patches.WorkflowTool"
/>
</pickle>
<pickle>
<tuple>
<none/>
<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>
961.48181.3137.59750
</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=
"DateTime"
module=
"DateTime.DateTime"
/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>
1504021642.59
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
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