'security/mail_security.xml',
'security/ir.model.access.csv',
'mail_data.xml',
+ 'mail_group_data.xml',
'res_users_view.xml',
],
'installable': True,
<?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>
--- /dev/null
+<?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>
</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>
<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>
<!-- 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"/>
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
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 {
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;
.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 {
.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;
}
/* ------------------------------ */
div.oe_mail_thread_display {
white-space: normal;
- margin-bottom: 5px;
+ /*margin-bottom: 5px;*/
}
div.oe_mail_thread_subthread {
padding: 1px;
}
-.notification, .email {
- background: #E0E0E0;
+.notification, .comment {
padding: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
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 {
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);
font-weight: bold;
}
+.oe_mail_msg_reply, .oe_mail_msg_delete {
+ margin-right: 4px;
+}
+
a.oe_mail_oe_intlink {
color: #8786b7;
}
.oe_mail_oe_space {
margin-left: 15px;
}
+
+
+
+
+.oe_mail_recthread_actions button {
+ width: 120px;
+}
+
}
/* 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
/* 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({
// 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();
},
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);
});
<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">
<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">
<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 />
<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>