Merge branch 'master' of ssh://dev.hostsharing.net:29418/hsadmin/hsadmin-ng

This commit is contained in:
Michael Hierweck 2019-04-03 14:29:48 +02:00
commit 31aafd3b86
11 changed files with 101 additions and 4 deletions

View File

@ -14,7 +14,6 @@ entity Contact {
email String required maxlength(80) email String required maxlength(80)
} }
enum CustomerContactRole { enum CustomerContactRole {
CONTRACTUAL, CONTRACTUAL,
TECHNICAL, TECHNICAL,

View File

@ -1,4 +1,5 @@
#H2 Server Properties #H2 Server Properties
#Wed Apr 03 13:36:25 CEST 2019
0=JHipster H2 (Memory)|org.h2.Driver|jdbc\:h2\:mem\:hsadminng|hsadminNg 0=JHipster H2 (Memory)|org.h2.Driver|jdbc\:h2\:mem\:hsadminng|hsadminNg
webAllowOthers=true webAllowOthers=true
webPort=8082 webPort=8082

View File

@ -57,7 +57,7 @@ spring:
hibernate.cache.use_query_cache: false hibernate.cache.use_query_cache: false
hibernate.generate_statistics: true hibernate.generate_statistics: true
liquibase: liquibase:
contexts: dev contexts: dev,sample-data
mail: mail:
host: localhost host: localhost
port: 25 port: 25

View File

@ -33,5 +33,17 @@
</createTable> </createTable>
</changeSet> </changeSet>
<changeSet id="20190402141612-2" author="mhoennig" context="sample-data">
<loadData encoding="UTF-8"
file="config/liquibase/sample-data/customers.csv"
separator=";"
tableName="customer">
<column name="id" type="numeric"/>
<column name="jhi_number" type="numeric"/>
<column name="prefix" type="string"/>
</loadData>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove--> <!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->
</databaseChangeLog> </databaseChangeLog>

View File

@ -37,5 +37,18 @@
</createTable> </createTable>
</changeSet> </changeSet>
<changeSet id="20190403083736-2" author="mhoennig" context="sample-data">
<loadData encoding="UTF-8"
file="config/liquibase/sample-data/contacts.csv"
separator=";"
tableName="contact">
<column name="id" type="numeric"/>
<column name="first_name" type="string"/>
<column name="last_name" type="string"/>
<column name="email" type="string"/>
</loadData>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove--> <!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->
</databaseChangeLog> </databaseChangeLog>

View File

@ -37,5 +37,18 @@
</createTable> </createTable>
</changeSet> </changeSet>
<changeSet id="20190403083737-2" author="mhoennig" context="sample-data">
<loadData encoding="UTF-8"
file="config/liquibase/sample-data/customer-contacts.csv"
separator=";"
tableName="customer_contact">
<column name="id" type="numeric"/>
<column name="customer" type="numeric"/>
<column name="role" type="string"/>
<column name="contact" type="numeric"/>
</loadData>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove--> <!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->
</databaseChangeLog> </databaseChangeLog>

View File

@ -0,0 +1,6 @@
id;first_name;last_name;email
1;Paule;Müller;paule.mueller@example.com
2;Helma;Schmidt;helma.schmidt@example.com
3;Vidi;Vitt;vidi.vitt@example.com
4;Saskia;Balder;saskia@balder.example.com
1 id first_name last_name email
2 1 Paule Müller paule.mueller@example.com
3 2 Helma Schmidt helma.schmidt@example.com
4 3 Vidi Vitt vidi.vitt@example.com
5 4 Saskia Balder saskia@balder.example.com

View File

@ -0,0 +1,8 @@
id;customer_id;jhi_role;contact_id
1;1;CONTRACTUAL;1
2;1;TECHNICAL;1
3;1;FINANCIAL;1
4;2;CONTRACTUAL;1
5;2;TECHNICAL;2
6;2;FINANCIAL;3
1 id customer_id jhi_role contact_id
2 1 1 CONTRACTUAL 1
3 2 1 TECHNICAL 1
4 3 1 FINANCIAL 1
5 4 2 CONTRACTUAL 1
6 5 2 TECHNICAL 2
7 6 2 FINANCIAL 3

View File

@ -0,0 +1,7 @@
id;jhi_number;prefix
1;10001;aaa
2;10002;bbb
3;10003;ccc
4;10004;ddd
5;10098;abc
6;10099;bca
1 id jhi_number prefix
2 1 10001 aaa
3 2 10002 bbb
4 3 10003 ccc
5 4 10004 ddd
6 5 10098 abc
7 6 10099 bca

View File

@ -19,6 +19,12 @@
<th jhiSortBy="prefix"><span jhiTranslate="hsadminNgApp.customer.prefix">Prefix</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="prefix"><span jhiTranslate="hsadminNgApp.customer.prefix">Prefix</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th></th> <th></th>
</tr> </tr>
<tr>
<th></th>
<th><input type="text" class="form-control" [(ngModel)]="filterValue.number" (keyup)="filter($event)"></th>
<th><input type="text" class="form-control" [(ngModel)]="filterValue.prefix" (keyup)="filter($event)"></th>
<th><button class="btn btn-primary float-left" (click)="resetFilter()">Reset Filter</button></th>
</tr>
</thead> </thead>
<tbody infinite-scroll (scrolled)="loadPage(page + 1)" [infiniteScrollDisabled]="page >= links['last']" [infiniteScrollDistance]="0"> <tbody infinite-scroll (scrolled)="loadPage(page + 1)" [infiniteScrollDisabled]="page >= links['last']" [infiniteScrollDistance]="0">
<tr *ngFor="let customer of customers ;trackBy: trackId"> <tr *ngFor="let customer of customers ;trackBy: trackId">

View File

@ -1,7 +1,7 @@
import { Component, OnInit, OnDestroy } from '@angular/core'; import { Component, OnInit, OnDestroy } from '@angular/core';
import { HttpErrorResponse, HttpHeaders, HttpResponse } from '@angular/common/http'; import { HttpErrorResponse, HttpHeaders, HttpResponse } from '@angular/common/http';
import { Subscription } from 'rxjs'; import { Subscription, Subject } from 'rxjs';
import { filter, map } from 'rxjs/operators'; import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
import { JhiEventManager, JhiParseLinks, JhiAlertService } from 'ng-jhipster'; import { JhiEventManager, JhiParseLinks, JhiAlertService } from 'ng-jhipster';
import { ICustomer } from 'app/shared/model/customer.model'; import { ICustomer } from 'app/shared/model/customer.model';
@ -24,6 +24,9 @@ export class CustomerComponent implements OnInit, OnDestroy {
predicate: any; predicate: any;
reverse: any; reverse: any;
totalItems: number; totalItems: number;
filterValue: any;
filterValueChanged = new Subject<string>();
subscription: Subscription;
constructor( constructor(
protected customerService: CustomerService, protected customerService: CustomerService,
@ -40,11 +43,25 @@ export class CustomerComponent implements OnInit, OnDestroy {
}; };
this.predicate = 'id'; this.predicate = 'id';
this.reverse = true; this.reverse = true;
this.resetFilter();
}
resetFilter() {
this.filterValue = {
number: null,
prefix: null
};
this.loadAll();
} }
loadAll() { loadAll() {
const criteria = {
...(this.filterValue.number && { 'number.equals': this.filterValue.number }),
...(this.filterValue.prefix && { 'prefix.contains': this.filterValue.prefix })
};
this.customerService this.customerService
.query({ .query({
...criteria,
page: this.page, page: this.page,
size: this.itemsPerPage, size: this.itemsPerPage,
sort: this.sort() sort: this.sort()
@ -55,6 +72,10 @@ export class CustomerComponent implements OnInit, OnDestroy {
); );
} }
filter($event) {
this.filterValueChanged.next($event.target.value);
}
reset() { reset() {
this.page = 0; this.page = 0;
this.customers = []; this.customers = [];
@ -72,6 +93,15 @@ export class CustomerComponent implements OnInit, OnDestroy {
this.currentAccount = account; this.currentAccount = account;
}); });
this.registerChangeInCustomers(); this.registerChangeInCustomers();
this.subscription = this.filterValueChanged
.pipe(
debounceTime(500),
distinctUntilChanged((previous: any, current: any) => previous === current)
)
.subscribe(() => {
this.loadAll();
});
} }
ngOnDestroy() { ngOnDestroy() {
@ -97,6 +127,8 @@ export class CustomerComponent implements OnInit, OnDestroy {
protected paginateCustomers(data: ICustomer[], headers: HttpHeaders) { protected paginateCustomers(data: ICustomer[], headers: HttpHeaders) {
this.links = this.parseLinks.parse(headers.get('link')); this.links = this.parseLinks.parse(headers.get('link'));
this.totalItems = parseInt(headers.get('X-Total-Count'), 10); this.totalItems = parseInt(headers.get('X-Total-Count'), 10);
this.page = 0;
this.customers = [];
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
this.customers.push(data[i]); this.customers.push(data[i]);
} }