vnDataViewer applied to all module indexes
gitea/salix/dev This commit looks good Details

This commit is contained in:
Juan Ferrer 2019-10-02 21:02:49 +02:00
parent b3c7073587
commit ec9797a4b3
13 changed files with 286 additions and 254 deletions

View File

@ -190,8 +190,8 @@ export default {
searchItemInput: 'vn-searchbar vn-textfield input',
searchButton: 'vn-searchbar vn-icon[icon="search"]',
closeItemSummaryPreview: 'vn-item-index [vn-id="preview"] button.close',
fieldsToShowButton: 'vn-item-index vn-table > div.ng-scope > div > vn-icon-button[icon="menu"]',
fieldsToShowForm: 'vn-item-index > div > vn-card > div > vn-table > div.ng-scope > div > vn-dialog > div > form',
fieldsToShowButton: 'vn-item-index vn-table > div > div > vn-icon-button[icon="menu"]',
fieldsToShowForm: 'vn-item-index vn-table > div > div > vn-dialog > div > form',
firstItemImage: 'vn-item-index vn-tbody > a:nth-child(1) > vn-td:nth-child(1)',
firstItemId: 'vn-item-index vn-tbody > a:nth-child(1) > vn-td:nth-child(2)',
idCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(2) > vn-check',

View File

@ -1,7 +1,7 @@
import selectors from '../../helpers/selectors.js';
import createNightmare from '../../helpers/nightmare';
describe('Item index path', () => {
fdescribe('Item index path', () => {
const nightmare = createNightmare();
beforeAll(() => {

View File

@ -25,7 +25,9 @@ export default class Table {
}
$onChanges() {
if (this.model && this.autoLoad)
// FIXME: The autoload property should be removed from vnTable
// because it's already implemented at vnModel
if (this.autoLoad && this.model && !this.model.data)
this.applyOrder();
}

View File

@ -3,20 +3,23 @@
url="/claim/api/Claims/filter"
limit="20"
data="claims"
order="claimStateFk ASC, created DESC">
order="claimStateFk ASC, created DESC"
auto-load="true">
</vn-crud-model>
<div class="content-block">
<div class="vn-list">
<vn-card pad-medium-h>
<vn-searchbar
panel="vn-claim-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search claim by id or client name"
vn-focus>
</vn-searchbar>
</vn-card>
</div>
<vn-card margin-medium-v compact>
<vn-card pad-medium-h class="vn-w-sm">
<vn-searchbar
panel="vn-claim-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search claim by id or client name"
vn-focus>
</vn-searchbar>
</vn-card>
<vn-data-viewer
model="model"
class="vn-w-md"
margin-medium-v>
<vn-card>
<vn-table model="model">
<vn-thead>
<vn-tr>
@ -62,10 +65,12 @@
</a>
</vn-tbody>
</vn-table>
</vn-card>
<vn-pagination model="model"></vn-pagination>
</vn-card>
</vn-data-viewer>
</div>
<vn-client-descriptor-popover vn-id="clientDescriptor"></vn-client-descriptor-popover>
<vn-client-descriptor-popover
vn-id="clientDescriptor">
</vn-client-descriptor-popover>
<vn-worker-descriptor-popover
vn-id="workerDescriptor"
worker-fk="$ctrl.selectedWorker">

View File

@ -3,68 +3,74 @@
url="/item/api/Clients"
order="id DESC"
limit="8"
data="clients"
auto-load="false">
data="clients">
</vn-crud-model>
<div class="content-block">
<div class="vn-list">
<vn-card pad-medium-h>
<vn-searchbar
panel="vn-client-search-panel"
model="model"
expr-builder="$ctrl.exprBuilder(param, value)"
info="Search client by id or name"
vn-focus>
</vn-searchbar>
<div class="content-block vn-w-sm">
<vn-card pad-medium-h>
<vn-searchbar
panel="vn-client-search-panel"
model="model"
expr-builder="$ctrl.exprBuilder(param, value)"
info="Search client by id or name"
vn-focus>
</vn-searchbar>
</vn-card>
<vn-data-viewer
model="model"
margin-medium-v>
<vn-card>
<div class="vn-list">
<a
ng-repeat="client in clients track by client.id"
ui-sref="client.card.summary({ id: {{::client.id}} })"
translate-attr="{title: 'View client'}"
class="vn-list-item searchResult">
<vn-horizontal ng-click="$ctrl.onClick($event)">
<vn-one>
<h6>{{::client.name}}</h6>
<vn-label-value label="Id"
value="{{::client.id}}">
</vn-label-value>
<vn-label-value label="Phone"
value="{{::client.phone | phone}}">
</vn-label-value>
<vn-label-value label="Town/City"
value="{{::client.city}}">
</vn-label-value>
<vn-label-value label="Email"
value="{{::client.email}}">
</vn-label-value>
</vn-one>
<vn-horizontal class="buttons">
<vn-icon-button
ng-click="$ctrl.filterTickets(client, $event)"
vn-tooltip="Client tickets"
icon="icon-ticket">
</vn-icon-button>
<vn-icon-button
ng-click="$ctrl.openSummary(client, $event)"
vn-tooltip="Preview"
icon="desktop_windows">
</vn-icon-button>
</vn-horizontal>
</vn-horizontal>
</a>
</div>
</vn-card>
<vn-data-viewer model="model">
<vn-card margin-medium-v>
<a
ng-repeat="client in clients track by client.id"
ui-sref="client.card.summary({ id: {{::client.id}} })"
translate-attr="{title: 'View client'}"
class="vn-list-item searchResult">
<vn-horizontal ng-click="$ctrl.onClick($event)">
<vn-one>
<h6>{{::client.name}}</h6>
<vn-label-value label="Id"
value="{{::client.id}}">
</vn-label-value>
<vn-label-value label="Phone"
value="{{::client.phone | phone}}">
</vn-label-value>
<vn-label-value label="Town/City"
value="{{::client.city}}">
</vn-label-value>
<vn-label-value label="Email"
value="{{::client.email}}">
</vn-label-value>
</vn-one>
<vn-horizontal class="buttons">
<vn-icon-button
ng-click="$ctrl.filterTickets(client, $event)"
vn-tooltip="Client tickets"
icon="icon-ticket">
</vn-icon-button>
<vn-icon-button
ng-click="$ctrl.openSummary(client, $event)"
vn-tooltip="Preview"
icon="desktop_windows">
</vn-icon-button>
</vn-horizontal>
</vn-horizontal>
</a>
</vn-card>
</vn-data-viewer>
</div>
</vn-data-viewer>
</div>
<a ui-sref="client.create" vn-tooltip="New client" vn-bind="+" fixed-bottom-right>
<a ui-sref="client.create"
vn-tooltip="New client"
vn-bind="+"
fixed-bottom-right>
<vn-float-button icon="person_add"></vn-float-button>
</a>
<vn-dialog class="dialog-summary"
vn-id="dialog-summary-client">
<tpl-body>
<vn-client-summary client="$ctrl.clientSelected"></vn-client-summary>
<vn-client-summary
client="$ctrl.clientSelected">
</vn-client-summary>
</tpl-body>
</vn-dialog>
<vn-scroll-up></vn-scroll-up>

View File

@ -7,7 +7,7 @@
</vn-crud-model>
<div class="content-block">
<div class="vn-list">
<vn-card pad-medium-h>
<vn-card pad-medium-h class="vn-w-sm">
<vn-searchbar
panel="vn-invoice-search-panel"
on-search="$ctrl.onSearch($params)"
@ -16,8 +16,12 @@
</vn-searchbar>
</vn-card>
</div>
<vn-card margin-medium-v compact>
<vn-table model="model" auto-load="false">
<vn-data-viewer
model="model"
class="vn-w-md"
margin-medium-v>
<vn-card>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th field="ref">Reference</vn-th>
@ -67,15 +71,19 @@
</a>
</vn-tbody>
</vn-table>
</vn-card>
<vn-pagination model="model"></vn-pagination>
</vn-card>
</vn-data-viewer>
</div>
<vn-dialog
vn-id="summary"
class="dialog-summary">
<tpl-body>
<vn-invoice-out-summary invoice-out="$ctrl.selectedInvoiceOut"></vn-invoice-out-summary>
<vn-invoice-out-summary
invoice-out="$ctrl.selectedInvoiceOut">
</vn-invoice-out-summary>
</tpl-body>
</vn-dialog>
<vn-client-descriptor-popover vn-id="clientDescriptor"></vn-client-descriptor-popover>
<vn-client-descriptor-popover
vn-id="clientDescriptor">
</vn-client-descriptor-popover>
<vn-scroll-up></vn-scroll-up>

View File

@ -3,35 +3,39 @@
url="/item/api/Items/filter"
limit="12"
order="isActive DESC, name, id"
data="items"
auto-load="false">
data="items">
</vn-crud-model>
<div class="content-block">
<div class="vn-list">
<vn-card pad-medium-h>
<vn-horizontal>
<vn-searchbar
vn-three
panel="vn-item-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search items by id, name or barcode"
suggested-filter="{isActive: true}"
vn-focus>
</vn-searchbar>
<vn-icon-menu
vn-id="more-button"
icon="more_vert"
show-filter="false"
value-field="callback"
translate-fields="['name']"
on-change="$ctrl.onMoreChange(value)"
on-open="$ctrl.onMoreOpen()">
</vn-icon-menu>
</vn-horizontal>
</vn-card>
</div>
<vn-card margin-medium-v margin-huge-bottom>
<vn-table model="model" auto-load="false" show-fields="$ctrl.showFields" vn-uvc="itemIndex">
<vn-card pad-medium-h class="vn-w-sm">
<vn-horizontal>
<vn-searchbar
vn-three
panel="vn-item-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search items by id, name or barcode"
suggested-filter="{isActive: true}"
vn-focus>
</vn-searchbar>
<vn-icon-menu
vn-id="more-button"
icon="more_vert"
show-filter="false"
value-field="callback"
translate-fields="['name']"
on-change="$ctrl.onMoreChange(value)"
on-open="$ctrl.onMoreOpen()">
</vn-icon-menu>
</vn-horizontal>
</vn-card>
<vn-data-viewer
model="model"
margin-medium-v
margin-huge-bottom>
<vn-card>
<vn-table
model="model"
show-fields="$ctrl.showFields"
vn-uvc="itemIndex">
<vn-thead>
<vn-tr>
<vn-th th-id="picture" shrink></vn-th>
@ -124,8 +128,8 @@
</a>
</vn-tbody>
</vn-table>
</vn-card>
<vn-pagination model="model"></vn-pagination>
</vn-card>
</vn-data-viewer>
</div>
<a ui-sref="item.create" vn-tooltip="New item" vn-bind="+" fixed-bottom-right>
<vn-float-button icon="add"></vn-float-button>

View File

@ -3,24 +3,23 @@
url="/api/Orders/filter"
limit="20"
data="orders"
order="landed DESC, clientFk"
auto-load="false">
order="landed DESC, clientFk">
</vn-crud-model>
<div class="content-block">
<div class="vn-list">
<vn-card pad-medium-h>
<vn-searchbar
panel="vn-order-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search orders by id"
vn-focus>
</vn-searchbar>
</vn-card>
</div>
<vn-card margin-medium-v>
<vn-table
model="model"
auto-load="false">
<vn-card pad-medium-h class="vn-w-sm">
<vn-searchbar
panel="vn-order-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search orders by id"
vn-focus>
</vn-searchbar>
</vn-card>
<vn-data-viewer
model="model"
margin-medium-v
margin-huge-bottom>
<vn-card>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th field="id" number>Id</vn-th>
@ -71,8 +70,8 @@
</vn-tr>
</vn-tbody>
</vn-table>
</vn-card>
<vn-pagination model="model"></vn-pagination>
</vn-card>
</vn-data-viewer>
</div>
<a ui-sref="order.create" vn-bind="+" vn-tooltip="New order" fixed-bottom-right>
<vn-float-button icon="add"></vn-float-button>

View File

@ -3,32 +3,36 @@
url="/api/Routes/filter"
limit="20"
data="routes"
order="created DESC">
order="created DESC"
auto-load="true">
</vn-crud-model>
<div class="content-block">
<div class="vn-list">
<vn-card pad-medium-h>
<vn-searchbar
filter="$ctrl.filter"
panel="vn-route-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search routes by id"
vn-focus>
</vn-searchbar>
</vn-card>
</div>
<vn-card margin-medium-v margin-huge-bottom class="index">
<vn-table model="model" auto-load="false">
<vn-card pad-medium-h class="vn-w-sm">
<vn-searchbar
filter="$ctrl.filter"
panel="vn-route-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search routes by id"
vn-focus>
</vn-searchbar>
</vn-card>
<vn-data-viewer
model="model"
class="vn-w-lg"
margin-medium-v
margin-huge-bottom>
<vn-card class="index">
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th field="id" number>id</vn-th>
<vn-th field="id" number>Id</vn-th>
<vn-th th-id="worker">Worker</vn-th>
<vn-th th-id="agency">Agency</vn-th>
<vn-th th-id="vehicle">Vehicle</vn-th>
<vn-th th-id="created">Date</vn-th>
<vn-th th-id="m3" number></vn-th>
<vn-th th-id="description">Description</vn-th>
<vn-th></vn-th>
<vn-th shrink></vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
@ -58,21 +62,26 @@
</a>
</vn-tbody>
</vn-table>
</vn-card>
<vn-pagination model="model"></vn-pagination>
</vn-card>
</vn-data-viewer>
</div>
<vn-dialog
vn-id="summary"
class="dialog-summary">
<tpl-body>
<vn-route-summary route="$ctrl.routeSelected"></vn-route-summary>
<vn-route-summary
route="$ctrl.routeSelected">
</vn-route-summary>
</tpl-body>
</vn-dialog>
<vn-worker-descriptor-popover
vn-id="workerDescriptor"
worker-fk="$ctrl.selectedWorker">
</vn-worker-descriptor-popover>
<a ui-sref="route.create" vn-tooltip="New route" vn-bind="+" fixed-bottom-right>
<a ui-sref="route.create"
vn-tooltip="New route"
vn-bind="+"
fixed-bottom-right>
<vn-float-button icon="add"></vn-float-button>
</a>
<vn-scroll-up></vn-scroll-up>

View File

@ -4,34 +4,35 @@
limit="20"
params="::$ctrl.params"
data="tickets"
order="shipped DESC, zoneHour ASC, zoneMinute ASC, clientFk"
auto-load="false">
order="shipped DESC, zoneHour ASC, zoneMinute ASC, clientFk">
</vn-crud-model>
<div class="content-block">
<div class="vn-list">
<vn-card pad-medium-h>
<vn-horizontal>
<vn-searchbar
vn-id="ticketSearchbar"
panel="vn-ticket-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search ticket by id or alias"
vn-focus>
</vn-searchbar>
<vn-icon-menu
vn-id="more-button"
icon="more_vert"
show-filter="false"
value-field="callback"
translate-fields="['name']"
on-change="$ctrl.onMoreChange(value)"
on-open="$ctrl.onMoreOpen()">
</vn-icon-menu>
</vn-horizontal>
</vn-card>
</div>
<vn-card margin-medium-v margin-huge-bottom>
<vn-table model="model" auto-load="false">
<vn-card pad-medium-h class="vn-w-sm">
<vn-horizontal>
<vn-searchbar
vn-id="ticketSearchbar"
panel="vn-ticket-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search ticket by id or alias"
vn-focus>
</vn-searchbar>
<vn-icon-menu
vn-id="more-button"
icon="more_vert"
show-filter="false"
value-field="callback"
translate-fields="['name']"
on-change="$ctrl.onMoreChange(value)"
on-open="$ctrl.onMoreOpen()">
</vn-icon-menu>
</vn-horizontal>
</vn-card>
<vn-data-viewer
model="model"
margin-medium-v
margin-huge-bottom>
<vn-card>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th shrink>
@ -42,7 +43,7 @@
<vn-th></vn-th>
<vn-th field="id" number>Id</vn-th>
<vn-th field="salesPerson">Salesperson</vn-th>
<vn-th field="shipped" default-order="DESC">Date</vn-th>
<vn-th field="shipped">Date</vn-th>
<vn-th>Hour</vn-th>
<vn-th field="nickname">Alias</vn-th>
<vn-th field="province">Province</vn-th>
@ -142,8 +143,8 @@
</a>
</vn-tbody>
</vn-table>
</vn-card>
<vn-pagination model="model"></vn-pagination>
</vn-card>
</vn-data-viewer>
</div>
<a ui-sref="ticket.create" vn-tooltip="New ticket" vn-bind="+" fixed-bottom-right>
<vn-float-button icon="add"></vn-float-button>

View File

@ -10,7 +10,6 @@ vn-ticket-index {
color: initial;
}
}
vn-searchbar {
width: 100%
}

View File

@ -3,23 +3,24 @@
url="/travel/api/Travels"
filter="::$ctrl.filter"
limit="20"
data="travels"
auto-load="false">
data="travels">
</vn-crud-model>
<div class="content-block">
<div class="vn-list">
<vn-card pad-medium-h>
<vn-searchbar
panel="vn-travel-search-panel"
model="model"
expr-builder="$ctrl.exprBuilder(param, value)"
info="Search travels by id"
vn-focus>
</vn-searchbar>
</vn-card>
</div>
<vn-card margin-medium-v>
<vn-table model="model" auto-load="false">
<vn-card pad-medium-h class="vn-w-sm">
<vn-searchbar
panel="vn-travel-search-panel"
model="model"
expr-builder="$ctrl.exprBuilder(param, value)"
info="Search travels by id"
vn-focus>
</vn-searchbar>
</vn-card>
<vn-data-viewer
model="model"
class="vn-w-lg"
margin-medium-v>
<vn-card>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th field="id" number>Id</vn-th>
@ -50,6 +51,6 @@
</vn-tbody>
</vn-table>
</vn-card>
<vn-pagination model="model"></vn-pagination>
</vn-data-viewer>
</div>
<vn-scroll-up></vn-scroll-up>

View File

@ -5,72 +5,70 @@
order="id"
data="workers">
</vn-crud-model>
<div class="content-block">
<div class="vn-list">
<vn-card pad-medium-h>
<div class="content-block vn-w-sm">
<vn-card pad-medium-h>
<vn-horizontal>
<vn-searchbar
style="width: 100%"
panel="vn-worker-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search workers by id, firstName, lastName or user name"
vn-focus>
</vn-searchbar>
<vn-icon-menu
vn-id="more-button"
icon="more_vert"
show-filter="false"
value-field="callback"
translate-fields="['name']"
data="$ctrl.moreOptions"
on-change="$ctrl.onMoreChange(value)">
</vn-icon-menu>
</vn-horizontal>
</vn-card>
<vn-data-viewer
model="model"
margin-medium-v>
<vn-card>
<div class="vn-list">
<a
ng-repeat="worker in workers track by worker.id"
ui-sref="worker.card.summary({id: worker.id})"
translate-attr="{title: 'View worker'}"
class="vn-list-item searchResult">
<vn-horizontal>
<vn-searchbar
style="width: 100%"
panel="vn-worker-search-panel"
on-search="$ctrl.onSearch($params)"
info="Search workers by id, firstName, lastName or user name"
vn-focus>
</vn-searchbar>
<vn-icon-menu
vn-id="more-button"
icon="more_vert"
show-filter="false"
value-field="callback"
translate-fields="['name']"
data="$ctrl.moreOptions"
on-change="$ctrl.onMoreChange(value)">
</vn-icon-menu>
</vn-horizontal>
</vn-card>
<vn-card margin-medium-v>
<a
ng-repeat="worker in workers track by worker.id"
ui-sref="worker.card.summary({id: worker.id})"
translate-attr="{title: 'View worker'}"
class="vn-list-item searchResult">
<vn-horizontal>
<vn-one>
<h6>{{::worker.nickname}}</h6>
<vn-label-value label="Id"
value="{{::worker.id}}">
</vn-label-value>
<vn-label-value label="User"
value="{{::worker.userName}}">
</vn-label-value>
<vn-label-value label="Email"
value="{{::worker.email}}">
</vn-label-value>
<vn-label-value label="Department"
value="{{::worker.department}}">
</vn-label-value>
</vn-one>
<vn-horizontal class="buttons">
<vn-icon-button
ng-click="$ctrl.preview($event, worker)"
vn-tooltip="Preview"
icon="desktop_windows">
</vn-icon-button>
</vn-horizontal>
<vn-one>
<h6>{{::worker.nickname}}</h6>
<vn-label-value label="Id"
value="{{::worker.id}}">
</vn-label-value>
<vn-label-value label="User"
value="{{::worker.userName}}">
</vn-label-value>
<vn-label-value label="Email"
value="{{::worker.email}}">
</vn-label-value>
<vn-label-value label="Department"
value="{{::worker.department}}">
</vn-label-value>
</vn-one>
<vn-horizontal class="buttons">
<vn-icon-button
ng-click="$ctrl.preview($event, worker)"
vn-tooltip="Preview"
icon="desktop_windows">
</vn-icon-button>
</vn-horizontal>
</a>
<vn-empty-rows translate ng-if="model.data.length === 0">
No results
</vn-empty-rows>
<vn-empty-rows translate ng-if="model.data === null">
Enter a new search
</vn-empty-rows>
</vn-card>
<vn-pagination model="model"></vn-pagination>
</div>
</vn-horizontal>
</a>
</vn-card>
</vn-data-viewer>
</div>
<vn-dialog vn-id="preview" class="dialog-summary">
<tpl-body>
<vn-worker-summary worker="$ctrl.selectedWorker"></vn-worker-summary>
<vn-worker-summary
worker="$ctrl.selectedWorker">
</vn-worker-summary>
</tpl-body>
</vn-dialog>
<vn-scroll-up></vn-scroll-up>