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;
|
||||
}
|
||||
}
|
||||
|
||||
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 { RecentActivityModel } from '@app/core/model/recent-activity/recent-activity.model';
|
||||
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()
|
||||
export class DashboardService {
|
||||
|
@ -28,7 +28,7 @@ export class DashboardService {
|
|||
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});
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ import { MatDialog } from '@angular/material';
|
|||
import { Router } from '@angular/router';
|
||||
import { RecentActivityType } from '@app/core/common/enum/recent-activity-type';
|
||||
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 { DmpCriteria } from '@app/core/query/dmp/dmp-criteria';
|
||||
import { AuthService } from '@app/core/services/auth/auth.service';
|
||||
|
@ -45,6 +45,8 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
|||
isDraft: boolean;
|
||||
totalCount: number;
|
||||
startIndex: number = 0;
|
||||
dmpOffset: number = 0;
|
||||
datasetOffset: number = 0;
|
||||
pageSize: number = 5;
|
||||
public formGroup = new FormBuilder().group({
|
||||
like: new FormControl(),
|
||||
|
@ -71,7 +73,7 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
|||
if (this.isAuthenticated()) {
|
||||
const fields: Array<string> = [];
|
||||
// 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.like = "";
|
||||
this.formGroup.get('order').setValue(this.order.MODIFIED);
|
||||
|
@ -80,6 +82,13 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
|||
.getRecentActivity(allDataTableRequest)
|
||||
.subscribe(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.formGroup.get('like').valueChanges
|
||||
|
@ -395,7 +404,7 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
|||
const fields: Array<string> = [];
|
||||
// const fields: Array<string> = ["-modified"];
|
||||
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.like = this.formGroup.get("like").value;
|
||||
allDataTableRequest.criteria.order = this.formGroup.get("order").value;
|
||||
|
@ -403,21 +412,36 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
|
|||
.getRecentActivity(allDataTableRequest)
|
||||
.subscribe(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);
|
||||
});
|
||||
}
|
||||
|
||||
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> = ["-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.like = this.formGroup.get("like").value ? this.formGroup.get("like").value : "";
|
||||
request.criteria.order = this.formGroup.get("order").value;
|
||||
|
||||
this.dashboardService.getRecentActivity(request).pipe(takeUntil(this._destroyed)).subscribe(result => {
|
||||
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.totalCountRecentEdited.emit(this.allRecentActivities.length);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue