diff options
| author | sma (Tiny) <sma@tinyerp.com> | 2011-04-27 17:50:51 +0530 |
|---|---|---|
| committer | sma (Tiny) <sma@tinyerp.com> | 2011-04-27 17:50:51 +0530 |
| commit | 5060d7111c0c08abd77b69c19a3777f0e3088abf (patch) | |
| tree | 31556077b382a3ea5665b5cec4c824611672599f /addons/base/static/src | |
| parent | ceb524e3376d92dde25e68dd7d74b6de0a5c8a6d (diff) | |
[IMP] Implement many2one initiall work.
bzr revid: sma@tinyerp.com-20110427122051-h80fka7fqjz0fcpz
Diffstat (limited to 'addons/base/static/src')
| -rw-r--r-- | addons/base/static/src/base.html | 1 | ||||
| -rw-r--r-- | addons/base/static/src/css/base.css | 59 | ||||
| -rw-r--r-- | addons/base/static/src/js/base.js | 1 | ||||
| -rw-r--r-- | addons/base/static/src/js/data.js | 10 | ||||
| -rw-r--r-- | addons/base/static/src/js/form.js | 16 | ||||
| -rw-r--r-- | addons/base/static/src/xml/base.xml | 5 |
6 files changed, 91 insertions, 1 deletions
diff --git a/addons/base/static/src/base.html b/addons/base/static/src/base.html index 83fbfcecefc..8d18b2f14ca 100644 --- a/addons/base/static/src/base.html +++ b/addons/base/static/src/base.html @@ -23,6 +23,7 @@ <script type="text/javascript" src="/base/static/src/js/list.js"></script> <script type="text/javascript" src="/base/static/src/js/search.js"></script> <script type="text/javascript" src="/base/static/src/js/views.js"></script> + <script type="text/javascript" src="/base/static/src/js/m2o.js"></script> <link rel="stylesheet" type="text/css" media="screen" href="/base/static/lib/jquery.ui/css/smoothness/jquery-ui-1.8.9.custom.css" /> <link rel="stylesheet" type="text/css" media="screen" href="/base/static/lib/jquery.ui.notify/css/ui.notify.css" /> diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 1bd004b53f6..dc16c772785 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -779,3 +779,62 @@ body.openerp { background: url(http://placekitten.com/g/212/100) repeat; } +/* Many2one Autosearch */ + +.openerp .combo_img { + position: absolute; + margin-left: -19px; + margin-top: 3px; +} + +.openerp .autoTextResults { + position: absolute; + z-index: 1000; + background-color: #fff; + border: 1px solid #333; + display: none; + padding: 0 2px 0 2px; + min-width: 132px; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + color: #1F1F1F; + overflow: auto; +} + +.openerp table.autoTextTable { + border: none; + font-family: arial, sans-serif; + font-size: 13px; + font-style: normal; + font-variant: normal; + font-weight: normal; + width: 100%; +} + +.openerp table.autoTextTable tr.autoTextNormalRow td { +} + +.openerp table.autoTextTable tr.autoTextSelectedRow td { + background-color: DarkGray; + color: #1F1F1F; + cursor: pointer; +} + +.openerp table.autoTextTable ul{ + list-style-image:none; + list-style-type:none; +} + +.openerp table.autoTextTable td a.autoTextHighlight { + font-weight: bold; + text-decoration: none; + color: #FFF; +} + +.openerp table.autoTextTable td.autoTextHidden { + display: none; +} + +/* ------------- End autocomplete ------- */ + diff --git a/addons/base/static/src/js/base.js b/addons/base/static/src/js/base.js index 504f5ca744d..615b2c8e889 100644 --- a/addons/base/static/src/js/base.js +++ b/addons/base/static/src/js/base.js @@ -125,6 +125,7 @@ openerp.base = function(instance) { openerp.base.views(instance); openerp.base.search(instance); openerp.base.list(instance); + openerp.base.m2o(instance); openerp.base.form(instance); }; diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index a29f320b79c..79482f33430 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -118,6 +118,16 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. ids: ids, args: args }, callback); + + }, + name_search: function (search_str, callback) { + search_str = search_str || ''; + return this.rpc('/base/dataset/name_search', { + model: this.model, + search_str: search_str, + domain: this.domain || [], + context: this.context + }, callback); }, exec_workflow: function (id, signal, callback) { return this.rpc('/base/dataset/exec_workflow', { diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 84d7fe0babd..9a5e092b142 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -824,10 +824,24 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({ } }); +openerp.base.form.FieldMany2OneDatasSet = openerp.base.DataSetStatic.extend({ + start: function() { + }, + write: function (id, data, callback) { + this._super(id, data, callback); + }, +}); + openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); this.template = "FieldMany2One"; + this.is_field_m2o = true; + }, + start: function() { + this.$element = $('#' + this.element_id); + this.dataset = new openerp.base.form.FieldMany2OneDatasSet(this.session, this.field.relation); + new openerp.base.m2o(this.$element, this.field.relation, this.dataset) }, set_value: function(value) { this._super.apply(this, arguments); @@ -837,6 +851,8 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ this.value = value[0]; } this.$element.find('input').val(show_value); + // Need to replace this `text` with original `id` after discuss with xmo + this.$element.find('input').attr('text', this.value); } }); diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index b49ef2c7d6a..c59229511a9 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -257,7 +257,7 @@ <t t-foreach="row" t-as="td"> <td t-att-colspan="td.colspan gt 1 ? td.colspan : undefined" t-att-width="td.width ? td.width : undefined" - t-att-nowrap="td.is_field_label ? 'true' : undefined" + t-att-nowrap="td.is_field_label or td.is_field_m2o? 'true' : undefined" t-att-valign="td.table ? 'top' : undefined" t-att-id="td.element_id" t-att-class="'oe_form_' + (td.is_field_label ? 'label' : (td.field ? 'field_' + td.type : td.type))" @@ -343,7 +343,10 @@ t-att-name="widget.name" t-att-id="widget.element_id + '_field'" t-att-class="'field_' + widget.type" + t-att-type="widget.type" style="width: 100%;"/> + <img t-att-id="widget.name + '_select'" t-att-src="'/base/static/src/img/icons/index1.jpeg'" t-att-class="'combo_img'" width="15" height="16"/> + <div t-att-id="'autoCompleteResults_' + widget.name" t-att-class="'autoTextResults'"></div> </t> <t t-name="FieldOne2Many"> <div t-att-id="widget.element_id"> |
