mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
Switched to GET requests for Content Reports
This commit is contained in:
@@ -40,7 +40,7 @@ export class FilteredCollectionsComponent {
|
||||
|
||||
submit() {
|
||||
this
|
||||
.postFilteredCollections()
|
||||
.getFilteredCollections()
|
||||
.subscribe(
|
||||
response => {
|
||||
this.results.deserialize(response.payload);
|
||||
@@ -49,10 +49,42 @@ export class FilteredCollectionsComponent {
|
||||
);
|
||||
}
|
||||
|
||||
postFilteredCollections(): Observable<RawRestResponse> {
|
||||
getFilteredCollections(): Observable<RawRestResponse> {
|
||||
let params = this.toQueryString();
|
||||
if (params.length > 0) {
|
||||
params = "?" + params;
|
||||
}
|
||||
let scheme = environment.rest.ssl ? 'https' : 'http';
|
||||
let urlRestApp = `${scheme}://${environment.rest.host}:${environment.rest.port}${environment.rest.nameSpace}`;
|
||||
return this.restService.request(RestRequestMethod.GET, `${urlRestApp}/api/contentreport/filteredcollections${params}`);
|
||||
}
|
||||
|
||||
private toQueryString() : string {
|
||||
let params = FiltersComponent.toQueryString(this.queryForm.value['filters']);
|
||||
return params;
|
||||
}
|
||||
|
||||
/*
|
||||
downloadCsv() {
|
||||
this
|
||||
.postDownloadCsv()
|
||||
.subscribe(
|
||||
response => {
|
||||
// TODO: Ne fonctionne pas, le restService de DSpace attend un document JSON.
|
||||
const csv: any = response.payload;
|
||||
const blob = new Blob([csv], { type: 'text/csv' });
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
window.open(url);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
postDownloadCsv(): Observable<RawRestResponse> {
|
||||
let form = this.queryForm.value;
|
||||
let scheme = environment.rest.ssl ? 'https' : 'http';
|
||||
let urlRestApp = `${scheme}://${environment.rest.host}:${environment.rest.port}${environment.rest.nameSpace}`;
|
||||
return this.restService.request(RestRequestMethod.POST, `${urlRestApp}/api/contentreport/filteredcollections`, form);
|
||||
return this.restService.request(RestRequestMethod.POST, `${urlRestApp}/api/contentreport/filteredcollections/csv`, form);
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
@@ -280,7 +280,7 @@ export class FilteredItemsComponent {
|
||||
|
||||
resubmit() {
|
||||
this.results$ = this
|
||||
.postFilteredItems()
|
||||
.getFilteredItems()
|
||||
.pipe(
|
||||
map(response => {
|
||||
let offset = this.currentPage * this.pageSize();
|
||||
@@ -290,12 +290,46 @@ export class FilteredItemsComponent {
|
||||
);
|
||||
}
|
||||
|
||||
postFilteredItems(): Observable<RawRestResponse> {
|
||||
let form = this.queryForm.value;
|
||||
getFilteredItems(): Observable<RawRestResponse> {
|
||||
let params = this.toQueryString();
|
||||
if (params.length > 0) {
|
||||
params = "?" + params;
|
||||
}
|
||||
let scheme = environment.rest.ssl ? 'https' : 'http';
|
||||
let urlRestApp = `${scheme}://${environment.rest.host}:${environment.rest.port}${environment.rest.nameSpace}`;
|
||||
let urlRequest = `${urlRestApp}/api/contentreport/filtereditems?page=${this.currentPage}&size=${this.pageSize()}`;
|
||||
return this.restService.request(RestRequestMethod.POST, urlRequest, form);
|
||||
return this.restService.request(RestRequestMethod.GET, `${urlRestApp}/api/contentreport/filtereditems${params}`);
|
||||
}
|
||||
|
||||
private toQueryString() : string {
|
||||
let params = `page=${this.currentPage}&size=${this.pageSize()}`;
|
||||
|
||||
let colls = this.queryForm.value['collections'];
|
||||
for (const coll in colls) {
|
||||
params += `&collections=${colls[coll]}`;
|
||||
}
|
||||
|
||||
let preds = this.queryForm.value['queryPredicates'];
|
||||
for (const pred in preds) {
|
||||
const field = preds[pred].field;
|
||||
const op = preds[pred].operator;
|
||||
const value = preds[pred].value;
|
||||
params += `&queryPredicates=${field}:${op}`;
|
||||
if (value) {
|
||||
params += `:${value}`;
|
||||
}
|
||||
}
|
||||
|
||||
let filters = FiltersComponent.toQueryString(this.queryForm.value['filters']);
|
||||
if (filters.length > 0) {
|
||||
params += `&${filters}`;
|
||||
}
|
||||
|
||||
let addFlds = this.queryForm.value['additionalFields'];
|
||||
for (const fld in addFlds) {
|
||||
params += `&additionalFields=${addFlds[fld]}`;
|
||||
}
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -126,4 +126,20 @@ export class FiltersComponent {
|
||||
this.setAllFilters(false);
|
||||
}
|
||||
|
||||
static toQueryString(filters: Object): string {
|
||||
let params = '';
|
||||
let first = true;
|
||||
for (const key in filters) {
|
||||
if (filters[key]) {
|
||||
if (first) {
|
||||
first = false;
|
||||
} else {
|
||||
params += '&';
|
||||
}
|
||||
params += `filters=${key}`;
|
||||
}
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user