From 39efbcfffcdc4c2dbd981cbbdc771f9919918ede Mon Sep 17 00:00:00 2001 From: MuK IT GmbH Date: Fri, 9 Nov 2018 16:52:44 +0000 Subject: [PATCH] publish muk_web_utils - 12.0 --- muk_web_utils/__manifest__.py | 2 +- muk_web_utils/static/src/js/fields/copy.js | 2 +- muk_web_utils/static/src/js/fields/share.js | 8 +- muk_web_utils/static/tests/fields.js | 184 ++++++++++++++++++++ muk_web_utils/template/assets.xml | 6 + muk_web_utils/tests/__init__.py | 20 +++ muk_web_utils/tests/test_js.py | 36 ++++ 7 files changed, 255 insertions(+), 3 deletions(-) create mode 100644 muk_web_utils/static/tests/fields.js create mode 100644 muk_web_utils/tests/__init__.py create mode 100644 muk_web_utils/tests/test_js.py diff --git a/muk_web_utils/__manifest__.py b/muk_web_utils/__manifest__.py index 8b6416f..1a5a80c 100644 --- a/muk_web_utils/__manifest__.py +++ b/muk_web_utils/__manifest__.py @@ -20,7 +20,7 @@ { "name": "MuK Web Utils", "summary": """Utility Features""", - "version": "12.0.2.4.5", + "version": "12.0.2.4.6", "category": "Extra Tools", "license": "AGPL-3", "author": "MuK IT", diff --git a/muk_web_utils/static/src/js/fields/copy.js b/muk_web_utils/static/src/js/fields/copy.js index 63c3f9e..7758f8d 100644 --- a/muk_web_utils/static/src/js/fields/copy.js +++ b/muk_web_utils/static/src/js/fields/copy.js @@ -123,7 +123,7 @@ var BinaryFileCopy = fields.FieldBinaryFile.extend({ }, }); -registry.add('binary_copy', BinaryFileCopy); +registry.add('copy_binary', BinaryFileCopy); return { BinaryFileCopy: BinaryFileCopy, diff --git a/muk_web_utils/static/src/js/fields/share.js b/muk_web_utils/static/src/js/fields/share.js index 1c44b3e..c367482 100644 --- a/muk_web_utils/static/src/js/fields/share.js +++ b/muk_web_utils/static/src/js/fields/share.js @@ -164,7 +164,9 @@ var BinaryFileShare = copy.BinaryFileCopy.extend(ShareMixin, { fieldDependencies: _.extend({}, fields.FieldBinaryFile.prototype.fieldDependencies, { display_name: {type: 'char'}, }), - events: _.extend({}, copy.BinaryFileCopy.prototype.events, ShareMixin.shareEvents), + events: _.extend({}, copy.BinaryFileCopy.prototype.events, ShareMixin.shareEvents, { + 'click .mk_share_button': '_onShareDropdownClick', + }), init: function () { this._super.apply(this, arguments); this.navigator = window.navigator.share; @@ -202,6 +204,10 @@ var BinaryFileShare = copy.BinaryFileCopy.extend(ShareMixin, { share: !!this.shareUrl, }))); }, + _onShareDropdownClick: function(event) { + $(event.currentTarget).dropdown("toggle"); + event.stopPropagation(); + }, }); registry.add('share_char', CharShare); diff --git a/muk_web_utils/static/tests/fields.js b/muk_web_utils/static/tests/fields.js new file mode 100644 index 0000000..8b69a30 --- /dev/null +++ b/muk_web_utils/static/tests/fields.js @@ -0,0 +1,184 @@ +odoo.define('muk_web_utils.tests.fields', function (require) { +"use strict"; + +var basicFields = require('web.basic_fields'); +var concurrency = require('web.concurrency'); +var config = require('web.config'); +var core = require('web.core'); +var FormView = require('web.FormView'); +var KanbanView = require('web.KanbanView'); +var ListView = require('web.ListView'); +var session = require('web.session'); +var testUtils = require('web.test_utils'); +var field_registry = require('web.field_registry'); + +var createView = testUtils.createView; +var createAsyncView = testUtils.createAsyncView; +var DebouncedField = basicFields.DebouncedField; +var JournalDashboardGraph = basicFields.JournalDashboardGraph; +var _t = core._t; + +QUnit.module('muk_web_utils', {}, function () { + +QUnit.module('fields', { + beforeEach: function () { + this.data = { + partner: { + fields: { + display_name: { + string: "Displayed name", + type: "char", + searchable: true + }, + short: { + string: "Short", + type: "char", + searchable: true, + trim: true + }, + long: { + string: "Long", + string: "txt", + type: "text", + }, + document: { + string: "Binary", + type: "binary", + attachment: true, + }, + }, + records: [{ + id: 1, + display_name: "first record", + short: "Short Text", + long: "Super looooooong Text", + document: 'coucou==\n', + }], + }, + }; + } +}, function () { + QUnit.module('BinaryFileCopy'); + + QUnit.test('Fields is correctly rendered', function (assert) { + assert.expect(2); + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: ( + '
' + + '' + + '' + + '' + ), + res_id: 1, + }); + + assert.strictEqual( + form.$('a.o_field_widget[name="document"] > .mk_copy_binary > .mk_copy_button').length, + 1, "the copy button should be visible in readonly mode" + ); + + form.$buttons.find('.o_form_button_edit').click(); + + assert.strictEqual( + form.$('a.o_field_widget[name="document"] > .mk_copy_binary').length, + 0, "the copy button shouldn't be visible in edit mode" + ); + + form.destroy(); + }); + + QUnit.module('CharShare'); + + QUnit.test('Fields is correctly rendered', function (assert) { + assert.expect(1); + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: ( + '
' + + '
' + + '' + + '
' + + '
' + ), + res_id: 1, + }); + + assert.strictEqual( + form.$('span.o_field_widget[name="short"] > .mk_share_dropdown.mk_share_char').length, + 1, "the copy button should be visible in readonly mode" + ); + + form.destroy(); + }); + + QUnit.module('TextShare'); + + QUnit.test('Fields is correctly rendered', function (assert) { + assert.expect(1); + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: ( + '
' + + '
' + + '' + + '
' + + '
' + ), + res_id: 1, + }); + + assert.strictEqual( + form.$('span.o_field_widget[name="long"] > .mk_share_dropdown.mk_share_text').length, + 1, "the copy button should be visible in readonly mode" + ); + + form.destroy(); + }); + + QUnit.module('BinaryFileShare'); + + QUnit.test('Fields is correctly rendered', function (assert) { + assert.expect(2); + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: ( + '
' + + '' + + '' + + '' + ), + res_id: 1, + }); + + assert.strictEqual( + form.$('a.o_field_widget[name="document"] > .mk_share_dropdown > .mk_share_button').length, + 1, "the share dropdown should be visible in readonly mode" + ); + + form.$buttons.find('.o_form_button_edit').click(); + + assert.strictEqual( + form.$('a.o_field_widget[name="document"] > .mk_share_dropdown > .mk_share_button').length, + 0, "the share dropdown shouldn't be visible in edit mode" + ); + + form.destroy(); + }); +}); + +}); + +}); \ No newline at end of file diff --git a/muk_web_utils/template/assets.xml b/muk_web_utils/template/assets.xml index 4c96b1a..414833e 100644 --- a/muk_web_utils/template/assets.xml +++ b/muk_web_utils/template/assets.xml @@ -53,4 +53,10 @@ +