diff options
| author | Turkesh Patel (Open ERP) <tpa@tinyerp.com> | 2012-04-04 17:32:11 +0530 |
|---|---|---|
| committer | Turkesh Patel (Open ERP) <tpa@tinyerp.com> | 2012-04-04 17:32:11 +0530 |
| commit | e685e4b3b66048e07f8c2e98f8e41a10db60eaaf (patch) | |
| tree | 557f3e96ee6defd27dfe573eaef26d7951d6c9c1 /addons/web/static/src/js | |
| parent | dc9db0c01c360fb144a6bc3bd07b14827bb4125e (diff) | |
[IMP] improved code for font-bold feature
bzr revid: tpa@tinyerp.com-20120404120211-0b1l1zvjx5550hqa
Diffstat (limited to 'addons/web/static/src/js')
| -rw-r--r-- | addons/web/static/src/js/view_editor.js | 4 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_list.js | 36 |
2 files changed, 25 insertions, 15 deletions
diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js index e0953ae5ef6..ae531c8c925 100644 --- a/addons/web/static/src/js/view_editor.js +++ b/addons/web/static/src/js/view_editor.js @@ -874,7 +874,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({ 'colors' : {'name':'colors', 'string': 'Colors', 'type': 'char'}, 'editable' : {'name':'editable', 'string': 'Editable', 'type': 'selection', 'selection': [["",""],["top","Top"],["bottom", "Bottom"]]}, 'groups' : {'name':'groups', 'string': 'Groups', 'type': 'selection_multi'}, - 'fontbold' : {'name':'fontbold', 'string': 'fontbold', 'type': 'char'}, + 'fonts' : {'name':'fonts', 'string': 'fonts', 'type': 'char'}, }; var arch_val = self.get_object_by_id(this.one_object.clicked_tr_id,this.one_object['main_object'], []); this.edit_node_dialog.$element.append('<table id="rec_table" style="width:400px" class="oe_forms"></table>'); @@ -1150,7 +1150,7 @@ var _PROPERTIES = { 'board': ['style'], 'column' : [], 'action' : ['name', 'string', 'colspan', 'groups'], - 'tree' : ['string', 'colors', 'editable', 'link', 'limit', 'min_rows', 'fontbold'], + 'tree' : ['string', 'colors', 'editable', 'link', 'limit', 'min_rows', 'fonts'], 'graph' : ['string', 'type'], 'calendar' : ['string', 'date_start', 'date_stop', 'date_delay', 'day_length', 'color', 'mode'] }; diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 122d4ee76d5..b2a23ac5451 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -56,7 +56,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# this.view_id = view_id; this.previous_colspan = null; this.colors = null; - this.fontbold = null; + this.fonts = null; this.columns = []; @@ -149,19 +149,26 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# * @returns {String} CSS color declaration */ color_for: function (record) { - if (!this.colors) { return ''; } - var context = _.extend({}, record.attributes, { + var style= ''; + + var context = _.extend({}, record.attributes, { uid: this.session.uid, current_date: new Date().toString('yyyy-MM-dd') // TODO: time, datetime, relativedelta }); - var style= ''; - for(var i=0, len=this.fontbold.length; i<len; ++i) { - if(record.attributes.state == this.fontbold[i]) { - style = 'font-weight: bold;'; - } - } + if (this.fonts) { + for(var i=0, len=this.fonts.length; i<len; ++i) { + var pair = this.fonts[i], + font = pair[0], + expression = pair[1]; + if (py.evaluate(expression, context).toJSON()) { + style = 'font-weight: bold;'; + } + } + } + + if (!this.colors) { return style; } for(var i=0, len=this.colors.length; i<len; ++i) { var pair = this.colors[i], color = pair[0], @@ -213,10 +220,13 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# }).value(); } - if (this.fields_view.arch.attrs.fontbold) { - this.fontbold = _(this.fields_view.arch.attrs.fontbold.split(',')).chain().compact() - .map(function(fontbold_pair) { - return fontbold_pair; + if (this.fields_view.arch.attrs.fonts) { + this.fonts = _(this.fields_view.arch.attrs.fonts.split(',')).chain().compact() + .map(function(font_pair) { + var pair = font_pair.split(':'), + font = pair[0], + expr = pair[1]; + return [font, py.parse(py.tokenize(expr)), expr]; }).value(); } |
