diff options
| author | Bharat R. Devnani (OpenERP) <bde@tinyerp.com> | 2014-03-04 11:08:49 +0530 |
|---|---|---|
| committer | Bharat R. Devnani (OpenERP) <bde@tinyerp.com> | 2014-03-04 11:08:49 +0530 |
| commit | 67b68d8e4e7015e368324dd0c02aa29fed71d359 (patch) | |
| tree | d72e75ef050bd65dcb53d2a27305a0285ca2963b /addons/web_kanban/static/src | |
| parent | 7c1af9ef1441b2097c815758670b70a690598d62 (diff) | |
| parent | e76c36d704c142fca08bf1297897d4091bf7a4cb (diff) | |
[MERGE] merged with main web
bzr revid: bde@tinyerp.com-20140304053849-wpvxs1ojl5jyjokt
Diffstat (limited to 'addons/web_kanban/static/src')
| -rw-r--r-- | addons/web_kanban/static/src/css/kanban.css | 10 | ||||
| -rw-r--r-- | addons/web_kanban/static/src/css/kanban.sass | 8 | ||||
| -rw-r--r-- | addons/web_kanban/static/src/js/kanban.js | 54 | ||||
| -rw-r--r-- | addons/web_kanban/static/src/xml/web_kanban.xml | 1 |
4 files changed, 57 insertions, 16 deletions
diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 731fab430b9..dea09b75651 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -3,6 +3,9 @@ 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 +176,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; } @@ -195,6 +203,7 @@ margin-left: 4px; cursor: pointer; position: relative; + z-index: 1; } .openerp .oe_kanban_view .oe_kanban_add { top: -8px; @@ -690,7 +699,6 @@ .openerp_ie .oe_kanban_view .oe_kanban_group_title_vertical { -ms-writing-mode: lr-tb !important; background: #f0eeee; - top: -5px !important; } .openerp_ie .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header { height: 1%; diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index dfca3b09d50..77533c1182e 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 @@ -211,6 +217,7 @@ margin-left: 4px cursor: pointer position: relative + z-index: 1 .oe_kanban_add top: -8px .oe_kanban_header .oe_dropdown_toggle @@ -572,7 +579,6 @@ .oe_kanban_group_title_vertical -ms-writing-mode: lr-tb !important background: rgb(240, 238, 238) - top: -5px !important &.oe_kanban_grouped .oe_kanban_group_header height: 1% diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 1de3df275c6..f600e20c03b 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -43,6 +43,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ this.currently_dragging = {}; this.limit = options.limit || 40; this.add_group_mutex = new $.Mutex(); + this.last_position = 'static'; }, view_loading: function(r) { return this.load_kanban(r); @@ -350,20 +351,38 @@ 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,9 +457,13 @@ 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); + alert(_t("An error has occured while moving the record to this group: ") + error.data.message); self.do_reload(); // TODO: use draggable + sortable in order to cancel the dragging when the rcp fails }); } @@ -473,6 +496,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ || (!this.options.action.help && !this.options.action.get_empty_list_help)) { return; } + this.last_position = this.$el.find('table:first').css("position"); this.$el.find('table:first').css("position", "absolute"); $(QWeb.render('KanbanView.nocontent', { content : this.options.action.get_empty_list_help || this.options.action.help})).insertAfter(this.$('table:first')); this.$el.find('.oe_view_nocontent').click(function() { @@ -480,8 +504,8 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ }); }, remove_no_result: function() { - this.$el.find('table:first').css("position", false); - this.$el.find('.oe_view_nocontent').remove(); + this.$el.find('table:first').css("position", this.last_position); + this.$el.find('.oe_view_nocontent').remove(); }, /* @@ -555,7 +579,7 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({ } catch(e) {} } _.each(this.view.aggregates, function(value, key) { - self.aggregates[value] = group.get('aggregates')[key]; + self.aggregates[value] = instance.web.format_value(group.get('aggregates')[key], {type: 'float'}); }); } @@ -792,6 +816,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'); + } } }); @@ -1067,13 +1100,6 @@ instance.web_kanban.KanbanRecord = instance.web.Widget.extend({ var color = this.kanban_getcolor(variable); return color === '' ? '' : 'oe_kanban_color_' + color; }, - kanban_gravatar: function(email, size) { - size = size || 22; - email = _.str.trim(email || '').toLowerCase(); - var default_ = _.str.isBlank(email) ? 'mm' : 'identicon'; - var email_md5 = $.md5(email); - return 'http://www.gravatar.com/avatar/' + email_md5 + '.png?s=' + size + '&d=' + default_; - }, kanban_image: function(model, field, id, cache, options) { options = options || {}; var url; diff --git a/addons/web_kanban/static/src/xml/web_kanban.xml b/addons/web_kanban/static/src/xml/web_kanban.xml index 15cd60f79ab..c0ccd4103a1 100644 --- a/addons/web_kanban/static/src/xml/web_kanban.xml +++ b/addons/web_kanban/static/src/xml/web_kanban.xml @@ -77,6 +77,7 @@ <td class="oe_kanban_column"> <div class="oe_kanban_group_list_header"/> <div class="oe_kanban_column_cards"/> + <div class="oe_kanban_folded_column_cards"/> <div class="oe_kanban_show_more"> <button class="oe_button">Show more... (<span class="oe_kanban_remaining"></span> remaining)</button> </div> |
