#1128 item.index
This commit is contained in:
parent
8bbf924573
commit
5063bd8137
|
@ -171,9 +171,9 @@ export default {
|
||||||
itemsIndex: {
|
itemsIndex: {
|
||||||
goBackToModuleIndexButton: `vn-ticket-descriptor a[href="#!/ticket/index"]`,
|
goBackToModuleIndexButton: `vn-ticket-descriptor a[href="#!/ticket/index"]`,
|
||||||
createItemButton: `${components.vnFloatButton}`,
|
createItemButton: `${components.vnFloatButton}`,
|
||||||
searchResult: `vn-item-product a`,
|
searchResult: `vn-item-index a.vn-tr`,
|
||||||
searchResultPreviewButton: `vn-item-product .buttons > [icon="desktop_windows"]`,
|
searchResultPreviewButton: `vn-item-index .buttons > [icon="desktop_windows"]`,
|
||||||
searchResultCloneButton: `vn-item-product .buttons > [icon="icon-clone"]`,
|
searchResultCloneButton: `vn-item-index .buttons > [icon="icon-clone"]`,
|
||||||
acceptClonationAlertButton: `vn-item-index [vn-id="clone"] [response="ACCEPT"]`,
|
acceptClonationAlertButton: `vn-item-index [vn-id="clone"] [response="ACCEPT"]`,
|
||||||
searchItemInput: `vn-searchbar vn-textfield input`,
|
searchItemInput: `vn-searchbar vn-textfield input`,
|
||||||
searchButton: `vn-searchbar vn-icon[icon="search"]`,
|
searchButton: `vn-searchbar vn-icon[icon="search"]`,
|
||||||
|
|
|
@ -32,12 +32,19 @@ module.exports = Self => {
|
||||||
let stmt = new ParameterizedSQL(
|
let stmt = new ParameterizedSQL(
|
||||||
`SELECT i.id, i.image, i.name, i.description,
|
`SELECT i.id, i.image, i.name, i.description,
|
||||||
i.size, i.tag5, i.value5, i.tag6, i.value6,
|
i.size, i.tag5, i.value5, i.tag6, i.value6,
|
||||||
i.tag7, i.value7, i.tag8, i.value8,
|
i.tag7, i.value7, i.tag8, i.value8, i.isActive,
|
||||||
t.name type, u.nickname userNickname
|
t.name type, u.nickname userNickname,
|
||||||
|
intr.description AS intrastat, i.stems,
|
||||||
|
ori.code AS origin, t.name AS type,
|
||||||
|
ic.name AS category
|
||||||
FROM item i
|
FROM item i
|
||||||
JOIN itemType t ON t.id = i.typeFk
|
JOIN itemType t ON t.id = i.typeFk
|
||||||
|
LEFT JOIN itemCategory ic ON ic.id = t.categoryFk
|
||||||
JOIN worker w ON w.id = t.workerFk
|
JOIN worker w ON w.id = t.workerFk
|
||||||
JOIN account.user u ON u.id = w.userFk`
|
JOIN account.user u ON u.id = w.userFk
|
||||||
|
LEFT JOIN intrastat intr ON intr.id = i.intrastatFk
|
||||||
|
LEFT JOIN producer pr ON pr.id = i.producerFk
|
||||||
|
LEFT JOIN origin ori ON ori.id = i.originFk`
|
||||||
);
|
);
|
||||||
|
|
||||||
if (tags) {
|
if (tags) {
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<vn-crud-model
|
<vn-crud-model
|
||||||
vn-id="model"
|
vn-id="model"
|
||||||
url="/item/api/Items/filter"
|
url="/item/api/Items/filter"
|
||||||
limit="8"
|
limit="12"
|
||||||
order="isActive DESC, name, id"
|
order="isActive DESC, name, id"
|
||||||
data="items"
|
data="items"
|
||||||
auto-load="false">
|
auto-load="true">
|
||||||
</vn-crud-model>
|
</vn-crud-model>
|
||||||
<div class="content-block">
|
<div class="content-block">
|
||||||
<div class="vn-list">
|
<div class="vn-list">
|
||||||
|
@ -17,23 +17,76 @@
|
||||||
vn-focus>
|
vn-focus>
|
||||||
</vn-searchbar>
|
</vn-searchbar>
|
||||||
</vn-card>
|
</vn-card>
|
||||||
<vn-card margin-medium-v>
|
</div>
|
||||||
<vn-item-product
|
<vn-card margin-medium-v>
|
||||||
class="searchResult"
|
<vn-table model="model" show-fields="$ctrl.showFields" vn-uvc="itemIndex">
|
||||||
ng-repeat="item in items track by item.id"
|
<vn-thead>
|
||||||
item="::item">
|
<vn-tr>
|
||||||
</vn-item-product>
|
<vn-th th-id="picture"></vn-th>
|
||||||
<vn-empty-rows class="vn-list-item" style="text-align: center"
|
<vn-th field="id" number>Id</vn-th>
|
||||||
ng-if="model.data.length === 0" translate>
|
<vn-th th-id="description" style="text-align: center">Description</vn-th>
|
||||||
|
<vn-th th-id="stems">Stems</vn-th>
|
||||||
|
<vn-th th-id="type">Type</vn-th>
|
||||||
|
<vn-th th-id="category">Category</vn-th>
|
||||||
|
<vn-th th-id="intrastat">Intrastat</vn-th>
|
||||||
|
<vn-th th-id="origin">Origin</vn-th>
|
||||||
|
<vn-th th-id="salesperson">Sales person</vn-th>
|
||||||
|
<vn-th th-id="active">Active</vn-th>
|
||||||
|
<vn-th></vn-th>
|
||||||
|
</vn-tr>
|
||||||
|
</vn-thead>
|
||||||
|
<vn-tbody>
|
||||||
|
<a ng-repeat="item in items"
|
||||||
|
class="clickable vn-tr searchResult"
|
||||||
|
ui-sref="item.card.summary({id: item.id})">
|
||||||
|
<vn-td shrink>
|
||||||
|
<img
|
||||||
|
ng-src="{{::$ctrl.imagesPath}}/50x50/{{::item.image}}"
|
||||||
|
zoom-image="{{::$ctrl.imagesPath}}/1600x900/{{::item.image}}"
|
||||||
|
on-error-src/>
|
||||||
|
</vn-td>
|
||||||
|
<vn-td number>{{::item.id | zeroFill:6}}</vn-td>
|
||||||
|
<vn-td expand>
|
||||||
|
<vn-fetched-tags
|
||||||
|
max-length="6"
|
||||||
|
item="item"
|
||||||
|
title="item.name">
|
||||||
|
</vn-fetched-tags>
|
||||||
|
</vn-td>
|
||||||
|
<vn-td number>{{::item.stems}}</vn-td>
|
||||||
|
<vn-td>{{::item.type}}</vn-td>
|
||||||
|
<vn-td>{{::item.category}}</vn-td>
|
||||||
|
<vn-td>{{::item.intrastat}}</vn-td>
|
||||||
|
<vn-td>{{::item.origin}}</vn-td>
|
||||||
|
<vn-td>{{::item.userNickname}}</vn-td>
|
||||||
|
<vn-td>
|
||||||
|
<vn-check
|
||||||
|
disabled="true"
|
||||||
|
field="item.isActive">
|
||||||
|
</vn-check>
|
||||||
|
</vn-td>
|
||||||
|
<vn-td shrink>
|
||||||
|
<vn-horizontal class="buttons">
|
||||||
|
<vn-icon-button
|
||||||
|
ng-click="$ctrl.cloneItem($event, item)"
|
||||||
|
vn-tooltip="Clone"
|
||||||
|
icon="icon-clone">
|
||||||
|
</vn-icon-button>
|
||||||
|
<vn-icon-button
|
||||||
|
ng-click="$ctrl.preview($event, item)"
|
||||||
|
vn-tooltip="Preview"
|
||||||
|
icon="desktop_windows">
|
||||||
|
</vn-icon-button>
|
||||||
|
</vn-horizontal>
|
||||||
|
</vn-td>
|
||||||
|
</a>
|
||||||
|
</vn-tbody>
|
||||||
|
<vn-empty-rows ng-if="items.length === 0" translate>
|
||||||
No results
|
No results
|
||||||
</vn-empty-rows>
|
</vn-empty-rows>
|
||||||
<vn-empty-rows class="vn-list-item" style="text-align: center"
|
</vn-table>
|
||||||
ng-if="model.data === null" translate>
|
<vn-card margin-medium-v>
|
||||||
Enter a new search
|
<vn-pagination model="model"></vn-pagination>
|
||||||
</vn-empty-rows>
|
|
||||||
</vn-card>
|
|
||||||
<vn-pagination model="model"></vn-pagination>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<a ui-sref="item.create" vn-tooltip="New item" vn-bind="+" fixed-bottom-right>
|
<a ui-sref="item.create" vn-tooltip="New item" vn-bind="+" fixed-bottom-right>
|
||||||
<vn-float-button icon="add"></vn-float-button>
|
<vn-float-button icon="add"></vn-float-button>
|
||||||
|
|
|
@ -8,6 +8,12 @@ class Controller {
|
||||||
this.$state = $state;
|
this.$state = $state;
|
||||||
this.$ = $scope;
|
this.$ = $scope;
|
||||||
this.itemSelected = null;
|
this.itemSelected = null;
|
||||||
|
this.imagesPath = '//verdnatura.es/vn-image-data/catalog';
|
||||||
|
|
||||||
|
this.showFields = {
|
||||||
|
id: false,
|
||||||
|
actions: false
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
exprBuilder(param, value) {
|
exprBuilder(param, value) {
|
||||||
|
@ -25,6 +31,23 @@ class Controller {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showDescriptor(event, itemFk) {
|
||||||
|
this.quicklinks = {
|
||||||
|
btnThree: {
|
||||||
|
icon: 'icon-transaction',
|
||||||
|
state: `item.card.diary({
|
||||||
|
id: ${itemFk},
|
||||||
|
warehouseFk: ${this.ticket.warehouseFk},
|
||||||
|
ticketFk: ${this.ticket.id}
|
||||||
|
})`,
|
||||||
|
tooltip: 'Item diary'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.$scope.descriptor.itemFk = itemFk;
|
||||||
|
this.$scope.descriptor.parent = event.target;
|
||||||
|
this.$scope.descriptor.show();
|
||||||
|
}
|
||||||
|
|
||||||
paramBuilder(param, value) {
|
paramBuilder(param, value) {
|
||||||
switch (param) {
|
switch (param) {
|
||||||
case 'tags':
|
case 'tags':
|
||||||
|
@ -32,7 +55,9 @@ class Controller {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cloneItem(item) {
|
cloneItem(event, item) {
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopImmediatePropagation();
|
||||||
this.itemSelected = item;
|
this.itemSelected = item;
|
||||||
this.$.clone.show();
|
this.$.clone.show();
|
||||||
}
|
}
|
||||||
|
@ -49,7 +74,9 @@ class Controller {
|
||||||
this.itemSelected = null;
|
this.itemSelected = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
showItemPreview(item) {
|
preview(event, item) {
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopImmediatePropagation();
|
||||||
this.itemSelected = item;
|
this.itemSelected = item;
|
||||||
this.$.preview.show();
|
this.$.preview.show();
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,3 +25,10 @@ vn-item-product {
|
||||||
margin-top: 0.9em;
|
margin-top: 0.9em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vn-table {
|
||||||
|
img {
|
||||||
|
border-radius: 50%;
|
||||||
|
max-width: 50px;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue