summaryrefslogtreecommitdiff
path: root/addons/web_kanban/static/src
diff options
context:
space:
mode:
authorBharat R. Devnani (OpenERP) <bde@tinyerp.com>2014-03-04 11:08:49 +0530
committerBharat R. Devnani (OpenERP) <bde@tinyerp.com>2014-03-04 11:08:49 +0530
commit67b68d8e4e7015e368324dd0c02aa29fed71d359 (patch)
treed72e75ef050bd65dcb53d2a27305a0285ca2963b /addons/web_kanban/static/src
parent7c1af9ef1441b2097c815758670b70a690598d62 (diff)
parente76c36d704c142fca08bf1297897d4091bf7a4cb (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.css10
-rw-r--r--addons/web_kanban/static/src/css/kanban.sass8
-rw-r--r--addons/web_kanban/static/src/js/kanban.js54
-rw-r--r--addons/web_kanban/static/src/xml/web_kanban.xml1
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>