Style & translation fixes

This commit is contained in:
Juan Ferrer 2019-01-30 23:47:06 +01:00
parent 259079b051
commit 1dc8cafc73
34 changed files with 372 additions and 336 deletions

View File

@ -270,11 +270,11 @@ export default {
warehouseAutocomplete: 'vn-item-diary vn-autocomplete[field="$ctrl.warehouseFk"]', warehouseAutocomplete: 'vn-item-diary vn-autocomplete[field="$ctrl.warehouseFk"]',
}, },
ticketSummary: { ticketSummary: {
sale: 'vn-ticket-summary [name="sales"] table > tbody > tr', sale: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr',
firstSaleItemId: 'vn-ticket-summary [name="sales"] table > tbody > tr > td:nth-child(2) > span', firstSaleItemId: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > span',
popoverDiaryButton: 'vn-ticket-summary vn-item-descriptor-popover vn-item-descriptor vn-icon[icon="icon-transaction"]', popoverDiaryButton: 'vn-ticket-summary vn-item-descriptor-popover vn-item-descriptor vn-icon[icon="icon-transaction"]',
firstSaleQuantity: 'vn-ticket-summary [name="sales"] table > tbody > tr > td:nth-child(4)', firstSaleQuantity: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(4)',
firstSaleDiscount: 'vn-ticket-summary [name="sales"] table > tbody > tr > td:nth-child(6)' firstSaleDiscount: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(6)'
}, },
ticketsIndex: { ticketsIndex: {
newTicketButton: 'vn-ticket-index > a', newTicketButton: 'vn-ticket-index > a',

View File

@ -5,8 +5,8 @@
<vn-icon-button <vn-icon-button
icon="remove" icon="remove"
ng-click="$ctrl.remove()" ng-click="$ctrl.remove()"
tabindex="-1" tabindex="-1"
title="Remove number"> translate-attr="{title: 'Remove'}">
</vn-icon-button> </vn-icon-button>
</div> </div>
<div class="infix"> <div class="infix">
@ -28,8 +28,8 @@
<vn-icon-button <vn-icon-button
icon="add" icon="add"
ng-click="$ctrl.add()" ng-click="$ctrl.add()"
tabindex="-1" tabindex="-1"
title="Add number"> translate-attr="{title: 'Add'}">
</vn-icon-button> </vn-icon-button>
<i class="material-icons" <i class="material-icons"
ng-if="$ctrl.hasInfo" ng-if="$ctrl.hasInfo"

View File

@ -3,16 +3,22 @@
<img src="./logo.svg" alt="Logo"></img> <img src="./logo.svg" alt="Logo"></img>
</a> </a>
<vn-icon <vn-icon
ng-if="$ctrl.showMenuButton" ng-if="$ctrl.showLeftMenuButton"
class="show-menu" class="show-menu"
icon="menu" icon="menu"
ng-click="$ctrl.showMenu()"> ng-click="$ctrl.showLeftMenu()">
</vn-icon> </vn-icon>
<div class="main-title" translate> <div class="main-title" translate>
{{$ctrl.$state.current.description}} {{$ctrl.$state.current.description}}
</div> </div>
<vn-spinner enable="$ctrl.vnApp.loading"></vn-spinner> <vn-spinner enable="$ctrl.vnApp.loading"></vn-spinner>
<vn-main-menu></vn-main-menu> <vn-main-menu></vn-main-menu>
<vn-icon
ng-if="$ctrl.rightMenu"
class="show-menu"
icon="menu"
ng-click="$ctrl.showRightMenu()">
</vn-icon>
</vn-topbar> </vn-topbar>
<div ui-view <div ui-view
class="main-view" class="main-view"
@ -21,7 +27,7 @@
</div> </div>
<div <div
class="background" class="background"
ng-class="{shown: $ctrl.menuShown}" ng-class="{shown: $ctrl.leftMenuShown || $ctrl.rightMenuShown}"
ng-click="$ctrl.hideMenu()"> ng-click="$ctrl.hideMenus()">
</div> </div>
<vn-snackbar vn-id="snackbar"></vn-snackbar> <vn-snackbar vn-id="snackbar"></vn-snackbar>

View File

@ -12,8 +12,8 @@ export default class App {
$transitions.onStart({}, transition => { $transitions.onStart({}, transition => {
let state = transition.targetState().name(); let state = transition.targetState().name();
this.showMenuButton = state.split('.').length >= 3; this.showLeftMenuButton = state.split('.').length >= 3;
if (this.menuShown) this.hideMenu(); this.hideMenus();
}); });
} }
@ -30,22 +30,31 @@ export default class App {
return state && state != 'login'; return state && state != 'login';
} }
get leftBlock() { get leftMenu() {
return this.$element[0].querySelector('.left-block'); return this.$element[0].querySelector('.left-menu');
} }
showMenu() { showLeftMenu() {
let leftBlock = this.leftBlock; if (!this.leftMenu) return;
if (!leftBlock) return; this.leftMenu.classList.add('shown');
leftBlock.classList.add('shown'); this.leftMenuShown = true;
this.menuShown = true;
} }
hideMenu() { showRightMenu() {
this.menuShown = false; if (!this.rightMenu) return;
let leftBlock = this.leftBlock; this.rightMenu.classList.add('shown');
if (!leftBlock) return; this.rightMenuShown = true;
leftBlock.classList.remove('shown'); }
hideMenus() {
if (this.leftMenuShown) {
this.leftMenu.classList.remove('shown');
this.leftMenuShown = false;
}
if (this.rightMenuShown) {
this.rightMenu.classList.remove('shown');
this.rightMenuShown = false;
}
} }
showMessage(message) { showMessage(message) {

View File

@ -27,7 +27,7 @@ vn-app {
padding: .3em; padding: .3em;
} }
& > .logo > img { & > .logo > img {
height: 1.6em; height: 1.4em;
display: block; display: block;
} }
& > .show-menu { & > .show-menu {
@ -58,19 +58,24 @@ vn-app {
&.padding { &.padding {
padding-top: $topbar-height; padding-top: $topbar-height;
} }
.index-block { .content-block {
@extend .margin-medium; @extend .margin-medium;
form vn-horizontal {
& > * {
padding: .2em;
}
}
} }
vn-main-block { vn-main-block {
display: block; display: block;
margin: 0 auto; margin: 0 auto;
padding-left: $menu-width; padding-left: $menu-width;
.left-block { %side-menu {
display: block;
position: fixed; position: fixed;
z-index: 5; z-index: 5;
top: $topbar-height;
left: 0;
bottom: 0; bottom: 0;
width: $menu-width; width: $menu-width;
min-width: $menu-width; min-width: $menu-width;
@ -78,21 +83,16 @@ vn-app {
box-shadow: 0 .1em .2em rgba(1, 1, 1, .2); box-shadow: 0 .1em .2em rgba(1, 1, 1, .2);
overflow: auto; overflow: auto;
} }
.content-block { .left-menu {
@extend .margin-medium; @extend %side-menu;
top: $topbar-height;
form vn-horizontal { left: 0;
& > * {
padding: .2em;
}
}
} }
.right-block { .right-menu {
width: $menu-width; @extend %side-menu;
min-width: $menu-width; top: $topbar-height;
padding-left: 1em; right: 0;
} }
} }
} }
& > .background { & > .background {
@ -118,29 +118,32 @@ vn-app {
} }
} }
& > .main-view { & > .main-view {
.index-block { .content-block {
margin-left: 0; margin-left: 0;
margin-right: 0; margin-right: 0;
form vn-horizontal {
flex-direction: column;
}
} }
vn-main-block { vn-main-block {
padding-left: 0; padding-left: 0;
.left-block { %side-menu-mobile {
top: 0; top: 0;
transform: translateZ(0) translateX(-$menu-width);
transition: transform 200ms ease-out; transition: transform 200ms ease-out;
&.shown { &.shown {
transform: translateZ(0) translateX(0); transform: translateZ(0) translateX(0);
} }
} }
.content-block { .left-menu {
margin-left: 0; @extend %side-menu-mobile;
margin-right: 0; transform: translateZ(0) translateX(-$menu-width);
}
form vn-horizontal { .right-menu {
flex-direction: column; @extend %side-menu-mobile;
} transform: translateZ(0) translateX($menu-width);
} }
} }
} }

View File

@ -28,6 +28,8 @@ Order by: Ordenar por
Order: Orden Order: Orden
Ascendant: Ascendente Ascendant: Ascendente
Descendant: Descendente Descendant: Descendente
Add: Añadir
Remove: Quitar
# Modules # Modules

View File

@ -1,5 +1,5 @@
<vn-main-block> <vn-main-block>
<div class="left-block"> <div class="left-menu">
<vn-zone-descriptor zone="$ctrl.zone"></vn-zone-descriptor> <vn-zone-descriptor zone="$ctrl.zone"></vn-zone-descriptor>
<vn-left-menu></vn-left-menu> <vn-left-menu></vn-left-menu>
</div> </div>

View File

@ -5,8 +5,8 @@
form="form" form="form"
save="post"> save="post">
</vn-watcher> </vn-watcher>
<form name="form" ng-submit="$ctrl.onSubmit()" margin-medium> <div class="content-block">
<div style="max-width: 50em; margin: 0 auto;"> <form name="form" ng-submit="$ctrl.onSubmit()" compact>
<vn-card pad-large> <vn-card pad-large>
<vn-horizontal> <vn-horizontal>
<vn-textfield vn-two vn-focus <vn-textfield vn-two vn-focus
@ -66,5 +66,5 @@
<vn-submit label="Create"></vn-submit> <vn-submit label="Create"></vn-submit>
<vn-button ui-sref="zone.index" label="Cancel"></vn-button> <vn-button ui-sref="zone.index" label="Cancel"></vn-button>
</vn-button-bar> </vn-button-bar>
</div> </form>
</form> </div>

View File

@ -6,7 +6,7 @@
data="zones" data="zones"
auto-load="false"> auto-load="false">
</vn-crud-model> </vn-crud-model>
<div class="index-block"> <div class="content-block">
<div class="vn-list"> <div class="vn-list">
<vn-card pad-medium-h> <vn-card pad-medium-h>
<vn-searchbar <vn-searchbar

View File

@ -1,5 +1,5 @@
<vn-main-block> <vn-main-block>
<div class="left-block"> <div class="left-menu">
<vn-claim-descriptor claim="$ctrl.claim"></vn-claim-descriptor> <vn-claim-descriptor claim="$ctrl.claim"></vn-claim-descriptor>
<vn-left-menu></vn-left-menu> <vn-left-menu></vn-left-menu>
</div> </div>

View File

@ -6,7 +6,7 @@
data="claims" data="claims"
auto-load="false"> auto-load="false">
</vn-crud-model> </vn-crud-model>
<div class="index-block"> <div class="content-block">
<div class="vn-list"> <div class="vn-list">
<vn-card pad-medium-h> <vn-card pad-medium-h>
<vn-searchbar <vn-searchbar

View File

@ -1,5 +1,5 @@
<vn-main-block> <vn-main-block>
<div class="left-block"> <div class="left-menu">
<vn-client-descriptor client="$ctrl.client"></vn-client-descriptor> <vn-client-descriptor client="$ctrl.client"></vn-client-descriptor>
<vn-left-menu></vn-left-menu> <vn-left-menu></vn-left-menu>
</div> </div>

View File

@ -5,8 +5,8 @@
form="form" form="form"
save="post"> save="post">
</vn-watcher> </vn-watcher>
<form name="form" ng-submit="$ctrl.onSubmit()" margin-medium> <div class="content-block">
<div style="max-width: 50em; margin: 0 auto;"> <form name="form" ng-submit="$ctrl.onSubmit()" compact>
<vn-card pad-large> <vn-card pad-large>
<vn-horizontal> <vn-horizontal>
<vn-textfield vn-two label="Comercial Name" field="$ctrl.client.name" vn-focus></vn-textfield> <vn-textfield vn-two label="Comercial Name" field="$ctrl.client.name" vn-focus></vn-textfield>
@ -87,5 +87,5 @@
<vn-submit label="Create"></vn-submit> <vn-submit label="Create"></vn-submit>
<vn-button ui-sref="client.index" label="Cancel"></vn-button> <vn-button ui-sref="client.index" label="Cancel"></vn-button>
</vn-button-bar> </vn-button-bar>
</div> </form>
</form> </div>

View File

@ -6,7 +6,7 @@
data="clients" data="clients"
auto-load="false"> auto-load="false">
</vn-crud-model> </vn-crud-model>
<div class="index-block"> <div class="content-block">
<div class="vn-list"> <div class="vn-list">
<vn-card pad-medium-h> <vn-card pad-medium-h>
<vn-searchbar <vn-searchbar

View File

@ -1,5 +1,5 @@
<vn-main-block> <vn-main-block>
<div class="left-block"> <div class="left-menu">
<vn-item-descriptor item="$ctrl.item"></vn-item-descriptor> <vn-item-descriptor item="$ctrl.item"></vn-item-descriptor>
<vn-left-menu></vn-left-menu> <vn-left-menu></vn-left-menu>
</div> </div>

View File

@ -5,8 +5,8 @@
form="form" form="form"
save="post"> save="post">
</vn-watcher> </vn-watcher>
<form name="form" ng-submit="$ctrl.onSubmit()" margin-medium> <div class="content-block">
<div compact> <form name="form" ng-submit="$ctrl.onSubmit()" compact>
<vn-card pad-large> <vn-card pad-large>
<vn-horizontal> <vn-horizontal>
<vn-textfield <vn-textfield
@ -61,5 +61,5 @@
>Cancel >Cancel
</button> </button>
</vn-button-bar> </vn-button-bar>
</div> </form>
</form> </div>

View File

@ -6,7 +6,7 @@
data="items" data="items"
auto-load="false"> auto-load="false">
</vn-crud-model> </vn-crud-model>
<div class="index-block"> <div class="content-block">
<div class="vn-list"> <div class="vn-list">
<vn-card pad-medium-h> <vn-card pad-medium-h>
<vn-searchbar <vn-searchbar

View File

@ -1,5 +1,5 @@
<vn-main-block> <vn-main-block>
<div class="left-block"> <div class="left-menu">
<vn-order-descriptor order="$ctrl.order"></vn-order-descriptor> <vn-order-descriptor order="$ctrl.order"></vn-order-descriptor>
<vn-left-menu></vn-left-menu> <vn-left-menu></vn-left-menu>
</div> </div>

View File

@ -5,105 +5,101 @@
limit="50" limit="50"
data="items" on-data-change="$ctrl.onDataChange()" > data="items" on-data-change="$ctrl.onDataChange()" >
</vn-crud-model> </vn-crud-model>
<vn-horizontal> <div class="items">
<vn-vertical vn-one> <vn-card>
<vn-card> <vn-horizontal class="catalog-header" pad-medium-h>
<vn-vertical> <vn-one ng-if="model.moreRows">
<vn-horizontal class="catalog-header" pad-medium-h> <span translate>More than</span> {{model.limit}} <span translate>results</span>
<vn-one ng-if="model.moreRows"> </vn-one>
<span translate>More than</span> {{model.limit}} <span translate>results</span></vn-one> <vn-one>
<vn-one> <vn-horizontal>
<vn-horizontal> <vn-autocomplete vn-id="field" vn-one
<vn-autocomplete vn-id="field" vn-one data="$ctrl.fieldList"
data="$ctrl.fieldList" initial-data="$ctrl.field"
initial-data="$ctrl.field" field="$ctrl.field"
field="$ctrl.field" translate-fields="['name']"
translate-fields="['name']" show-field="name"
show-field="name" value-field="field"
value-field="field" label="Order by">
label="Order by"> </vn-autocomplete>
</vn-autocomplete> <vn-autocomplete vn-one
<vn-autocomplete vn-one data="$ctrl.wayList"
data="$ctrl.wayList" initial-data="$ctrl.way"
initial-data="$ctrl.way" field="$ctrl.way"
field="$ctrl.way" translate-fields="['name']"
translate-fields="['name']" show-field="name"
show-field="name" value-field="way"
value-field="way" label="Order">
label="Order"> </vn-autocomplete>
</vn-autocomplete>
</vn-horizontal>
</vn-one>
</vn-horizontal> </vn-horizontal>
<vn-horizontal class="catalog-list" pad-small> </vn-one>
<section class="product" ng-repeat="item in items"> </vn-horizontal>
<vn-one> <vn-horizontal class="catalog-list" pad-small>
<vn-horizontal> <section class="product" ng-repeat="item in items">
<vn-one class="image"> <vn-one>
<img <vn-horizontal>
ng-src="//verdnatura.es/vn-image-data/catalog/200x200/{{::item.image}}" <vn-one class="image">
zoom-image="//verdnatura.es/vn-image-data/catalog/1600x900/{{::item.image}}" <img
on-error-src pointer/> ng-src="//verdnatura.es/vn-image-data/catalog/200x200/{{::item.image}}"
</vn-one> zoom-image="//verdnatura.es/vn-image-data/catalog/1600x900/{{::item.image}}"
<vn-one pad-small class="description ellipsize"> on-error-src pointer/>
<vn-vertical>
<h2 class="ellipsize" vn-tooltip="{{::item.name}}">
{{::item.name}}
</h2>
<span class="ellipsize" vn-tooltip="{{::item.subName}}">
{{::item.subName}}
</span>
<vn-label-value
label="{{::item.tag5}}"
value="{{::item.value5}}">
</vn-label-value>
<vn-label-value
label="{{::item.tag6}}"
value="{{::item.value6}}">
</vn-label-value>
<vn-label-value
label="{{::item.tag7}}"
value="{{::item.value7}}">
</vn-label-value>
<vn-label-value
label="{{::item.tag8}}"
value="{{::item.value8}}">
</vn-label-value>
<vn-horizontal class="price">
<vn-one>
<span>{{::item.available}}</span>
<span translate>from</span>
<span>{{::item.price | currency: ' €': 2}}</span>
</vn-one>
<vn-auto>
<a href="" vn-tooltip="Add">
<vn-icon icon="add_circle" ng-click="$ctrl.preview($event, item)"></vn-icon>
</a>
</vn-auto>
</vn-horizontal>
</vn-vertical>
</vn-one>
</vn-horizontal>
</vn-one> </vn-one>
</section> <vn-one pad-small class="description ellipsize">
</vn-horizontal> <vn-vertical>
<vn-horizontal ng-if="!model.data || model.data.length == 0"> <h2 class="ellipsize" vn-tooltip="{{::item.name}}">
<vn-one pad-small translate style="text-align: center"> {{::item.name}}
No results </h2>
</vn-one> <span class="ellipsize" vn-tooltip="{{::item.subName}}">
</vn-horizontal> {{::item.subName}}
</vn-vertical> </span>
</vn-card>
<vn-pagination margin-small-v model="model"></vn-pagination> <vn-label-value
</vn-vertical> label="{{::item.tag5}}"
value="{{::item.value5}}">
<vn-auto class="right-block"> </vn-label-value>
<vn-catalog-filter order="$ctrl.order"></vn-catalog-filter> <vn-label-value
</vn-auto> label="{{::item.tag6}}"
</vn-horizontal> value="{{::item.value6}}">
</vn-label-value>
<vn-label-value
label="{{::item.tag7}}"
value="{{::item.value7}}">
</vn-label-value>
<vn-label-value
label="{{::item.tag8}}"
value="{{::item.value8}}">
</vn-label-value>
<vn-horizontal class="price">
<vn-one>
<span>{{::item.available}}</span>
<span translate>from</span>
<span>{{::item.price | currency: ' €': 2}}</span>
</vn-one>
<vn-auto>
<a href="" vn-tooltip="Add">
<vn-icon icon="add_circle" ng-click="$ctrl.preview($event, item)"></vn-icon>
</a>
</vn-auto>
</vn-horizontal>
</vn-vertical>
</vn-one>
</vn-horizontal>
</vn-one>
</section>
</vn-horizontal>
<vn-horizontal ng-if="!model.data || model.data.length == 0">
<vn-one pad-small translate style="text-align: center">
No results
</vn-one>
</vn-horizontal>
</vn-card>
<vn-pagination margin-small-v model="model"></vn-pagination>
</div>
<vn-catalog-filter
class="right-menu"
order="$ctrl.order">
</vn-catalog-filter>
<vn-order-prices-popover <vn-order-prices-popover
vn-id="pricesPopover" vn-id="pricesPopover"
order="$ctrl.order"> order="$ctrl.order">

View File

@ -125,5 +125,5 @@ ngModule.component('vnOrderCatalog', {
controller: Controller, controller: Controller,
bindings: { bindings: {
order: '<', order: '<',
}, }
}); });

View File

@ -8,13 +8,18 @@ vn-order-catalog {
vn-one:first-child { vn-one:first-child {
padding-top: 2em; padding-top: 2em;
} }
vn-one:nth-child(2) { vn-one:nth-child(2) {
padding-top: 0.5em; padding-top: 0.5em;
} }
span { span {
color: $secondary-font-color color: $secondary-font-color
} }
} }
& > .items {
padding-right: 16em;
@media screen and (max-width: 800px) {
padding-right: 0;
}
}
} }

View File

@ -1,5 +1,5 @@
<div margin-medium> <div class="content-block">
<div style="max-width: 70em; margin: 0 auto;" > <div compact>
<vn-card pad-large> <vn-card pad-large>
<vn-order-create-card vn-id="card" on-save=""></vn-order-create-card> <vn-order-create-card vn-id="card" on-save=""></vn-order-create-card>
</vn-card> </vn-card>

View File

@ -1,101 +1,93 @@
<vn-crud-model <vn-crud-model
vn-id="model" vn-id="model"
url="/order/api/ItemCategories" url="/order/api/ItemCategories"
data="categories" auto-load="true"> data="categories"
auto-load="true">
</vn-crud-model> </vn-crud-model>
<vn-horizontal> <div>
<vn-vertical vn-one> <vn-horizontal class="item-category">
<vn-card > <vn-one ng-repeat="category in categories">
<vn-vertical> <vn-icon
<vn-horizontal pad-medium class="item-category"> ng-class="{'active': $ctrl.category.id == category.id}"
<vn-one margin-small-v ng-repeat="category in categories"> icon="{{::category.icon}}"
<vn-icon vn-tooltip="{{::category.name}}"
ng-class="{'active': $ctrl.category.id == category.id}" ng-click="$ctrl.category = {
pad-small id: category.id,
icon="{{::category.icon}}" value: category.name
vn-tooltip="{{::category.name}}" }">
ng-click="$ctrl.category = { </vn-icon>
id: category.id, </vn-one>
value: category.name </vn-horizontal>
}"> <vn-horizontal class="input">
</vn-icon> <vn-autocomplete
</vn-one> vn-one
</vn-horizontal> vn-id="type"
<vn-horizontal pad-medium class="catalog-header"> data="$ctrl.itemTypes"
<vn-autocomplete vn-one on-change="$ctrl.type = {
vn-id="type" id: value,
data="$ctrl.itemTypes" value: type.selection.name
on-change="$ctrl.type = { }"
id: value, field="$ctrl.type.id"
value: type.selection.name show-field="name"
}" value-field="id"
field="$ctrl.type.id" label="Type">
show-field="name" <t-left-icons>
value-field="id" <i class="material-icons">search</i>
label="Type"> </t-left-icons>
<t-left-icons> <t-right-icons>
<i class="material-icons">search</i> <i class="material-icons"
</t-left-icons> ng-click="$ctrl.openPanel($event)"
<t-right-icons> style="cursor: pointer; color: #aaa">
<i class="material-icons" keyboard_arrow_down
ng-click="$ctrl.openPanel($event)" </i>
style="cursor: pointer; color: #aaa"> </t-right-icons>
keyboard_arrow_down </vn-autocomplete>
</i> </vn-horizontal>
</t-right-icons> <vn-horizontal class="input">
</vn-autocomplete> <vn-textfield
</vn-horizontal> vn-one
vn-id="search"
<vn-horizontal pad-medium class="catalog-header"> ng-keyUp="$ctrl.onSearch($event)"
<vn-one> label="Search tag"
<vn-textfield model="$ctrl.value">
vn-id="search" <t-left-icons>
ng-keyUp="$ctrl.onSearch($event)" <i class="material-icons">search</i>
label="Search tag" </t-left-icons>
model="$ctrl.value"> <t-right-icons>
<t-left-icons> <i class="material-icons"
<i class="material-icons">search</i> ng-click="$ctrl.openPanel($event)"
</t-left-icons> style="cursor: pointer; color: #aaa">
<t-right-icons> keyboard_arrow_down
<i class="material-icons" </i>
ng-click="$ctrl.openPanel($event)" </t-right-icons>
style="cursor: pointer; color: #aaa"> </vn-textfield>
keyboard_arrow_down </vn-horizontal>
</i> <vn-popover
</t-right-icons> vn-id="popover"
</vn-textfield> on-close="$ctrl.onPopoverClose()">
<vn-order-catalog-search-panel/>
<vn-popover </vn-popover>
vn-id="popover" <vn-horizontal class="chips" style="flex-wrap: wrap">
on-close="$ctrl.onPopoverClose()"> <vn-chip
<vn-order-catalog-search-panel/> ng-if="$ctrl.category"
</vn-popover> vn-tooltip="Category"
</vn-one> on-remove="$ctrl.category = null"
</vn-horizontal> ellipsize>
<span translate>{{$ctrl.category.value}}</span>
<vn-horizontal pad-medium style="flex-wrap: wrap"> </vn-chip>
<vn-chip <vn-chip
ng-if="$ctrl.category" ng-if="$ctrl.type"
vn-tooltip="Category" vn-tooltip="Type"
on-remove="$ctrl.category = null" ellipsize> on-remove="$ctrl.type = null"
<span translate>{{$ctrl.category.value}}</span> ellipsize>
</vn-chip> <span translate>{{$ctrl.type.value}}</span>
</vn-chip>
<vn-chip <vn-chip
ng-if="$ctrl.type" ng-repeat="tag in $ctrl.tags"
vn-tooltip="Type" vn-tooltip="Value"
on-remove="$ctrl.type = null" ellipsize> on-remove="$ctrl.remove($index)"
<span translate>{{$ctrl.type.value}}</span> ellipsize>
</vn-chip> <span translate>{{::tag.value}}</span>
</vn-chip>
<vn-chip </vn-horizontal>
ng-repeat="tag in $ctrl.tags" </div>
vn-tooltip="Value"
on-remove="$ctrl.remove($index)" ellipsize>
<span translate>{{::tag.value}}</span>
</vn-chip>
</vn-horizontal>
</vn-vertical>
</vn-card>
</vn-vertical>
</vn-horizontal>

View File

@ -2,7 +2,8 @@ import ngModule from '../module';
import './style.scss'; import './style.scss';
class Controller { class Controller {
constructor($http, $scope, $state, $compile, $transitions, $window) { constructor($element, $http, $scope, $state, $compile, $transitions) {
this.$element = $element;
this.$http = $http; this.$http = $http;
this.$scope = $scope; this.$scope = $scope;
this.$state = $state; this.$state = $state;
@ -13,6 +14,14 @@ class Controller {
this.tags = []; this.tags = [];
} }
$onInit() {
this.app.rightMenu = this.$element[0];
}
$onDestroy() {
this.app.rightMenu = null;
}
get order() { get order() {
return this._order; return this._order;
} }
@ -159,15 +168,16 @@ class Controller {
} }
} }
Controller.$inject = ['$http', '$scope', '$state', '$compile', '$transitions', '$window']; Controller.$inject = ['$element', '$http', '$scope', '$state', '$compile', '$transitions'];
ngModule.component('vnCatalogFilter', { ngModule.component('vnCatalogFilter', {
template: require('./index.html'), template: require('./index.html'),
controller: Controller, controller: Controller,
require: { require: {
catalog: '^vnOrderCatalog', catalog: '^vnOrderCatalog',
app: '^vnApp'
}, },
bindings: { bindings: {
order: '<', order: '<',
}, }
}); });

View File

@ -17,7 +17,7 @@ describe('Order', () => {
$state.params.category = '{"id": 1, "value": "My Category"}'; $state.params.category = '{"id": 1, "value": "My Category"}';
$state.params.type = '{"id": 1, "value": "My type"}'; $state.params.type = '{"id": 1, "value": "My type"}';
$state.current.name = 'my.current.state'; $state.current.name = 'my.current.state';
controller = $componentController('vnCatalogFilter', {$scope, $state}); controller = $componentController('vnCatalogFilter', {$element: null, $scope, $state});
controller.catalog = { controller.catalog = {
$scope: $scope, $scope: $scope,
getOrderBy: () => { getOrderBy: () => {

View File

@ -1,31 +1,44 @@
@import "colors"; @import "colors";
@import "padding";
vn-catalog-filter { vn-catalog-filter > div {
& > .input {
@extend .pad-medium-h;
border-color: $lines;
border-bottom: 1px solid rgba($lines, 0.5);
}
.item-category { .item-category {
@extend .pad-small;
justify-content: flex-start; justify-content: flex-start;
align-items: flex-start; align-items: flex-start;
flex-wrap: wrap; flex-wrap: wrap;
vn-icon { & > vn-one {
background-color: $secondary-font-color; @extend .pad-small;
border-radius: 50%; min-width: 33.33%;
cursor: pointer; text-align: center;
box-sizing: border-box;
i:before { & > vn-icon {
font-size: 32pt; @extend .pad-small;
width: 1em; background-color: $secondary-font-color;
height: 1em; border-radius: 50%;
cursor: pointer;
&.active {
background-color: $main-01;
color: #FFF
}
& > i:before {
font-size: 32pt;
width: 1em;
height: 1em;
}
} }
} }
}
vn-icon.active { .chips {
background-color: $main-01; flex-wrap: wrap;
color: #FFF @extend .pad-medium;
}
& > vn-one {
width: 33.33%;
text-align: center
}
} }
} }

View File

@ -5,7 +5,7 @@
limit="20" limit="20"
data="orders" auto-load="false"> data="orders" auto-load="false">
</vn-crud-model> </vn-crud-model>
<div class="index-block"> <div class="content-block">
<div class="vn-list"> <div class="vn-list">
<vn-card pad-medium-h> <vn-card pad-medium-h>
<vn-searchbar auto-load="false" <vn-searchbar auto-load="false"

View File

@ -1,5 +1,5 @@
<vn-main-block> <vn-main-block>
<div class="left-block"> <div class="left-menu">
<vn-ticket-descriptor ticket="$ctrl.ticket"></vn-ticket-descriptor> <vn-ticket-descriptor ticket="$ctrl.ticket"></vn-ticket-descriptor>
<vn-left-menu></vn-left-menu> <vn-left-menu></vn-left-menu>
</div> </div>

View File

@ -1,5 +1,5 @@
<div margin-medium> <div class="content-block">
<div style="max-width: 70em; margin: 0 auto;" > <div compact>
<vn-card pad-large> <vn-card pad-large>
<vn-ticket-create-card vn-id="card" on-save=""></vn-ticket-create-card> <vn-ticket-create-card vn-id="card" on-save=""></vn-ticket-create-card>
</vn-card> </vn-card>

View File

@ -6,7 +6,7 @@
order="shipped ASC" order="shipped ASC"
auto-load="false"> auto-load="false">
</vn-crud-model> </vn-crud-model>
<div class="index-block"> <div class="content-block">
<div class="vn-list"> <div class="vn-list">
<vn-card pad-medium-h> <vn-card pad-medium-h>
<vn-horizontal> <vn-horizontal>

View File

@ -52,21 +52,21 @@
</vn-one> </vn-one>
<vn-auto name="sales"> <vn-auto name="sales">
<h4 translate>Sale</h4> <h4 translate>Sale</h4>
<table class="vn-grid"> <vn-table class="vn-grid">
<thead> <vn-thead>
<tr> <vn-tr>
<th></th> <vn-th></vn-th>
<th number translate>Item</th> <vn-th number>Item</vn-th>
<th translate>Description</th> <vn-th>Description</vn-th>
<th number translate>Quantity</th> <vn-th number>Quantity</vn-th>
<th number translate>Price</th> <vn-th number>Price</vn-th>
<th number translate>Discount</th> <vn-th number>Discount</vn-th>
<th number translate>Amount</th> <vn-th number>Amount</vn-th>
</tr> </vn-tr>
</thead> </vn-thead>
<tbody> <vn-tbody>
<tr ng-repeat="sale in $ctrl.summary.sales track by sale.id"> <vn-tr ng-repeat="sale in $ctrl.summary.sales track by sale.id">
<td> <vn-td>
<a ui-sref="claim.card.basicData({id: sale.claimBeginning.claimFk})"> <a ui-sref="claim.card.basicData({id: sale.claimBeginning.claimFk})">
<vn-icon <vn-icon
ng-show="sale.claimBeginning.claimFk" ng-show="sale.claimBeginning.claimFk"
@ -82,25 +82,25 @@
vn-tooltip="Visible: {{::sale.visible || 0}} <br> {{::$ctrl.translate.instant('Available')}} {{::sale.available || 0}}"> vn-tooltip="Visible: {{::sale.visible || 0}} <br> {{::$ctrl.translate.instant('Available')}} {{::sale.available || 0}}">
</vn-icon> </vn-icon>
<vn-icon ng-show="sale.reserved" icon="icon-reserva"></vn-icon> <vn-icon ng-show="sale.reserved" icon="icon-reserva"></vn-icon>
</td> </vn-td>
<td number> <vn-td number>
<span <span
ng-click="$ctrl.showDescriptor($event, sale.itemFk)" ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
class="link" pointer> class="link" pointer>
{{sale.itemFk | zeroFill:6}} {{sale.itemFk | zeroFill:6}}
</span> </span>
</td> </vn-td>
<td><vn-fetched-tags max-length="6" item="sale.item" title="sale.concept"/></td> <vn-td><vn-fetched-tags max-length="6" item="sale.item" title="sale.concept"/></vn-td>
<td number>{{::sale.quantity}}</td> <vn-td number>{{::sale.quantity}}</vn-td>
<td number>{{::sale.price | currency:'€':2}}</td> <vn-td number>{{::sale.price | currency:'€':2}}</vn-td>
<td number>{{::sale.discount}} %</td> <vn-td number>{{::sale.discount}} %</vn-td>
<td number>{{::sale.quantity * sale.price | currency:'€':2}}</td> <vn-td number>{{::sale.quantity * sale.price | currency:'€':2}}</vn-td>
</tr> </vn-tr>
<tr ng-if="!$ctrl.summary.sales" class="list list-element"> <vn-tr ng-if="!$ctrl.summary.sales" class="list list-element">
<td colspan="8" style="text-align: center" translate>No results</td> <vn-td colspan="8" style="text-align: center" translate>No results</vn-td>
</tr> </vn-tr>
</tbody> </vn-tbody>
</table> </vn-table>
</vn-auto> </vn-auto>
<vn-one ng-if="$ctrl.summary.packagings.length != 0"> <vn-one ng-if="$ctrl.summary.packagings.length != 0">
<h4 translate>Packages</h4> <h4 translate>Packages</h4>

View File

@ -6,7 +6,7 @@
data="travels" data="travels"
auto-load="false"> auto-load="false">
</vn-crud-model> </vn-crud-model>
<div class="index-block"> <div class="content-block">
<div class="vn-list"> <div class="vn-list">
<vn-card pad-medium-h> <vn-card pad-medium-h>
<vn-searchbar <vn-searchbar

View File

@ -1,5 +1,5 @@
<vn-main-block> <vn-main-block>
<div class="left-block"> <div class="left-menu">
<vn-worker-descriptor worker="$ctrl.worker"></vn-worker-descriptor> <vn-worker-descriptor worker="$ctrl.worker"></vn-worker-descriptor>
<vn-left-menu></vn-left-menu> <vn-left-menu></vn-left-menu>
</div> </div>

View File

@ -5,7 +5,7 @@
limit="20" limit="20"
data="workers"> data="workers">
</vn-crud-model> </vn-crud-model>
<div class="index-block"> <div class="content-block">
<div class="vn-list"> <div class="vn-list">
<vn-card pad-medium-h> <vn-card pad-medium-h>
<vn-searchbar <vn-searchbar