Fixes bug on load more both dmps and datasets
This commit is contained in:
parent
f3c1244600
commit
3844c3a187
|
@ -12,3 +12,17 @@ export class DataTableRequest<T> extends RequestItem<T> {
|
||||||
this.orderings = orderings;
|
this.orderings = orderings;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class DataTableMultiTypeRequest<T> extends RequestItem<T> {
|
||||||
|
dmpOffset = 0;
|
||||||
|
datasetOffset = 0;
|
||||||
|
length = 0;
|
||||||
|
public orderings: ColumnOrdering;
|
||||||
|
constructor(dmpOffset: number, datasetOffset: number, length: number, orderings: ColumnOrdering) {
|
||||||
|
super();
|
||||||
|
this.length = length;
|
||||||
|
this.dmpOffset = dmpOffset;
|
||||||
|
this.datasetOffset = datasetOffset;
|
||||||
|
this.orderings = orderings;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { BaseHttpService } from '../http/base-http.service';
|
||||||
import { ConfigurationService } from '../configuration/configuration.service';
|
import { ConfigurationService } from '../configuration/configuration.service';
|
||||||
import { RecentActivityModel } from '@app/core/model/recent-activity/recent-activity.model';
|
import { RecentActivityModel } from '@app/core/model/recent-activity/recent-activity.model';
|
||||||
import { RecentActivityCriteria } from '@app/core/query/recent-activity/recent-activity-criteria';
|
import { RecentActivityCriteria } from '@app/core/query/recent-activity/recent-activity-criteria';
|
||||||
import { DataTableRequest } from '@app/core/model/data-table/data-table-request';
|
import { DataTableRequest, DataTableMultiTypeRequest } from '@app/core/model/data-table/data-table-request';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class DashboardService {
|
export class DashboardService {
|
||||||
|
@ -28,7 +28,7 @@ export class DashboardService {
|
||||||
return this.http.get<DashboardStatisticsModel>(this.actionUrl + 'me/getStatistics', { headers: this.headers });
|
return this.http.get<DashboardStatisticsModel>(this.actionUrl + 'me/getStatistics', { headers: this.headers });
|
||||||
}
|
}
|
||||||
|
|
||||||
getRecentActivity(request: DataTableRequest<RecentActivityCriteria>): Observable<RecentActivityModel[]> {
|
getRecentActivity(request: DataTableMultiTypeRequest<RecentActivityCriteria>): Observable<RecentActivityModel[]> {
|
||||||
return this.http.post<RecentActivityModel[]>(this.actionUrl + 'recentActivity', request, {headers: this.headers});
|
return this.http.post<RecentActivityModel[]>(this.actionUrl + 'recentActivity', request, {headers: this.headers});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { MatDialog } from '@angular/material';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { RecentActivityType } from '@app/core/common/enum/recent-activity-type';
|
import { RecentActivityType } from '@app/core/common/enum/recent-activity-type';
|
||||||
import { Principal } from '@app/core/model/auth/principal';
|
import { Principal } from '@app/core/model/auth/principal';
|
||||||
import { DataTableRequest } from '@app/core/model/data-table/data-table-request';
|
import { DataTableRequest, DataTableMultiTypeRequest } from '@app/core/model/data-table/data-table-request';
|
||||||
import { DmpListingModel } from '@app/core/model/dmp/dmp-listing';
|
import { DmpListingModel } from '@app/core/model/dmp/dmp-listing';
|
||||||
import { DmpCriteria } from '@app/core/query/dmp/dmp-criteria';
|
import { DmpCriteria } from '@app/core/query/dmp/dmp-criteria';
|
||||||
import { AuthService } from '@app/core/services/auth/auth.service';
|
import { AuthService } from '@app/core/services/auth/auth.service';
|
||||||
|
@ -45,6 +45,8 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
||||||
isDraft: boolean;
|
isDraft: boolean;
|
||||||
totalCount: number;
|
totalCount: number;
|
||||||
startIndex: number = 0;
|
startIndex: number = 0;
|
||||||
|
dmpOffset: number = 0;
|
||||||
|
datasetOffset: number = 0;
|
||||||
pageSize: number = 5;
|
pageSize: number = 5;
|
||||||
public formGroup = new FormBuilder().group({
|
public formGroup = new FormBuilder().group({
|
||||||
like: new FormControl(),
|
like: new FormControl(),
|
||||||
|
@ -71,7 +73,7 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
||||||
if (this.isAuthenticated()) {
|
if (this.isAuthenticated()) {
|
||||||
const fields: Array<string> = [];
|
const fields: Array<string> = [];
|
||||||
// const fields: Array<string> = ["-modified"];
|
// const fields: Array<string> = ["-modified"];
|
||||||
const allDataTableRequest: DataTableRequest<RecentActivityCriteria> = new DataTableRequest(0, 5, { fields: fields });
|
const allDataTableRequest: DataTableMultiTypeRequest<RecentActivityCriteria> = new DataTableMultiTypeRequest(0, 0, 5, { fields: fields });
|
||||||
allDataTableRequest.criteria = new RecentActivityCriteria();
|
allDataTableRequest.criteria = new RecentActivityCriteria();
|
||||||
allDataTableRequest.criteria.like = "";
|
allDataTableRequest.criteria.like = "";
|
||||||
this.formGroup.get('order').setValue(this.order.MODIFIED);
|
this.formGroup.get('order').setValue(this.order.MODIFIED);
|
||||||
|
@ -80,6 +82,13 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
||||||
.getRecentActivity(allDataTableRequest)
|
.getRecentActivity(allDataTableRequest)
|
||||||
.subscribe(response => {
|
.subscribe(response => {
|
||||||
this.allRecentActivities = response;
|
this.allRecentActivities = response;
|
||||||
|
this.allRecentActivities.forEach(recentActivity => {
|
||||||
|
if (recentActivity.type === RecentActivityType.Dataset) {
|
||||||
|
this.datasetOffset = this.datasetOffset + 1;
|
||||||
|
} else if (recentActivity.type === RecentActivityType.Dmp) {
|
||||||
|
this.dmpOffset = this.dmpOffset + 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
this.totalCountRecentEdited.emit(this.allRecentActivities.length);
|
this.totalCountRecentEdited.emit(this.allRecentActivities.length);
|
||||||
});
|
});
|
||||||
this.formGroup.get('like').valueChanges
|
this.formGroup.get('like').valueChanges
|
||||||
|
@ -395,7 +404,7 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
||||||
const fields: Array<string> = [];
|
const fields: Array<string> = [];
|
||||||
// const fields: Array<string> = ["-modified"];
|
// const fields: Array<string> = ["-modified"];
|
||||||
this.startIndex = 0;
|
this.startIndex = 0;
|
||||||
const allDataTableRequest: DataTableRequest<RecentActivityCriteria> = new DataTableRequest(0, this.pageSize, { fields: fields });
|
const allDataTableRequest: DataTableMultiTypeRequest<RecentActivityCriteria> = new DataTableMultiTypeRequest(0, 0, this.pageSize, { fields: fields });
|
||||||
allDataTableRequest.criteria = new RecentActivityCriteria();
|
allDataTableRequest.criteria = new RecentActivityCriteria();
|
||||||
allDataTableRequest.criteria.like = this.formGroup.get("like").value;
|
allDataTableRequest.criteria.like = this.formGroup.get("like").value;
|
||||||
allDataTableRequest.criteria.order = this.formGroup.get("order").value;
|
allDataTableRequest.criteria.order = this.formGroup.get("order").value;
|
||||||
|
@ -403,21 +412,36 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
||||||
.getRecentActivity(allDataTableRequest)
|
.getRecentActivity(allDataTableRequest)
|
||||||
.subscribe(response => {
|
.subscribe(response => {
|
||||||
this.allRecentActivities = response;
|
this.allRecentActivities = response;
|
||||||
|
this.allRecentActivities.forEach(recentActivity => {
|
||||||
|
if (recentActivity.type === RecentActivityType.Dataset) {
|
||||||
|
this.datasetOffset = this.datasetOffset + 1;
|
||||||
|
} else if (recentActivity.type === RecentActivityType.Dmp) {
|
||||||
|
this.dmpOffset = this.dmpOffset + 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
this.totalCountRecentEdited.emit(this.allRecentActivities.length);
|
this.totalCountRecentEdited.emit(this.allRecentActivities.length);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public loadMore() {
|
public loadMore() {
|
||||||
this.startIndex = this.startIndex + this.pageSize;
|
this.dmpOffset = this.dmpOffset + this.pageSize;
|
||||||
|
this.datasetOffset = this.datasetOffset + this.pageSize;
|
||||||
const fields: Array<string> = [];
|
const fields: Array<string> = [];
|
||||||
// const fields: Array<string> = ["-modified"];
|
// const fields: Array<string> = ["-modified"];
|
||||||
const request = new DataTableRequest<RecentActivityCriteria>(this.startIndex, this.pageSize, { fields: fields });
|
const request = new DataTableMultiTypeRequest<RecentActivityCriteria>(this.dmpOffset, this.datasetOffset, this.pageSize, { fields: fields });
|
||||||
request.criteria = new RecentActivityCriteria();
|
request.criteria = new RecentActivityCriteria();
|
||||||
request.criteria.like = this.formGroup.get("like").value ? this.formGroup.get("like").value : "";
|
request.criteria.like = this.formGroup.get("like").value ? this.formGroup.get("like").value : "";
|
||||||
request.criteria.order = this.formGroup.get("order").value;
|
request.criteria.order = this.formGroup.get("order").value;
|
||||||
|
|
||||||
this.dashboardService.getRecentActivity(request).pipe(takeUntil(this._destroyed)).subscribe(result => {
|
this.dashboardService.getRecentActivity(request).pipe(takeUntil(this._destroyed)).subscribe(result => {
|
||||||
if (!result) { return []; }
|
if (!result) { return []; }
|
||||||
|
result.forEach(recentActivity => {
|
||||||
|
if (recentActivity.type === RecentActivityType.Dataset) {
|
||||||
|
this.datasetOffset = this.datasetOffset + 1;
|
||||||
|
} else if (recentActivity.type === RecentActivityType.Dmp) {
|
||||||
|
this.dmpOffset = this.dmpOffset + 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
this.allRecentActivities = this.allRecentActivities.concat(result);
|
this.allRecentActivities = this.allRecentActivities.concat(result);
|
||||||
this.totalCountRecentEdited.emit(this.allRecentActivities.length);
|
this.totalCountRecentEdited.emit(this.allRecentActivities.length);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue