[IMP] mail.thread: improvement taken from trunk-form-v2-fme. mail.group: added demo data. thread widget: updated css and html structure. mail security: now for every users, not only employees. This will need to be reviewed in details.

bzr revid: tde@openerp.com-20120413100327-2uimy9c1crnfzm6u
This commit is contained in:
Thibault Delavallée
2012-04-13 12:03:27 +02:00
parent 2c142dbf9a
commit 86fe9e48b8
11 changed files with 107 additions and 46 deletions
+1
View 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,
+1 -1
View 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>
+13
View File
@@ -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>
+1 -1
View File
@@ -112,6 +112,6 @@
</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>
+1 -1
View File
@@ -234,7 +234,7 @@
<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>
+1 -1
View 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"/>
+5 -4
View File
@@ -1,7 +1,8 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_mail_message,mail.message,model_mail_message,base.group_user,1,1,1,1
access_mail_message,mail.message,model_mail_message,,1,0,1,0
access_mail_message_all,mail.message.all,model_mail_message,base.group_user,1,1,1,1
access_mail_thread,mail.thread,model_mail_thread,base.group_user,1,1,1,0
access_mail_subscription,mail.subscription,model_mail_subscription,base.group_user,1,1,1,1
access_mail_notification,mail.notification,model_mail_notification,base.group_user,1,1,1,1
access_mail_subscription,mail.subscription,model_mail_subscription,,1,1,1,1
access_mail_notification,mail.notification,model_mail_notification,,1,1,1,1
access_mail_group,mail.group,model_mail_group,base.group_user,1,1,1,1
access_mail_message_report,mail.message.report,model_mail_message_report,base.group_user,1,0,0,0
access_mail_message_report,mail.message.report,model_mail_message_report,,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_mail_message mail.message model_mail_message base.group_user 1 1 0 1 1 0
3 access_mail_message_all mail.message.all model_mail_message base.group_user 1 1 1 1
4 access_mail_thread mail.thread model_mail_thread base.group_user 1 1 1 0
5 access_mail_subscription mail.subscription model_mail_subscription base.group_user 1 1 1 1
6 access_mail_notification mail.notification model_mail_notification base.group_user 1 1 1 1
7 access_mail_group mail.group model_mail_group base.group_user 1 1 1 1
8 access_mail_message_report mail.message.report model_mail_message_report base.group_user 1 0 0 0
+52 -21
View 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;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

+9 -11
View 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);
});
+23 -6
View 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>
@@ -85,6 +91,10 @@
<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 />
@@ -92,6 +102,13 @@
<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>