64387: UploadBitstreamComponent intermediate commit

This commit is contained in:
Kristof De Langhe
2019-08-14 17:53:07 +02:00
parent 0ad505ba30
commit d1dbe49333
5 changed files with 66 additions and 1 deletions

View File

@@ -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.",

View File

@@ -0,0 +1,14 @@
<div class="container">
<div class="row">
<div class="form-row col-12">
<ng-container *ngVar="(bundleName$ | async) as bundleName">
<label for="bundleName">{{"item.bitstreams.upload.bundle-name" | translate}}</label>
<input id="bundleName"
[value]="bundleName ? bundleName : 'ORIGINAL'"
type="text"
class="form-control" />
</ng-container>
<ds-uploader [dropMsg]="'item.bitstreams.upload.drop-message' | translate"></ds-uploader>
</div>
</div>
</div>

View File

@@ -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<RemoteData<Item>>;
/**
* The name of the bundle to add the bitstream to
* Defaults to ORIGINAL
*/
bundleName$: Observable<string>;
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));
}
}

View File

@@ -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: [

View File

@@ -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,