[MERGE] from trunk
bzr revid: chm@openerp.com-20121113152842-qwe8eibf2pb5dsrv
This commit is contained in:
+5
-5
@@ -1115,7 +1115,7 @@ body .ui-tooltip { border-width:2px; }
|
||||
|
||||
|
||||
/*** Input field styling from Bootstrap **/
|
||||
input, textarea {
|
||||
/* input, textarea {
|
||||
-webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
|
||||
-moz-transition: border linear 0.2s, box-shadow linear 0.2s;
|
||||
-ms-transition: border linear 0.2s, box-shadow linear 0.2s;
|
||||
@@ -1137,12 +1137,12 @@ input[type=file]:focus, input[type=checkbox]:focus, select:focus {
|
||||
-moz-box-shadow: none;
|
||||
box-shadow: none;
|
||||
outline: 1px dotted #666;
|
||||
}
|
||||
}*/
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
/*input[type="text"],
|
||||
input[type="password"],*/
|
||||
.ui-autocomplete-input,
|
||||
textarea,
|
||||
/*textarea,*/
|
||||
.uneditable-input {
|
||||
display: inline-block;
|
||||
padding: 4px;
|
||||
|
||||
@@ -2306,16 +2306,16 @@
|
||||
text-align: justify;
|
||||
}
|
||||
.openerp .oe_form_editable .oe_form .oe_form_field_integer input {
|
||||
width: 6em !important;
|
||||
width: 6em;
|
||||
}
|
||||
.openerp .oe_form_editable .oe_form .oe_form_field_float input {
|
||||
width: 7em !important;
|
||||
width: 7em;
|
||||
}
|
||||
.openerp .oe_form_editable .oe_form .oe_form_field_date input {
|
||||
width: 7.5em !important;
|
||||
width: 7.5em;
|
||||
}
|
||||
.openerp .oe_form_editable .oe_form .oe_form_field_datetime input {
|
||||
width: 11.5em !important;
|
||||
width: 11.5em;
|
||||
}
|
||||
.openerp .oe_hidden_input_file {
|
||||
position: relative;
|
||||
@@ -2578,32 +2578,31 @@
|
||||
top: 5px;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_cm_button {
|
||||
display: none;
|
||||
line-height: 19px;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_input_icon {
|
||||
margin-top: 5px;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field {
|
||||
min-width: 0;
|
||||
max-width: none;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
|
||||
height: 27px;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea {
|
||||
-moz-border-radius: 0;
|
||||
-webkit-border-radius: 0;
|
||||
border-radius: 0;
|
||||
border: 1px solid #aaaaff;
|
||||
margin: 0;
|
||||
min-width: 0;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_float input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_view_integer input {
|
||||
text-align: right;
|
||||
width: 100% !important;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime > span, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date > span {
|
||||
width: 100% !important;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime input.oe_datepicker_master, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date input.oe_datepicker_master {
|
||||
width: 100% !important;
|
||||
}
|
||||
.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_field_float, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_view_integer, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date {
|
||||
min-width: 0 !important;
|
||||
max-width: none !important;
|
||||
}
|
||||
.openerp .oe_list_group_name {
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -2735,6 +2734,10 @@
|
||||
.openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child:after {
|
||||
border-width: 0;
|
||||
}
|
||||
.openerp .oe_list_content > tbody > tr > td.oe_list_field_boolean input {
|
||||
filter: alpha(opacity=50);
|
||||
opacity: 0.5;
|
||||
}
|
||||
.openerp .oe_list_content > tbody > tr:nth-child(odd) {
|
||||
background-color: #f0f0fa;
|
||||
background-color: #f0f0fa;
|
||||
|
||||
@@ -1837,13 +1837,13 @@ $sheet-padding: 16px
|
||||
.oe_form_editable
|
||||
.oe_form
|
||||
.oe_form_field_integer input
|
||||
width: 6em !important
|
||||
width: 6em
|
||||
.oe_form_field_float input
|
||||
width: 7em !important
|
||||
width: 7em
|
||||
.oe_form_field_date input
|
||||
width: 7.5em !important
|
||||
width: 7.5em
|
||||
.oe_form_field_datetime input
|
||||
width: 11.5em !important
|
||||
width: 11.5em
|
||||
// }}}
|
||||
// FormView.fields_binary {{{
|
||||
/* http://www.quirksmode.org/dom/inputfile.html
|
||||
@@ -2041,26 +2041,25 @@ $sheet-padding: 16px
|
||||
.oe_m2o_drop_down_button
|
||||
top: 5px
|
||||
.oe_m2o_cm_button
|
||||
display: none
|
||||
line-height: 19px
|
||||
.oe_input_icon
|
||||
margin-top: 5px
|
||||
.oe_form_field
|
||||
min-width: 0
|
||||
max-width: none
|
||||
input, textarea
|
||||
height: $row-height
|
||||
input, textarea
|
||||
@include radius(0)
|
||||
border: 1px solid #aaf
|
||||
margin: 0
|
||||
min-width: 0
|
||||
&.oe_form_field_float,&.oe_form_view_integer
|
||||
input
|
||||
text-align: right
|
||||
width: 100% !important
|
||||
&.oe_form_field_datetime,&.oe_form_field_date
|
||||
> span
|
||||
width: 100% !important
|
||||
input.oe_datepicker_master
|
||||
width: 100% !important
|
||||
.oe_form_field_float,.oe_form_view_integer,&.oe_form_field_datetime,&.oe_form_field_date
|
||||
min-width: 0 !important
|
||||
max-width: none !important
|
||||
.oe_list_group_name
|
||||
white-space: nowrap
|
||||
// }}}
|
||||
@@ -2168,6 +2167,8 @@ $sheet-padding: 16px
|
||||
width: 17px
|
||||
&:after
|
||||
border-width: 0
|
||||
> td.oe_list_field_boolean input
|
||||
@include opacity()
|
||||
> tr:nth-child(odd)
|
||||
background-color: #f0f0fa
|
||||
@include vertical-gradient(#f0f0fa, #eeeef6)
|
||||
|
||||
@@ -2152,17 +2152,10 @@ instance.web.form.AbstractField = instance.web.form.FormWidget.extend(instance.w
|
||||
},
|
||||
|
||||
set_dimensions: function (height, width) {
|
||||
// remove width css property
|
||||
this.$el.css('width', '');
|
||||
// extract style (without width)
|
||||
var old_style = this.$el.attr('style');
|
||||
// jQuery doesn't understand/use !important
|
||||
var style = 'width:' + width + 'px !important;';
|
||||
if (old_style) {
|
||||
style += old_style
|
||||
}
|
||||
this.$el.attr('style', style);
|
||||
this.$el.css('minHeight', height);
|
||||
this.$el.css({
|
||||
width: width,
|
||||
minHeight: height
|
||||
});
|
||||
},
|
||||
commit_value: function() {
|
||||
return $.when();
|
||||
|
||||
@@ -503,12 +503,17 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
||||
return this.reload_content();
|
||||
},
|
||||
reload_record: function (record) {
|
||||
var self = this;
|
||||
return this.dataset.read_ids(
|
||||
[record.get('id')],
|
||||
_.pluck(_(this.columns).filter(function (r) {
|
||||
return r.tag === 'field';
|
||||
}), 'name')
|
||||
).done(function (records) {
|
||||
if (!records[0]) {
|
||||
self.records.remove(record);
|
||||
return;
|
||||
}
|
||||
_(records[0]).each(function (value, key) {
|
||||
record.set(key, value, {silent: true});
|
||||
});
|
||||
@@ -2151,7 +2156,7 @@ instance.web.list.Boolean = instance.web.list.Column.extend({
|
||||
* @private
|
||||
*/
|
||||
_format: function (row_data, options) {
|
||||
return _.str.sprintf('<input type="checkbox" %s disabled="disabled"/>',
|
||||
return _.str.sprintf('<input type="checkbox" %s readonly="readonly"/>',
|
||||
row_data[this.id].value ? 'checked="checked"' : '');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -117,13 +117,6 @@ openerp.web.list_editable = function (instance) {
|
||||
e.preventDefault();
|
||||
self.cancel_edition();
|
||||
});
|
||||
this.$el
|
||||
.off('click', 'tbody td:not(.oe_list_field_cell)')
|
||||
.on('click', 'tbody td:not(.oe_list_field_cell)', function () {
|
||||
if (!self.editor.is_editing()) {
|
||||
self.start_edition();
|
||||
}
|
||||
});
|
||||
this.editor.destroy();
|
||||
// Editor is not restartable due to formview not being
|
||||
// restartable
|
||||
|
||||
@@ -213,8 +213,12 @@ instance.web.ActionManager = instance.web.Widget.extend({
|
||||
if (run_action) {
|
||||
this.null_action();
|
||||
action_loaded = this.do_action(state.action);
|
||||
instance.webclient.menu.has_been_loaded.done(function() {
|
||||
instance.webclient.menu.open_action(state.action);
|
||||
$.when(action_loaded || null).done(function() {
|
||||
instance.webclient.menu.has_been_loaded.done(function() {
|
||||
if (self.inner_action && self.inner_action.id) {
|
||||
instance.webclient.menu.open_action(self.inner_action.id);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
$(document).ready(function () {
|
||||
var instance;
|
||||
var $fix = $('#qunit-fixture');
|
||||
|
||||
module('list.buttons', {
|
||||
setup: function () {
|
||||
instance = openerp.testing.instanceFor('list');
|
||||
|
||||
openerp.testing.loadTemplate(instance);
|
||||
|
||||
openerp.testing.mockifyRPC(instance);
|
||||
}
|
||||
});
|
||||
asyncTest('record-deletion', 2, function () {
|
||||
instance.session.responses['/web/view/load'] = function () {
|
||||
return {result: {
|
||||
type: 'tree',
|
||||
fields: {
|
||||
a: {type: 'char', string: "A"}
|
||||
},
|
||||
arch: {
|
||||
tag: 'tree',
|
||||
attrs: { },
|
||||
children: [
|
||||
{tag: 'field', attrs: {name: 'a'}},
|
||||
{tag: 'button', attrs: {type: 'object', name: 'foo'}}
|
||||
]
|
||||
}
|
||||
}};
|
||||
};
|
||||
instance.session.responses['/web/dataset/call_kw:read'] = function (req) {
|
||||
var args = req.params.args[0];
|
||||
if (_.isEqual(args, [1, 2, 3])) {
|
||||
return {result: [
|
||||
{id: 1, a: 'foo'}, {id: 2, a: 'bar'}, {id: 3, a: 'baz'}
|
||||
]};
|
||||
} else if (_.isEqual(args, [2])) {
|
||||
// button action virtually removed record
|
||||
return {result: []};
|
||||
}
|
||||
throw new Error(JSON.stringify(req.params));
|
||||
};
|
||||
instance.session.responses['/web/dataset/call_button'] = function () {
|
||||
return {result: false};
|
||||
};
|
||||
var ds = new instance.web.DataSetStatic(null, 'demo', null, [1, 2, 3]);
|
||||
var l = new instance.web.ListView({}, ds, false, {editable: 'top'});
|
||||
l.appendTo($fix)
|
||||
.then(l.proxy('reload_content'))
|
||||
.then(function () {
|
||||
var d = $.Deferred();
|
||||
l.records.bind('remove', function () {
|
||||
d.resolve();
|
||||
});
|
||||
$fix.find('table tbody tr:eq(1) button').click();
|
||||
return d.promise();
|
||||
})
|
||||
.always(function () { start(); })
|
||||
.then(function () {
|
||||
strictEqual(l.records.length, 2,
|
||||
"should have 2 records left");
|
||||
strictEqual($fix.find('table tbody tr[data-id]').length, 2,
|
||||
"should have 2 rows left");
|
||||
}, function (e) {
|
||||
ok(false, e && e.message || e);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -58,5 +58,6 @@
|
||||
<script type="text/javascript" src="/web/static/test/evals.js"></script>
|
||||
<script type="text/javascript" src="/web/static/test/search.js"></script>
|
||||
<script type="text/javascript" src="/web/static/test/Widget.js"></script>
|
||||
<script type="text/javascript" src="/web/static/test/list.js"></script>
|
||||
<script type="text/javascript" src="/web/static/test/list-editable.js"></script>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user