[IMP] mail: reduce code js

bzr revid: chm@openerp.com-20121019143228-rzc4k2s7pxa0glk9
This commit is contained in:
Christophe Matthieu 2012-10-19 16:32:28 +02:00
parent 8d31ef9c0e
commit 9daba198cd
2 changed files with 38 additions and 25 deletions

View File

@ -123,14 +123,12 @@ openerp.mail = function(session) {
'attachment_ids' : [], 'attachment_ids' : [],
'id': datasets.id, 'id': datasets.id,
'model': datasets.model, 'model': datasets.model,
'show_compact': true,
'res_model': datasets.res_model, 'res_model': datasets.res_model,
'is_private': datasets.is_private || false, 'is_private': datasets.is_private || false,
'partner_ids': datasets.partner_ids || [], 'partner_ids': datasets.partner_ids || [],
'avatar': mail.ChatterUtils.get_image(this.session, 'res.users', 'image_small', this.session.uid), 'avatar': mail.ChatterUtils.get_image(this.session, 'res.users', 'image_small', this.session.uid),
}; };
this.options = options.options; this.options = options.options;
this.options.show_attachment_delete = true;
this.parent_thread= parent.messages!= undefined ? parent : false; this.parent_thread= parent.messages!= undefined ? parent : false;
@ -146,7 +144,7 @@ openerp.mail = function(session) {
start: function(){ start: function(){
this.$render_compact = this.$el; this.$render_compact = this.$el;
if(this.datasets.show_compact) { if(this.options.show_compact_message) {
this.$render_compact.show(); this.$render_compact.show();
} else { } else {
this.$render_compact.hide(); this.$render_compact.hide();
@ -403,7 +401,7 @@ openerp.mail = function(session) {
// do not close the box if there are some text // do not close the box if there are some text
if(!this.$render_expandable.find('textarea').val().match(/\S+/)){ if(!this.$render_expandable.find('textarea').val().match(/\S+/)){
this.$render_expandable.hide(); this.$render_expandable.hide();
if(this.datasets.show_compact) { if(this.options.show_compact_message) {
this.$render_compact.show(); this.$render_compact.show();
} else { } else {
this.$render_compact.hide(); this.$render_compact.hide();
@ -416,14 +414,14 @@ openerp.mail = function(session) {
do_hide_compact: function() { do_hide_compact: function() {
this.$render_compact.hide(); this.$render_compact.hide();
this.datasets.show_compact = false; this.options.show_compact_message = false;
}, },
do_show_compact: function() { do_show_compact: function() {
if(!this.$render_expandable || this.$render_expandable.is(':hidden')){ if(!this.$render_expandable || this.$render_expandable.is(':hidden')){
this.$render_compact.show(); this.$render_compact.show();
} }
this.datasets.show_compact = true; this.options.show_compact_message = true;
} }
}); });
@ -863,17 +861,11 @@ openerp.mail = function(session) {
'is_private' : datasets.is_private || false, 'is_private' : datasets.is_private || false,
'author_id' : datasets.author_id || false, 'author_id' : datasets.author_id || false,
'thread_level' : (datasets.thread_level+1) || 0, 'thread_level' : (datasets.thread_level+1) || 0,
'partner_ids' : [] 'partner_ids' : _.filter(datasets.partner_ids, function(partner){ return partner[0]!=datasets.author_id[0]; } )
}; };
this.datasets.show_compose_message = this.options.show_compose_message && this.options.show_reply_button>this.datasets.thread_level; this.datasets.show_compose_message = this.options.show_compose_message && this.options.show_reply_button>this.datasets.thread_level;
for(var i in datasets.partner_ids){
if(datasets.partner_ids[i][0]!=(datasets.author_id ? datasets.author_id[0] : -1)){
this.datasets.partner_ids.push(datasets.partner_ids[i]);
}
}
this.messages = []; this.messages = [];
this.ComposeMessage = false; this.ComposeMessage = false;
@ -1020,6 +1012,11 @@ openerp.mail = function(session) {
/* this function is launch when a user click on "Reply" button /* this function is launch when a user click on "Reply" button
*/ */
on_compose_message: function(){ on_compose_message: function(){
if(!this.ComposeMessage){
this.instantiate_ComposeMessage();
this.ComposeMessage.do_hide_compact();
}
this.ComposeMessage.on_compose_expandable(); this.ComposeMessage.on_compose_expandable();
}, },
@ -1091,7 +1088,7 @@ openerp.mail = function(session) {
insert_message: function (message) { insert_message: function (message) {
var self=this; var self=this;
if(this.datasets.show_compose_message && this.options.display_indented_thread > self.datasets.thread_level){ if(this.datasets.show_compose_message && this.options.display_indented_thread > self.datasets.thread_level && this.options.show_compact_message){
this.ComposeMessage.do_show_compact(); this.ComposeMessage.do_show_compact();
} }
@ -1197,21 +1194,37 @@ openerp.mail = function(session) {
*... @param {int} [show_read_unread_button] number thread level to display the read/unread button *... @param {int} [show_read_unread_button] number thread level to display the read/unread button
*... @param {int} [display_indented_thread] number thread level to indented threads. *... @param {int} [display_indented_thread] number thread level to indented threads.
* other are on flat mode * other are on flat mode
*... @param {Boolean} [show_compose_message] allow to display the composer
*... @param {Boolean} [show_compact_message] display the compact message on the thread
* when the user clic on this compact mode, the composer is open
*/ */
init: function (parent, options) { init: function (parent, options) {
this._super(parent); this._super(parent);
this.options = options || {};
this.domain = options.domain || []; this.domain = options.domain || [];
this.context = options.context || {}; this.context = options.context || {};
this.search_results = {'domain': [], 'context': {}, 'groupby': {}}; this.search_results = {'domain': [], 'context': {}, 'groupby': {}};
this.options.typeof_thread = this.options.typeof_thread || 'inbox', this.options = _.extend({
this.options.display_indented_thread = this.options.display_indented_thread !== false ? this.options.display_indented_thread : -1, 'typeof_thread' : 'inbox',
this.options.show_reply_button = this.options.show_reply_button !== false ? this.options.show_reply_button : -1, 'display_indented_thread' : -1,
this.options.show_read_unread_button = this.options.show_read_unread_button !== false ? this.options.show_read_unread_button : -1, 'show_reply_button' : -1,
this.options.truncate_limit = this.options.truncate_limit || 250, 'show_read_unread_button' : -1,
this.options.show_record_name = this.options.show_record_name || false, 'truncate_limit' : 250,
this.options.show_compose_message = this.options.show_compose_message || false 'show_record_name' : false,
'show_compose_message' : false,
'show_compact_message' : false
}, options);
if(this.display_indented_thread === false) {
this.display_indented_thread = -1;
}
if(this.show_reply_button === false) {
this.show_reply_button = -1;
}
if(this.show_read_unread_button === false) {
this.show_read_unread_button = -1;
}
}, },
start: function (options) { start: function (options) {
@ -1402,8 +1415,8 @@ openerp.mail = function(session) {
'context' : context, 'context' : context,
'typeof_thread': context['typeof_thread'] || 'other', 'typeof_thread': context['typeof_thread'] || 'other',
'display_indented_thread': 2, 'display_indented_thread': 2,
'show_reply_button': 2, 'show_reply_button': 10,
'show_read_unread_button': 3, 'show_read_unread_button': 11,
'show_compose_message': true 'show_compose_message': true
} }
); );

View File

@ -82,7 +82,7 @@
<a t-if="(!attachment.upload or attachment.percent_loaded&gt;=100)" t-att-href="attachment.url" t-attf-title="{(attachment.name || attachment.filename) + (attachment.date?' \n('+attachment.date+')':'' )}"> <a t-if="(!attachment.upload or attachment.percent_loaded&gt;=100)" t-att-href="attachment.url" t-attf-title="{(attachment.name || attachment.filename) + (attachment.date?' \n('+attachment.date+')':'' )}">
<t t-raw="attachment.name || attachment.filename"/> <t t-raw="attachment.name || attachment.filename"/>
</a> </a>
<t t-if="widget.options.show_attachment_delete and (!attachment.upload or attachment.percent_loaded&gt;=100)"> <t t-if="(!attachment.upload or attachment.percent_loaded&gt;=100)">
<a class="oe_right oe_mail_attachment_delete" title="Delete this attachment" t-attf-data-id="{attachment.id}">x</a> <a class="oe_right oe_mail_attachment_delete" title="Delete this attachment" t-attf-data-id="{attachment.id}">x</a>
</t> </t>