[IMP] mail.thread: improvement taken from trunk-form-v2-fme. mail.group: added demo...
authorThibault Delavallée <tde@openerp.com>
Fri, 13 Apr 2012 10:03:27 +0000 (12:03 +0200)
committerThibault Delavallée <tde@openerp.com>
Fri, 13 Apr 2012 10:03:27 +0000 (12:03 +0200)
bzr revid: tde@openerp.com-20120413100327-2uimy9c1crnfzm6u

addons/mail/__openerp__.py
addons/mail/mail_data.xml
addons/mail/mail_group_data.xml [new file with mode: 0644]
addons/mail/mail_group_view.xml
addons/mail/mail_message_view.xml
addons/mail/mail_thread_view.xml
addons/mail/security/ir.model.access.csv
addons/mail/static/src/css/mail.css
addons/mail/static/src/img/groupdefault.png
addons/mail/static/src/js/mail.js
addons/mail/static/src/xml/mail.xml

index 88e9322..8171979 100644 (file)
@@ -66,6 +66,7 @@ The main features are:
         'security/mail_security.xml',
         'security/ir.model.access.csv',
         'mail_data.xml',
+        'mail_group_data.xml',
         'res_users_view.xml',
     ],
     'installable': True,
index 964552b..c8e8b1a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <openerp>
     <data noupdate="1">
-            <record forcecreate="True" id="ir_cron_mail_scheduler_action" model="ir.cron">
+        <record forcecreate="True" id="ir_cron_mail_scheduler_action" model="ir.cron">
             <field name="name">Email Queue Manager</field>
             <field name="user_id" ref="base.user_root"/>
             <field name="interval_number">1</field>
diff --git a/addons/mail/mail_group_data.xml b/addons/mail/mail_group_data.xml
new file mode 100644 (file)
index 0000000..bbaa774
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+        <record model="mail.group" id="group_all_company">
+            <field name="name">All Company</field>
+        </record>
+        <record model="mail.group" id="group_sales">
+            <field name="name">Sales</field>
+        </record>
+
+    </data>
+</openerp>
index 949dd1c..ea0dede 100644 (file)
         </record>
 
         <!-- left-side menu: Groups !-->
-        <menuitem id="mail_allgroups" name="All groups" parent="mail_feeds" sequence="12" action="action_view_groups"/>
+        <menuitem id="mail_allgroups" name="All Groups" parent="mail_feeds" sequence="12" action="action_view_groups"/>
     </data>
 </openerp>
index 7389f8e..ecd106e 100644 (file)
         <menuitem name="Feeds" id="menu_email_message_all" parent="base.menu_email" action="action_view_all_messages_short" groups="base.group_no_one"/>
 
         <record id="action_mail_all_feeds" model="ir.actions.client">
-            <field name="name">All Feeds</field>
+            <field name="name">Wall</field>
             <field name="tag">mail.all_feeds</field>
             <field name="params" eval="{'search_view_id': ref('view_message_search_wall')}"/>
         </record>
index faa6d24..af0c6ce 100644 (file)
@@ -14,7 +14,7 @@
         <!-- left-side menu: Feeds !-->
         <menuitem id="mail_feeds" name="Feeds" parent="mail_feeds_main"/>
         <record id="mail_wallfeeds" model="ir.ui.menu">
-          <field name="name">All Feeds</field>
+          <field name="name">Wall</field>
           <field name="sequence" eval="10"/>
           <field name="action" ref="action_mail_all_feeds"/>
           <field name="parent_id" ref="mail_feeds"/>
index c305de8..3cfd4e8 100644 (file)
@@ -1,7 +1,8 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink\r
-access_mail_message,mail.message,model_mail_message,base.group_user,1,1,1,1\r
+access_mail_message,mail.message,model_mail_message,,1,0,1,0\r
+access_mail_message_all,mail.message.all,model_mail_message,base.group_user,1,1,1,1\r
 access_mail_thread,mail.thread,model_mail_thread,base.group_user,1,1,1,0\r
-access_mail_subscription,mail.subscription,model_mail_subscription,base.group_user,1,1,1,1\r
-access_mail_notification,mail.notification,model_mail_notification,base.group_user,1,1,1,1\r
+access_mail_subscription,mail.subscription,model_mail_subscription,,1,1,1,1\r
+access_mail_notification,mail.notification,model_mail_notification,,1,1,1,1\r
 access_mail_group,mail.group,model_mail_group,base.group_user,1,1,1,1\r
-access_mail_message_report,mail.message.report,model_mail_message_report,base.group_user,1,0,0,0\r
+access_mail_message_report,mail.message.report,model_mail_message_report,,1,0,0,0\r
index d920455..260b4a2 100644 (file)
@@ -4,17 +4,23 @@
 
 div.oe_mail_wall {
     overflow: auto;
-    padding: 5px;
+    padding: 0;
+    background: white;
 }
 
-div.oe_mail_wall_search {
-    width: 55%;
+/*div.oe_mail_wall_search {*/
+    /*width: 550px;*/
+/*}*/
+
+.oe_mail_wall_button_comment {
+    float: right;
 }
 
 /* 2 columns view */
 div.oe_mail_wall_left {
     float: left;
-    width: 65%;
+    width: 560px;
+    margin: 8px;
 }
 
 div.oe_mail_wall_right {
@@ -22,6 +28,10 @@ div.oe_mail_wall_right {
     width: 34%;
 }
 
+.oe_mail_wall_threads {
+    margin-top: 8px;
+}
+
 .oe_mail_wall_thread div.oe_mail_thread_act .oe_mail_action_textarea, div.oe_mail_thread_subthread .oe_mail_action_textarea {
     height: 20px;
     padding: 2px;
@@ -47,16 +57,15 @@ div.oe_mail_wall_more {
 
 .oe_mail_recthread {
     overflow: auto;
-    padding: 5px 5px 5px 5px;
 }
 
 /* Left-side CSS */
 .oe_mail_recthread_actions {
-    margin-bottom: 10px;
+    margin-bottom: 8px;
 }
 
 .oe_mail_recthread_followers {
-    margin-bottom: 10px;
+    margin-bottom: 8px;
 }
 
 .oe_mail_followers_action, .oe_mail_followers_display {
@@ -70,21 +79,16 @@ div.oe_mail_wall_more {
 
 .oe_mail_recthread_right {
     float: right;
-    width: 25%;
-    margin-right: 5%;
+    width: 240px;
 }
 
 .oe_mail_button_follow, .oe_mail_button_unfollow {
-    width: 120px;
+    /*width: 120px;*/
 }
 
 .oe_mail_button_followers {
-    display: inline;
-    width: 120px;
-}
-
-.oe_mail_followers h4 {
-    margin: 0 0 8px;
+    display: inline-block;
+    width: 240px;
 }
 
 /* ------------------------------ */
@@ -99,7 +103,7 @@ div.oe_mail_thread_act {
 
 div.oe_mail_thread_display {
     white-space: normal;
-    margin-bottom: 5px;
+    /*margin-bottom: 5px;*/
 }
 
 div.oe_mail_thread_subthread {
@@ -116,8 +120,7 @@ li.oe_mail_thread_msg {
     padding: 1px;
 }
 
-.notification, .email {
-    background: #E0E0E0;
+.notification, .comment {
     padding: 4px;
     -moz-border-radius: 4px;
     -webkit-border-radius: 4px;
@@ -126,8 +129,16 @@ li.oe_mail_thread_msg {
     border-radius: 4px;
 }
 
-.comment {
-    padding: 4px;
+.oe_mail_thread_msg > .comment {
+    background: #eee;
+}
+
+.oe_mail_thread_subthread .comment {
+    background: white;
+}
+
+.notification {
+    background: #eee;
 }
 
 .notification:after, .email:after, .comment:after {
@@ -215,6 +226,14 @@ input.oe_mail, textarea.oe_mail {
     border-radius: 3px;
 }
 
+.oe_mail_wall .oe_mail_wall_act textarea {
+    width: 550px;
+}
+
+textarea.oe_mail {
+    height: 60px;
+}
+
 input.oe_mail:focus, textarea.oe_mail:focus {
     outline: 0;
     border-color: rgba(82, 168, 236, 0.8);
@@ -246,6 +265,10 @@ p.oe_mail_msg {
     font-weight: bold;
 }
 
+.oe_mail_msg_reply, .oe_mail_msg_delete {
+    margin-right: 4px;
+}
+
 a.oe_mail_oe_intlink {
     color: #8786b7;
 }
@@ -257,3 +280,11 @@ a.oe_mail_oe_intlink {
 .oe_mail_oe_space {
     margin-left: 15px;
 }
+
+
+
+
+.oe_mail_recthread_actions button {
+    width: 120px;
+}
+
index fd82683..cf16002 100644 (file)
Binary files a/addons/mail/static/src/img/groupdefault.png and b/addons/mail/static/src/img/groupdefault.png differ
index fbe817c..dc6bd74 100644 (file)
@@ -58,10 +58,8 @@ openerp.mail = function(session) {
     }
 
     /* Add ThreadDisplay widget to registry */
-    session.web.form.widgets.add(
-        'Thread', 'openerp.mail.Thread');
-    session.web.page.readonly.add(
-        'Thread', 'openerp.mail.Thread');
+    session.web.form.widgets.add( 'Thread', 'openerp.mail.Thread');
+    session.web.page.readonly.add( 'Thread', 'openerp.mail.Thread');
 
     /** 
      * ThreadDisplay widget: this widget handles the display of a thread of
@@ -464,10 +462,8 @@ openerp.mail = function(session) {
 
 
     /* Add ThreadView widget to registry */
-    session.web.form.widgets.add(
-        'ThreadView', 'openerp.mail.RecordThread');
-    session.web.page.readonly.add(
-        'ThreadView', 'openerp.mail.RecordThread');
+    session.web.form.widgets.add( 'ThreadView', 'openerp.mail.RecordThread');
+    session.web.page.readonly.add( 'ThreadView', 'openerp.mail.RecordThread');
 
     /* ThreadView widget: thread of comments */
     mail.RecordThread = session.web.form.Field.extend({
@@ -489,9 +485,11 @@ openerp.mail = function(session) {
             // bind buttons
             this.$element.find('button.oe_mail_button_followers').click(function () { self.do_toggle_followers(); }).hide();
             this.$element.find('button.oe_mail_button_follow').click(function () { self.do_follow(); })
-                .mouseover(function () { $(this).html('Follow'); }).mouseleave(function () { $(this).html('Not following'); });
+                .mouseover(function () { $(this).html('Follow').addClass('following'); })
+                .mouseleave(function () { $(this).html('Not following').removeClass('following'); });
             this.$element.find('button.oe_mail_button_unfollow').click(function () { self.do_unfollow(); })
-                .mouseover(function () { $(this).html('Unfollow'); }).mouseleave(function () { $(this).html('Following'); });
+                .mouseover(function () { $(this).html('Unfollow').removeClass('following').addClass('unfollow'); })
+                .mouseleave(function () { $(this).html('Following').removeClass('unfollow').addClass('following'); });
             this.reinit();
         },
 
@@ -642,7 +640,7 @@ openerp.mail = function(session) {
         load_search_view: function (view_id, defaults, hidden) {
             var self = this;
             this.searchview = new session.web.SearchView(this, this.ds_msg, view_id || false, defaults || {}, hidden || false);
-            var search_view_loaded = this.searchview.appendTo(this.$element.find('div.oe_mail_wall_search'));
+            var search_view_loaded = this.searchview.appendTo(this.$element.find('.oe_view_manager_row'));
             return $.when(search_view_loaded).then(function () {
                 self.searchview.on_search.add(self.do_searchview_search);
             });
index 0f49902..d97f073 100644 (file)
@@ -2,13 +2,17 @@
 <template>
 
     <div t-name="Wall" class="oe_mail_wall">
-        <div class="oe_mail_wall_search">
+        <div class="oe_view_manager_header">
+            <div class="oe_view_manager_row">
+                <h2 class="oe_view_title">All Feeds</h2>
+            </div>
         </div>
         <div class="oe_mail_wall_left">
             <div class="oe_mail_wall_act">
-                <textarea class="oe_mail oe_mail_wall_action_textarea" placeholder="Add a personnal message here..."/><br />
+                <textarea class="oe_mail oe_mail_wall_action_textarea" placeholder="Add a personnal message here..."/>
                 <button class="oe_mail_wall_button_comment" type="button">Post comment</button>
             </div>
+            <div class="oe_clear"></div>
             <div class="oe_mail_wall_threads">
             </div>
             <div class="oe_mail_wall_more">
@@ -28,7 +32,7 @@
         <div class="oe_mail_recthread_right">
             <div class="oe_mail_recthread_actions">
                 <button type="button" class="oe_mail_button_follow">Not following</button>
-                <button type="button" class="oe_mail_button_unfollow">Following</button>
+                <button type="button" class="oe_mail_button_unfollow following">Following</button>
                 <button type="button" class="oe_mail_button_followers">Display followers</button>
             </div>
             <div class="oe_mail_recthread_followers">
@@ -65,7 +69,9 @@
     
     <t t-name="NoteDisplay">
         <p class="oe_mail_msg">
-            <a href="#" class="intlink oe_mail_oe_intlink" t-attf-data-res-model='{params.res_model}' t-attf-data-res-id='{params.res_id}'><t t-raw="record.record_name"/></a>
+            <t t-if="params.thread_level > 0">
+                <a href="#" class="intlink oe_mail_oe_intlink" t-attf-data-res-model='{params.res_model}' t-attf-data-res-id='{params.res_id}'><t t-raw="record.record_name"/></a>
+            </t>
             <span class="oe_mail_msg_body"><t t-raw="record.body"/></span>
             <t t-if="record.tr_body"><span class="oe_mail_msg_body_short"><t t-raw="record.tr_body"/></span></t>
             <br />
@@ -73,9 +79,9 @@
                 <a href="#" class="intlink oe_mail_oe_intlink" data-res-model='res.users' t-attf-data-res-id='{record.user_id[0]}'><t t-raw="record.user_id[1]"/></a>
                 on <t t-raw="record.date"/>
             </span>
-            <t t-if="display['show_reply']"><span class="oe_mail_oe_space"><a href="#" class="oe_mail_msg_reply oe_mail_oe_intlink">Reply</a></span></t>
+            <t t-if="display['show_reply']"><a href="#" class="oe_mail_msg_reply oe_mail_oe_intlink"> Reply</a> </t>
             <t t-if="display['show_delete']">
-                <t t-if="thread._is_author(record.user_id[0])"><span class="oe_mail_oe_space"><a href="#" t-attf-data-id='{record.id}' class="oe_mail_msg_delete oe_mail_oe_intlink">Delete</a></span></t>
+                <t t-if="thread._is_author(record.user_id[0])"><a href="#" t-attf-data-id='{record.id}' class="oe_mail_msg_delete oe_mail_oe_intlink"> Delete </a></t>
             </t>
             <t t-if="display['show_hide']">
                 <t t-if="!(thread._is_author(record.user_id[0]))"><span class="oe_mail_oe_space"><a href="#" t-attf-data-id='{record.id}' class="oe_mail_msg_hide oe_mail_oe_intlink">Hide</a></span></t>
     
     <t t-name="EmailDisplay">
         <p class="oe_mail_msg oe_mail_msg_p_email_header">
+            <t t-if="params.thread_level > 0">
+                <a href="#" class="intlink oe_mail_oe_intlink" t-attf-data-res-model='{params.res_model}' t-attf-data-res-id='{params.res_id}'><t t-raw="record.record_name"/></a>
+            </t>
+            <br />
             <span class="oe_mail_oe_bold">From:</span> <t t-esc="record.email_from"/> on <span class="oe_mail_oe_fade"><t t-raw="record.date"/></span><br />
             <span class="oe_mail_oe_bold">To:</span> <t t-esc="record.email_to"/><br />
             <span class="oe_mail_oe_bold">Subject:</span> <t t-esc="record.subject"/><br />
         <p class="oe_mail_msg">
             <span class="oe_mail_msg_body"><t t-raw="record.body"/></span>
             <t t-if="record.tr_body"><span class="oe_mail_msg_body_short"><t t-raw="record.tr_body"/></span></t>
+            <br />
+            <t t-if="display['show_delete']">
+                <t t-if="thread._is_author(record.user_id[0])"><a href="#" t-attf-data-id='{record.id}' class="oe_mail_msg_delete oe_mail_oe_intlink"> Delete </a></t>
+            </t>
+            <t t-if="display['show_hide']">
+                <t t-if="!(thread._is_author(record.user_id[0]))"><span class="oe_mail_oe_space"><a href="#" t-attf-data-id='{record.id}' class="oe_mail_msg_hide oe_mail_oe_intlink">Hide</a></span></t>
+            </t>
         </p>
     </t>