summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/xml/mail_thread.xml
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mail/static/src/xml/mail_thread.xml')
-rw-r--r--addons/mail/static/src/xml/mail_thread.xml186
1 files changed, 186 insertions, 0 deletions
diff --git a/addons/mail/static/src/xml/mail_thread.xml b/addons/mail/static/src/xml/mail_thread.xml
new file mode 100644
index 00000000000..10baacc0577
--- /dev/null
+++ b/addons/mail/static/src/xml/mail_thread.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates>
+
+ <!--
+ Mail Composer Message : input with 2 buttons (emoji and attachment)
+ -->
+ <t t-name="mail.ComposeMessage">
+ <div class="form-group col-md-12 o_mail_compose_message">
+ <!-- input text : depending on the display_mode option -->
+ <div t-att-class="widget.options.display_mode === 'chat' ? 'input-group o_mail_compose_message_mode_chat' : 'o_mail_compose_message_mode_mail'">
+ <t t-if="widget.options.display_mode === 'chat'">
+ <input type="text" class="form-control o_mail_compose_message_input" placeholder="Write something" name="message" id="send_message"/>
+ </t>
+ <t t-if="widget.options.display_mode === 'mail'">
+ <textarea class="form-control o_mail_compose_message_input" placeholder="Write something" name="message" id="send_message"/>
+ </t>
+ <span class="input-group-btn o_mail_compose_message_button_group">
+ <button t-if="widget.options.display_mode === 'mail'" class="btn btn-primary o_mail_compose_message_button_send" type="button">
+ Send
+ </button>
+ <button class="btn btn-default o_mail_compose_message_button_emoji" type="button" data-toggle="popover">
+ <i class="fa fa-smile-o"/>
+ </button>
+ <button class="btn btn-default o_mail_compose_message_button_attachment" type="button" data-toggle="popover">
+ <i class="fa fa-paperclip"/>
+ </button>
+ </span>
+ </div>
+
+ <span class="o_mail_attachment_file hide">
+ <t t-call="HiddenInputFile">
+ <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
+ <t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
+ <input type="hidden" name="model" value="mail.compose.message"/>
+ <input type="hidden" name="id" value="0"/>
+ <input type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
+ </t>
+ </span>
+ <span class="o_mail_compose_message_emoji"></span>
+
+ <div class="o_mail_compose_message_attachment_list"></div>
+ </div>
+ </t>
+
+ <t t-name="mail.ComposeMessage.emoji">
+ <div class="o_mail_compose_message_emoji_content">
+ <t t-foreach="widget.emoji_list" t-as="emoji">
+ <span t-att-data-emoji="emoji.source" class="o_mail_compose_message_emoji_img" t-att-title="emoji.description">
+ <t t-raw="emoji.substitution"/>
+ </span>
+ </t>
+ </div>
+ </t>
+
+ <t t-name="mail.ComposeMessage.attachments">
+ <div class="o_mail_chat_im_attachment_files">
+ <t t-foreach="widget.get('attachment_ids')" t-as='attachment'>
+ <t t-if="attachment.file_type_icon !== 'webimage'">
+ <div t-attf-class="o_mail_attachment #{attachment.upload ? 'o_mail_uploading' : ''}">
+ <a t-att-href='attachment.url' target="_blank">
+ <img t-att-src="'/mail/static/src/img/mimetypes/' + (attachment.file_type_icon || 'unknown') + '.png'"></img>
+ <div class='o_mail_attachment_name'><t t-raw="attachment.name"/></div>
+ </a>
+ <div class="o_mail_attachment_delete">
+ <i class='fa fa-times-circle' title="Delete this attachment" t-att-data-id="attachment.id"/>
+ </div>
+ <div class="o_mail_attachment_progress_bar">
+ Uploading
+ </div>
+ </div>
+ </t>
+ <t t-if="attachment.file_type_icon === 'webimage'">
+ <div t-attf-class="o_mail_attachment o_mail_attachment_preview #{attachment.upload ? 'o_mail_uploading' : ''}">
+ <a t-att-href='attachment.url' target="_blank">
+ <img t-att-src="_.str.sprintf('/web/binary/image?model=ir.attachment&amp;field=datas&amp;id=%s', attachment.id)"/>
+ <div class='o_mail_attachment_name'><t t-raw='attachment.name'/></div>
+ </a>
+ <div class="o_mail_attachment_delete">
+ <i class='fa fa-times-circle' title="Delete this attachment" t-att-data-id="attachment.id"/>
+ </div>
+ <div class="o_mail_attachment_progress_bar">
+ Uploading
+ </div>
+ </div>
+ </t>
+ </t>
+ </div>
+ </t>
+
+
+ <!--
+ Message Thread
+ -->
+ <t t-name="mail.Thread.messages">
+ <t t-set="current_day" t-value="0"/>
+ <t t-foreach="widget.get('messages')" t-as="message">
+ <div t-if="current_day != message.date.split(' ')[0]" class="row o_mail_thread_date_separator">
+ <div class="o_mail_thread_date_wrapper">
+ <div class="o_mail_thread_date_separator_title">
+ <t t-raw="moment(message.date, 'YYYY-MM-DD hh:mm:ss').format('LL')"/>
+ </div>
+ </div>
+ <t t-set="current_day" t-value="message.date.split(' ')[0]"/>
+ </div>
+ <div class="row o_mail_thread_message" t-att-data-message-id="message.id">
+ <div class="col-md-1 col-sm-1 o_mail_thread_message_avatar">
+ <t t-if="message.author_avatar">
+ <img t-att-src="'data:image/png;base64,' + message.author_avatar" alt="avatar" class="o_mail_thread_avatar img-rounded"/>
+ </t>
+ <t t-if="!message.author_avatar">
+ <img t-if="message.message_type == 'email' &amp;&amp; (!message.author_id || !message.author_id[0]) &amp;&amp; message.email_from" src="/mail/static/src/img/email_icon.png" alt="avatar" class="o_mail_thread_avatar img-rounded"/>
+ <img t-if="message.message_type == 'email' &amp;&amp; (message.author_id &amp;&amp; message.author_id[0]) &amp;&amp; !message.email_from" t-att-src="'/web/binary/image?model=res.partner&amp;field=image_small&amp;id=' + message.author_id[0]" class="o_mail_thread_avatar img-rounded"/>
+ <img t-if="message.message_type !== 'email' &amp;&amp; (message.author_id &amp;&amp; message.author_id[0])" t-att-src="'/web/binary/image?model=res.partner&amp;field=image_small&amp;id=' + message.author_id[0]" class="o_mail_thread_avatar img-rounded"/>
+ <img t-if="message.message_type !== 'email' &amp;&amp; (!message.author_id || !message.author_id[0])" src="/mail/static/src/img/smiley/avatar.jpg" class="o_mail_thread_avatar img-rounded"/>
+ </t>
+ </div>
+ <div t-att-class="'col-md-10 col-sm-10 o_mail_thread_message_core ' + 'o_mail_thread_message_type_' + message.message_type + ' ' + (message.is_note ? 'o_mail_thread_message_subtype_note' : '')">
+ <!-- actions -->
+ <span class="pull-right o_mail_thread_message_actions">
+ <i t-if="message.is_needaction &amp;&amp; widget.options.display_needaction_button" class="fa fa-check o_mail_thread_message_needaction" t-att-data-message-id="message.id" t-att-title="_t('Mark as Done')"/>
+ <i t-att-class="'fa fa-star-o fa-lg o_mail_thread_message_star ' + (message.is_starred ? 'o_mail_message_starred' : '')" t-att-data-message-id="message.id" t-att-title="_t('Mark as Todo')"/>
+ </span>
+
+ <p class="text-muted o_mail_thread_message_info">
+ <t t-if="message.is_note">
+ Note by
+ </t>
+ <!-- author : partner or email_from -->
+ <t t-if="message.author_id">
+ <strong class="o_mail_redirect" data-oe-model="res.partner" t-att-data-oe-id="message.author_id[0]"><t t-esc="message.author_id[1]"/></strong> -
+ </t>
+ <t t-if="!message.author_id">
+ <strong><t t-esc="message.email_from"/></strong> -
+ </t>
+ <small t-att-title="moment(message.date, 'YYYY-MM-DD hh:mm:ss').format('LLL')">
+ <t t-esc="moment(message.date, 'YYYY-MM-DD hh:mm:ss').format('hh:mm')"/>
+ </small>
+ <t t-if="message.model &amp;&amp; (message.model != 'mail.channel') &amp;&amp; widget.options.display_document_link">
+ on <a class="o_mail_redirect" t-att-data-oe-model="message.model" t-att-data-oe-id="message.res_id" href="#"><t t-esc="message.record_name"/></a>
+ </t>
+ </p>
+ <!-- tracking message-->
+ <t t-if="message.tracking_value_ids &amp;&amp; message.tracking_value_ids.length &gt; 0">
+ <t t-call="mail.Thread.tracking_message">
+ <t t-set="message" t-value="message"/>
+ </t>
+ </t>
+ <!-- normal message -->
+ <t t-if="!(message.tracking_value_ids &amp;&amp; message.tracking_value_ids.length &gt; 0)">
+ <t t-raw="message.body"/>
+ </t>
+ <!-- Attachments -->
+ <t t-foreach="message.attachment_ids" t-as="attachment">
+ <div t-attf-class="o_mail_attachment">
+ <a t-att-href='attachment.url' target="_blank">
+ <img t-att-src="'/mail/static/src/img/mimetypes/' + (attachment.file_type_icon || 'unknown') + '.png'"></img>
+ <div class='o_mail_attachment_name'><t t-raw='attachment.name'/></div>
+ </a>
+ </div>
+ </t>
+ </div>
+
+ <div class="col-md-1">
+ </div>
+ </div>
+ </t>
+ </t>
+
+ <t t-name="mail.Thread.tracking_message">
+ <div>
+ <ul class="o_mail_thread_message_tracking">
+ <t t-foreach='message.tracking_value_ids' t-as='value'>
+ <li>
+ <t t-esc="value.changed_field"/> :
+ <t t-if="value.old_value">
+ <span class="o_mail_message_tracking_value"> <t t-esc="value.old_value"/> </span>
+ <span> <i class="fa fa-long-arrow-right"></i> </span>
+ </t>
+ <span class="o_mail_message_tracking_value"> <t t-esc="value.new_value"/> </span>
+ </li>
+ </t>
+ </ul>
+ </div>
+ </t>
+
+</templates>