[merge] lot of fixes and minor improvements regarding kanban views and relations

bzr revid: nicolas.vanhoren@openerp.com-20120605152411-q5jv4eyr1dviji82
This commit is contained in:
niv-openerp
2012-06-05 17:24:11 +02:00
6 changed files with 45 additions and 43 deletions
-1
View File
@@ -1829,7 +1829,6 @@
color: black;
padding: 0px 3px 0px 3px;
margin: 0 2px 2px 0;
cursor: pointer;
height: 16px;
font: 11px "lucida grande", tahoma, verdana, arial, sans-serif;
}
-1
View File
@@ -1463,7 +1463,6 @@ $colour4: #8a89ba
color: black
padding: 0px 3px 0px 3px
margin: 0 2px 2px 0
cursor: pointer
height: 16px
font: 11px "lucida grande", tahoma, verdana, arial, sans-serif
.text-core .text-wrap .text-dropdown .text-list .text-suggestion em
+11 -28
View File
@@ -2754,9 +2754,12 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
}
view.options.not_interactible_on_create = true;
} else if (view.view_type === "kanban") {
view.options.confirm_on_delete = false;
if (self.get("effective_readonly")) {
view.options.action_buttons = false;
view.options.quick_creatable = false;
view.options.creatable = false;
view.options.read_only_mode = true;
}
}
views.push(view);
@@ -3106,7 +3109,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_.
if (this.get("effective_readonly"))
return;
var self = this;
self. $text = $("textarea", this.$element);
self.$text = $("textarea", this.$element);
self.$text.textext({
plugins : 'tags arrow autocomplete',
autocomplete: {
@@ -3158,19 +3161,6 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_.
return _.extend(el, {index:i});
})});
});
}).bind('tagClick', function(e, tag, value, callback) {
var pop = new instance.web.form.FormOpenPopup(self.view);
pop.show_element(
self.field.relation,
value.id,
self.build_context(),
{
title: _t("Open: ") + (self.string || self.name)
}
);
pop.on_write_completed.add_last(function() {
self.render_value();
});
}).bind('hideDropdown', function() {
self._drop_shown = false;
}).bind('showDropdown', function() {
@@ -3178,7 +3168,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_.
});
self.tags = self.$text.textext()[0].tags();
$("textarea", this.$element).focusout(function() {
$("textarea", this.$element).val("");
self.$text.trigger("setInputData", "");
}).keydown(function(e) {
if (event.keyCode === 9 && self._drop_shown) {
self.$text.textext()[0].autocomplete().selectFromDropdown();
@@ -3214,17 +3204,6 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_.
self.tags.addTags(_.map(data, function(el) {return {name: el[1], id:el[0]};}));
} else {
self.$element.html(QWeb.render("FieldMany2ManyTags.box", {elements: data}));
$(".oe_form_field_many2manytags_box", self.$element).click(function() {
var index = Number($(this).data("index"));
self.do_action({
type: 'ir.actions.act_window',
res_model: self.field.relation,
res_id: self.get("value")[index],
context: self.build_context(),
views: [[false, 'form']],
target: 'current'
});
});
}
};
if (! self.get('values') || self.get('values').length > 0) {
@@ -3417,6 +3396,8 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend(
'create_text': _t("Add"),
'creatable': self.get("effective_readonly") ? false : true,
'quick_creatable': self.get("effective_readonly") ? false : true,
'read_only_mode': self.get("effective_readonly") ? true : false,
'confirm_on_delete': false,
});
var embedded = (this.field.views || {}).kanban;
if (embedded) {
@@ -3563,6 +3544,7 @@ instance.web.form.Many2ManyQuickCreate = instance.web.Widget.extend({
var self = this;
self.$text.val("");
self.trigger('added', id);
this.m2m.dataset_changed();
},
});
}
@@ -3617,7 +3599,7 @@ instance.web.form.AbstractFormPopup = instance.web.OldWidget.extend({
width: '90%',
min_width: '800px',
close: function() {
self.check_exit();
self.check_exit(true);
},
title: this.options.title || "",
}, this.$element).open();
@@ -3675,9 +3657,10 @@ instance.web.form.AbstractFormPopup = instance.web.OldWidget.extend({
},
on_select_elements: function(element_ids) {
},
check_exit: function() {
check_exit: function(no_destroy) {
if (this.created_elements.length > 0) {
this.on_select_elements(this.created_elements);
this.created_elements = [];
}
this.destroy();
},
+2 -2
View File
@@ -107,8 +107,8 @@
box-sizing: border-box;
width: 100%;
}
.openerp .oe_kanban_view .oe_kanban_quick_create button {
float: right;
.openerp .oe_kanban_view .oe_kanban_quick_create .oe_kanban_quick_create_buttons {
margin-bottom: 10px;
}
.openerp .oe_kanban_view .oe_kanban_vignette {
padding: 8px;
+26 -8
View File
@@ -14,7 +14,13 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
number_of_color_schemes: 10,
init: function (parent, dataset, view_id, options) {
this._super(parent, dataset, view_id, options);
_.defaults(this.options, {"quick_creatable": true, "creatable": true, "create_text": undefined});
_.defaults(this.options, {
"quick_creatable": true,
"creatable": true,
"create_text": undefined,
"read_only_mode": false,
"confirm_on_delete": true,
});
this.fields_view = {};
this.fields_keys = [];
this.group_by = null;
@@ -417,7 +423,7 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
this.quick.destroy();
delete this.quick;
});
self.quick.appendTo(self.$element.find('.oe_kanban_header'));
self.quick.appendTo($(".oe_kanban_group_list_header", self.$records));
self.quick.focus();
});
this.$records.find('.oe_kanban_show_more').click(this.do_show_more);
@@ -466,7 +472,7 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
rec.insertBefore(self.$records.find('.oe_kanban_show_more'));
self.records.push(rec);
} else {
rec.prependTo(self.$records);
rec.insertAfter($(".oe_kanban_group_list_header", self.$records));
self.records.unshift(rec);
}
});
@@ -503,7 +509,7 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
this.dataset.read_ids([id], this.view.fields_keys)
.then(function (records) {
self.view.dataset.ids.push(id);
self.do_add_records(records, 'prepend');
self.do_add_records(records, true);
});
}
});
@@ -550,7 +556,8 @@ instance.web_kanban.KanbanRecord = instance.web.OldWidget.extend({
render: function() {
this.qweb_context = {
record: this.record,
widget: this
widget: this,
read_only_mode: this.view.options.read_only_mode,
};
for (var p in this) {
if (_.str.startsWith(p, 'kanban_')) {
@@ -653,12 +660,18 @@ instance.web_kanban.KanbanRecord = instance.web.OldWidget.extend({
},
do_action_delete: function($action) {
var self = this;
if (confirm(_t("Are you sure you want to delete this record ?"))) {
return $.when(this.view.dataset.unlink([this.id])).then(function() {
function do_it() {
return $.when(self.view.dataset.unlink([self.id])).then(function() {
self.group.remove_record(self.id);
self.destroy();
});
}
};
if (this.view.options.confirm_on_delete) {
if (confirm(_t("Are you sure you want to delete this record ?"))) {
return do_it();
}
} else
return do_it();
},
do_action_edit: function($action) {
var self = this;
@@ -775,6 +788,11 @@ instance.web_kanban.QuickCreate = instance.web.Widget.extend({
$(".oe-kanban-quick_create_close", this.$element).click(function () {
self.trigger('close');
});
self.$input.keyup(function(e) {
if (e.keyCode == 27 && self._buttons) {
self.trigger('close');
}
});
},
focus: function() {
this.$element.find('input').focus();
@@ -48,6 +48,7 @@
</t>
<t t-name="KanbanView.group_records_container">
<td t-attf-class="oe_kanban_column #{widget.group ? 'oe_kanban_grouped' : 'oe_kanban_ungrouped'}">
<div class="oe_kanban_group_list_header"/>
<div class="oe_kanban_show_more">
<button class="oe_button">Show more... (<span class="oe_kanban_remaining"></span> remaining)</button>
</div>
@@ -64,10 +65,12 @@
</li>
</t>
<div t-name="KanbanView.quick_create" class="oe_kanban_quick_create">
<input t-att-placeholder="_t('Type name to create')"/>
<input t-att-placeholder="_t('Create a new record')"/>
<t t-if="widget._buttons">
<button class="oe-kanban-quick_create_add">Add</button>
<button class="oe-kanban-quick_create_close">Close</button>
<div class="oe_kanban_quick_create_buttons">
<button class="oe-kanban-quick_create_add">Add</button>
or <a class="oe-kanban-quick_create_close">Cancel</a>
</div>
</t>
</div>
</template>