[IMP] Improved kanban view. Added colors.

bzr revid: fme@openerp.com-20110908155007-nwez2t97inc3148n
This commit is contained in:
Fabien Meghazi 2011-09-08 17:50:07 +02:00
parent f312876e94
commit b555988b05
2 changed files with 133 additions and 23 deletions

View File

@ -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;
}

View File

@ -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) {