model added
This commit is contained in:
parent
731ee97b76
commit
a6781699e8
|
@ -0,0 +1,9 @@
|
||||||
|
import { Item } from "./item.model";
|
||||||
|
|
||||||
|
export class ItemWrapper {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
public item: Item
|
||||||
|
){}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
import {Content, LastAction } from "./model";
|
||||||
|
|
||||||
|
export class Item {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
public name: string,
|
||||||
|
public path: string,
|
||||||
|
public parentId: string,
|
||||||
|
public parentPath: String,
|
||||||
|
public primaryType: String,
|
||||||
|
public trashed: boolean,
|
||||||
|
public externalManaged: boolean,
|
||||||
|
public shared: boolean,
|
||||||
|
public locked: boolean,
|
||||||
|
public publicItem: boolean,
|
||||||
|
public title: string,
|
||||||
|
public description: string,
|
||||||
|
public lastModifiedBy: string,
|
||||||
|
public lastModificationTime: number,
|
||||||
|
public creationTime: number,
|
||||||
|
public lastAction: LastAction,
|
||||||
|
public hidden: boolean,
|
||||||
|
public accounting: null,
|
||||||
|
public id: string,
|
||||||
|
public content?: Content | undefined,
|
||||||
|
public externalRoot?: boolean | undefined,
|
||||||
|
public privilege?: null | undefined,
|
||||||
|
public vreFolder?: boolean | undefined,
|
||||||
|
public displayName?: string | undefined) {}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
import { ItemWrapper } from "./item-wrapper.model";
|
||||||
|
import { Item } from "./item.model";
|
||||||
|
|
||||||
|
|
||||||
|
export class ItemList {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
public itemlist :Item[]
|
||||||
|
) {}
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*export interface Items {
|
||||||
|
itemlist: Item[];
|
||||||
|
}*/
|
||||||
|
|
||||||
|
export interface AbstractItem {
|
||||||
|
content?: Content;
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
path: string;
|
||||||
|
parentId: string;
|
||||||
|
parentPath: String;
|
||||||
|
primaryType: String;
|
||||||
|
trashed: boolean;
|
||||||
|
externalManaged: boolean;
|
||||||
|
shared: boolean;
|
||||||
|
locked: boolean;
|
||||||
|
publicItem: boolean;
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
lastModifiedBy: string;
|
||||||
|
lastModificationTime: number;
|
||||||
|
creationTime: number;
|
||||||
|
lastAction: LastAction;
|
||||||
|
hidden: boolean;
|
||||||
|
accounting: null;
|
||||||
|
externalRoot?: boolean;
|
||||||
|
privilege?: null;
|
||||||
|
vreFolder?: boolean;
|
||||||
|
displayName?: string;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Content {
|
||||||
|
size: number;
|
||||||
|
data: string;
|
||||||
|
remotePath: string;
|
||||||
|
mimeType: string;
|
||||||
|
storageId: string;
|
||||||
|
managedBy: String;
|
||||||
|
numberOfPages?: number;
|
||||||
|
version?: string;
|
||||||
|
author?: string;
|
||||||
|
title?: string;
|
||||||
|
producer?: string;
|
||||||
|
width?: number;
|
||||||
|
height?: number;
|
||||||
|
thumbnailWidth?: number;
|
||||||
|
thumbnailHeight?: number;
|
||||||
|
thumbnailData?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum LastAction {
|
||||||
|
Cloned = "CLONED",
|
||||||
|
Created = "CREATED",
|
||||||
|
Moved = "MOVED",
|
||||||
|
Renamed = "RENAMED",
|
||||||
|
Updated = "UPDATED",
|
||||||
|
}
|
||||||
|
|
|
@ -43,13 +43,7 @@ export class ShowFolderComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
loadDocuments() {
|
loadDocuments() {
|
||||||
this.plt.ready().then(() => {
|
|
||||||
this.storagehub.getTrashRoot().toPromise().then(res => {
|
|
||||||
this.items = JSON.parse(res).itemlist;
|
|
||||||
if (!this.items)
|
|
||||||
this.items = [];
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,12 @@ import { Injectable } from '@angular/core';
|
||||||
|
|
||||||
import { HttpClient } from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import { Observable, of, throwError } from 'rxjs';
|
import { Observable, of, throwError } from 'rxjs';
|
||||||
import { catchError, retry } from 'rxjs/operators';
|
import { catchError, map, retry, switchMap } from 'rxjs/operators';
|
||||||
|
import { HttpErrorResponse } from 'node-angular-http-client';
|
||||||
|
import { Item } from './model/item.model';
|
||||||
|
import { ItemList } from './model/itemlist.model';
|
||||||
|
import { ItemWrapper } from './model/item-wrapper.model';
|
||||||
|
|
||||||
|
|
||||||
const token = "b7c80297-e4ed-42ab-ab42-fdc0b8b0eabf-98187548";
|
const token = "b7c80297-e4ed-42ab-ab42-fdc0b8b0eabf-98187548";
|
||||||
const shURL = "https://workspace-repository.dev.d4science.org/storagehub/workspace/";
|
const shURL = "https://workspace-repository.dev.d4science.org/storagehub/workspace/";
|
||||||
|
@ -10,17 +15,21 @@ const shURL = "https://workspace-repository.dev.d4science.org/storagehub/workspa
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class StoragehubService {
|
export class StoragehubService {
|
||||||
|
constructor(private http: HttpClient) {
|
||||||
constructor(private http: HttpClient) { }
|
}
|
||||||
|
|
||||||
|
|
||||||
getWsRoot(): Observable<any> {
|
getWsRoot(): Observable<any> {
|
||||||
const getWsURL = `${shURL}?gcube-token=${token}&exclude=hl:accounting`;
|
const getWsURL = `${shURL}?gcube-token=${token}&exclude=hl:accounting`;
|
||||||
return this.http.get(getWsURL, {observe: 'body', responseType: 'text'});
|
return this.http.get(getWsURL, {observe: 'body', responseType: 'text'});
|
||||||
}
|
}
|
||||||
|
|
||||||
getTrashRoot(): Observable<any> {
|
getTrashRoot(): Observable<Item> {
|
||||||
const getTrashURL = `${shURL}trash/?gcube-token=${token}&exclude=hl:accounting`;
|
const getTrashURL = `${shURL}trash/?gcube-token=${token}&exclude=hl:accounting`;
|
||||||
return this.http.get(getTrashURL, {observe: 'body', responseType: 'text'});
|
return this.http.get<ItemWrapper>(getTrashURL, {observe: "body", responseType: "json"}).pipe(
|
||||||
|
map(value => value.item),
|
||||||
|
catchError(this.error)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getVres(): Observable<any> {
|
getVres(): Observable<any> {
|
||||||
|
@ -28,11 +37,15 @@ export class StoragehubService {
|
||||||
return this.http.get(getVresURL, {observe: 'body', responseType: 'text'});
|
return this.http.get(getVresURL, {observe: 'body', responseType: 'text'});
|
||||||
}
|
}
|
||||||
|
|
||||||
getChildren(id:string, onlyFolder:boolean): Observable<any>{
|
getChildren(id:string, onlyFolder:boolean): Observable<Item[]>{
|
||||||
let getWsURL = `${shURL}items/${id}/children?gcube-token=${token}&exclude=hl:accounting`;
|
let getWsURL = `${shURL}items/${id}/children?gcube-token=${token}&exclude=hl:accounting`;
|
||||||
if (onlyFolder)
|
if (onlyFolder)
|
||||||
getWsURL += '&onlyType=nthl:workspaceItem';
|
getWsURL += '&onlyType=nthl:workspaceItem';
|
||||||
return this.http.get(getWsURL, {observe: 'body', responseType: 'text'});
|
console.log("requested resource is "+id);
|
||||||
|
return this.http.get<ItemList>(getWsURL).pipe(
|
||||||
|
map(values => values.itemlist),
|
||||||
|
catchError(this.error)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAnchestor(id:string): Observable<any>{
|
getAnchestor(id:string): Observable<any>{
|
||||||
|
@ -41,4 +54,17 @@ export class StoragehubService {
|
||||||
return this.http.get(getWsURL, {observe: 'body', responseType: 'text'});
|
return this.http.get(getWsURL, {observe: 'body', responseType: 'text'});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
error(error: HttpErrorResponse) {
|
||||||
|
let errorMessage = '';
|
||||||
|
if (error.error instanceof ErrorEvent) {
|
||||||
|
errorMessage = error.error.message;
|
||||||
|
} else {
|
||||||
|
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
|
||||||
|
}
|
||||||
|
console.log(errorMessage);
|
||||||
|
return throwError(() => {
|
||||||
|
return errorMessage;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,35 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { lastValueFrom } from 'rxjs';
|
||||||
|
import { Item } from '../model/item.model';
|
||||||
|
import { StoragehubService } from '../storagehub.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-trash',
|
selector: 'app-trash',
|
||||||
templateUrl: 'trash.page.html',
|
templateUrl: 'trash.page.html',
|
||||||
styleUrls: ['trash.page.scss']
|
styleUrls: ['trash.page.scss'],
|
||||||
|
providers: [StoragehubService],
|
||||||
})
|
})
|
||||||
export class TrashPage {
|
|
||||||
|
|
||||||
constructor() {}
|
|
||||||
|
export class TrashPage implements OnInit{
|
||||||
|
|
||||||
|
values : Item[] = [];
|
||||||
|
|
||||||
|
constructor(private storagehub: StoragehubService) {}
|
||||||
|
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.storagehub.getTrashRoot().subscribe(
|
||||||
|
(res) => this.onSuccess(res)
|
||||||
|
);
|
||||||
|
console.log("values "+this.values);
|
||||||
|
}
|
||||||
|
|
||||||
|
private onSuccess(res: Item){
|
||||||
|
|
||||||
|
this.storagehub.getChildren(res.id, false).subscribe(
|
||||||
|
(res) => this.values = res
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue