summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2014-09-15 15:09:32 +0200
committerChristophe Simonis <chs@odoo.com>2014-09-15 15:09:32 +0200
commit45cc064d590eae30357b6055f7609508a47b78fc (patch)
treedb41ced74b478c9e6629f4aa40396b00ed78cc65 /addons/web/static/src/js
parent3fb4ad20cdae70019656c8fce32ab0bb8fadf090 (diff)
parent780dd9891f5783fd07a075a445314df912d0a88c (diff)
[MERGE] forward port of branch 8.0 up to 780dd98
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/chrome.js4
-rw-r--r--addons/web/static/src/js/data.js2
-rw-r--r--addons/web/static/src/js/pyeval.js23
-rw-r--r--addons/web/static/src/js/view_form.js25
-rw-r--r--addons/web/static/src/js/views.js7
5 files changed, 39 insertions, 22 deletions
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 57063a8ef55..66202e4ae47 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -1051,7 +1051,7 @@ instance.web.UserMenu = instance.web.Widget.extend({
this.update_promise = this.update_promise.then(fct, fct);
},
on_menu_help: function() {
- window.open('http://help.openerp.com', '_blank');
+ window.open('http://help.odoo.com', '_blank');
},
on_menu_logout: function() {
this.trigger('user_logout');
@@ -1083,7 +1083,7 @@ instance.web.UserMenu = instance.web.Widget.extend({
instance.web.redirect('https://accounts.odoo.com/oauth2/auth?'+$.param(params));
}).fail(function(result, ev){
ev.preventDefault();
- instance.web.redirect('https://accounts.openerp.com/web');
+ instance.web.redirect('https://accounts.odoo.com/web');
});
}
},
diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js
index c22faaae9bd..8936c40b051 100644
--- a/addons/web/static/src/js/data.js
+++ b/addons/web/static/src/js/data.js
@@ -969,6 +969,8 @@ instance.web.BufferedDataSet = instance.web.DataSetStatic.extend({
sign = -1;
field = field.slice(1);
}
+ if(!a[field] && a[field] !== 0){ return sign}
+ if(!b[field] && b[field] !== 0){ return (sign == -1) ? 1 : -1}
//m2o should be searched based on value[1] not based whole value(i.e. [id, value])
if(_.isArray(a[field]) && a[field].length == 2 && _.isString(a[field][1])){
return sign * compare(a[field][1], b[field][1]);
diff --git a/addons/web/static/src/js/pyeval.js b/addons/web/static/src/js/pyeval.js
index d5499a028b7..bad98e7b2a0 100644
--- a/addons/web/static/src/js/pyeval.js
+++ b/addons/web/static/src/js/pyeval.js
@@ -888,15 +888,9 @@
return new $.Deferred(function (d) {setTimeout(function () {
var result;
try {
- var contexts = ([instance.session.user_context] || []).concat(source.contexts);
- // see Session.eval_context in Python
- result = {
- context: instance.web.pyeval.eval('contexts', contexts),
- domain: instance.web.pyeval.eval('domains', source.domains),
- group_by: instance.web.pyeval.eval('groupbys', source.group_by_seq || [])
- };
-
- } catch (e) {
+ result = instance.web.pyeval.sync_eval_domains_and_contexts(source);
+ }
+ catch (e) {
result = { error: {
code: 400,
message: instance.web._t("Evaluation Error"),
@@ -906,9 +900,18 @@
instance.web._t("Local evaluation failure\n%s\n\n%s"),
e.message, JSON.stringify(source))
}
- }};
+ }};
}
d.resolve(result);
}, 0); });
};
+ instance.web.pyeval.sync_eval_domains_and_contexts = function (source) {
+ var contexts = ([instance.session.user_context] || []).concat(source.contexts);
+ // see Session.eval_context in Python
+ return {
+ context: instance.web.pyeval.eval('contexts', contexts),
+ domain: instance.web.pyeval.eval('domains', source.domains),
+ group_by: instance.web.pyeval.eval('groupbys', source.group_by_seq || [])
+ };
+ };
})();
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 58bf4d4bb4e..a48b029f728 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -587,7 +587,16 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
var self = this;
return this.mutating_mutex.exec(function() {
function iterate() {
- var defs = [];
+ var start = $.Deferred();
+ start.resolve();
+ start = _.reduce(self.onchanges_defs, function(memo, d){
+ return memo.then(function(){
+ return d;
+ }, function(){
+ return d;
+ });
+ }, start);
+ var defs = [start];
_.each(self.fields, function(field) {
defs.push(field.commit_value());
});
@@ -796,14 +805,12 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
var self = this;
var save_obj = {prepend_on_create: prepend_on_create, ret: null};
this.save_list.push(save_obj);
- return $.when.apply($, self.onchanges_defs).then(function(){
- return self._process_operations().then(function() {
- if (save_obj.error)
- return $.Deferred().reject();
- return $.when.apply($, save_obj.ret);
- }).done(function() {
- self.$el.removeClass('oe_form_dirty');
- });
+ return self._process_operations().then(function() {
+ if (save_obj.error)
+ return $.Deferred().reject();
+ return $.when.apply($, save_obj.ret);
+ }).done(function(result) {
+ self.$el.removeClass('oe_form_dirty');
});
},
_process_save: function(save_obj) {
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 85e8e274d30..6dc20e91548 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -1621,7 +1621,12 @@ instance.web.fields_view_get = function(args) {
if (typeof model === 'string') {
model = new instance.web.Model(args.model, args.context);
}
- return args.model.call('fields_view_get', [args.view_id, args.view_type, args.context, args.toolbar]).then(function(fvg) {
+ return args.model.call('fields_view_get', {
+ view_id: args.view_id,
+ view_type: args.view_type,
+ context: args.context,
+ toolbar: args.toolbar
+ }).then(function(fvg) {
return postprocess(fvg);
});
};