Browse Source

feat(admin-ui): Enable filtering CustomerList by postalCode

Relates to #1389
Michael Bromley 4 years ago
parent
commit
f3a2654113

+ 12 - 12
packages/admin-ui/i18n-coverage.json

@@ -1,6 +1,6 @@
 {
-  "generatedOn": "2022-02-14T16:02:28.770Z",
-  "lastCommit": "b463dd870fdcc9c3a8d23c8f337e5706d0e985fe",
+  "generatedOn": "2022-02-15T16:20:08.660Z",
+  "lastCommit": "6692b95e4769c58f828b01e2b3e4c1fff9281ba2",
   "translationStatus": {
     "cs": {
       "tokenCount": 637,
@@ -19,17 +19,17 @@
     },
     "es": {
       "tokenCount": 637,
-      "translatedCount": 623,
+      "translatedCount": 622,
       "percentage": 98
     },
     "fr": {
       "tokenCount": 637,
-      "translatedCount": 613,
+      "translatedCount": 612,
       "percentage": 96
     },
     "it": {
       "tokenCount": 637,
-      "translatedCount": 621,
+      "translatedCount": 620,
       "percentage": 97
     },
     "pl": {
@@ -44,23 +44,23 @@
     },
     "pt_PT": {
       "tokenCount": 637,
-      "translatedCount": 634,
-      "percentage": 100
+      "translatedCount": 633,
+      "percentage": 99
     },
     "ru": {
       "tokenCount": 637,
-      "translatedCount": 621,
+      "translatedCount": 620,
       "percentage": 97
     },
     "uk": {
       "tokenCount": 637,
-      "translatedCount": 621,
+      "translatedCount": 620,
       "percentage": 97
     },
     "zh_Hans": {
       "tokenCount": 637,
-      "translatedCount": 558,
-      "percentage": 88
+      "translatedCount": 557,
+      "percentage": 87
     },
     "zh_Hant": {
       "tokenCount": 637,
@@ -68,4 +68,4 @@
       "percentage": 60
     }
   }
-}
+}

+ 2 - 9
packages/admin-ui/src/lib/customer/src/components/customer-list/customer-list.component.html

@@ -3,15 +3,8 @@
         <input
             type="text"
             name="emailSearchTerm"
-            [formControl]="emailSearchTerm"
-            [placeholder]="'customer.search-customers-by-email' | translate"
-            class="search-input ml3"
-        />
-        <input
-            type="text"
-            name="lastNameSearchTerm"
-            [formControl]="lastNameSearchTerm"
-            [placeholder]="'customer.search-customers-by-last-name' | translate"
+            [formControl]="searchTerm"
+            [placeholder]="'customer.search-customers-by-email-last-name-postal-code' | translate"
             class="search-input ml3"
         />
     </vdr-ab-left>

+ 12 - 7
packages/admin-ui/src/lib/customer/src/components/customer-list/customer-list.component.ts

@@ -6,11 +6,12 @@ import {
     BaseListComponent,
     DataService,
     GetCustomerList,
+    LogicalOperator,
     ModalService,
     NotificationService,
 } from '@vendure/admin-ui/core';
 import { SortOrder } from '@vendure/common/lib/generated-shop-types';
-import { EMPTY, merge } from 'rxjs';
+import { EMPTY } from 'rxjs';
 import { debounceTime, filter, switchMap, takeUntil } from 'rxjs/operators';
 
 @Component({
@@ -20,9 +21,9 @@ import { debounceTime, filter, switchMap, takeUntil } from 'rxjs/operators';
 })
 export class CustomerListComponent
     extends BaseListComponent<GetCustomerList.Query, GetCustomerList.Items>
-    implements OnInit {
-    emailSearchTerm = new FormControl('');
-    lastNameSearchTerm = new FormControl('');
+    implements OnInit
+{
+    searchTerm = new FormControl('');
     constructor(
         private dataService: DataService,
         router: Router,
@@ -40,12 +41,16 @@ export class CustomerListComponent
                     take,
                     filter: {
                         emailAddress: {
-                            contains: this.emailSearchTerm.value,
+                            contains: this.searchTerm.value,
                         },
                         lastName: {
-                            contains: this.lastNameSearchTerm.value,
+                            contains: this.searchTerm.value,
+                        },
+                        postalCode: {
+                            contains: this.searchTerm.value,
                         },
                     },
+                    filterOperator: LogicalOperator.OR,
                     sort: {
                         createdAt: SortOrder.DESC,
                     },
@@ -56,7 +61,7 @@ export class CustomerListComponent
 
     ngOnInit() {
         super.ngOnInit();
-        merge(this.emailSearchTerm.valueChanges, this.lastNameSearchTerm.valueChanges)
+        this.searchTerm.valueChanges
             .pipe(
                 filter(value => 2 < value.length || value.length === 0),
                 debounceTime(250),

+ 2 - 2
packages/admin-ui/src/lib/static/i18n-messages/cs.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "Odebrán: {customerCount, plural, one {1 zákazník} other {{customerCount} zákazníci/zákazníků}} z \"{ groupName }\"",
     "remove-from-group": "Odebrat ze skupiny",
     "search-customers-by-email": "Hledat podle e-mailové adresy",
-    "search-customers-by-last-name": "",
+    "search-customers-by-email-last-name-postal-code": "",
     "select-customer": "",
     "set-as-default-billing-address": "Nastavit jako výchozí fakturační adresu",
     "set-as-default-shipping-address": "Nastavit jako výchozí dodací adresu",
@@ -668,4 +668,4 @@
     "job-result": "Výsledek úlohy",
     "job-state": "Stav úlohy"
   }
-}
+}

+ 2 - 2
packages/admin-ui/src/lib/static/i18n-messages/de.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "{customerCount, plural, one {Kunde} other {{customerCount} Kunden}} aus \"{ groupName }\" entfernt",
     "remove-from-group": "Aus dieser Gruppe entfernen",
     "search-customers-by-email": "Suche nach E-Mail-Adresse",
-    "search-customers-by-last-name": "",
+    "search-customers-by-email-last-name-postal-code": "",
     "select-customer": "Kunde auswählen",
     "set-as-default-billing-address": "Als Standard-Rechnungsadresse festlegen",
     "set-as-default-shipping-address": "Als Standard-Versandadresse festlegen",
@@ -668,4 +668,4 @@
     "job-result": "Job-Ergebnis",
     "job-state": "Job-Status"
   }
-}
+}

+ 1 - 1
packages/admin-ui/src/lib/static/i18n-messages/en.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "Removed {customerCount, plural, one {1 customer} other {{customerCount} customers}} from \"{ groupName }\"",
     "remove-from-group": "Remove from this group",
     "search-customers-by-email": "Search by email address",
-    "search-customers-by-last-name": "Search by last name",
+    "search-customers-by-email-last-name-postal-code": "Search by email / last name / postal code",
     "select-customer": "Select customer",
     "set-as-default-billing-address": "Set as default billing",
     "set-as-default-shipping-address": "Set as default shipping",

+ 1 - 1
packages/admin-ui/src/lib/static/i18n-messages/es.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "{customerCount, plural, one {1 cliente} other {{customerCount} clientes}} {customerCount, plural, one {eliminado} other {eliminados}} de \"{ groupName }\"",
     "remove-from-group": "Eliminar del grupo",
     "search-customers-by-email": "Buscar por correo electrónico",
-    "search-customers-by-last-name": "Buscar por apellido",
+    "search-customers-by-email-last-name-postal-code": "Buscar por apellido / correo electrónico / Código postal",
     "select-customer": "Seleccionar cliente",
     "set-as-default-billing-address": "Fijar como dirección de facturación por defecto",
     "set-as-default-shipping-address": "Fijar como dirección de envío por defecto",

+ 1 - 1
packages/admin-ui/src/lib/static/i18n-messages/fr.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "Retrait {customerCount, plural, one {d'un client} other {de {customerCount} clients}} de \"{ groupName }\"",
     "remove-from-group": "Retirer de ce groupe",
     "search-customers-by-email": "Chercher par adresse email",
-    "search-customers-by-last-name": "Rechercher par nom",
+    "search-customers-by-email-last-name-postal-code": "Rechercher par nom / adresse email / code postal",
     "select-customer": "Sélectionner client",
     "set-as-default-billing-address": "Etablir en tant qu'adresse de facturation par défaut",
     "set-as-default-shipping-address": "Etablir en tant qu'adresse de livraison par défaut",

+ 1 - 1
packages/admin-ui/src/lib/static/i18n-messages/it.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "Ho rimosso {customerCount, plural, one {1 cuclientestomer} other {{customerCount} clienti}} from \"{ groupName }\"",
     "remove-from-group": "Rimuovi da questo gruppo",
     "search-customers-by-email": "Cerca per indirizzo email",
-    "search-customers-by-last-name": "Cerca per cognome",
+    "search-customers-by-email-last-name-postal-code": "Cerca per cognome / indirizzo email / CAP",
     "select-customer": "Seleziona cliente",
     "set-as-default-billing-address": "Imposta come indirizzo di fatturazione predefinito",
     "set-as-default-shipping-address": "Imposta come indirizzo di spedizione predefinito",

+ 2 - 2
packages/admin-ui/src/lib/static/i18n-messages/pl.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "",
     "remove-from-group": "",
     "search-customers-by-email": "Szukaj przez email",
-    "search-customers-by-last-name": "",
+    "search-customers-by-email-last-name-postal-code": "",
     "select-customer": "",
     "set-as-default-billing-address": "Ustaw jako domyślny adres rozliczeniowy",
     "set-as-default-shipping-address": "Ustaw jako domyślny adres wysyłki",
@@ -668,4 +668,4 @@
     "job-result": "Rezultat zlecenia",
     "job-state": "Status zlecenia"
   }
-}
+}

+ 1 - 1
packages/admin-ui/src/lib/static/i18n-messages/pt_BR.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "Excluído {customerCount, plural, one {1 customer} other {{customerCount} customers}} from \"{ groupName }\"",
     "remove-from-group": "Excluir deste grupo",
     "search-customers-by-email": "Busca por email",
-    "search-customers-by-last-name": "",
+    "search-customers-by-email-last-name-postal-code": "Busca por email / sobrenome / cep",
     "select-customer": "",
     "set-as-default-billing-address": "Definir como cobrança padrão",
     "set-as-default-shipping-address": "Definir como remessa padrão",

+ 1 - 1
packages/admin-ui/src/lib/static/i18n-messages/pt_PT.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "{customerCount, plural, one {1 cliente eliminado} other {{customerCount} clientes eliminados}} do grupo \"{ groupName }\"",
     "remove-from-group": "Eliminar deste grupo",
     "search-customers-by-email": "Pesquisar por email",
-    "search-customers-by-last-name": "Pesquisar pelo apelido",
+    "search-customers-by-email-last-name-postal-code": "Pesquisar pelo apelido / email / código postal",
     "select-customer": "Seleccione o cliente",
     "set-as-default-billing-address": "Definir como morada de faturação padrão",
     "set-as-default-shipping-address": "Definir como morada de entrega padrão",

+ 2 - 2
packages/admin-ui/src/lib/static/i18n-messages/ru.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "Удален {customerCount, plural, one {1 клиент} other {{customerCount} клиентов}} из \"{ groupName }\"",
     "remove-from-group": "Удалить из этой группы",
     "search-customers-by-email": "Поиск по адресу электронной почты",
-    "search-customers-by-last-name": "Поиск по фамилии",
+    "search-customers-by-email-last-name-postal-code": "",
     "select-customer": "Выберите клиента",
     "set-as-default-billing-address": "Установить как биллинг по умолчанию",
     "set-as-default-shipping-address": "Установить как доставку по умолчанию",
@@ -668,4 +668,4 @@
     "job-result": "Результат задания",
     "job-state": "Состояние задания"
   }
-}
+}

+ 2 - 2
packages/admin-ui/src/lib/static/i18n-messages/uk.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "Видалено {customerCount, plural, one {1 клієнт} other {{customerCount} клієнтів}} из \"{ groupName }\"",
     "remove-from-group": "Вилучити з цієї групи",
     "search-customers-by-email": "Пошук за адресою електронної пошти",
-    "search-customers-by-last-name": "Пошук за прізвищем",
+    "search-customers-by-email-last-name-postal-code": "",
     "select-customer": "Виберіть клієнта",
     "set-as-default-billing-address": "Встановити як білінг за замовчуванням",
     "set-as-default-shipping-address": "Встановити як доставку за замовчуванням",
@@ -668,4 +668,4 @@
     "job-result": "Результат завдання",
     "job-state": "Стан завдання"
   }
-}
+}

+ 2 - 2
packages/admin-ui/src/lib/static/i18n-messages/zh_Hans.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "成功从分组\"{ groupName }\"中移除{customerCount}个客户",
     "remove-from-group": "从分组中移除",
     "search-customers-by-email": "输入要搜索的客户邮件地址",
-    "search-customers-by-last-name": "按姓搜索",
+    "search-customers-by-email-last-name-postal-code": "",
     "select-customer": "选择客户",
     "set-as-default-billing-address": "设置为默认账单地址",
     "set-as-default-shipping-address": "设置为默认邮寄地址",
@@ -668,4 +668,4 @@
     "job-result": "任务结果",
     "job-state": "任务状态"
   }
-}
+}

+ 2 - 2
packages/admin-ui/src/lib/static/i18n-messages/zh_Hant.json

@@ -309,7 +309,7 @@
     "remove-customers-from-group-success": "",
     "remove-from-group": "",
     "search-customers-by-email": "輸入要搜索的客户電郵地址",
-    "search-customers-by-last-name": "",
+    "search-customers-by-email-last-name-postal-code": "",
     "select-customer": "",
     "set-as-default-billing-address": "設定為默認賬單地址",
     "set-as-default-shipping-address": "設定為默認郵寄地址",
@@ -668,4 +668,4 @@
     "job-result": "",
     "job-state": ""
   }
-}
+}