diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index f28e3c6aa0d..25df1334d21 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -237,6 +237,9 @@
.openerp .ui-widget-content a {
color: #7c7bad;
}
+.openerp .oe_bounce_container {
+ display: inline-block;
+}
.openerp.ui-dialog {
display: none;
padding: 6px;
@@ -520,9 +523,9 @@
padding: 0;
margin: 0;
background: none;
- -moz-border-radius: none;
- -webkit-border-radius: none;
- border-radius: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
@@ -535,9 +538,9 @@
padding: 0;
margin: 0;
background: none;
- -moz-border-radius: none;
- -webkit-border-radius: none;
- border-radius: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
@@ -2480,10 +2483,11 @@
height: 27px;
}
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
border: 1px solid #aaaaff;
- border-radius: 0px;
- margin: 0px;
- -webkit-border-radius: 0px;
+ margin: 0;
}
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
height: 60px;
@@ -2583,6 +2587,7 @@
cursor: pointer;
}
.openerp .oe_list_content > tbody > tr {
+ height: 27px;
border-top: 1px solid #dddddd;
}
.openerp .oe_list_content > tbody > tr > td.oe_list_field_cell {
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index 4f231331ff7..3c61702a60c 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -36,7 +36,7 @@ $sheet-max-width: 860px
padding: 0
margin: 0
background: none
- @include radius(none)
+ @include radius(0)
@include box-shadow(none)
@mixin vertical-gradient($startColor: #555, $endColor: #333)
@@ -251,6 +251,8 @@ $sheet-max-width: 860px
// Jquery ui Overrides {{{
.ui-widget-content a
color: $link-color
+ .oe_bounce_container
+ display: inline-block
// Modal box
&.ui-dialog
@@ -1909,6 +1911,8 @@ $sheet-max-width: 860px
background-color: #d2d2ff
td.oe_readonly
background-color: #eee
+
+ $row-height: 27px
.oe_list_editable
.oe_list_content
td.oe_list_field_cell
@@ -1923,12 +1927,11 @@ $sheet-max-width: 860px
display: none
.oe_form_field
input
- height: 27px
+ height: $row-height
input, textarea
+ @include radius(0)
border: 1px solid #aaf
- border-radius: 0px
- margin: 0px
- -webkit-border-radius: 0px
+ margin: 0
textarea
height: 60px
&.oe_form_field_float,&.oe_form_view_integer
@@ -2013,6 +2016,7 @@ $sheet-max-width: 860px
> tbody
cursor: pointer
> tr
+ height: $row-height
border-top: 1px solid #ddd
> td.oe_list_field_cell
padding: 3px 6px
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index a2dccf2ec73..40bdee3a07f 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -1995,7 +1995,7 @@ instance.web.list.Column = instance.web.Class.extend({
if (!(aggregation_func in this)) {
return {};
}
- var C = function (label, fn) {
+ var C = function (fn, label) {
this['function'] = fn;
this.label = label;
};
@@ -2115,6 +2115,11 @@ instance.web.list.ProgressBar = instance.web.list.Column.extend({
}
});
instance.web.list.Handle = instance.web.list.Column.extend({
+ init: function () {
+ this._super.apply(this, arguments);
+ // Handle overrides the field to not be form-editable.
+ this.modifiers.readonly = true;
+ },
/**
* Return styling hooks for a drag handle
*
diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js
index 65f5620c1a9..bdd266454dd 100644
--- a/addons/web/static/src/js/view_list_editable.js
+++ b/addons/web/static/src/js/view_list_editable.js
@@ -55,6 +55,12 @@ openerp.web.list_editable = function (instance) {
instance.web.bus.off('resize', this, this.resize_fields);
this._super();
},
+ do_hide: function () {
+ if (this.editor.is_editing()) {
+ this.cancel_edition(true);
+ }
+ this._super();
+ },
/**
* Handles the activation of a record in editable mode (making a record
* editable), called *after* the record has become editable.
@@ -249,7 +255,7 @@ openerp.web.list_editable = function (instance) {
var position = $cell.position();
// jquery does not understand !important
- field.$el.attr('style', 'width: '+$cell.outerWidth()+'px !important')
+ field.$el.attr('style', 'width: '+$cell.outerWidth()+'px !important');
field.$el.css({
top: position.top,
left: position.left,
@@ -354,14 +360,17 @@ openerp.web.list_editable = function (instance) {
'class': 'oe_form_container',
version: '7.0'
});
- _(view.arch.children).each(function (widget) {
- var modifiers = JSON.parse(widget.attrs.modifiers || '{}');
- widget.attrs.nolabel = true;
- if (modifiers['tree_invisible'] || widget.tag === 'button') {
- modifiers.invisible = true;
- }
- widget.attrs.modifiers = JSON.stringify(modifiers);
- });
+ _(view.arch.children).chain()
+ .zip(this.columns)
+ .each(function (ar) {
+ var widget = ar[0], column = ar[1];
+ var modifiers = _.extend({}, column.modifiers);
+ widget.attrs.nolabel = true;
+ if (modifiers['tree_invisible'] || widget.tag === 'button') {
+ modifiers.invisible = true;
+ }
+ widget.attrs.modifiers = JSON.stringify(modifiers);
+ });
return view;
},
handle_onwrite: function (source_record) {
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index d5596f5c8da..7e98a6b41a6 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -701,7 +701,7 @@
type="button">Save
- discard
+ Discard
diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js
index ffec52e8b97..e00f6d9f44e 100644
--- a/addons/web_kanban/static/src/js/kanban.js
+++ b/addons/web_kanban/static/src/js/kanban.js
@@ -42,6 +42,15 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
this.limit = options.limit || 80;
this.add_group_mutex = new $.Mutex();
},
+ start: function() {
+ var self = this;
+ this._super.apply(this, arguments);
+ this.$el.on('click', '.oe_kanban_dummy_cell', function() {
+ if (self.$buttons) {
+ self.$buttons.find('.oe_kanban_add_column').effect('bounce', {distance: 18, times: 5}, 150);
+ }
+ });
+ },
destroy: function() {
this._super.apply(this, arguments);
$('html').off('click.kanban');
diff --git a/addons/web_kanban/static/src/xml/web_kanban.xml b/addons/web_kanban/static/src/xml/web_kanban.xml
index 39bca51c1f5..20b361e9445 100644
--- a/addons/web_kanban/static/src/xml/web_kanban.xml
+++ b/addons/web_kanban/static/src/xml/web_kanban.xml
@@ -20,7 +20,9 @@
or
- Add a new column
+