[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:
@@ -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,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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
@@ -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 |
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user