Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
lauraluiz committed Feb 26, 2019
2 parents 2d1a88f + 471e539 commit 9500f73
Show file tree
Hide file tree
Showing 15 changed files with 2,078 additions and 2,136 deletions.
2,655 changes: 1,208 additions & 1,447 deletions package-lock.json

Large diffs are not rendered by default.

18 changes: 11 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
"babel-loader": "^8.0.2",
"graphql-tag": "^2.9.0",
"lodash.debounce": "^4.0.8",
"register-service-worker": "^1.0.0",
"vue": "^2.5.17",
"register-service-worker": "^1.5.2",
"vue": "^2.6.6",
"vue-apollo": "^3.0.0-beta.25",
"vue-cli-plugin-apollo": "^0.17.2",
"vue-i18n": "^8.4.0",
Expand All @@ -40,22 +40,26 @@
"@vue/eslint-config-airbnb": "^4.0.0",
"@vue/test-utils": "^1.0.0-beta.24",
"babel-core": "7.0.0-bridge.0",
"babel-jest": "^23.4.2",
"babel-eslint": "^10.0.1",
"babel-jest": "^23.6.0",
"babel-loader": "^8.0.2",
"eslint": "^5.8.0",
"eslint-plugin-vue": "^5.0.0",
"eslint-plugin-graphql": "^2.1.1",
"fibers": "^3.1.1",
"jest-fetch-mock": "^1.6.6",
"jest-junit": "^5.1.0",
"jest-localstorage-mock": "^2.2.0",
"jest-transform-graphql": "^2.1.0",
"lint-staged": "^7.2.2",
"lint-staged": "^8.1.0",
"mocha": "^5.2.0",
"mocha-junit-reporter": "^1.18.0",
"mocha-multi-reporters": "^1.1.7",
"node-sass": "^4.9.0",
"sass-loader": "^7.0.1",
"sass": "^1.16.0",
"sass-loader": "^7.1.0",
"selectboxit": "^3.8.2",
"vue-cli-plugin-i18n": "^0.5.0",
"vue-template-compiler": "^2.5.17"
"vue-template-compiler": "^2.5.21"
},
"gitHooks": {
"pre-commit": "lint-staged"
Expand Down
2 changes: 1 addition & 1 deletion src/components/common/ProductThumbnail.vue
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
<script>
import priceMixin from '@/mixins/priceMixin';
import productMixin from '@/mixins/productMixin';
import BasePrice from '../common/BasePrice.vue';
import BasePrice from './BasePrice.vue';
export default {
components: {
Expand Down
6 changes: 6 additions & 0 deletions src/components/common/SelectBoxIt.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
</template>

<script>
import Vue from 'vue';
export default {
name: 'SelectBoxIt',
props: ['options', 'value'],
Expand All @@ -28,6 +30,10 @@ export default {
// update value
$(this.$el).val(value).trigger('change');
},
options() {
Vue.nextTick(() => $(this.$el).data('selectBox-selectBoxIt').refresh());
},
},
};
</script>
4 changes: 3 additions & 1 deletion src/components/login/SignUpForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,9 @@
</template>

<script>
import { required, email, minLength, sameAs } from 'vuelidate/lib/validators';
import {
required, email, minLength, sameAs,
} from 'vuelidate/lib/validators';
import gql from 'graphql-tag';
import { clientLogin } from '@/auth';
import ServerError from '../common/ServerError.vue';
Expand Down
5 changes: 0 additions & 5 deletions src/components/productdetail/DetailsSection.vue
Original file line number Diff line number Diff line change
Expand Up @@ -98,13 +98,8 @@

<script>
import gql from 'graphql-tag';
import DetailsSection from './DetailsSection.vue';
export default {
components: {
DetailsSection,
},
props: {
sku: {
type: String,
Expand Down
34 changes: 0 additions & 34 deletions src/components/productoverview/PageProductOverview.vue
Original file line number Diff line number Diff line change
Expand Up @@ -40,40 +40,6 @@
</div>
<!-- End mobile version -->

<form id="form-filter-products" name="filter-products" action="#">
<!-- {{#if content.searchTerm}}
<input type="hidden" name="q" value="{{content.searchTerm}}"/>
{{/if}}-->

<div class="row item-list-pagination">
<!-- {{#if content.searchResult}}
<div class="search-results-row">
{{> catalog/pop/search-result searchResult=content.searchResult}}
</div>
{{else}}
<div class="jumbotron-row">
{{> catalog/pop/jumbotron jumbotron=content.jumbotron}}
</div>
{{/if}}-->
<div class="col-xs-4 hidden-xs text-left">
<div class="custom-select-wrapper">
<!--{{> catalog/pop/sort-selector sortSelector=content.sortSelector}}-->
</div>
</div>
<div class="col-xs-4 hidden-xs text-center custom-pagination">
<ul class="page-numbers">
<!--{{> common/pagination pagination=content.pagination}}-->
</ul>
</div>
<div class="col-xs-4 hidden-xs text-right">
<!--{{> catalog/pop/display-selector displaySelector=content.displaySelector}}-->
</div>
</div>
<div class="product-filter hidden-xs">
<!--{{> catalog/pop/filters-sidebar}}-->
</div>
</form>

<ProductList :categorySlug="categorySlug" />

<div class="row">
Expand Down
61 changes: 55 additions & 6 deletions src/components/productoverview/ProductList.vue
Original file line number Diff line number Diff line change
@@ -1,16 +1,51 @@
<template>
<div>
<div v-if="!products">
<img src="../../assets/img/spinner.gif"/>
<form id="form-filter-products" name="filter-products" action="#">
<!-- {{#if content.searchTerm}}
<input type="hidden" name="q" value="{{content.searchTerm}}"/>
{{/if}}-->

<div class="row item-list-pagination">
<!-- {{#if content.searchResult}}
<div class="search-results-row">
{{> catalog/pop/search-result searchResult=content.searchResult}}
</div>
{{else}}
<div class="jumbotron-row">
{{> catalog/pop/jumbotron jumbotron=content.jumbotron}}
</div>
{{/if}}-->
<div class="col-xs-4 hidden-xs text-left">
<div class="custom-select-wrapper">
<ProductSortSelector @changeSort="changeSort" />
<!--{{> catalog/pop/sort-selector sortSelector=content.sortSelector}}-->
</div>
</div>
<div class="col-xs-4 hidden-xs text-center custom-pagination">
<ul class="page-numbers">
<!--{{> common/pagination pagination=content.pagination}}-->
</ul>
</div>
<div class="col-xs-4 hidden-xs text-right">
<!--{{> catalog/pop/display-selector displaySelector=content.displaySelector}}-->
</div>
</div>
<div class="product-filter hidden-xs">
<!--{{> catalog/pop/filters-sidebar}}-->
</div>
</form>
<div v-if="isLoading">
<img data-test="spinner" src="../../assets/img/spinner.gif"/>
</div>
<div v-else-if="!products.results.length">
<div v-else-if="products && !products.results.length">
{{ $t('catalog.searchNotFound.notFound') }}
</div>
<transition name="fade">
<div v-if="products && products.results.length"
<div v-if="!isLoading && products && products.results.length"
id="pop-product-list"
class="row">
<ProductThumbnail v-for="product in products.results"
data-test="product-list"
:key="product.id"
:product="product" />
</div>
Expand All @@ -21,21 +56,34 @@
<script>
import gql from 'graphql-tag';
import ProductThumbnail from '../common/ProductThumbnail.vue';
import ProductSortSelector from './ProductSortSelector.vue';
export default {
components: {
ProductThumbnail,
ProductSortSelector,
},
props: ['categorySlug'],
data: () => ({
categories: null,
products: null,
sort: null,
}),
computed: {
category: vm => vm.categories.results[0],
isLoading() {
return this.$apollo.loading;
},
},
methods: {
changeSort(sort) {
this.sort = sort;
},
},
apollo: {
Expand All @@ -58,8 +106,8 @@ export default {
products: {
query: gql`
query products($locale: Locale!, $currency: Currency!, $where: String) {
products(limit: 20, where: $where, sort: "id asc") {
query products($locale: Locale!, $currency: Currency!, $where: String, $sort: [String!]) {
products(limit: 20, where: $where, sort: $sort) {
results {
id
masterData {
Expand Down Expand Up @@ -97,6 +145,7 @@ export default {
locale: this.$i18n.locale,
currency: this.$i18n.numberFormats[this.$store.state.country].currency.currency,
where: `masterData(current(categories(id="${this.category.id}")))`,
sort: this.sort,
};
},
skip: vm => !vm.categories,
Expand Down
92 changes: 92 additions & 0 deletions src/components/productoverview/ProductSortSelector.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
<template>
<div>
<label>{{ $t('sortBy') }}</label>
<SelectBoxIt :options="sortOptions"
v-model="sort"
data-test="sort-selector"
class="sort-selector"/>
</div>
</template>

<script>
export default {
data: () => ({
sort: null,
}),
computed: {
sortOptions() {
return [
{ id: null, name: this.$t('recommended') },
{ id: 'newest', name: this.$t('newest') },
{ id: 'oldest', name: this.$t('oldest') },
];
},
},
methods: {
changeSortParameter(value) {
const query = { ...this.$route.query };
if (value) {
query.sort = value;
} else {
delete query.sort;
}
this.$router.replace({ query });
},
},
created() {
this.sort = this.$route.query.sort;
},
watch: {
sort(newValue) {
const sortCriteria = (sort) => {
switch (sort) {
case 'newest': return 'createdAt desc';
case 'oldest': return 'createdAt asc';
default: return null;
}
};
this.$emit('changeSort', sortCriteria(newValue));
this.changeSortParameter(newValue);
},
},
};
</script>

<style scoped>
label {
font-size: 0.9em;
display: block;
margin: 0;
padding: 0;
line-height: normal;
}
.sort-selector {
background: #ffffff url("../../assets/img/arrow-67-filled.png") no-repeat 90% 50%;
background-size: 12px;
color: #333333;
padding-right: 10px;
border: 1px solid #D6D6D6;
}
</style>

<i18n>
{
"en": {
"sortBy": "Sort by",
"newest": "Newest",
"oldest": "Oldest",
"recommended": "Recommended"
},
"de": {
"sortBy": "Sortieren nach",
"newest": "Neueste",
"oldest": "Älteste",
"recommended": "Empfohlen"
}
}
</i18n>
4 changes: 2 additions & 2 deletions src/registerServiceWorker.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import { register } from 'register-service-worker';
if (process.env.NODE_ENV === 'production') {
register(`${process.env.BASE_URL}service-worker.js`, {
ready() {
console.log('App is being served from cache by a service worker.\n' +
'For more details, visit https://goo.gl/AFskqB');
console.log('App is being served from cache by a service worker.\n'
+ 'For more details, visit https://goo.gl/AFskqB');
},
cached() {
console.log('Content has been cached for offline use.');
Expand Down
Loading

0 comments on commit 9500f73

Please sign in to comment.