From b555988b051b7c15530bd6db6b66a2d205a5a64a Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 8 Sep 2011 17:50:07 +0200 Subject: [PATCH] [IMP] Improved kanban view. Added colors. bzr revid: fme@openerp.com-20110908155007-nwez2t97inc3148n --- addons/web_kanban/static/src/css/kanban.css | 131 +++++++++++++++++--- addons/web_kanban/static/src/js/kanban.js | 25 ++-- 2 files changed, 133 insertions(+), 23 deletions(-) diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index e3fac6dbafe..31f59a91d13 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -31,36 +31,43 @@ .openerp .oe_kanban_box_header { background: #EEE; border-bottom: 1px solid #CCC; - padding: 2px; - height: 2em; - white-space: nowrap; } -.openerp .oe_kanban_box_header h4 { +.openerp .oe_kanban_title1 { font-size: 130%; font-weight: bold; - margin: 0; - padding: 0; + padding: 0 4px 0 4px; } -.openerp .oe_kanban_box_header h5 { +.openerp .oe_kanban_title2 { font-size: 120%; font-weight: bold; - margin: 0; - padding: 2px; + padding: 0 4px 0 4px; } -.openerp .oe_kanban_box_header h6 { +.openerp .oe_kanban_title3 { font-size: 110%; font-weight: normal; - margin: 0; - padding: 2px; + padding: 0 4px 0 4px; } .openerp .oe_kanban_small { font-size: 80%; + font-weight: normal; +} +.openerp .oe_kanban_table { + width: 100%; + border: none; + border-collapse: collapse; + margin: 0; + padding: 0; +} +.openerp .oe_kanban_gravatar { + display: block; + border-radius: 2px; } .openerp .oe_kanban_box_content { padding: 4px; } .openerp .oe_kanban_buttons_set { border-top: 1px dotted #CCC; + white-space: nowrap; } .openerp .oe_kanban_buttons_set .oe_kanban_left a { border-right: 1px dotted #CCC; @@ -86,17 +93,109 @@ cursor: move; } -/* Custom colors */ +/* Custom colors are also present in kanban.js */ +/* Custom color#1 */ .openerp .oe_kanban_color_1 .oe_kanban_color_bglight, .openerp .oe_kanban_color_1.oe_kanban_color_bglight { - background: #F5F7C4; + background: #FFC7C7; } .openerp .oe_kanban_color_1 .oe_kanban_color_bgdark, .openerp .oe_kanban_color_1.oe_kanban_color_bgdark { - background: #EEF093; + background: #FF8F8F; } .openerp .oe_kanban_color_1 .oe_kanban_color_border, .openerp .oe_kanban_color_1.oe_kanban_color_border { - border-color: #DFE32D; + border-color: #D97979; +} + +/* Custom color#2 */ +.openerp .oe_kanban_color_2 .oe_kanban_color_bglight, +.openerp .oe_kanban_color_2.oe_kanban_color_bglight { + background: #FFF1C7; +} +.openerp .oe_kanban_color_2 .oe_kanban_color_bgdark, +.openerp .oe_kanban_color_2.oe_kanban_color_bgdark { + background: #FFE38F; +} +.openerp .oe_kanban_color_2 .oe_kanban_color_border, +.openerp .oe_kanban_color_2.oe_kanban_color_border { + border-color: #D9C179; +} + +/* Custom color#3 */ +.openerp .oe_kanban_color_3 .oe_kanban_color_bglight { + background: #E3FFC7; +} +.openerp .oe_kanban_color_3 .oe_kanban_color_bgdark { + background: #C7FF8F; +} +.openerp .oe_kanban_color_3 .oe_kanban_color_border { + border-color: #A9D979; +} + +/* Custom color#4 */ +.openerp .oe_kanban_color_4 .oe_kanban_color_bglight { + background: #C7FFD5; +} +.openerp .oe_kanban_color_4 .oe_kanban_color_bgdark { + background: #8FFFAB; +} +.openerp .oe_kanban_color_4 .oe_kanban_color_border { + border-color: #79D991; +} + +/* Custom color#5 */ +.openerp .oe_kanban_color_5 .oe_kanban_color_bglight { + background: #C7FFFF; +} +.openerp .oe_kanban_color_5 .oe_kanban_color_bgdark { + background: #8FFFFF; +} +.openerp .oe_kanban_color_5 .oe_kanban_color_border { + border-color: #79D9D9; +} + +/* Custom color#6 */ +.openerp .oe_kanban_color_6 .oe_kanban_color_bglight { + background: #C7D5FF; +} +.openerp .oe_kanban_color_6 .oe_kanban_color_bgdark { + background: #8FABFF; +} +.openerp .oe_kanban_color_6 .oe_kanban_color_border { + border-color: #8FABFF; +} + +/* Custom color#7 */ +.openerp .oe_kanban_color_7 .oe_kanban_color_bglight { + background: #E3C7FF; +} +.openerp .oe_kanban_color_7 .oe_kanban_color_bgdark { + background: #C78FFF; +} +.openerp .oe_kanban_color_7 .oe_kanban_color_border { + border-color: #A979D9; +} + +/* Custom color#8 */ +.openerp .oe_kanban_color_8 .oe_kanban_color_bglight { + background: #FFC7F1; +} +.openerp .oe_kanban_color_8 .oe_kanban_color_bgdark { + background: #FF8FE3; +} +.openerp .oe_kanban_color_8 .oe_kanban_color_border { + border-color: #D979C1; +} + +/* Alert color */ +.openerp .oe_kanban_color_alert .oe_kanban_color_bglight { + background: #C66; +} +.openerp .oe_kanban_color_alert .oe_kanban_color_bgdark { + background: #E99; +} +.openerp .oe_kanban_color_alert .oe_kanban_color_border { + border-color: #999; } diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index d6aff04e471..0253464d351 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -50,8 +50,8 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ } } }, - do_get_kanban_color: function(variable) { - var number_of_color_schemes = 2, + kanban_color: function(variable) { + var number_of_color_schemes = 8, index = 0; switch (typeof(variable)) { case 'string': @@ -67,11 +67,16 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ } return 'oe_kanban_color_' + ((index % number_of_color_schemes) + 1); }, + kanban_gravatar: function(email, size) { + size = size || 22; + var email_md5 = '2eb60ad22dadcf4dc456b28390a80268'; + return 'http://www.gravatar.com/avatar/' + email_md5 + '.png?s=' + size; + }, transform_qweb_template: function(node) { switch (node.tag) { case 'field': node.tag = 't'; - node.attrs['t-esc'] = node.attrs['name'] + '.value'; + node.attrs['t-esc'] = 'record.' + node.attrs['name'] + '.value'; break case 'button': case 'a': @@ -83,7 +88,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ }); if (node.attrs['data-states']) { var states = _.map(node.attrs['data-states'].split(','), function(state) { - return "state.value == '" + _.trim(state) + "'"; + return "record.state.value == '" + _.trim(state) + "'"; }); node.attrs['t-if'] = states.join(' or '); } @@ -174,6 +179,9 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ this.notification.warn("Kanban", "No form view defined for this object"); } }, + do_change_color: function(method) { + var color = '#FFC7C7,#FFF1C7,#E3FFC7,#C7FFD5,#C7FFFF,#C7D5FF,#FFC7F1'.split(','); + }, do_delete: function (id) { var self = this; return $.when(this.dataset.unlink([id])).then(function () { @@ -302,7 +310,11 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ if (data.records.length > 0){ _.each(data.records, function(record) { self.$element.find("#main_" + record.id).children().remove(); - self.$element.find("#main_" + record.id).append(self.qweb.render('kanban-box', self.do_transform_record(record))); + self.$element.find("#main_" + record.id).append(self.qweb.render('kanban-box', { + record: self.do_transform_record(record), + kanban_color: self.kanban_color, + kanban_gravatar: self.kanban_gravatar + })); }); } else { self.$element.find("#column_" + data.value).remove(); @@ -311,7 +323,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ }); this.$element.find('.oe_kanban_action').click(this.on_action_clicked); this.$element.find('.oe_kanban_record').click(function() { - $(this).find('.oe_kanban_box_show_onclick').removeClass('oe_kanban_box_show_onclick'); + $(this).find('.oe_kanban_box_show_onclick').toggle(); }); }, on_action_clicked: function(evt) { @@ -336,7 +348,6 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ r.value = openerp.web.format_value(value, r); new_record[name] = r; }); - new_record.__kanban_color = this.do_get_kanban_color; return new_record; }, do_search: function (domains, contexts, group_by) {