Thibault Delavallée (OpenERP) has proposed merging
lp:~openerp-dev/openerp-web/trunk-state_sync_with_kanban into lp:openerp-web.
Requested reviews:
OpenERP R&D Web Team (openerp-dev-web)
For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-state_sync_with_kanban/+merge/106006
--
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-state_sync_with_kanban/+merge/106006
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openerp-web/trunk-state_sync_with_kanban.
=== modified file 'addons/web/static/src/js/view_form.js'
--- addons/web/static/src/js/view_form.js 2012-05-16 14:52:31 +0000
+++ addons/web/static/src/js/view_form.js 2012-05-16 15:35:22 +0000
@@ -3873,6 +3873,71 @@
}
});
+instance.web.form.FieldStatusO2M = instance.web.form.AbstractField.extend({
+ template: "EmptyComponent",
+ start: function() {
+ this._super();
+ this.selected_value = null;
+
+ this.render_list();
+ },
+ set_value: function(value_) {
+ this._super(value_);
+ this.selected_value = value_;
+
+ this.render_list();
+ },
+ render_list: function() {
+ var self = this;
+ var shown = _.map(((this.node.attrs || {}).statusbar_visible || "").split(","),
+ function(x) { return _.str.trim(x); });
+ shown = _.select(shown, function(x) { return x.length > 0; });
+
+ if (shown.length == 0) {
+ this.to_show = this.field.selection;
+ } else {
+ this.to_show = _.select(this.field.selection, function(x) {
+ return _.indexOf(shown, x[0]) !== -1 || x[0] === self.selected_value;
+ });
+ }
+
+ var content = instance.web.qweb.render("FieldStatus.content", {widget: this, _:_});
+ this.$element.html(content);
+
+ var colors = JSON.parse((this.node.attrs || {}).statusbar_colors || "{}");
+ var color = colors[this.selected_value];
+ if (color) {
+ var elem = this.$element.find("li.oe-arrow-list-selected span");
+ elem.css("border-color", color);
+ if (this.check_white(color))
+ elem.css("color", "white");
+ elem = this.$element.find("li.oe-arrow-list-selected .oe-arrow-list-before");
+ elem.css("border-left-color", "rgba(0,0,0,0)");
+ elem = this.$element.find("li.oe-arrow-list-selected .oe-arrow-list-after");
+ elem.css("border-color", "rgba(0,0,0,0)");
+ elem.css("border-left-color", color);
+ }
+ },
+ check_white: function(color) {
+ var div = $("<div></div>");
+ div.css("display", "none");
+ div.css("color", color);
+ div.appendTo($("body"));
+ var ncolor = div.css("color");
+ div.remove();
+ var res = /^\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)\s*$/.exec(ncolor);
+ if (!res) {
+ return false;
+ }
+ var comps = [parseInt(res[1]), parseInt(res[2]), parseInt(res[3])];
+ var lum = comps[0] * 0.3 + comps[1] * 0.59 + comps[1] * 0.11;
+ if (lum < 128) {
+ return true;
+ }
+ return false;
+ }
+});
+
instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
template: "EmptyComponent",
start: function() {
@@ -3966,7 +4031,8 @@
'progressbar': 'instance.web.form.FieldProgressBar',
'image': 'instance.web.form.FieldBinaryImage',
'binary': 'instance.web.form.FieldBinaryFile',
- 'statusbar': 'instance.web.form.FieldStatus'
+ 'statusbar': 'instance.web.form.FieldStatus',
+ 'statusbaro2m': 'instance.web.form.FieldStatusO2M',
});
/**
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp