diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 731fab430b9..e3afd357054 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -1,8 +1,10 @@ -@charset "utf-8"; .openerp .oe_kanban_view { background: white; height: inherit; } +.openerp .oe_kanban_view .oe_kanban_column_higlight { + background: #eeddf6 !important; +} .openerp .oe_kanban_view .oe_view_nocontent { position: relative; max-width: none; @@ -173,6 +175,11 @@ .openerp .oe_kanban_view .oe_kanban_group_folded .oe_dropdown_kanban { left: -5px; } +.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_folded_column_cards { + visibility: visible; + display: block !important; + height: 100%; +} .openerp .oe_kanban_view .oe_kanban_group_title_undefined { color: #666666; } diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index dfca3b09d50..d13cbcae4cc 100644 --- a/addons/web_kanban/static/src/css/kanban.sass +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -51,6 +51,8 @@ //background: url(data:image/pngbase64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAKElEQVQIHWP8DwTv379nAAFBQUEGhnfv3oHEwADEZgJLIRGMIClkLQCr3x2Htp/lLwAAAABJRU5ErkJggg==) background: white height: inherit + .oe_kanban_column_higlight + background: #eeddf6 !important .oe_view_nocontent position: relative max-width: none @@ -189,6 +191,10 @@ display: block .oe_dropdown_kanban left: -5px + .oe_kanban_folded_column_cards + visibility: visible + display: block !important + height: 100% .oe_kanban_group_title_undefined color: #666666 .oe_kanban_group_title_vertical diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 1de3df275c6..2f3a1d4da1a 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -350,20 +350,36 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ var self = this; if (this.group_by) { // Kanban cards drag'n'drop - var $columns = this.$el.find('.oe_kanban_column .oe_kanban_column_cards'); + var prev_widget,is_folded,record; + var $columns = this.$el.find('.oe_kanban_column .oe_kanban_column_cards, .oe_kanban_column .oe_kanban_folded_column_cards'); $columns.sortable({ handle : '.oe_kanban_draghandle', start: function(event, ui) { self.currently_dragging.index = ui.item.parent().children('.oe_kanban_record').index(ui.item); - self.currently_dragging.group = ui.item.parents('.oe_kanban_column:first').data('widget'); + self.currently_dragging.group = prev_widget = ui.item.parents('.oe_kanban_column:first').data('widget'); ui.item.find('*').on('click.prevent', function(ev) { return false; }); + record = ui.item.data('widget'); + record.$el.bind('mouseup',function(ev,ui){ + if(is_folded)record.$el.hide(); + record.$el.unbind('mouseup'); + }) ui.placeholder.height(ui.item.height()); }, + over: function(event, ui) { + var parent = $(event.target).parent(); + prev_widget.highlight(false); + is_folded = parent.hasClass('oe_kanban_group_folded'); + if(is_folded){ + var widget = parent.data('widget'); + widget.highlight(true); + prev_widget = widget; + } + }, revert: 150, stop: function(event, ui) { - var record = ui.item.data('widget'); + prev_widget.highlight(false); var old_index = self.currently_dragging.index; var new_index = ui.item.parent().children('.oe_kanban_record').index(ui.item); var old_group = self.currently_dragging.group; @@ -438,6 +454,10 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ this.dataset.write(record.id, data, {}).done(function() { record.do_reload(); new_group.do_save_sequences(); + if(new_group.state.folded){ + new_group.do_action_toggle_fold(); + record.prependTo(new_group.$records.find('.oe_kanban_column_cards')); + } }).fail(function(error, evt) { evt.preventDefault(); alert(_t("An error has occured while moving the record to this group: ") + data.message); @@ -792,6 +812,15 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({ self.view.dataset.ids.push(id); self.do_add_records(records, true); }); + }, + highlight: function(show){ + if(show){ + this.$el.addClass('oe_kanban_column_higlight'); + this.$records.addClass('oe_kanban_column_higlight'); + }else{ + this.$el.removeClass('oe_kanban_column_higlight'); + this.$records.removeClass('oe_kanban_column_higlight'); + } } }); diff --git a/addons/web_kanban/static/src/xml/web_kanban.xml b/addons/web_kanban/static/src/xml/web_kanban.xml index 23da223e615..33e03baf5f9 100644 --- a/addons/web_kanban/static/src/xml/web_kanban.xml +++ b/addons/web_kanban/static/src/xml/web_kanban.xml @@ -76,6 +76,7 @@