Odoo18-Base/addons/board/static/src/board_controller.xml
2025-01-06 10:57:38 +07:00

90 lines
4.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
<t t-name="board.BoardView">
<div class="o_dashboard d-flex flex-column">
<t t-if="board.isEmpty">
<t t-call="board.NoContent"/>
</t>
<t t-else="">
<t t-call="board.Content"/>
</t>
</div>
</t>
<t t-name="board.Content">
<div t-if="!env.isSmall" class="o-dashboard-header d-flex justify-content-end">
<Dropdown>
<button class="btn btn-secondary m-2 p-2">
<img t-attf-src="/board/static/img/layout_{{board.layout}}.png" width="16" height="16" alt=""/>
Change Layout
</button>
<t t-set-slot="content">
<t t-foreach="'1 1-1 1-1-1 1-2 2-1'.split(' ')" t-as="layout" t-key="layout">
<DropdownItem onSelected="() => this.selectLayout(layout)">
<img t-attf-src="/board/static/img/layout_{{layout}}.png" alt=""/>
<i t-if="layout == board.layout" class="fa fa-check fa-lg text-success" aria-label='Layout' role="img" title="Layout"/>
</DropdownItem>
</t>
</t>
</Dropdown>
</div>
<div class="o-dashboard-layout flex-grow-1" t-attf-class="o-dashboard-layout-{{board.layout}}" t-ref="main">
<t t-foreach="board.columns" t-as="column" t-key="column_index">
<div t-if="column_index lt board.colNumber" class="o-dashboard-column h-100" t-att-data-idx="column_index">
<t t-foreach="column.actions" t-as="action" t-key="action.id">
<div class="o-dashboard-action mx-3 my-1 bg-view border" t-att-data-idx="action_index">
<h3 t-attf-class="o-dashboard-action-header {{action.title ? '' : 'oe_header_empty'}} p-2 m-2">
<span> <t t-esc="action.title"/> </span>
<span t-if="!env.isSmall" class="btn float-end p-1 text-muted" t-on-click="() => this.closeAction(column, action)"><i class="fa fa-close"/></span>
<span class="btn float-end p-1 text-muted" t-if="!action.isFolded" t-on-click="() => this.toggleAction(action, !env.isSmall)"><i class="fa fa-window-minimize"/></span>
<span class="btn float-end p-1 text-muted" t-if="action.isFolded" t-on-click="() => this.toggleAction(action, !env.isSmall)"><i class="fa fa-window-maximize"/></span>
</h3>
<BoardAction t-if="!action.isFolded" action="action" />
</div>
</t>
</div>
</t>
</div>
</t>
<t t-name="board.NoContent">
<div class="o_view_nocontent">
<div class="o_nocontent_help">
<p class="o_view_nocontent_neutral_face">
Your personal dashboard is empty
</p>
<p>
To add your first report into this dashboard, go to any
menu, switch to list or graph view, and click <i>"Add to
Dashboard"</i> in the extended search options.
</p>
<p>
You can filter and group data before inserting into the
dashboard using the search options.
</p>
</div>
</div>
</t>
<t t-name="board.arch">
<form t-att-string="title">
<board t-att-style="layout">
<column t-foreach="columns" t-as="column" t-key="column_index">
<t t-foreach="column.actions" t-as="action" t-key="action_index">
<action
t-att-name="action.actionId"
t-att-string="action.title"
t-att-view_mode="action.viewMode"
t-att-context="action.context"
t-att-domain="action.domain"
t-att-fold="action.isFolded ? 1 : 0"/>
</t>
</column>
</board>
</form>
</t>
</templates>