Commit 82ad02d6 authored by Roque's avatar Roque

erp5_officejs: more dev framework flexibility and fixes

- allow custom app configurator
- render listbox form field extra configuration
- fix date format rendering
- allow configuration form fields to have extra js code
- allow to customize listbox column styles
- allow to customize listbox jio_alldocs
- fix custom view handling
- fix gadget field rendering
- allow dev user to set custom header options
- truncate long string fields
- add custom submit gadget option
- improve renderjs_extra
- update graph gadget
parent d8119beb
...@@ -124,6 +124,39 @@ ...@@ -124,6 +124,39 @@
return graph_data_and_parameter; return graph_data_and_parameter;
}; };
var formatGraphDict = function (input_dict) {
var i, j, key, series = [], label_list = ['x'], point_list = [], serie_length, point;
for (i = 0; i < input_dict.data.length; i = i + 1) {
for (key of Object.keys(input_dict.data[i].value_dict)) {
serie_length = input_dict.data[i].value_dict[key].length;
if (key == 0) {
if (series.length === 0) {
series.push(input_dict.data[i].value_dict[key]); //x
}
} else {
series.push(input_dict.data[i].value_dict[key]); //yi
}
}
label_list.push(input_dict.data[i].title);
}
for (i = 0; i < serie_length; i = i + 1) {
point = [];
for (j = 0; j < series.length; j = j + 1) {
point.push(series[j][i]);
}
point_list.push(point);
}
var dygraph_dict = {
dygraph_data: point_list,
dygraph_parameter_dict: {
labels: label_list,
drawPoints : true,
pointSize : 1,
}
};
return dygraph_dict;
};
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// some methods // some methods
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
...@@ -162,7 +195,7 @@ ...@@ -162,7 +195,7 @@
graph_data_and_parameter; graph_data_and_parameter;
container = gadget.element.querySelector(".graph-content"); container = gadget.element.querySelector(".graph-content");
graph_data_and_parameter = getGraphDataAndParameterFromConfiguration(modification_dict.value); graph_data_and_parameter = formatGraphDict(modification_dict.value);
gadget.property_dict.graph = new Dygraph(container, gadget.property_dict.graph = new Dygraph(container,
graph_data_and_parameter.dygraph_data, graph_data_and_parameter.dygraph_data,
graph_data_and_parameter.dygraph_parameter_dict); graph_data_and_parameter.dygraph_parameter_dict);
......
...@@ -228,7 +228,7 @@ ...@@ -228,7 +228,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>superseb</string> </value> <value> <unicode>zope</unicode> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -242,7 +242,7 @@ ...@@ -242,7 +242,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>961.22065.145.58026</string> </value> <value> <string>1016.32471.45294.12919</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -262,8 +262,8 @@ ...@@ -262,8 +262,8 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1502453287.3</float> <float>1715371703.99</float>
<string>GMT+2</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
......
...@@ -165,9 +165,7 @@ ...@@ -165,9 +165,7 @@
parent_portal_type: portal_type parent_portal_type: portal_type
}; };
if (view_categorie_list.includes(action_settings.action_type)) { if (view_categorie_list.includes(action_settings.action_type)) {
if (app_view === action_settings.action) {
action_settings.page = "ojs_local_controller"; action_settings.page = "ojs_local_controller";
}
action_info_dict.view_list[action_settings.action] = action_info_dict.view_list[action_settings.action] =
action_settings; action_settings;
} else { } else {
......
...@@ -244,7 +244,7 @@ ...@@ -244,7 +244,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 +258,7 @@ ...@@ -258,7 +258,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>987.1958.49484.49100</string> </value> <value> <string>1015.45953.43925.42052</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -278,7 +278,7 @@ ...@@ -278,7 +278,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1601668696.35</float> <float>1712334861.52</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
app_action_list, app_action_list,
form_definition, form_definition,
current_version, current_version,
configurator,
index; index;
current_version = window.location.href.replace(window.location.hash, ""); current_version = window.location.href.replace(window.location.hash, "");
index = current_version.indexOf(window.location.host) + index = current_version.indexOf(window.location.host) +
...@@ -40,18 +41,20 @@ ...@@ -40,18 +41,20 @@
"app_view_reference", "app_view_reference",
"parent_portal_type", "parent_portal_type",
'default_view_reference', 'default_view_reference',
'app_actions']) 'app_actions',
'app_configurator'])
.push(function (setting_list) { .push(function (setting_list) {
app_view = options.action || setting_list[1]; app_view = options.action || setting_list[1];
parent_portal_type = setting_list[2]; parent_portal_type = setting_list[2];
default_view = setting_list[3]; default_view = setting_list[3];
app_action_list = setting_list[4]; app_action_list = setting_list[4];
configurator = setting_list[5] || 'ojs_configurator';
if (setting_list[0] !== current_version) { if (setting_list[0] !== current_version) {
//if app version has changed, force storage selection //if app version has changed, force storage selection
return gadget.redirect({ return gadget.redirect({
'command': 'display', 'command': 'display',
'options': { 'options': {
'page': 'ojs_configurator', 'page': configurator,
'auto_repair': true 'auto_repair': true
} }
}); });
...@@ -121,6 +124,7 @@ ...@@ -121,6 +124,7 @@
var fragment = document.createElement('div'), var fragment = document.createElement('div'),
gadget = this, gadget = this,
view_gadget_url = "gadget_officejs_form_view.html", view_gadget_url = "gadget_officejs_form_view.html",
//TODO: this should be a list, not only one custom view
custom_gadget_url = gadget.state.form_definition.portal_type_dict custom_gadget_url = gadget.state.form_definition.portal_type_dict
.custom_view_gadget; .custom_view_gadget;
while (this.element.firstChild) { while (this.element.firstChild) {
......
...@@ -222,7 +222,7 @@ ...@@ -222,7 +222,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>
...@@ -236,7 +236,7 @@ ...@@ -236,7 +236,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1005.39859.38086.29457</string> </value> <value> <string>1015.46091.52896.5922</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -256,7 +256,7 @@ ...@@ -256,7 +256,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1673426666.06</float> <float>1712343165.23</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
.getElementById("panel-template-body-desktop") .getElementById("panel-template-body-desktop")
.innerHTML); .innerHTML);
//TODO this is the same in action_officejs page, move to common
function getElementList(gadget, element_list) { function getElementList(gadget, element_list) {
var i = 0, var i = 0,
element_info_list = [], element_info_list = [],
......
...@@ -219,7 +219,7 @@ ...@@ -219,7 +219,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>
...@@ -233,7 +233,7 @@ ...@@ -233,7 +233,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1001.57742.17876.27579</string> </value> <value> <string>1014.1943.59170.64648</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -253,7 +253,7 @@ ...@@ -253,7 +253,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1658943108.94</float> <float>1713536268.81</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -244,7 +244,7 @@ ...@@ -244,7 +244,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 +258,7 @@ ...@@ -258,7 +258,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>991.25773.59047.44168</string> </value> <value> <string>1016.46538.50454.1467</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -278,7 +278,7 @@ ...@@ -278,7 +278,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1672736671.72</float> <float>1716222503.85</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
); );
} }
//TODO this is the same in ojs_panel, move to common
function getHTMLElementList(gadget, element_list) { function getHTMLElementList(gadget, element_list) {
var i = 0, var i = 0,
element_info_list = [], element_info_list = [],
......
...@@ -222,7 +222,7 @@ ...@@ -222,7 +222,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>
...@@ -236,7 +236,7 @@ ...@@ -236,7 +236,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>979.63524.32203.29269</string> </value> <value> <string>1015.45957.31009.8925</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -256,7 +256,7 @@ ...@@ -256,7 +256,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1574423701.42</float> <float>1713536281.01</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
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