[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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user