diff --git a/addons/web/static/src/views/basic_relational_model.js b/addons/web/static/src/views/basic_relational_model.js index a63bac47091..761fa13d535 100644 --- a/addons/web/static/src/views/basic_relational_model.js +++ b/addons/web/static/src/views/basic_relational_model.js @@ -448,6 +448,7 @@ export class Record extends DataPoint { : false; break; } + case "text": case "char": { data[fieldName] = data[fieldName] || ""; break; diff --git a/addons/web/static/src/views/fields/copy_clipboard/copy_clipboard_field.xml b/addons/web/static/src/views/fields/copy_clipboard/copy_clipboard_field.xml index 3fa316f86b3..6d789ce5954 100644 --- a/addons/web/static/src/views/fields/copy_clipboard/copy_clipboard_field.xml +++ b/addons/web/static/src/views/fields/copy_clipboard/copy_clipboard_field.xml @@ -2,7 +2,7 @@ -
+
diff --git a/addons/web/static/tests/views/fields/copy_clipboard_field_tests.js b/addons/web/static/tests/views/fields/copy_clipboard_field_tests.js index 363dd098f88..89daeb46345 100644 --- a/addons/web/static/tests/views/fields/copy_clipboard_field_tests.js +++ b/addons/web/static/tests/views/fields/copy_clipboard_field_tests.js @@ -73,8 +73,9 @@ QUnit.module("Fields", (hooks) => { ); }); - QUnit.test("CopyClipboardField on unset field", async function (assert) { + QUnit.test("CopyClipboardField: show copy button even on empty field", async function (assert) { serverData.models.partner.records[0].char_field = false; + serverData.models.partner.records[0].text_field = false; await makeView({ serverData, @@ -85,21 +86,25 @@ QUnit.module("Fields", (hooks) => { + `, resId: 1, }); - assert.containsNone( + assert.containsOnce( target, - '.o_field_copy[name="char_field"] .o_clipboard_button', - "char_field (unset) should not contain a button" + '.o_field_CopyClipboardChar[name="char_field"] .o_clipboard_button' + ); + assert.containsOnce( + target, + '.o_field_CopyClipboardText[name="text_field"] .o_clipboard_button' ); }); QUnit.test( - "CopyClipboardField on readonly unset fields in create mode", + "CopyClipboardField: show copy button even on readonly empty field", async function (assert) { serverData.models.partner.fields.display_name.readonly = true; @@ -117,10 +122,9 @@ QUnit.module("Fields", (hooks) => { `, }); - assert.containsNone( + assert.containsOnce( target, - '.o_field_copy[name="display_name"] .o_clipboard_button', - "the readonly unset field should not contain a button" + '.o_field_CopyClipboardChar[name="display_name"] .o_clipboard_button' ); } );