[MERGE] from trunk

bzr revid: chm@openerp.com-20121113152842-qwe8eibf2pb5dsrv
This commit is contained in:
Christophe Matthieu
2012-11-13 16:28:42 +01:00
9 changed files with 119 additions and 51 deletions
@@ -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;
+17 -14
View File
@@ -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;
+12 -11
View File
@@ -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)
+4 -11
View File
@@ -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();
+6 -1
View File
@@ -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
+6 -2
View File
@@ -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);
}
});
});
}
}
+68
View File
@@ -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);
});
});
});
+1
View File
@@ -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>