Commit fd03a5b0 authored by Roque's avatar Roque

erp5_web_monitoring: refactor monitoring app to use new ojs framework

- site web section changes
- update app router
- update app panel
- adapt monitoring jio gadget and jio storage
- add form views configuration
- add new portal types, views and actions
- migration_version check
- update precache manifest
- sync checks and redirection
- refactor dispatch page according to new monitor urls
- add opml redirects to front page
- slapos portal types
- drop obsolete files
- drop auto-sync on add OPML page
parent b2c02989
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_jio_search</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>10.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/InstanceTreeModule_viewForMonitoring</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_jio_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>30.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/InstanceTree_viewForMonitoring</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>action_permission</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_jio_search</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>10.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/PromiseModule_viewForMonitoring</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>action_permission</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_jio_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>30.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Promise_viewForMonitoring</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_jio_search</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>10.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/SoftwareInstanceModule_viewForMonitoring</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_jio_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>30.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>monitoring_view</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/SoftwareInstance_viewForMonitoring</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -5,37 +5,12 @@ ...@@ -5,37 +5,12 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>ERP5 Page Monitoring Dispatch</title> <title>ERP5 Page Monitoring Dispatch</title>
<link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
<!-- renderjs --> <!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script> <script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script> <script src="renderjs.js" type="text/javascript"></script>
<script src="handlebars.js" type="text/javascript"></script>
<script src="gadget_erp5_page_ojsm_dispatch.js" type="text/javascript"></script> <script src="gadget_erp5_page_ojsm_dispatch.js" type="text/javascript"></script>
<script id="dispatch-template" type="text/x-handlebars-template">
<h3 class="ui-content-title ui-body-c" data-i18n="No results from your search">
<span class="ui-icon ui-icon-custom ui-icon-frown-o">&nbsp;</span>
No results from your search!
</h3>
</script>
</head> </head>
<body> <body>
<section class="ui-content-header-plain">
<h3 class="ui-content-title ui-body-c" data-i18n="Monitoring Search">
<span class="ui-icon ui-icon-custom ui-icon-search">&nbsp;</span>
Monitoring Search
</h3>
</section>
<p class="text-info">Type a text or query. ie: <i>portal_type: "Software Instance" AND title: "foo"</i></p>
<form class="dialog_form">
<button type="submit"
class="ui-btn ui-btn-b ui-btn-inline
ui-icon-action ui-btn-icon-right ui-screen-hidden">Submit</button>
<div data-gadget-url="gadget_erp5_searchfield.html"
data-gadget-scope="erp5_searchfield"
data-gadget-sandbox="public"></div>
</form>
<div class="search-result"></div>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -236,7 +236,7 @@ ...@@ -236,7 +236,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>zope</string> </value> <value> <unicode>zope</unicode> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -250,7 +250,7 @@ ...@@ -250,7 +250,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>963.33813.35232.64187</string> </value> <value> <string>1014.27842.65173.60296</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -270,7 +270,7 @@ ...@@ -270,7 +270,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1510936342.8</float> <float>1707263598.02</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
/*global window, rJS, RSVP, Handlebars */ /*global window, rJS, RSVP */
/*jslint nomen: true, indent: 2, maxerr: 3 */ /*jslint nomen: true, indent: 2, maxerr: 3 */
(function (window, rJS, RSVP, Handlebars) { (function (window, rJS, RSVP) {
"use strict"; "use strict";
var gadget_klass = rJS(window), rJS(window)
source = gadget_klass.__template_element
.getElementById("dispatch-template")
.innerHTML,
dispatch_template = Handlebars.compile(source);
function searchItem(gadget, search_query) {
var redirect_options = {},
select_list = ["portal_type"];
if (search_query === undefined || search_query === "") {
return new RSVP.Queue()
.push(function () {
return;
});
}
return new RSVP.Queue()
.push(function () {
return gadget.getSetting("listbox_lines_limit", 20);
})
.push(function (lines_limit) {
return gadget.jio_allDocs({
query: search_query,
select_list: select_list,
limit: [0, lines_limit]
});
})
.push(function (result) {
if (result === undefined || result.data.total_rows === 0) {
if (gadget.state.url && gadget.state.username && gadget.state.password) {
return gadget.redirect({"command": "display",
"options": {"page": "ojsm_opml_add",
"url": gadget.state.url,
"username": gadget.state.username,
"password": gadget.state.password,
"query": gadget.state.original_query}
});
}
return;
}
if (result.data.total_rows === 1) {
// one item found, redirect to it
redirect_options = {
jio_key: result.data.rows[0].id
};
return gadget.redirect({"command": "index", options: redirect_options});
}
redirect_options = {
extended_search: gadget.state.query
};
if (gadget.state.portal_type === undefined) {
// take the first one
gadget.state.portal_type = result.data.rows[0].value.portal_type;
}
if (gadget.state.portal_type === "Instance Tree") {
redirect_options.page = "ojsm_instance_tree_list";
} else if (gadget.state.portal_type === "Software Instance") {
redirect_options.page = "ojsm_software_instance_list";
} else if (gadget.state.portal_type === "promise") {
redirect_options.page = "ojsm_status_list";
}
return gadget.redirect({"command": "display", options: redirect_options});
});
}
gadget_klass
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Acquired methods // Acquired methods
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
.declareAcquiredMethod("translateHtml", "translateHtml")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareAcquiredMethod("redirect", "redirect") .declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("getSetting", "getSetting") .declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("setSetting", "setSetting") .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// declared methods // declared methods
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
.declareMethod("triggerSubmit", function () { .declareMethod("render", function (options) {
var argument_list = arguments; var gadget = this, portal_type, extended_search, query_parts_list;
return this.getDeclaredGadget('form_view') if (options.query && options.url && options.username && options.password) {
.push(function (gadget) { return new RSVP.Queue()
return gadget.triggerSubmit.apply(gadget, argument_list); .push(function () {
return gadget.jio_allDocs({
query: options.query
}); });
}) })
.declareMethod("render", function (options) { .push(function (result) {
var gadget = this, if (result === undefined || result.data.total_rows === 0) {
regex = /portal_type\s*\:\s*[\'\"]([\w+\s+]+)[\'\"]/i, return gadget.redirect(
regex_list = /\(?([\w\d\_]+)\s*\:\s*\(([\"\w\_\d\-\.\s*\,]+)\)\)?/g, {"command": "display",
query_list = [], "options": {
i, "url": options.url,
tmp, "username": options.username,
page_title = "Monitoring Search", "password": options.password,
original_query, "page": "ojsm_opml_add"
portal_type,
pt_result,
result;
result = regex_list.exec(options.query);
if (result !== null) {
tmp = result[2].split(',');
for (i = 0; i < tmp.length; i += 1) {
query_list.push(result[1] + ': ' + tmp[i].trim());
}
options.query = options.query
.replace(regex_list, '(' + query_list.join(' OR ') + ')');
}
original_query = JSON.parse(JSON.stringify(options.query || ""));
pt_result = regex.exec(options.query);
if (pt_result !== null) {
page_title = "Searching " + pt_result[1] + "(s)";
portal_type = pt_result[1];
} }
return gadget.getUrlFor({command: 'display', options: {page: 'ojsm_status_list'}})
.push(function (back_url) {
return gadget.updateHeader({
page_title: page_title,
back_url: back_url
}); });
}) } else {
.push(function () { // URL queries from slapos master / panel rapid space:
return gadget.changeState({ // 'portal_type: "Instance Tree" AND title:"my-title"'
original_query: original_query, // or
query: options.query, // 'portal_type: "Software Instance" AND title:"my-title"
url: options.url, // AND specialise_title:"my-parent-title"'
username: options.username, query_parts_list = options.query.split('AND');
password: options.password, portal_type = query_parts_list[0].replace('portal_type:', '').replaceAll('"', '').trim();
portal_type: portal_type || "promise", extended_search = options.query.replace(query_parts_list[0] + 'AND ', '').trim();
import_opml: portal_type === undefined ? false : options.import_opml || true return gadget.redirect(
{"command": "display",
"options": {
"page": "ojs_local_controller",
"portal_type": portal_type + " Module",
"extended_search": extended_search
}
}); });
}
}); });
}) }
.onStateChange(function () {
var gadget = this;
return new RSVP.Queue() return new RSVP.Queue()
.push(function () { .push(function () {
if (gadget.state.import_opml) {
return gadget.getSetting('latest_import_date') return gadget.getSetting('latest_import_date')
.push(function (import_date) { .push(function (import_date) {
// If import was never done, or was done more than 2 weeks ago // If import was never done, or was done more than 2 weeks ago
// 1209600000 = 1000*60*60*24*14 // 1209600000 = 1000*60*60*24*14
var current_date = new Date().getTime();
if (import_date === undefined || if (import_date === undefined ||
(import_date + 1209600000) < current_date) { (import_date + 1209600000) < new Date().getTime()) {
return gadget.setSetting('sync_redirect_options', {
query: gadget.state.original_query,
page: 'ojsm_dispatch'
})
.push(function () {
return gadget.redirect({command: 'change', options: { return gadget.redirect({command: 'change', options: {
page: "ojsm_erp5_configurator", page: "ojsm_erp5_configurator",
type: "erp5" type: "erp5"
}}); }});
});
} }
}); });
}
}) })
.push(function () { .push(function () {
return gadget.getDeclaredGadget('erp5_searchfield'); // default front page (list of promises)
}) return gadget.redirect({command: 'display',
.push(function (searchfield) { options: {page: "ojs_local_controller",
return searchfield.render({ portal_type: "Promise Module"}
extended_search: gadget.state.original_query,
focus: true
}); });
})
.push(function () {
return searchItem(gadget, gadget.state.query);
})
.push(function (search_result) {
if (search_result === undefined && gadget.state.query) {
gadget.element.querySelector('.search-result')
.innerHTML = dispatch_template({});
}
}); });
})
.onEvent('submit', function () {
var gadget = this;
return gadget.getDeclaredGadget("erp5_searchfield")
.push(function (search_gadget) {
return search_gadget.getContent();
})
.push(function (data) {
var options = {
page: "ojsm_dispatch"
};
if (data.search) {
options.query = data.search;
return gadget.redirect({command: 'change', options: options});
}
}); });
}, false, true); }(window, rJS, RSVP));
\ No newline at end of file
}(window, rJS, RSVP, Handlebars));
\ No newline at end of file
...@@ -246,7 +246,7 @@ ...@@ -246,7 +246,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1012.62724.50149.41113</string> </value> <value> <string>1014.43824.52459.5376</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -266,7 +266,7 @@ ...@@ -266,7 +266,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1701717676.56</float> <float>1708449003.36</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -379,6 +379,7 @@ ...@@ -379,6 +379,7 @@
if (tmp_parameter === undefined) { if (tmp_parameter === undefined) {
tmp_parameter = {username: "", password: "", opml_url: undefined}; tmp_parameter = {username: "", password: "", opml_url: undefined};
} }
if (instance_tree_list[uid_dict[tmp_uid]]) {
opml_list.push({ opml_list.push({
portal_type: "opml", portal_type: "opml",
title: instance_tree_list[uid_dict[tmp_uid]] title: instance_tree_list[uid_dict[tmp_uid]]
...@@ -397,6 +398,7 @@ ...@@ -397,6 +398,7 @@
}); });
} }
} }
}
return opml_list; return opml_list;
}); });
} }
...@@ -441,6 +443,7 @@ ...@@ -441,6 +443,7 @@
return form_gadget.getContent(); return form_gadget.getContent();
}) })
.push(function (form_doc) { .push(function (form_doc) {
//TODO if this feature is restored, update latest_import_date
return importMonitorConfiguration(gadget, form_doc.config); return importMonitorConfiguration(gadget, form_doc.config);
}); });
}) })
......
...@@ -246,7 +246,7 @@ ...@@ -246,7 +246,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>zope</string> </value> <value> <unicode>zope</unicode> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -260,7 +260,7 @@ ...@@ -260,7 +260,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>994.35349.51657.9164</string> </value> <value> <string>1014.43844.29599.43673</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -280,7 +280,7 @@ ...@@ -280,7 +280,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1630678740.59</float> <float>1708448979.03</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Monitoring Instance Tree List</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_erp5_page_ojsm_instance_tree_list.js"></script>
</head>
<body>
<div data-gadget-url="gadget_erp5_pt_form_list.html" data-gadget-scope="form_list"></div>
</body>
</html>
/*global window, rJS, RSVP */
/*jslint nomen: true, indent: 2, maxerr: 3*/
(function (window, rJS, RSVP) {
"use strict";
var gadget_klass = rJS(window);
gadget_klass
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("reload", "reload")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("renderApplication", "renderApplication")
.declareAcquiredMethod('jio_allDocs', 'jio_allDocs')
.allowPublicAcquisition("jio_allDocs", function (param_list) {
var gadget = this;
return gadget.jio_allDocs(param_list[0])
.push(function (result) {
var i,
len = result.data.total_rows;
for (i = 0; i < len; i += 1) {
if (result.data.rows[i].value.hasOwnProperty("status_date")) {
result.data.rows[i].value.status_date = {
field_gadget_param: {
allow_empty_time: 0,
ampm_time_style: 0,
css_class: "date_field",
date_only: 0,
description: "The Date",
editable: 0,
hidden: 0,
hidden_day_is_last_day: 0,
"default": result.data.rows[i].value.status_date,
key: "date",
required: 0,
timezone_style: 1,
title: "Status Date",
type: "DateTimeField"
}
};
result.data.rows[i].value["listbox_uid:list"] = {
key: "listbox_uid:list",
value: 2713
};
}
if (result.data.rows[i].value.hasOwnProperty("status")) {
result.data.rows[i].value.status = {
field_gadget_param: {
css_class: "",
description: "The Status",
hidden: 0,
"default": result.data.rows[i].value.status,
key: "status",
url: "gadget_erp5_field_status.html",
title: "Status",
type: "GadgetField"
}
};
result.data.rows[i].value["listbox_uid:list"] = {
key: "listbox_uid:list",
value: 2713
};
}
}
return result;
});
})
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
.declareMethod("triggerSubmit", function () {
var argument_list = arguments;
return this.getDeclaredGadget('form_list')
.push(function (gadget) {
return gadget.triggerSubmit.apply(gadget, argument_list);
});
})
.declareMethod("render", function (options) {
return this.changeState({
options: options,
latest_reload_time: new Date().getTime()
});
})
.onStateChange(function () {
var gadget = this,
lines_limit;
return new RSVP.Queue()
.push(function () {
return gadget.getSetting("listbox_lines_limit", 20);
})
.push(function (listbox_lines_limit) {
lines_limit = listbox_lines_limit;
return gadget.getDeclaredGadget('form_list');
})
.push(function (form_list) {
var column_list = [
['status', 'Status'],
['title', 'Instance Tree'],
['instance_amount', 'Instance Amount'],
['status_date', 'Status Date']
];
return form_list.render({
erp5_document: {
"_embedded": {"_view": {
"listbox": {
"column_list": column_list,
"show_anchor": 0,
"default_params": {},
"editable": 0,
"editable_column_list": [],
"key": "instance_tree_listbox",
"lines": lines_limit,
"list_method": "portal_catalog",
"query": "urn:jio:allDocs?query=%28portal_type%3A%22" +
"Instance Tree" + "%22%29",
"portal_type": [],
"search_column_list": [['status', 'Status'], ['title', 'Instance Tree']],
"sort_column_list": [['status', 'Status'], ['title', 'Instance Tree'],
['instance_amount', 'Instance Amount'], ['status_date', 'Status Date']],
"sort": [['status', 'ascending'], ['title', 'ascending']],
"title": "Instance Trees",
"command": "index",
"type": "ListBox"
}
}},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
}
},
form_definition: {
group_list: [[
"bottom",
[["listbox"]]
]]
}
});
})
.push(function () {
return gadget.updateHeader({
page_title: "Instance Trees Status",
filter_action: true
});
});
})
.onLoop(function () {
var gadget = this;
return gadget.getSetting('latest_sync_time')
.push(function (latest_sync_time) {
if (latest_sync_time > gadget.state.latest_reload_time) {
return gadget.changeState({latest_reload_time: new Date().getTime()});
}
});
}, 30000);
}(window, rJS, RSVP));
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />
<title>ERP5 Page Monitoring Landing</title>
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<script src="gadget_erp5_page_ojsm_landing.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
/*global window, rJS */
/*jslint nomen: true, indent: 2, maxerr: 3 */
(function (window, rJS) {
"use strict";
rJS(window)
/////////////////////////////////////////////////////////////////
// Acquired methods
/////////////////////////////////////////////////////////////////
.declareAcquiredMethod("redirect", "redirect")
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
.declareMethod("render", function (options) {
var gadget = this,
redirect_options = {
"page": "ojsm_dispatch",
"url": options.url,
"username": options.username,
"password": options.password,
"query": options.query
};
if (options.query) {
return gadget.redirect({"command": "display",
"options": redirect_options
});
}
if (options.url && options.username && options.password) {
redirect_options.page = "ojsm_opml_add";
return gadget.redirect({"command": "display",
"options": redirect_options
});
}
return gadget.redirect({"command": "display",
"options": {"page": "ojsm_status_list"}
});
});
}(window, rJS));
\ No newline at end of file
...@@ -67,6 +67,11 @@ ...@@ -67,6 +67,11 @@
}) })
.push(function (result_list) { .push(function (result_list) {
if (result_list[1].status) { if (result_list[1].status) {
var redirect_options = {
"command": "display",
"options": {page: "ojs_local_controller",
portal_type: "Promise Module"}
};
if (gadget.state.auto_sync) { if (gadget.state.auto_sync) {
return gadget.getDeclaredGadget('sync_gadget') return gadget.getDeclaredGadget('sync_gadget')
.push(function (sync_gadget) { .push(function (sync_gadget) {
...@@ -74,16 +79,10 @@ ...@@ -74,16 +79,10 @@
return sync_gadget.register({now: true}); return sync_gadget.register({now: true});
}) })
.push(function () { .push(function () {
return gadget.redirect({ return gadget.redirect(redirect_options);
"command": "display",
"options": {"page": "ojsm_status_list"}
});
}); });
} }
return gadget.redirect({ return gadget.redirect(redirect_options);
"command": "display",
"options": {"page": "settings_configurator"}
});
} }
if (result_list[1].can_force) { if (result_list[1].can_force) {
gadget.element.getElementsByClassName("btn-nopasswd")[0] gadget.element.getElementsByClassName("btn-nopasswd")[0]
...@@ -231,14 +230,6 @@ ...@@ -231,14 +230,6 @@
save_action: true, save_action: true,
change_password: chg_pwd_url change_password: chg_pwd_url
}); });
})
.push(function () {
return gadget.checkSynchronize();
}); });
})
.declareJob("checkSynchronize", function () {
if (this.state.auto_sync) {
return this.element.querySelector('button[type="submit"]').click();
}
}); });
}(window, rJS, RSVP)); }(window, rJS, RSVP));
...@@ -79,7 +79,9 @@ ...@@ -79,7 +79,9 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/javascript</string> </value> <value>
<none/>
</value>
</item> </item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
...@@ -244,7 +246,7 @@ ...@@ -244,7 +246,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>zope</string> </value> <value> <unicode>zope</unicode> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -258,7 +260,7 @@ ...@@ -258,7 +260,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>971.63895.24146.65194</string> </value> <value> <string>1015.15648.56156.28518</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -278,7 +280,7 @@ ...@@ -278,7 +280,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1543593135.84</float> <float>1710516573.13</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Monitoring Software Instances</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_erp5_page_ojsm_software_instance_list.js"></script>
</head>
<body>
<div data-gadget-url="gadget_erp5_pt_form_list.html" data-gadget-scope="form_list"></div>
</body>
</html>
/*global window, rJS, RSVP */
/*jslint nomen: true, indent: 2, maxerr: 3*/
(function (window, rJS, RSVP) {
"use strict";
rJS(window)
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.allowPublicAcquisition("jio_allDocs", function (param_list) {
var gadget = this;
return gadget.jio_allDocs(param_list[0])
.push(function (result) {
var i, value, len = result.data.total_rows;
for (i = 0; i < len; i += 1) {
if (result.data.rows[i].value.hasOwnProperty("date")) {
result.data.rows[i].value.date = {
field_gadget_param: {
allow_empty_time: 0,
ampm_time_style: 0,
css_class: "date_field",
date_only: 0,
description: "The Date",
editable: 0,
hidden: 0,
hidden_day_is_last_day: 0,
"default": result.data.rows[i].value.date,
key: "date",
required: 0,
timezone_style: 1,
title: "Status Date",
type: "DateTimeField"
}
};
result.data.rows[i].value["listbox_uid:list"] = {
key: "listbox_uid:list",
value: 2713
};
}
if (result.data.rows[i].value.hasOwnProperty("status")) {
value = result.data.rows[i].value.status;
result.data.rows[i].value.status = {
field_gadget_param: {
css_class: "",
description: "The Status",
hidden: 0,
"default": value,
key: "status",
url: "gadget_erp5_field_status.html",
title: "Status",
type: "GadgetField"
}
};
result.data.rows[i].value["listbox_uid:list"] = {
key: "listbox_uid:list",
value: 2713
};
}
}
return result;
});
})
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
.declareMethod("triggerSubmit", function () {
var argument_list = arguments;
return this.getDeclaredGadget('form_list')
.push(function (gadget) {
return gadget.triggerSubmit.apply(gadget, argument_list);
});
})
.declareMethod("render", function (options) {
return this.changeState({
options: options,
latest_reload_time: new Date().getTime()
});
})
.onStateChange(function () {
var gadget = this,
lines_limit;
return new RSVP.Queue()
.push(function () {
return gadget.getSetting("listbox_lines_limit", 20);
})
.push(function (listbox_lines_limit) {
lines_limit = listbox_lines_limit;
return gadget.getDeclaredGadget('form_list');
})
.push(function (form_list) {
var column_list = [
['status', 'Status'],
['title', 'Instance Title'],
['specialise_title', 'Instance Tree'],
['aggregate_reference', 'Computer'],
['date', 'Status Date']
];
return form_list.render({
erp5_document: {
"_embedded": {"_view": {
"listbox": {
"column_list": column_list,
"show_anchor": 0,
"default_params": {},
"editable": 0,
"editable_column_list": [],
"key": "software_instance_listbox",
"lines": lines_limit,
"list_method": "portal_catalog",
"query": "urn:jio:allDocs?query=portal_type%3A%22" +
"Software%20Instance" + "%22",
"portal_type": [],
"search_column_list": column_list,
"sort_column_list": column_list,
"sort": [["status", "ascending"]],
"title": "Software Instances",
"type": "ListBox"
}
}},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
}
},
form_definition: {
group_list: [[
"bottom",
[["listbox"]]
]]
}
});
})
.push(function () {
return gadget.updateHeader({
page_title: "Software Instances Status",
filter_action: true
});
});
})
.onLoop(function () {
var gadget = this;
return gadget.getSetting('latest_sync_time')
.push(function (latest_sync_time) {
if (latest_sync_time > gadget.state.latest_reload_time) {
return gadget.changeState({latest_reload_time: new Date().getTime()});
}
});
}, 30000);
}(window, rJS, RSVP));
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
}); });
}) })
.push(function () { .push(function () {
var redirect_options = {"page": "ojsm_status_list"}; var redirect_options = {"page": "ojsm_dispatch"};
if (options.reset === "1") { if (options.reset === "1") {
// reset redirections // reset redirections
return gadget.setSetting("sync_redirect_options", undefined) return gadget.setSetting("sync_redirect_options", undefined)
......
...@@ -79,7 +79,9 @@ ...@@ -79,7 +79,9 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/javascript</string> </value> <value>
<none/>
</value>
</item> </item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
...@@ -244,7 +246,7 @@ ...@@ -244,7 +246,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>zope</string> </value> <value> <unicode>zope</unicode> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -258,7 +260,7 @@ ...@@ -258,7 +260,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>971.18960.44200.52138</string> </value> <value> <string>1014.27855.54097.10478</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -278,7 +280,7 @@ ...@@ -278,7 +280,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1540897197.53</float> <float>1707263598.02</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -4,48 +4,15 @@ ...@@ -4,48 +4,15 @@
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, user-scalable=no" /> <meta name="viewport" content="width=device-width, user-scalable=no" />
<title>ERP5 Page Monitoring Settings Configurator</title> <title>ERP5 Page Monitoring Settings Configurator</title>
<!-- Kept for backward compatibility -->
<link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
<!-- renderjs --> <!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script> <script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script> <script src="renderjs.js" type="text/javascript"></script>
<script src="handlebars.js" type="text/javascript"></script>
<script src="gadget_erp5_page_settings_configurator.js" type="text/javascript"></script> <script src="gadget_erp5_page_settings_configurator.js" type="text/javascript"></script>
<script id="template-message-error" type="text/x-handlebars-template">
<p><span class='ui-text-{{status}}'>{{message}}</span></p>
</script>
</head> </head>
<body> <body>
<div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>
<article class="ui-content ui-body-c">
<section class="ui-content-header-plain">
<h3 class="ui-content-title ui-body-c">
<span class="ui-icon ui-icon-custom ui-icon-gear">&nbsp;</span>
Monitoring Configurations
</h3>
</section>
</article>
<br/>
<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 class="ui-message-alert"></div>
<div data-gadget-url="gadget_erp5_form.html"
data-gadget-scope="form_view"
data-gadget-sandbox="public">
</div>
</form>
<div class="ui-field-contain">
<div class="left">
<button class="danger-button" id="destroyOPML" data-i18n="Remove All OPML">
Remove All OPML
</button>
<span><i data-i18n="with all associated data">with all associated data</i></span>
</div>
</div>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -236,7 +236,7 @@ ...@@ -236,7 +236,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>zope</string> </value> <value> <unicode>zope</unicode> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -250,7 +250,7 @@ ...@@ -250,7 +250,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>971.40832.39714.27067</string> </value> <value> <string>1014.2117.47678.65518</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -270,7 +270,7 @@ ...@@ -270,7 +270,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1542210787.16</float> <float>1707263598.02</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -246,7 +246,7 @@ ...@@ -246,7 +246,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1012.23628.37695.12441</string> </value> <value> <string>1014.26477.56382.4881</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -266,7 +266,7 @@ ...@@ -266,7 +266,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1699538392.28</float> <float>1707263598.02</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Monitoring Instance Tree 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_instance_tree_view.js"></script>
</head>
<body>
<br/>
<article class="ui-content ui-body-c">
<section class="ui-content-header-plain">
<h3 class="ui-content-title ui-body-c">
<span class="ui-icon ui-icon-custom ui-icon-cubes">&nbsp;</span>
<span class="hosting-title"></span>
</h3>
</section>
<section class="ui-body-c ui-content-section">
<p class="text-info">To change monitor password, go to <i>Monitoring Configuration</i>.</p>
<div class="parameters-box">
</div>
</section>
</article>
<div class="bottom">
<div data-gadget-url="gadget_erp5_form.html"
data-gadget-scope="form_list"
data-gadget-sandbox="public">
</div>
</div>
</body>
</html>
<!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="handlebars.js"></script>
<script class="render-link-template" type="text/x-handlebars-template">
<a href="{{url}}" target="{{target}}">{{title}}</a>
</script>
<script src="gadget_officejs_jio_promise_view.js"></script>
</head>
<body>
<div data-gadget-url="gadget_officejs_monitoring_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></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_erp5_form.html"
data-gadget-scope="form_view"
data-gadget-sandbox="public">
</div>
</form>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
<title>OfficeJS Jio Web Page View</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="handlebars.js"></script>
<script class="render-link-template" type="text/x-handlebars-template">
<a href="{{url}}" target="{{target}}">{{title}}</a>
</script>
<script src="gadget_officejs_jio_software_instance_view.js"></script>
</head>
<body>
<form>
<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_erp5_form.html"
data-gadget-scope="form_view"
data-gadget-sandbox="public">
</div>
</form>
</body>
</html>
\ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<ZopeData> <ZopeData>
<record id="1" aka="AAAAAAAAAAE="> <record id="1" aka="AAAAAAAAAAE=">
<pickle> <pickle>
<global name="Web Page" module="erp5.portal_type"/> <global name="Web Manifest" module="erp5.portal_type"/>
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
<key> <string>_Add_portal_content_Permission</string> </key> <key> <string>_Add_portal_content_Permission</string> </key>
<value> <value>
<tuple> <tuple>
<string>Assignee</string>
<string>Assignor</string> <string>Assignor</string>
<string>Manager</string> <string>Manager</string>
</tuple> </tuple>
...@@ -42,8 +41,6 @@ ...@@ -42,8 +41,6 @@
<key> <string>_Modify_portal_content_Permission</string> </key> <key> <string>_Modify_portal_content_Permission</string> </key>
<value> <value>
<tuple> <tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string> <string>Manager</string>
</tuple> </tuple>
</value> </value>
...@@ -61,27 +58,15 @@ ...@@ -61,27 +58,15 @@
</tuple> </tuple>
</value> </value>
</item> </item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>classification/collaborative/team</string>
</tuple>
</value>
</item>
<item> <item>
<key> <string>content_md5</string> </key> <key> <string>content_md5</string> </key>
<value> <value>
<none/> <none/>
</value> </value>
</item> </item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_ojsm_landing.html</string> </value> <value> <string>gadget_officejs_monitoring.configuration</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
...@@ -91,29 +76,41 @@ ...@@ -91,29 +76,41 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>gadget_erp5_page_ojsm_landing_html</string> </value> <value> <string>gadget_officejs_monitoring.configuration</string> </value>
</item> </item>
<item> <item>
<key> <string>language</string> </key> <key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <value>
<none/> <none/>
</value> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>text_content</string> </key>
<value> <string>Gadget Officejs Monitoring Landing</string> </value> <value> <string>CONFIGURATION MANIFEST\n
</item> # generated on Mon Mar 4 18:27:04 2024\n
<item> CACHE:\n
<key> <string>version</string> </key> \n
<value> <string>001</string> </value> hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1NvZnR3YXJlIEluc3RhbmNl\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1NvZnR3YXJlIEluc3RhbmNlL21vbml0b3Jpbmdfdmlldw==\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3JpbmcvU29mdHdhcmVJbnN0YW5jZV92aWV3Rm9yTW9uaXRvcmluZw==\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL0luc3RhbmNlIFRyZWU=\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL0luc3RhbmNlIFRyZWUvbW9uaXRvcmluZ192aWV3\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3JpbmcvSW5zdGFuY2VUcmVlX3ZpZXdGb3JNb25pdG9yaW5n\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1Byb21pc2UgTW9kdWxl\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1Byb21pc2UgTW9kdWxlL21vbml0b3Jpbmdfdmlldw==\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3JpbmcvUHJvbWlzZU1vZHVsZV92aWV3Rm9yTW9uaXRvcmluZw==\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1Byb21pc2U=\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1Byb21pc2UvbW9uaXRvcmluZ192aWV3\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3JpbmcvUHJvbWlzZV92aWV3Rm9yTW9uaXRvcmluZw==\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL0luc3RhbmNlIFRyZWUgTW9kdWxl\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL0luc3RhbmNlIFRyZWUgTW9kdWxlL21vbml0b3Jpbmdfdmlldw==\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3JpbmcvSW5zdGFuY2VUcmVlTW9kdWxlX3ZpZXdGb3JNb25pdG9yaW5n\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1NvZnR3YXJlIEluc3RhbmNlIE1vZHVsZQ==\n
hateoas_appcache/definition_view/cG9ydGFsX3R5cGVzL1NvZnR3YXJlIEluc3RhbmNlIE1vZHVsZS9tb25pdG9yaW5nX3ZpZXc=\n
hateoas_appcache/definition_view/cG9ydGFsX3NraW5zL2VycDVfd2ViX21vbml0b3JpbmcvU29mdHdhcmVJbnN0YW5jZU1vZHVsZV92aWV3Rm9yTW9uaXRvcmluZw==\n
\n
NETWORK:\n
*</string> </value>
</item> </item>
<item> <item>
<key> <string>workflow_history</string> </key> <key> <string>workflow_history</string> </key>
...@@ -171,7 +168,7 @@ ...@@ -171,7 +168,7 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>action</string> </key> <key> <string>action</string> </key>
<value> <string>publish_alive</string> </value> <value> <string>publish</string> </value>
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
...@@ -199,7 +196,7 @@ ...@@ -199,7 +196,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1701370173.18</float> <float>1706027216.26</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -208,7 +205,7 @@ ...@@ -208,7 +205,7 @@
</item> </item>
<item> <item>
<key> <string>validation_state</string> </key> <key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value> <value> <string>published</string> </value>
</item> </item>
</dictionary> </dictionary>
</list> </list>
...@@ -248,7 +245,7 @@ ...@@ -248,7 +245,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1012.55497.36262.42052</string> </value> <value> <string>1014.12296.22288.38843</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -268,7 +265,7 @@ ...@@ -268,7 +265,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1701450474.45</float> <float>1709576768.94</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -295,7 +292,9 @@ ...@@ -295,7 +292,9 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>action</string> </key> <key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value> <value>
<none/>
</value>
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
...@@ -311,7 +310,7 @@ ...@@ -311,7 +310,7 @@
</item> </item>
<item> <item>
<key> <string>external_processing_state</string> </key> <key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value> <value> <string>empty</string> </value>
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
...@@ -331,7 +330,7 @@ ...@@ -331,7 +330,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1701369690.27</float> <float>1706027216.24</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -233,7 +233,7 @@ ...@@ -233,7 +233,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>zope</string> </value> <value> <unicode>zope</unicode> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -247,7 +247,7 @@ ...@@ -247,7 +247,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>971.43784.34275.28586</string> </value> <value> <string>1015.24509.15236.10769</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -267,7 +267,7 @@ ...@@ -267,7 +267,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1542388521.4</float> <float>1711048261.14</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
<script src="jiodev.js" type="text/javascript"></script> <script src="jiodev.js" type="text/javascript"></script>
<script src="monitoring_jio_storage.js" type="text/javascript"></script> <script src="monitoring_jio_storage.js" type="text/javascript"></script>
<script src="monitoring_jio_web_storage.js" type="text/javascript"></script> <script src="monitoring_jio_web_storage.js" type="text/javascript"></script>
<script src="jio_ojs_storage.js" type="text/javascript"></script>
<script src="jio_appcachestorage.js"></script>
<script src="jio_configuration_storage.js"></script>
<!-- custom script --> <!-- custom script -->
<script src="gadget_officejs_monitoring_jio.js" type="text/javascript"></script> <script src="gadget_officejs_monitoring_jio.js" type="text/javascript"></script>
......
...@@ -231,7 +231,7 @@ ...@@ -231,7 +231,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>zope</string> </value> <value> <unicode>zope</unicode> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -245,7 +245,7 @@ ...@@ -245,7 +245,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>963.22427.36654.49664</string> </value> <value> <string>1014.2117.47678.65518</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -265,7 +265,7 @@ ...@@ -265,7 +265,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1510320135.91</float> <float>1706206800.08</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -249,7 +249,7 @@ ...@@ -249,7 +249,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1012.16567.39240.33996</string> </value> <value> <string>1015.22775.37961.58163</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -269,7 +269,7 @@ ...@@ -269,7 +269,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1699034398.59</float> <float>1710945940.66</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -142,9 +142,9 @@ ...@@ -142,9 +142,9 @@
// Update the global links // Update the global links
.push(function () { .push(function () {
return RSVP.all([ return RSVP.all([
context.getUrlFor({command: 'display', options: {page: "ojsm_status_list"}}), context.getUrlFor({command: 'display', options: {page: "ojs_local_controller", portal_type: "Promise Module"}}),
context.getUrlFor({command: 'display', options: {page: "ojsm_software_instance_list"}}), context.getUrlFor({command: 'display', options: {page: "ojs_local_controller", portal_type: "Software Instance Module"}}),
context.getUrlFor({command: 'display', options: {page: "ojsm_instance_tree_list"}}), context.getUrlFor({command: 'display', options: {page: "ojs_local_controller", portal_type: "Instance Tree Module"}}),
context.getUrlFor({command: 'display', options: {page: "settings_configurator"}}), context.getUrlFor({command: 'display', options: {page: "settings_configurator"}}),
context.getUrlFor({command: 'display', options: {page: "ojsm_import_export"}}), context.getUrlFor({command: 'display', options: {page: "ojsm_import_export"}}),
context.getUrlFor({command: 'display', options: {page: "ojsm_synchronize", reset: 1}}) context.getUrlFor({command: 'display', options: {page: "ojsm_synchronize", reset: 1}})
......
...@@ -238,7 +238,7 @@ ...@@ -238,7 +238,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>zope</string> </value> <value> <unicode>zope</unicode> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>990.2265.53403.36881</string> </value> <value> <string>1014.13373.21627.45107</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -272,7 +272,7 @@ ...@@ -272,7 +272,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1613399146.3</float> <float>1706621148.81</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1012.10637.27951.32512</string> </value> <value> <string>1014.7721.36434.2560</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -272,7 +272,7 @@ ...@@ -272,7 +272,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1698678848.02</float> <float>1706281549.43</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
portal_types/Instance Tree Module/monitoring_view
portal_types/Instance Tree/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_view
\ No newline at end of file
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment