357 lines
19 KiB
XML
357 lines
19 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<flectra>
|
|
|
|
<template id="footer_mailing_list" inherit_id="website.footer_default" name="Footer Mailing List Link">
|
|
<xpath expr="//div[@id='info']/ul" position="inside">
|
|
<li><a t-attf-href="/groups">Mailing List</a></li>
|
|
</xpath>
|
|
</template>
|
|
|
|
<template id="assets_frontend" inherit_id="website.assets_frontend">
|
|
<xpath expr="//link[last()]" position="after">
|
|
<link rel="stylesheet" href="/website_mail_channel/static/src/css/website_mail_channel.css"/>
|
|
</xpath>
|
|
<xpath expr="//script[last()]" position="after">
|
|
<script type="text/javascript" src="/website_mail_channel/static/src/js/website_mail_channel.js"/>
|
|
<script type="text/javascript" src="/website_mail_channel/static/src/js/website_mail_channel.snippet.js"/>
|
|
</xpath>
|
|
</template>
|
|
|
|
<template id="assets_editor" inherit_id="website.assets_editor">
|
|
<xpath expr="//script[last()]" position="after">
|
|
<script type="text/javascript" src="/website_mail_channel/static/src/js/website_mail_channel.editor.js"/>
|
|
</xpath>
|
|
</template>
|
|
|
|
<template id="mail_channels" name="Mailing Lists">
|
|
<t t-call="website.layout">
|
|
<div id="wrap" class="oe_structure oe_empty">
|
|
<section class="bg-primary jumbotron mt0 mb0">
|
|
<div class="container">
|
|
<h1>Stay in touch with our Community</h1>
|
|
<p>Alone we can do so little, together we can do so much</p>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div class="container mt32">
|
|
<div t-if="'unsubscribe' in request.params" class="col-md-offset-9 col-md-3 alert alert-info">
|
|
<h3>Need to unsubscribe? It's right here! <span class="fa fa-2x fa-arrow-down pull-right"></span></h3>
|
|
</div>
|
|
<div class="row mt8" t-foreach="groups" t-as="group">
|
|
<div class="col-md-3">
|
|
<img t-att-src="website.image_url(group, 'image_small')" class="pull-left"/>
|
|
<strong><a t-attf-href="/groups/#{ slug(group) }" t-esc="group.name"/></strong><br />
|
|
<t t-if="group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain">
|
|
<i class='fa fa-envelope-o'/>
|
|
<a t-attf-href="mailto:#{group.alias_id.alias_name}@#{group.alias_id.alias_domain}"><span t-field="group.alias_id"/></a>
|
|
</t>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div t-esc="group.description" class="text-muted"/>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<i class='fa fa-fw fa-user'/> <t t-esc="len(group.channel_partner_ids)"/> members<br />
|
|
<i class='fa fa-fw fa-envelope-o'/> <t t-raw="group_data[group.id]['monthly_message_nbr']"/> messages / month
|
|
</div>
|
|
<div class="col-md-3">
|
|
<!--<t t-call="website_mail.follow"><t t-set="object" t-value="group"/></t>-->
|
|
|
|
<div class="js_follow_alias"
|
|
t-att-data-id="group.id"
|
|
data-object="mail.channel"
|
|
t-att-data-follow="'on' if 'unsubscribe' in request.params else 'off'">
|
|
<div class="input-group js_mg_follow_form">
|
|
<input
|
|
type="email"
|
|
name="email"
|
|
class="js_follow_email form-control"
|
|
placeholder="your email..."/>
|
|
<span t-if="'unsubscribe' not in request.params" class="input-group-btn">
|
|
<button href="#" class="btn btn-primary js_follow_btn">Subscribe</button>
|
|
</span>
|
|
<span t-if="'unsubscribe' in request.params" class="input-group-btn">
|
|
<button href="#" class="btn btn-primary js_follow_btn">Unsubscribe</button>
|
|
</span>
|
|
</div>
|
|
<p class="js_mg_details hidden well well-sm">
|
|
<span class="js_mg_email hidden"><i class="fa fa-envelope-o"/><a href="#" class="js_mg_email"> send mail</a> - </span>
|
|
<i class="fa fa-file-o"/><a href="#" class="js_mg_link"> archives</a> -
|
|
<i class="fa fa-times"/><a href="#" class="js_unfollow_btn"> unsubscribe</a>
|
|
</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="group_messages" name="Message Threads">
|
|
<t t-call="website.layout">
|
|
<section class="container">
|
|
<div class="mt8">
|
|
<ol class="breadcrumb pull-left">
|
|
<li><a href="/groups">Mailing Lists</a></li>
|
|
<li>
|
|
<a t-attf-href="/groups/#{slug(group)}?#{mode and 'mode=%s' % mode or ''}#{date_begin and '&date_begin=%s' % date_begin or ''}#{date_end and '&date_end=%s' % date_end or ''}"><t t-esc="group.name"/></a>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h1 class="text-center">
|
|
<t t-esc="group.name"/> mailing list archives
|
|
</h1><h4 class="text-center text-muted" t-if="group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain">
|
|
<i class='fa fa-envelope-o'/>
|
|
<a t-attf-href="mailto:#{group.alias_id.alias_name}@#{group.alias_id.alias_domain}"><span t-field="group.alias_id"/></a>
|
|
</h4>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<h2>Archives</h2>
|
|
<ul class="nav nav-pills nav-stacked" id="group_mode">
|
|
<li t-attf-class="#{mode=='thread' and 'active' or ''}">
|
|
<a t-attf-href="/groups/#{ slug(group) }?mode=thread">By thread</a>
|
|
</li>
|
|
<li t-attf-class="#{mode=='date' and not date_begin and 'active' or ''}">
|
|
<a t-attf-href="/groups/#{ slug(group) }?mode=date">By date</a>
|
|
<ul class="nav nav-pills nav-stacked" style="margin-left: 8px;">
|
|
<t t-foreach="archives" t-as="month_archive">
|
|
<li t-att-class="month_archive['date_begin'] == date_begin and 'active' or None">
|
|
<a t-ignore="True" t-attf-href="/groups/#{ slug(group) }?mode=date&date_begin=#{ month_archive['date_begin'] }&date_end=#{month_archive['date_end']}">
|
|
<t t-esc="month_archive['date']"/>
|
|
<span class="pull-right badge" t-esc="month_archive['date_count']"/>
|
|
</a>
|
|
</li>
|
|
</t>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="col-md-9">
|
|
<div>
|
|
<t t-call="website.pager"/>
|
|
</div>
|
|
<t t-call="website_mail_channel.messages_short">
|
|
<t t-set="messages" t-value="messages"/>
|
|
<t t-set="msg_more_count" t-value="0"/>
|
|
<t t-set="thread_header" t-value="None"/>
|
|
</t>
|
|
<div>
|
|
<t t-call="website.pager"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="group_message">
|
|
<t t-call="website.layout">
|
|
<t t-set="additional_title"><t t-esc="message.description"/></t>
|
|
<section class="container">
|
|
<div class="row mt8">
|
|
<ol class="breadcrumb pull-left">
|
|
<li><a href="/groups">Mailing Lists</a></li>
|
|
<li>
|
|
<a t-attf-href="/groups/#{slug(group)}?#{mode and 'mode=%s' % mode or ''}#{date_begin and '&date_begin=%s' % date_begin or ''}#{date_end and '&date_end=%s' % date_end or ''}"><t t-esc="group.name"/></a>
|
|
</li>
|
|
<li t-if="message" class="active"><t t-esc="message.description"/></li>
|
|
</ol>
|
|
</div>
|
|
<div class="row">
|
|
<h1 class="text-center">
|
|
<t t-esc="group.name"/> mailing list archives
|
|
</h1><h4 class="text-center text-muted" t-if="group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain">
|
|
<i class='fa fa-envelope-o'/>
|
|
<a t-attf-href="mailto:#{group.alias_id.alias_name}@#{group.alias_id.alias_domain}"><span t-field="group.alias_id"/></a>
|
|
</h4>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
<h4>Browse archives</h4>
|
|
<ul class="nav nav-pills nav-stacked" id="group_mode">
|
|
<li t-attf-class="#{mode=='thread' and 'active' or ''}">
|
|
<a t-attf-href="/groups/#{ slug(group) }?mode=thread">By thread</a>
|
|
</li>
|
|
<li t-attf-class="#{mode=='date' and not date_begin and 'active' or ''}">
|
|
<a t-attf-href="/groups/#{ slug(group) }?mode=date">By date</a>
|
|
<ul class="nav nav-pills nav-stacked" style="margin-left: 8px;">
|
|
<t t-foreach="archives" t-as="month_archive">
|
|
<li t-att-class="month_archive['date_begin'] == date_begin and 'active' or None">
|
|
<a t-ignore="True" t-attf-href="/groups/#{ slug(group) }?mode=date&date_begin=#{ month_archive['date_begin'] }&date_end=#{month_archive['date_end']}">
|
|
<t t-esc="month_archive['date']"/>
|
|
<span class="pull-right badge" t-esc="month_archive['date_count']"/>
|
|
</a>
|
|
</li>
|
|
</t>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="col-md-9">
|
|
<div class="row">
|
|
<h4 class="col-md-6">
|
|
<t t-if="prev_message"><a t-attf-href='/groups/#{slug(group)}/#{slug(prev_message)}?#{mode and "mode=%s" % mode or ""}'>
|
|
<i class="fa fa-arrow-left"/> <t t-esc="prev_message.description"/>
|
|
</a></t>
|
|
</h4>
|
|
<h4 class="col-md-6">
|
|
<t t-if="next_message"><a class="pull-right" t-attf-href='/groups/#{slug(group)}/#{slug(next_message)}?#{mode and "mode=%s" % mode or ""}'>
|
|
<t t-esc="next_message.description"/> <i class="fa fa-arrow-right"/>
|
|
</a></t>
|
|
</h4>
|
|
</div>
|
|
<div class="media">
|
|
<img class="img-rounded pull-left mt0 media-object o_mg_avatar"
|
|
t-att-src="website.image_url(message, 'author_avatar')"/>
|
|
<div class="media-body">
|
|
<h4 class="media-heading" t-esc="message.description"/>
|
|
<small>
|
|
by
|
|
<t t-if="message.author_id">
|
|
<span t-field="message.author_id" style="display: inline-block;" t-options='{
|
|
"widget": "contact",
|
|
"fields": ["name"]
|
|
}'/>
|
|
</t>
|
|
<t t-if="not message.author_id"><t t-esc="message.email_from"/></t>
|
|
- <i class="fa fa-calendar"/> <span t-field="message.date"/>
|
|
</small>
|
|
<div t-raw="message.body"/>
|
|
|
|
<div>
|
|
<p t-if="message.attachment_ids" class="mt8">
|
|
<a href="#" class="o_mg_link_hide">
|
|
<i class="fa fa-chevron-right"/> <t t-raw="len(message.attachment_ids)"/> attachments
|
|
</a>
|
|
<a href="#" class="o_mg_link_show">
|
|
<i class="fa fa-chevron-down"/> <t t-raw="len(message.attachment_ids)"/> attachments
|
|
</a>
|
|
</p>
|
|
<div class="o_mg_link_content">
|
|
<div class="col-md-2 col-sm-3 text-center" t-foreach='message.attachment_ids' t-as='attachment'>
|
|
<a t-attf-href="/web/content/#{attachment.id}?download=true" target="_blank">
|
|
<div class='oe_attachment_embedded o_image' t-att-title="attachment.name" t-att-data-mimetype="attachment.mimetype" t-attf-data-src="/web/image/#{attachment.id}/100x80"/>
|
|
<div class='oe_attachment_name'><t t-raw='attachment.name' /></div>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div t-if="message.child_ids" class="o_mg_replies">
|
|
<h4 class="page-header">Follow-Ups</h4>
|
|
<t t-call="website_mail_channel.messages_short">
|
|
<t t-set="messages" t-value="message.child_ids[:replies_per_page]"/>
|
|
<t t-set="msg_more_count" t-value="len(message.child_ids) - replies_per_page"/>
|
|
<t t-set="thread_header" t-value="message"/>
|
|
</t>
|
|
</div>
|
|
<div t-if="message.parent_id">
|
|
<h4 class="page-header">Reference</h4>
|
|
<t t-call="website_mail_channel.messages_short">
|
|
<t t-set="messages" t-value="[message.parent_id]"/>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="messages_short">
|
|
<div>
|
|
<ul class="media-list">
|
|
<li t-foreach="messages" t-as="thread" class="media">
|
|
<img class="img-rounded pull-left mt0 media-object o_mg_avatar"
|
|
t-att-src="website.image_url(thread, 'author_avatar')"/>
|
|
<div class="media-body">
|
|
<h4 class="media-heading">
|
|
<a t-attf-href="/groups/#{slug(group)}/#{slug(thread)}?mode=#{mode}&date_begin=#{date_begin}&date_end=#{date_end}" t-esc="thread.description"/>
|
|
</h4>
|
|
<small>
|
|
by
|
|
<t t-if="thread.author_id">
|
|
<span t-field="thread.author_id" style="display: inline-block;" t-options='{
|
|
"widget": "contact",
|
|
"fields": ["name"]
|
|
}'/>
|
|
</t>
|
|
<t t-if="not thread.author_id"><t t-esc="thread.email_from"/></t>
|
|
- <i class="fa fa-calendar"/> <span t-field="thread.date"/>
|
|
- <i class="fa fa-paperclip"/> <t t-esc="len(thread.attachment_ids)"/>
|
|
</small>
|
|
<p t-if="thread.child_ids" class="mt8">
|
|
<a href="#" class="o_mg_link_hide">
|
|
<i class="fa fa-chevron-right"/> <t t-raw="len(thread.child_ids)"/> replies
|
|
</a>
|
|
<a href="#" class="o_mg_link_show">
|
|
<i class="fa fa-chevron-down"/> <t t-raw="len(thread.child_ids)"/> replies
|
|
</a>
|
|
</p>
|
|
<div class="o_mg_link_content o_mg_replies">
|
|
<t t-call="website_mail_channel.messages_short">
|
|
<t t-set="messages" t-value="thread.child_ids[:replies_per_page]"/>
|
|
<t t-set="msg_more_count" t-value="len(thread.child_ids) - replies_per_page"/>
|
|
<t t-set="thread_header" t-value="thread"/>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
<p t-if="messages and (msg_more_count or 0) > 0 and thread_header" class="well well-sm">
|
|
<button class="fa btn-link o_mg_read_more"
|
|
t-attf-data-href="/groups/#{slug(group)}/#{slug(thread_header)}/get_replies"
|
|
t-attf-data-msg-id="#{messages[-1].id}">
|
|
show <t t-esc="msg_more_count"/> more replies
|
|
</button>
|
|
</p>
|
|
</div>
|
|
</template>
|
|
|
|
|
|
<template id="confirmation_subscription" name="Mailing List Confirmation">
|
|
<t t-call="website.layout">
|
|
<div id="wrap" class="oe_structure oe_empty">
|
|
<div class="container">
|
|
<p>
|
|
You have been correctly
|
|
<t t-if="subscribing">subscribed</t>
|
|
<t t-if="not subscribing">unsubscribed</t>
|
|
to the mailing list.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="invalid_token_subscription" name="Invalid Token Submitted">
|
|
<t t-call="website.layout">
|
|
<div id="wrap" class="oe_structure oe_empty">
|
|
<div class="container">
|
|
<p>
|
|
Invalid or expired confirmation link.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="not_subscribed" name="Email address was not subscribed">
|
|
<t t-call="website.layout">
|
|
<div id="wrap" class="oe_structure oe_empty">
|
|
<div class="container">
|
|
<p>
|
|
The address <t t-esc="partner_id.email"/> is already
|
|
unsubscribed or was never subscribed to the mailing
|
|
list, you may want to check that the address was
|
|
correct.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
</flectra>
|