diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 4495334aa23..45e682d8bdf 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -328,12 +328,22 @@ openerp.web.Registry = openerp.web.Class.extend( /** @lends openerp.web.Registry * Creates and returns a copy of the current mapping, with the provided * mapping argument added in (replacing existing keys if needed) * + * Parent and child remain linked, a new key in the parent (which is not + * overwritten by the child) will appear in the child. + * * @param {Object} [mapping={}] a mapping of keys to object-paths */ - clone: function (mapping) { + extend: function (mapping) { var child = new openerp.web.Registry(mapping); child.parent = this; return child; + }, + /** + * @deprecated use Registry#extend + */ + clone: function (mapping) { + console.warn('Registry#clone is deprecated, use Registry#extend'); + return this.extend(mapping); } }); diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index 4f6a1531c7a..3eae086539b 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -386,7 +386,7 @@ openerp.web.list_editable = function (openerp) { template: 'ListView.row.frame' }); var form_widgets = openerp.web.form.widgets; - openerp.web.list.form.widgets = form_widgets.clone({ + openerp.web.list.form.widgets = form_widgets.extend({ 'frame': 'openerp.web.list.form.WidgetFrame' }); // All form widgets inherit a problematic behavior from diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js index d5c37419764..8a8148f8cae 100644 --- a/addons/web/static/src/js/view_page.js +++ b/addons/web/static/src/js/view_page.js @@ -242,7 +242,7 @@ openerp.web.page = function (openerp) { } } }); - openerp.web.page.readonly = openerp.web.form.widgets.clone({ + openerp.web.page.readonly = openerp.web.form.widgets.extend({ 'frame': 'openerp.web.page.WidgetFrameReadonly', 'char': 'openerp.web.page.FieldCharReadonly', 'id': 'openerp.web.page.FieldCharReadonly', diff --git a/addons/web/static/test/registry.js b/addons/web/static/test/registry.js index 9606dfae456..226b3c00566 100644 --- a/addons/web/static/test/registry.js +++ b/addons/web/static/test/registry.js @@ -37,7 +37,7 @@ $(document).ready(function () { bar: 'openerp.web.Bar' }); - var reg2 = reg.clone({ 'foo': 'openerp.web.Foo2' }); + var reg2 = reg.extend({ 'foo': 'openerp.web.Foo2' }); strictEqual(reg.get_object('foo'), openerp.web.Foo); strictEqual(reg2.get_object('foo'), openerp.web.Foo2); }); @@ -47,7 +47,7 @@ $(document).ready(function () { bar: 'openerp.web.Bar' }); - var reg2 = reg.clone(); + var reg2 = reg.extend(); reg.add('foo2', 'openerp.web.Foo2'); strictEqual(reg.get_object('foo2'), openerp.web.Foo2); strictEqual(reg2.get_object('foo2'), openerp.web.Foo2);