156 lines
5.5 KiB
HTML
156 lines
5.5 KiB
HTML
<vn-crud-model
|
|
vn-id="model"
|
|
url="Clients"
|
|
limit="20">
|
|
</vn-crud-model>
|
|
<vn-portal slot="topbar">
|
|
<vn-searchbar
|
|
vn-focus
|
|
panel="vn-client-search-panel"
|
|
placeholder="Search client"
|
|
info="Search client by id or name"
|
|
auto-state="false"
|
|
model="model"
|
|
expr-builder="$ctrl.exprBuilder(param, value)">
|
|
</vn-searchbar>
|
|
</vn-portal>
|
|
<vn-card>
|
|
<smart-table
|
|
model="model"
|
|
options="$ctrl.smartTableOptions"
|
|
expr-builder="$ctrl.exprBuilder(param, value)">
|
|
<slot-actions>
|
|
<vn-button disabled="$ctrl.checked.length === 0"
|
|
icon="show_chart"
|
|
ng-click="filters.show($event)"
|
|
vn-tooltip="Client consumption">
|
|
</vn-button>
|
|
</slot-actions>
|
|
<slot-table>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th shrink>
|
|
<vn-multi-check
|
|
model="model"
|
|
check-field="$checked">
|
|
</vn-multi-check>
|
|
</th>
|
|
<th field="id">
|
|
<span translate>Identifier</span>
|
|
</th>
|
|
<th field="socialName">
|
|
<span translate>Social name</span>
|
|
</th>
|
|
<th field="city">
|
|
<span translate>City</span>
|
|
</th>
|
|
<th field="phone">
|
|
<span translate>Phone</span>
|
|
</th>
|
|
<th field="email">
|
|
<span translate>Email</span>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="client in model.data"
|
|
vn-anchor="::{
|
|
state: 'item.card.summary',
|
|
params: {id: item.id}
|
|
}">
|
|
<td>
|
|
<vn-check
|
|
ng-model="client.$checked"
|
|
vn-click-stop>
|
|
</vn-check>
|
|
</td>
|
|
<td>
|
|
<span
|
|
vn-click-stop="itemDescriptor.show($event, item.id)"
|
|
class="link">
|
|
{{::client.id}}
|
|
</span>
|
|
</td>
|
|
<td>{{::client.socialName}}</td>
|
|
<td>{{::client.city}}</td>
|
|
<td>{{::client.phone}}</td>
|
|
<td>{{::client.email}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</slot-table>
|
|
</smart-table>
|
|
</vn-card>
|
|
|
|
|
|
<vn-popover vn-id="filters">
|
|
<div class="vn-pa-lg">
|
|
<form ng-submit="$ctrl.onSendClientConsumption()">
|
|
<vn-horizontal><h4>Client consumption</h4></vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-autocomplete vn-one
|
|
url="Campaigns/latest"
|
|
label="Campaign"
|
|
translate-fields="['code']"
|
|
show-field="code"
|
|
value-field="id"
|
|
ng-model="$ctrl.campaign.id"
|
|
order="dated DESC"
|
|
selection="$ctrl.campaignSelection"
|
|
search-function="{dated: {like: '%'+ $search +'%'}}">
|
|
<tpl-item>
|
|
{{code}} {{dated | date: 'yyyy'}}
|
|
</tpl-item>
|
|
</vn-autocomplete>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-date-picker
|
|
vn-one
|
|
label="From"
|
|
ng-model="$ctrl.campaign.from"
|
|
on-change="$ctrl.onChangeDate(value)">
|
|
</vn-date-picker>
|
|
<vn-date-picker
|
|
vn-one
|
|
label="To"
|
|
ng-model="$ctrl.campaign.to"
|
|
on-change="$ctrl.onChangeDate(value)">
|
|
</vn-date-picker>
|
|
</vn-horizontal>
|
|
<vn-horizontal class="vn-mt-lg">
|
|
<vn-submit label="send"></vn-submit>
|
|
</vn-horizontal>
|
|
</form>
|
|
</div>
|
|
</vn-popover>
|
|
<vn-contextmenu vn-id="contextmenu" targets="['smart-table']" model="model"
|
|
expr-builder="$ctrl.exprBuilder(param, value)">
|
|
<slot-menu>
|
|
<vn-item translate
|
|
ng-if="contextmenu.isFilterAllowed()"
|
|
ng-click="contextmenu.filterBySelection()">
|
|
Filter by selection
|
|
</vn-item>
|
|
<vn-item translate
|
|
ng-if="contextmenu.isFilterAllowed()"
|
|
ng-click="contextmenu.excludeSelection()">
|
|
Exclude selection
|
|
</vn-item>
|
|
<vn-item translate
|
|
ng-if="contextmenu.isFilterAllowed()"
|
|
ng-click="contextmenu.removeFilter()">
|
|
Remove filter
|
|
</vn-item>
|
|
<vn-item translate
|
|
ng-click="contextmenu.removeAllFilters()">
|
|
Remove all filters
|
|
</vn-item>
|
|
<vn-item translate
|
|
ng-if="contextmenu.isActionAllowed()"
|
|
ng-click="contextmenu.copyValue()">
|
|
Copy value
|
|
</vn-item>
|
|
</slot-menu>
|
|
</vn-contextmenu>
|