[IMP] view: no message alias
authorChristophe Matthieu <chm@openerp.com>
Wed, 23 Jan 2013 10:31:02 +0000 (11:31 +0100)
committerChristophe Matthieu <chm@openerp.com>
Wed, 23 Jan 2013 10:31:02 +0000 (11:31 +0100)
bzr revid: chm@openerp.com-20130123103102-81kafjq0l61uq8qx

addons/web/static/src/js/view_list.js
addons/web/static/src/js/views.js
addons/web_kanban/static/src/js/kanban.js

index fbbfabc..c023148 100644 (file)
@@ -850,6 +850,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
         this.$el.find('.oe_view_nocontent').click(function() {
             create_nocontent.openerpBounce();
         });
+        this.insert_alias(this.$el.find('.oe_view_nocontent'));
     }
 });
 instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web.ListView.List# */{
index 9fd4936..8f5eed3 100644 (file)
@@ -1394,7 +1394,34 @@ instance.web.View = instance.web.Widget.extend({
     is_action_enabled: function(action) {
         var attrs = this.fields_view.arch.attrs;
         return (action in attrs) ? JSON.parse(attrs[action]) : true;
-    }
+    },
+    /**
+     * insert alias into the dom
+     */
+    insert_alias: function ($dom) {
+        var self = this;
+        var context = this.options.action.context || {};
+        if (context && context.alias) {
+            new instance.web.Model('mail.alias').call("get_alias", [], {'alias': context.alias}).then(function (alias_ids) {
+                if (alias_ids.length) {
+                    var $alias = $('<p class="oe_view_nocontent_alias"></p>');
+                    var global = false;
+                    var inc = 0;
+                    _.each(alias_ids, function (alias_id) {
+                        if (alias_id.email.match(/@.+/)) {
+                            if (inc && global != alias_id.global) {
+                                $alias.append('<br/>' + _t("or"));
+                                global = alias_id.global;
+                            }
+                            $alias.append((inc? '<br/>': '') + '<a href="mailto:' + alias_id.email + '">' + alias_id.email + '</a>');
+                            inc++;
+                        }
+                    })
+                    $dom.append($alias);
+                }
+            });
+        }
+    },
 });
 
 /**
index 758c424..b1ed4f1 100644 (file)
@@ -453,6 +453,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
         }
     },
     no_result: function() {
+        var self = this;
         if (this.groups.group_by
             || !this.options.action
             || !this.options.action.help) {
@@ -460,10 +461,10 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
         }
         this.$el.find('table:first').css("position", "absolute");
         $(QWeb.render('KanbanView.nocontent', { content : this.options.action.help})).insertAfter(this.$('table:first'));
-        var create_nocontent = this.$buttons;
         this.$el.find('.oe_view_nocontent').click(function() {
-            create_nocontent.openerpBounce();
+            self.$buttons.openerpBounce();
         });
+        this.insert_alias(this.$el.find('.oe_view_nocontent_content'));
     },
     remove_no_result: function() {
         this.$el.find('table:first').css("position", false);