From d1dbe49333a3571d3d2eb764076c5d66d34a139c Mon Sep 17 00:00:00 2001 From: Kristof De Langhe Date: Wed, 14 Aug 2019 17:53:07 +0200 Subject: [PATCH] 64387: UploadBitstreamComponent intermediate commit --- resources/i18n/en.json | 2 + .../upload/upload-bitstream.component.html | 14 +++++++ .../upload/upload-bitstream.component.ts | 37 +++++++++++++++++++ .../+item-page/item-page-routing.module.ts | 10 +++++ src/app/+item-page/item-page.module.ts | 4 +- 5 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 src/app/+item-page/bitstreams/upload/upload-bitstream.component.html create mode 100644 src/app/+item-page/bitstreams/upload/upload-bitstream.component.ts diff --git a/resources/i18n/en.json b/resources/i18n/en.json index 63bc598304..59a155cb22 100644 --- a/resources/i18n/en.json +++ b/resources/i18n/en.json @@ -175,6 +175,8 @@ "home.title": "DSpace Angular :: Home", "home.top-level-communities.head": "Communities in DSpace", "home.top-level-communities.help": "Select a community to browse its collections.", + "item.bitstreams.upload.bundle-name": "Bundle Name", + "item.bitstreams.upload.drop-message": "Drop a file to upload", "item.edit.delete.cancel": "Cancel", "item.edit.delete.confirm": "Delete", "item.edit.delete.description": "Are you sure this item should be completely deleted? Caution: At present, no tombstone would be left.", diff --git a/src/app/+item-page/bitstreams/upload/upload-bitstream.component.html b/src/app/+item-page/bitstreams/upload/upload-bitstream.component.html new file mode 100644 index 0000000000..7bb855c75c --- /dev/null +++ b/src/app/+item-page/bitstreams/upload/upload-bitstream.component.html @@ -0,0 +1,14 @@ +
+
+
+ + + + + +
+
+
diff --git a/src/app/+item-page/bitstreams/upload/upload-bitstream.component.ts b/src/app/+item-page/bitstreams/upload/upload-bitstream.component.ts new file mode 100644 index 0000000000..b373a28910 --- /dev/null +++ b/src/app/+item-page/bitstreams/upload/upload-bitstream.component.ts @@ -0,0 +1,37 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { Observable } from 'rxjs/internal/Observable'; +import { RemoteData } from '../../../core/data/remote-data'; +import { Item } from '../../../core/shared/item.model'; +import { map } from 'rxjs/operators'; +import { ActivatedRoute, Router } from '@angular/router'; + +@Component({ + selector: 'ds-upload-bitstream', + templateUrl: './upload-bitstream.component.html', + changeDetection: ChangeDetectionStrategy.OnPush +}) +/** + * Page component for uploading a bitstream to an item + */ +export class UploadBitstreamComponent implements OnInit { + + /** + * The item to upload a bitstream to + */ + itemRD$: Observable>; + + /** + * The name of the bundle to add the bitstream to + * Defaults to ORIGINAL + */ + bundleName$: Observable; + + constructor(private route: ActivatedRoute) { + } + + ngOnInit(): void { + this.itemRD$ = this.route.data.pipe(map((data) => data.item)); + this.bundleName$ = this.route.queryParams.pipe(map((params) => params.bundleName)); + } + +} diff --git a/src/app/+item-page/item-page-routing.module.ts b/src/app/+item-page/item-page-routing.module.ts index ec562842aa..b95459674f 100644 --- a/src/app/+item-page/item-page-routing.module.ts +++ b/src/app/+item-page/item-page-routing.module.ts @@ -7,6 +7,7 @@ import { ItemPageResolver } from './item-page.resolver'; import { URLCombiner } from '../core/url-combiner/url-combiner'; import { getItemModulePath } from '../app-routing.module'; import { AuthenticatedGuard } from '../core/auth/authenticated.guard'; +import { UploadBitstreamComponent } from './bitstreams/upload/upload-bitstream.component'; export function getItemPageRoute(itemId: string) { return new URLCombiner(getItemModulePath(), itemId).toString(); @@ -16,6 +17,7 @@ export function getItemEditPath(id: string) { } const ITEM_EDIT_PATH = ':id/edit'; +const UPLOAD_BITSTREAM_PATH = ':id/bitstreams/new'; @NgModule({ imports: [ @@ -40,6 +42,14 @@ const ITEM_EDIT_PATH = ':id/edit'; loadChildren: './edit-item-page/edit-item-page.module#EditItemPageModule', canActivate: [AuthenticatedGuard] }, + { + path: UPLOAD_BITSTREAM_PATH, + component: UploadBitstreamComponent, + resolve: { + item: ItemPageResolver + }, + canActivate: [AuthenticatedGuard] + } ]) ], providers: [ diff --git a/src/app/+item-page/item-page.module.ts b/src/app/+item-page/item-page.module.ts index 6743028b6c..b67bf12fd0 100644 --- a/src/app/+item-page/item-page.module.ts +++ b/src/app/+item-page/item-page.module.ts @@ -26,6 +26,7 @@ import { MetadataRepresentationListComponent } from './simple/metadata-represent import { RelatedEntitiesSearchComponent } from './simple/related-entities/related-entities-search/related-entities-search.component'; import { MetadataValuesComponent } from './field-components/metadata-values/metadata-values.component'; import { MetadataFieldWrapperComponent } from './field-components/metadata-field-wrapper/metadata-field-wrapper.component'; +import { UploadBitstreamComponent } from './bitstreams/upload/upload-bitstream.component'; @NgModule({ imports: [ @@ -53,7 +54,8 @@ import { MetadataFieldWrapperComponent } from './field-components/metadata-field ItemComponent, GenericItemPageFieldComponent, MetadataRepresentationListComponent, - RelatedEntitiesSearchComponent + RelatedEntitiesSearchComponent, + UploadBitstreamComponent ], exports: [ ItemComponent,