diff --git a/addons/live_support/live_support.py b/addons/live_support/live_support.py index 78c2b2b8a78..f21550b1ac0 100644 --- a/addons/live_support/live_support.py +++ b/addons/live_support/live_support.py @@ -40,6 +40,7 @@ class ImportController(openerp.addons.web.http.Controller): p = json.loads(kwargs["p"]) db = p["db"] channel = p["channel"] + user_name = p.get("user_name", None) req.session._db = db req.session._uid = None req.session._login = "anonymous" @@ -47,6 +48,7 @@ class ImportController(openerp.addons.web.http.Controller): info = req.session.model('live_support.channel').get_info_for_chat_src(channel) info["db"] = db info["channel"] = channel + info["userName"] = user_name return req.make_response(env.get_template("loader.js").render(info), headers=[('Content-Type', "text/javascript")]) diff --git a/addons/live_support/loader.js b/addons/live_support/loader.js index 606c411a166..44b34e9f80a 100644 --- a/addons/live_support/loader.js +++ b/addons/live_support/loader.js @@ -19,5 +19,6 @@ require.config({ inputPlaceholder: {{inputPlaceholder | json}}, defaultMessage: {{(defaultMessage or None) | json}}, auto: window.oe_live_support_auto || false, + userName: {{userName | json}} || undefined, }); }); diff --git a/addons/live_support/static/ext/static/js/livesupport.js b/addons/live_support/static/ext/static/js/livesupport.js index c8b4869f178..93aef638ee9 100644 --- a/addons/live_support/static/ext/static/js/livesupport.js +++ b/addons/live_support/static/ext/static/js/livesupport.js @@ -8,6 +8,7 @@ define(["nova", "underscore", "oeclient", "require", "jquery", var connection; var defaultInputPlaceholder; + var userName; livesupport.main = function(server_url, db, login, password, channel, options) { var defs = []; @@ -17,8 +18,10 @@ define(["nova", "underscore", "oeclient", "require", "jquery", inputPlaceholder: "How may I help you?", defaultMessage: null, auto: false, + userName: "Anonymous", }); defaultInputPlaceholder = options.inputPlaceholder; + userName = options.userName; defs.push($.ajax({ url: require.toUrl("./livesupport_templates.js"), jsonp: false, @@ -177,21 +180,24 @@ define(["nova", "underscore", "oeclient", "require", "jquery", } return def.then(function(uuid) { localStorage["oe_livesupport_uuid"] = uuid; - return connection.getModel("im.user").call("get_by_user_id", [uuid]).then(function(my_id) { - self.my_id = my_id["id"]; - return self.ensure_users([self.my_id]).then(function() { - var me = self.users_cache[self.my_id]; - delete self.users_cache[self.my_id]; - self.me = me; - connection.connector.call("/longpolling/im/activated", {}).then(function(activated) { - if (activated) { - self.activated = true; - $(window).on("unload", self.unload_event_handler); - self.poll(); - } - }); - }); - }); + return connection.getModel("im.user").call("get_by_user_id", [uuid]); + }).then(function(my_id) { + self.my_id = my_id["id"]; + return connection.getModel("im.user").call("assign_name", [uuid, userName]); + }).then(function() { + return self.ensure_users([self.my_id]) + }).then(function() { + var me = self.users_cache[self.my_id]; + delete self.users_cache[self.my_id]; + self.me = me; + me.set("name", "You"); + connection.connector.call("/longpolling/im/activated", {}); + }).then(function(activated) { + if (activated) { + self.activated = true; + $(window).on("unload", self.unload_event_handler); + self.poll(); + } }); }, unload: function() {