Commit c3eb0b30 authored by Romain Courteaud's avatar Romain Courteaud

erp5_core: use the html_viewer when the field is non editable

Stop using ck_editor in read_only to display HTML.

This allows to get rid of the ck_editor iframe, allowing a faster load and removing the iframe scroll.
The maximise button is no more needed in such case.

It also removes all ck_editor links handling: links can be open in another browser tab now.

This changes impacts both xhtml style and erp5js.
parent acfcbeae
...@@ -20,7 +20,7 @@ SimpleQuery, ComplexQuery, Query, domsugar*/ ...@@ -20,7 +20,7 @@ SimpleQuery, ComplexQuery, Query, domsugar*/
function parseHTMLLinks(html, url) { function parseHTMLLinks(html, url) {
var parser = new DOMParser(), i, var parser = new DOMParser(), i,
oSerializer = new XMLSerializer(), oSerializer = new XMLSerializer(),
doc = parser.parseFromString(html, "text/html"), doc = parser.parseFromString(html || '', "text/html"),
link_list = doc.querySelectorAll("a"); link_list = doc.querySelectorAll("a");
doc.querySelector("head").appendChild(domsugar('link', { doc.querySelector("head").appendChild(domsugar('link', {
href: "gadget_erp5_page_project.css", href: "gadget_erp5_page_project.css",
...@@ -266,7 +266,7 @@ SimpleQuery, ComplexQuery, Query, domsugar*/ ...@@ -266,7 +266,7 @@ SimpleQuery, ComplexQuery, Query, domsugar*/
web_page_info = result_list[2]; web_page_info = result_list[2];
if (web_page_info) { if (web_page_info) {
editor = result_list[1]; editor = result_list[1];
editor.render({"editor": "fck_editor", "editable": false, "maximize": true, editor.render({"editor": "fck_editor", "editable": false,
"value": web_page_info.content}); "value": web_page_info.content});
} }
url_parameter_list = [ url_parameter_list = [
......
...@@ -240,7 +240,7 @@ ...@@ -240,7 +240,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>982.41335.49696.64290</string> </value> <value> <string>989.31808.20170.12270</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -258,7 +258,7 @@ ...@@ -258,7 +258,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1584629384.78</float> <float>1611237159.42</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -70,8 +70,8 @@ ...@@ -70,8 +70,8 @@
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>waitForElementPresent</td> <td>assertElementPresent</td>
<td>//button[text()="Maximize"]</td> <td>//div[@data-gadget-url='${base_url}/web_site_module/project_management/gadget_editor.html']</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
"monaco": {"url": "monaco-editor.gadget.html"}, "monaco": {"url": "monaco-editor.gadget.html"},
"onlyoffice": {"url": "onlyoffice.gadget.html"}, "onlyoffice": {"url": "onlyoffice.gadget.html"},
"fck_editor": {"url": "ckeditor.gadget.html"}, "fck_editor": {"url": "ckeditor.gadget.html"},
"html_viewer": {"url": "gadget_html_viewer.html"},
"svg_editor" : {"url": "method-draw/method-draw.gadget.html"}, "svg_editor" : {"url": "method-draw/method-draw.gadget.html"},
"minipaint": {"url": "minipaint.gadget.html"}, "minipaint": {"url": "minipaint.gadget.html"},
"jquery-sheets": {"url": "jquery-sheets.gadget.html"}, "jquery-sheets": {"url": "jquery-sheets.gadget.html"},
...@@ -64,6 +65,13 @@ ...@@ -64,6 +65,13 @@
// as user may have modified the input value // as user may have modified the input value
render_timestamp: new Date().getTime() render_timestamp: new Date().getTime()
}; };
if ((!state_dict.editable) &&
((state_dict.editor === 'fck_editor') ||
(state_dict.content_type === 'text/html'))) {
state_dict.editor = 'html_viewer';
state_dict.maximize = undefined;
}
return this.changeState(state_dict); return this.changeState(state_dict);
}) })
...@@ -86,7 +94,9 @@ ...@@ -86,7 +94,9 @@
// for fck_editor fields, we want to be able to maximize also in non editable // for fck_editor fields, we want to be able to maximize also in non editable
if ((gadget.state.maximize && gadget.state.editable) || if ((gadget.state.maximize && gadget.state.editable) ||
(gadget.state.maximize && gadget.state.editor === 'jsmd_editor') || (gadget.state.maximize && gadget.state.editor === 'jsmd_editor') ||
(gadget.state.maximize && gadget.state.editor === 'fck_editor')) { (gadget.state.maximize &&
(gadget.state.editor === 'fck_editor') &&
gadget.state.editable)) {
element.appendChild(div_max); element.appendChild(div_max);
queue queue
.push(function () { .push(function () {
...@@ -111,7 +121,6 @@ ...@@ -111,7 +121,6 @@
if ((gadget.state.editable && if ((gadget.state.editable &&
(editor_dict.hasOwnProperty(gadget.state.editor))) || (editor_dict.hasOwnProperty(gadget.state.editor))) ||
(!gadget.state.editable && gadget.state.editor === 'fck_editor') ||
(!gadget.state.editable && gadget.state.editor === 'jsmd_editor') || (!gadget.state.editable && gadget.state.editor === 'jsmd_editor') ||
(!gadget.state.editable && gadget.state.editor === 'monaco') || (!gadget.state.editable && gadget.state.editor === 'monaco') ||
(gadget.state.editor === 'pdf')) { (gadget.state.editor === 'pdf')) {
...@@ -132,6 +141,16 @@ ...@@ -132,6 +141,16 @@
} }
); );
}); });
} else if (!gadget.state.editable &&
((gadget.state.editor === 'fck_editor') ||
(gadget.state.editor === 'html_viewer'))) {
queue
.push(function () {
return gadget.declareGadget(editor_dict.html_viewer.url, {
scope: 'editor',
element: div
});
});
} else if (gadget.state.editable && } else if (gadget.state.editable &&
(gadget.state.editor === 'text_area')) { (gadget.state.editor === 'text_area')) {
element.appendChild(document.createElement('textarea')); element.appendChild(document.createElement('textarea'));
...@@ -145,7 +164,8 @@ ...@@ -145,7 +164,8 @@
if ((gadget.state.editable && if ((gadget.state.editable &&
(editor_dict.hasOwnProperty(gadget.state.editor))) || (editor_dict.hasOwnProperty(gadget.state.editor))) ||
(!gadget.state.editable && gadget.state.editor === 'fck_editor') || (gadget.state.editor === 'fck_editor') ||
(gadget.state.editor === 'html_viewer') ||
(!gadget.state.editable && gadget.state.editor === 'jsmd_editor') || (!gadget.state.editable && gadget.state.editor === 'jsmd_editor') ||
(!gadget.state.editable && gadget.state.editor === 'monaco') || (!gadget.state.editable && gadget.state.editor === 'monaco') ||
(gadget.state.editor === 'pdf')) { (gadget.state.editor === 'pdf')) {
......
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