summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/xml/activity_view.xml
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/mail/static/src/xml/activity_view.xml
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/mail/static/src/xml/activity_view.xml')
-rw-r--r--addons/mail/static/src/xml/activity_view.xml93
1 files changed, 93 insertions, 0 deletions
diff --git a/addons/mail/static/src/xml/activity_view.xml b/addons/mail/static/src/xml/activity_view.xml
new file mode 100644
index 00000000..c40d6d73
--- /dev/null
+++ b/addons/mail/static/src/xml/activity_view.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+
+<t t-name="mail.ActivityViewHeader" owl="1">
+ <thead>
+ <tr>
+ <th></th>
+ <th t-foreach="props.activity_types" t-as="type" t-key="type[0]"
+ class="o_activity_type_cell" t-attf-class="{{ activeFilter.activityTypeId === type[0] ? 'o_activity_filter_' + activeFilter.state : '' }}"
+ t-att-data-activity-type-id="type[0]" t-attf-width="{{100/props.activity_types.length}}%">
+ <div>
+ <span t-esc="type[1]"/>
+ <span t-if="type[2].length > 0" class="dropdown pull-right">
+ <i class="fa fa-ellipsis-v fa-fw" data-toggle="dropdown"/>
+ <div class="dropdown-menu">
+ <t t-foreach="type[2]" t-as="template" t-key="template.id">
+ <div title="This action will send an email."
+ class="o_template_element o_send_mail_template"
+ t-att-data-activity-type-id="type[0]"
+ t-att-data-template-id="template.id"
+ t-on-click="_onSendMailTemplateClicked">
+ <i class="fa fa-envelope fa-fw"/> <t t-esc="template.name"/>
+ </div>
+ </t>
+ </div>
+ </span>
+ </div>
+ <KanbanColumnProgressBarAdapter Component="widgetComponents.KanbanColumnProgressBar"
+ widgetArgs="[getProgressBarOptions(type[0]), getProgressBarColumnState(type[0])]"
+ t-if="activityTypeIds.includes(type[0])"
+ t-on-set-progress-bar-state="_onSetProgressBarState"/>
+ <div t-else="" class="mt24"/>
+ </th>
+ </tr>
+ </thead>
+</t>
+
+<t t-name="mail.ActivityViewBody" owl="1">
+ <tbody>
+ <t t-foreach="activityResIds" t-as="resId" t-key="resId">
+ <t t-call="mail.ActivityViewRow"/>
+ </t>
+ </tbody>
+</t>
+
+<t t-name="mail.ActivityViewRow" owl="1">
+ <tr class="o_data_row" t-att-data-res-id="resId">
+ <t t-set="record" t-value="props.data.find(data => data.res_id === resId)"/>
+ <td t-attf-class="{{ activeFilter.resIds.includes(resId) ? 'o_activity_filter_' + activeFilter.state : '' }}">
+ <ActivityRecordAdapter Component="widgetComponents.ActivityRecord"
+ widgetArgs="[record, { qweb: qweb }]"/>
+ </td>
+ <t t-foreach="props.activity_types" t-as="type" t-key="type[0]">
+ <t t-call="mail.ActivityViewCell"/>
+ </t>
+ </tr>
+</t>
+
+<t t-name="mail.ActivityViewCell" owl="1">
+ <t t-set="activityGroup" t-value="props.grouped_activities[resId] and props.grouped_activities[resId][type[0]] or {count: 0, ids: [], state: false}"/>
+ <td t-if="activityGroup.state" t-att-data-res-id="resId" t-att-data-activity-type-id="type[0]"
+ t-attf-class="o_activity_summary_cell {{activityGroup.state}} {{ activeFilter.resIds.includes(resId) ? 'o_activity_filter_' + activeFilter.state : '' }}">
+ <ActivityCellAdapter Component="widgetComponents.ActivityCell"
+ widgetArgs="['activity_ids', props.getKanbanActivityData(activityGroup, resId)]"/>
+ </td>
+ <td t-else="" t-att-data-res-id="resId" t-att-data-activity-type-id="type[0]"
+ class="o_activity_summary_cell o_activity_empty_cell"
+ t-attf-class="{{ activeFilter.resIds.includes(resId) ? 'o_activity_filter_' + activeFilter.state : '' }}"
+ t-on-click.prevent.stop="_onEmptyCellClicked">
+ <i title="Create" class="text-center fa fa-plus"/>
+ </td>
+</t>
+
+<t t-name="mail.ActivityViewFooter" owl="1">
+ <tfoot>
+ <tr class="o_data_row">
+ <td class="o_record_selector p-3" t-on-click.prevent.stop="trigger('schedule_activity')">
+ <span class="fa fa-plus pr-2"/><span>Schedule activity</span>
+ </td>
+ </tr>
+ </tfoot>
+</t>
+
+<div t-name="mail.ActivityRenderer" class="o_activity_view" owl="1">
+ <t t-if="!props.activity_types.length" t-call="web.NoContentHelper"/>
+ <table t-else="" class="table-bordered mb-5">
+ <t t-call="mail.ActivityViewHeader"/>
+ <t t-call="mail.ActivityViewBody"/>
+ <t t-call="mail.ActivityViewFooter"/>
+ </table>
+</div>
+
+</templates>