From 5b036e84e1e8718d7f43da607f346995f665f6db Mon Sep 17 00:00:00 2001 From: Alessandro Martelli Date: Thu, 2 Sep 2021 13:30:13 +0200 Subject: [PATCH 01/85] [CST-4499] Version history module (WIP) --- .../edit-item-page/edit-item-page.module.ts | 2 - .../edit-item-page.routing.module.ts | 5 ++- .../item-version-history-edit.component.html | 1 + .../item-version-history-edit.component.scss | 0 ...tem-version-history-edit.component.spec.ts | 25 ++++++++++++ .../item-version-history-edit.component.ts | 20 ++++++++++ .../item-version-history.component.html | 0 .../item-version-history.component.spec.ts | 6 +-- .../item-version-history.component.ts | 10 ++--- .../version-history/version-history.module.ts | 20 ++++++++++ .../version-history.routing.module.ts | 40 +++++++++++++++++++ 11 files changed, 117 insertions(+), 12 deletions(-) create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.html create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.scss create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.spec.ts create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.ts rename src/app/item-page/edit-item-page/{ => version-history}/item-version-history/item-version-history.component.html (100%) rename src/app/item-page/edit-item-page/{ => version-history}/item-version-history/item-version-history.component.spec.ts (87%) rename src/app/item-page/edit-item-page/{ => version-history}/item-version-history/item-version-history.component.ts (61%) create mode 100644 src/app/item-page/edit-item-page/version-history/version-history.module.ts create mode 100644 src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts diff --git a/src/app/item-page/edit-item-page/edit-item-page.module.ts b/src/app/item-page/edit-item-page/edit-item-page.module.ts index 11b1d585ba..6b12603fc2 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.module.ts @@ -28,7 +28,6 @@ import { DragDropModule } from '@angular/cdk/drag-drop'; import { ItemEditBitstreamDragHandleComponent } from './item-bitstreams/item-edit-bitstream-drag-handle/item-edit-bitstream-drag-handle.component'; import { PaginatedDragAndDropBitstreamListComponent } from './item-bitstreams/item-edit-bitstream-bundle/paginated-drag-and-drop-bitstream-list/paginated-drag-and-drop-bitstream-list.component'; import { VirtualMetadataComponent } from './virtual-metadata/virtual-metadata.component'; -import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; import { ItemAuthorizationsComponent } from './item-authorizations/item-authorizations.component'; import { ObjectValuesPipe } from '../../shared/utils/object-values-pipe'; @@ -57,7 +56,6 @@ import { ObjectValuesPipe } from '../../shared/utils/object-values-pipe'; ItemMetadataComponent, ItemRelationshipsComponent, ItemBitstreamsComponent, - ItemVersionHistoryComponent, EditInPlaceFieldComponent, ItemEditBitstreamComponent, ItemEditBitstreamBundleComponent, diff --git a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts index 2535e42216..26327f9fcc 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts @@ -13,7 +13,6 @@ import { ItemCollectionMapperComponent } from './item-collection-mapper/item-col import { ItemMoveComponent } from './item-move/item-move.component'; import { ItemRelationshipsComponent } from './item-relationships/item-relationships.component'; import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver'; -import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; import { ItemAuthorizationsComponent } from './item-authorizations/item-authorizations.component'; import { ResourcePolicyTargetResolver } from '../../shared/resource-policies/resolvers/resource-policy-target.resolver'; import { ResourcePolicyResolver } from '../../shared/resource-policies/resolvers/resource-policy.resolver'; @@ -44,6 +43,7 @@ import { ItemPageCollectionMapperGuard } from './item-page-collection-mapper.gua */ @NgModule({ imports: [ + // items//edit/''/public RouterModule.forChild([ { path: '', @@ -99,7 +99,8 @@ import { ItemPageCollectionMapperGuard } from './item-page-collection-mapper.gua }, */ { path: 'versionhistory', - component: ItemVersionHistoryComponent, + loadChildren: () => import('./version-history/version-history.module') + .then((m) => m.VersionHistoryModule), data: { title: 'item.edit.tabs.versionhistory.title', showBreadcrumbs: true }, canActivate: [ItemPageVersionHistoryGuard] }, diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.html b/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.html new file mode 100644 index 0000000000..1a5dabc17e --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.html @@ -0,0 +1 @@ +{{ versionId }} diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.scss b/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.spec.ts b/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.spec.ts new file mode 100644 index 0000000000..f31d0cb539 --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ItemVersionHistoryEditComponent } from './item-version-history-edit.component'; + +describe('ItemVersionHistoryCreateComponent', () => { + let component: ItemVersionHistoryEditComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ItemVersionHistoryEditComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ItemVersionHistoryEditComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.ts b/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.ts new file mode 100644 index 0000000000..22b855d2e9 --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.ts @@ -0,0 +1,20 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router'; + +@Component({ + selector: 'ds-item-version-history-edit', + templateUrl: './item-version-history-edit.component.html', + styleUrls: ['./item-version-history-edit.component.scss'] +}) +export class ItemVersionHistoryEditComponent implements OnInit { + + versionId; + + constructor(private route: ActivatedRoute) { } + + ngOnInit(): void { + + this.versionId = this.route.snapshot.params.versionId; + } + +} diff --git a/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.html b/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.html similarity index 100% rename from src/app/item-page/edit-item-page/item-version-history/item-version-history.component.html rename to src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.html diff --git a/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.spec.ts b/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.spec.ts similarity index 87% rename from src/app/item-page/edit-item-page/item-version-history/item-version-history.component.spec.ts rename to src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.spec.ts index c68dcfeba3..6806decbf6 100644 --- a/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.spec.ts +++ b/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.spec.ts @@ -1,13 +1,13 @@ import { ItemVersionHistoryComponent } from './item-version-history.component'; import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; -import { VarDirective } from '../../../shared/utils/var.directive'; +import { VarDirective } from '../../../../shared/utils/var.directive'; import { RouterTestingModule } from '@angular/router/testing'; import { TranslateModule } from '@ngx-translate/core'; import { NO_ERRORS_SCHEMA } from '@angular/core'; -import { Item } from '../../../core/shared/item.model'; +import { Item } from '../../../../core/shared/item.model'; import { ActivatedRoute } from '@angular/router'; import { of as observableOf } from 'rxjs'; -import { createSuccessfulRemoteDataObject } from '../../../shared/remote-data.utils'; +import { createSuccessfulRemoteDataObject } from '../../../../shared/remote-data.utils'; describe('ItemVersionHistoryComponent', () => { let component: ItemVersionHistoryComponent; diff --git a/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts b/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.ts similarity index 61% rename from src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts rename to src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.ts index 99ef6b3933..a982447064 100644 --- a/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts +++ b/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.ts @@ -1,11 +1,11 @@ import { Component } from '@angular/core'; import { Observable } from 'rxjs'; -import { RemoteData } from '../../../core/data/remote-data'; -import { Item } from '../../../core/shared/item.model'; +import { RemoteData } from '../../../../core/data/remote-data'; +import { Item } from '../../../../core/shared/item.model'; import { map } from 'rxjs/operators'; -import { getFirstSucceededRemoteData } from '../../../core/shared/operators'; +import { getFirstSucceededRemoteData } from '../../../../core/shared/operators'; import { ActivatedRoute } from '@angular/router'; -import { AlertType } from '../../../shared/alert/aletr-type'; +import { AlertType } from '../../../../shared/alert/aletr-type'; @Component({ selector: 'ds-item-version-history', @@ -30,6 +30,6 @@ export class ItemVersionHistoryComponent { } ngOnInit(): void { - this.itemRD$ = this.route.parent.data.pipe(map((data) => data.dso)).pipe(getFirstSucceededRemoteData()) as Observable>; + this.itemRD$ = this.route.parent.parent.data.pipe(map((data) => data.dso)).pipe(getFirstSucceededRemoteData()) as Observable>; } } diff --git a/src/app/item-page/edit-item-page/version-history/version-history.module.ts b/src/app/item-page/edit-item-page/version-history/version-history.module.ts new file mode 100644 index 0000000000..393edcdf37 --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/version-history.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { SharedModule } from '../../../shared/shared.module'; +import { VersionHistoryRoutingModule } from './version-history.routing.module'; +import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; +import { ItemVersionHistoryEditComponent } from './item-version-history-edit/item-version-history-edit.component'; + +@NgModule({ + declarations: [ + ItemVersionHistoryComponent, + ItemVersionHistoryEditComponent + ], + imports: [ + CommonModule, + SharedModule, + VersionHistoryRoutingModule + ] +}) +export class VersionHistoryModule { +} diff --git a/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts b/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts new file mode 100644 index 0000000000..e45d3e5f11 --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts @@ -0,0 +1,40 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; +import { ItemVersionHistoryEditComponent } from './item-version-history-edit/item-version-history-edit.component'; + + +/** + * Routing module that handles the routing for the Edit Item page administrator functionality + */ +@NgModule({ + imports: [ + // items//edit/''/version-history + RouterModule.forChild([ + { + path: '', + component: ItemVersionHistoryComponent, + // children: [ + // { + // path: '', + // pathMatch: 'full', + // + // } + // ] + }, + { + path: 'create', + component: ItemVersionHistoryEditComponent, + }, + { + path: ':versionId/edit', + component: ItemVersionHistoryEditComponent, + } + ]) + ], + providers: [ + ] +}) +export class VersionHistoryRoutingModule { + +} From a1e312440f05551eb3fab13000e3330807a87295 Mon Sep 17 00:00:00 2001 From: Davide Negretti Date: Mon, 6 Sep 2021 20:51:34 +0200 Subject: [PATCH 02/85] [CST-4499] Version history (WIP) - Buttons added to history, form replaced with modal, minor fixes --- src/app/core/shared/version-history.model.ts | 12 +++ .../item-version-history-edit.component.html | 1 - .../item-version-history-edit.component.ts | 20 ----- .../item-version-history-form.component.html | 5 ++ .../item-version-history-form.component.scss} | 0 ...em-version-history-form.component.spec.ts} | 10 +-- .../item-version-history-form.component.ts | 74 ++++++++++++++++++ .../item-version-history.component.html | 7 +- .../item-version-summary-modal.component.html | 11 +++ .../item-version-summary-modal.component.scss | 0 ...em-version-summary-modal.component.spec.ts | 25 ++++++ .../item-version-summary-modal.component.ts | 23 ++++++ .../version-history/version-history.module.ts | 4 +- .../version-history.routing.module.ts | 6 +- .../item-page/simple/item-page.component.html | 2 +- .../publication/publication.component.html | 2 +- .../untyped-item/untyped-item.component.html | 1 + .../my-dspace-new-submission.component.ts | 2 +- .../dso-page-version-button.component.html | 7 ++ .../dso-page-version-button.component.scss | 3 + .../dso-page-version-button.component.spec.ts | 76 +++++++++++++++++++ .../dso-page-version-button.component.ts | 43 +++++++++++ .../item-versions.component.html | 70 ++++++++++++----- .../item-versions/item-versions.component.ts | 14 +++- src/app/shared/shared.module.ts | 2 + src/assets/i18n/en.json5 | 12 ++- 26 files changed, 376 insertions(+), 56 deletions(-) delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.html delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.ts create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.html rename src/app/item-page/edit-item-page/version-history/{item-version-history-edit/item-version-history-edit.component.scss => item-version-history-form/item-version-history-form.component.scss} (100%) rename src/app/item-page/edit-item-page/version-history/{item-version-history-edit/item-version-history-edit.component.spec.ts => item-version-history-form/item-version-history-form.component.spec.ts} (56%) create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.ts create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.html create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.scss create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.spec.ts create mode 100644 src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.ts create mode 100644 src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.html create mode 100644 src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.scss create mode 100644 src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.spec.ts create mode 100644 src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.ts diff --git a/src/app/core/shared/version-history.model.ts b/src/app/core/shared/version-history.model.ts index 85578f20fc..1448317427 100644 --- a/src/app/core/shared/version-history.model.ts +++ b/src/app/core/shared/version-history.model.ts @@ -30,6 +30,18 @@ export class VersionHistory extends DSpaceObject { @autoserialize id: string; + /** + * The summary of this Version History + */ + @autoserialize + summary: string; + + /** + * The name of the submitter of this Version History + */ + @autoserialize + submitterName: string; + /** * The list of versions within this history */ diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.html b/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.html deleted file mode 100644 index 1a5dabc17e..0000000000 --- a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.html +++ /dev/null @@ -1 +0,0 @@ -{{ versionId }} diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.ts b/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.ts deleted file mode 100644 index 22b855d2e9..0000000000 --- a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router'; - -@Component({ - selector: 'ds-item-version-history-edit', - templateUrl: './item-version-history-edit.component.html', - styleUrls: ['./item-version-history-edit.component.scss'] -}) -export class ItemVersionHistoryEditComponent implements OnInit { - - versionId; - - constructor(private route: ActivatedRoute) { } - - ngOnInit(): void { - - this.versionId = this.route.snapshot.params.versionId; - } - -} diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.html b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.html new file mode 100644 index 0000000000..74e2c195a6 --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.html @@ -0,0 +1,5 @@ + + diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.scss b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.scss similarity index 100% rename from src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.scss rename to src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.scss diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.spec.ts b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.spec.ts similarity index 56% rename from src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.spec.ts rename to src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.spec.ts index f31d0cb539..d9a2892831 100644 --- a/src/app/item-page/edit-item-page/version-history/item-version-history-edit/item-version-history-edit.component.spec.ts +++ b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.spec.ts @@ -1,20 +1,20 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ItemVersionHistoryEditComponent } from './item-version-history-edit.component'; +import { ItemVersionHistoryFormComponent } from './item-version-history-form.component'; describe('ItemVersionHistoryCreateComponent', () => { - let component: ItemVersionHistoryEditComponent; - let fixture: ComponentFixture; + let component: ItemVersionHistoryFormComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ ItemVersionHistoryEditComponent ] + declarations: [ ItemVersionHistoryFormComponent ] }) .compileComponents(); }); beforeEach(() => { - fixture = TestBed.createComponent(ItemVersionHistoryEditComponent); + fixture = TestBed.createComponent(ItemVersionHistoryFormComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.ts b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.ts new file mode 100644 index 0000000000..892cb9ec01 --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.ts @@ -0,0 +1,74 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { getFirstSucceededRemoteData } from '../../../../core/shared/operators'; +import { VersionDataService } from '../../../../core/data/version-data.service'; +import { take } from 'rxjs/operators'; +import { DynamicFormControlModel, DynamicFormLayout, DynamicInputModel } from '@ng-dynamic-forms/core'; +import { FormGroup } from '@angular/forms'; + +@Component({ + selector: 'ds-item-version-history-edit', + templateUrl: './item-version-history-form.component.html', + styleUrls: ['./item-version-history-form.component.scss'] +}) +export class ItemVersionHistoryFormComponent implements OnInit { + + versionId; + + itemId; + + itemVersion: DynamicInputModel; + + formId = 'item-version-form'; + formModel: DynamicFormControlModel[]; + formGroup: FormGroup; + formLayout: DynamicFormLayout = { + itemVersion: { + grid: { + host: 'row' + } + }, + }; + + + constructor(private route: ActivatedRoute, private versionDataService: VersionDataService) { + } + + ngOnInit(): void { + + this.versionId = this.route.snapshot.params.versionId; + + console.log(this.route.snapshot.params); + + + + this.itemVersion = new DynamicInputModel({ + id: 'groupName', + label: 'item version label', + name: 'itemVersion', + validators: { + required: null, + }, + required: true, + }); + + + this.formModel = [ + this.itemVersion, + ]; + + /*this.versionDataService.findById(this.versionId).pipe(getFirstSucceededRemoteData()).subscribe( + (res) => { + this.versionDataService.update() + const updatedVersion = + Object.assign({}, res.payload, { + summary: 'New summary', + }); + this.versionDataService.update(updatedVersion).pipe(take(1)).subscribe(); + } + );*/ // TODO check not null + + + } + +} diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.html b/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.html index acabbd1010..d610dffb21 100644 --- a/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.html +++ b/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.html @@ -1,6 +1,7 @@ -
+
- +
diff --git a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.html b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.html new file mode 100644 index 0000000000..fde2b7a55d --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.html @@ -0,0 +1,11 @@ +
+ + +
diff --git a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.scss b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.spec.ts b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.spec.ts new file mode 100644 index 0000000000..b666f2a0b0 --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ItemVersionSummaryModalComponent } from './item-version-summary-modal.component'; + +describe('ItemVersionSummaryModalComponent', () => { + let component: ItemVersionSummaryModalComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ItemVersionSummaryModalComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ItemVersionSummaryModalComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.ts b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.ts new file mode 100644 index 0000000000..b64fd53772 --- /dev/null +++ b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.ts @@ -0,0 +1,23 @@ +import { Component, OnInit } from '@angular/core'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +@Component({ + selector: 'ds-item-version-summary-modal', + templateUrl: './item-version-summary-modal.component.html', + styleUrls: ['./item-version-summary-modal.component.scss'] +}) +export class ItemVersionSummaryModalComponent implements OnInit { + + constructor(protected activeModal: NgbActiveModal) { + } + + ngOnInit(): void { + } + + /** + * Close the modal + */ + close() { + this.activeModal.close(); + } +} diff --git a/src/app/item-page/edit-item-page/version-history/version-history.module.ts b/src/app/item-page/edit-item-page/version-history/version-history.module.ts index 393edcdf37..0d15aef8c4 100644 --- a/src/app/item-page/edit-item-page/version-history/version-history.module.ts +++ b/src/app/item-page/edit-item-page/version-history/version-history.module.ts @@ -3,12 +3,12 @@ import { CommonModule } from '@angular/common'; import { SharedModule } from '../../../shared/shared.module'; import { VersionHistoryRoutingModule } from './version-history.routing.module'; import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; -import { ItemVersionHistoryEditComponent } from './item-version-history-edit/item-version-history-edit.component'; +import { ItemVersionHistoryFormComponent } from './item-version-history-form/item-version-history-form.component'; @NgModule({ declarations: [ ItemVersionHistoryComponent, - ItemVersionHistoryEditComponent + ItemVersionHistoryFormComponent ], imports: [ CommonModule, diff --git a/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts b/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts index e45d3e5f11..8a5c4a36e1 100644 --- a/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts +++ b/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts @@ -1,7 +1,7 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; -import { ItemVersionHistoryEditComponent } from './item-version-history-edit/item-version-history-edit.component'; +import { ItemVersionHistoryFormComponent } from './item-version-history-form/item-version-history-form.component'; /** @@ -24,11 +24,11 @@ import { ItemVersionHistoryEditComponent } from './item-version-history-edit/ite }, { path: 'create', - component: ItemVersionHistoryEditComponent, + component: ItemVersionHistoryFormComponent, }, { path: ':versionId/edit', - component: ItemVersionHistoryEditComponent, + component: ItemVersionHistoryFormComponent, } ]) ], diff --git a/src/app/item-page/simple/item-page.component.html b/src/app/item-page/simple/item-page.component.html index e843155d10..74b61fd976 100644 --- a/src/app/item-page/simple/item-page.component.html +++ b/src/app/item-page/simple/item-page.component.html @@ -5,7 +5,7 @@ - +
diff --git a/src/app/item-page/simple/item-types/publication/publication.component.html b/src/app/item-page/simple/item-types/publication/publication.component.html index 9e61f00e48..82eea0fafd 100644 --- a/src/app/item-page/simple/item-types/publication/publication.component.html +++ b/src/app/item-page/simple/item-types/publication/publication.component.html @@ -2,7 +2,7 @@

{{'publication.page.titleprefix' | translate}}

-
+
diff --git a/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.html b/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.html index b0157dcfee..efe372ccaf 100644 --- a/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.html +++ b/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.html @@ -3,6 +3,7 @@
+
diff --git a/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.ts b/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.ts index c1e67561b2..469f04ffd5 100644 --- a/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.ts +++ b/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.ts @@ -119,7 +119,7 @@ export class MyDSpaceNewSubmissionComponent implements OnDestroy, OnInit { } /** - * Method called on clicking the button "New Submition", It opens a dialog for + * Method called on clicking the button "New Submission", It opens a dialog for * select a collection. */ openDialog() { diff --git a/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.html b/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.html new file mode 100644 index 0000000000..cf66a15503 --- /dev/null +++ b/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.html @@ -0,0 +1,7 @@ + + + diff --git a/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.scss b/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.scss new file mode 100644 index 0000000000..e8b7d689a3 --- /dev/null +++ b/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.scss @@ -0,0 +1,3 @@ +.btn-dark { + background-color: var(--ds-admin-sidebar-bg); +} diff --git a/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.spec.ts b/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.spec.ts new file mode 100644 index 0000000000..0a210c3233 --- /dev/null +++ b/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.spec.ts @@ -0,0 +1,76 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { DsoPageVersionButtonComponent } from './dso-page-version-button.component'; +import { DSpaceObject } from '../../../core/shared/dspace-object.model'; +import { Item } from '../../../core/shared/item.model'; +import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service'; +import { of as observableOf } from 'rxjs'; +import { TranslateModule } from '@ngx-translate/core'; +import { RouterTestingModule } from '@angular/router/testing'; +import { FeatureID } from '../../../core/data/feature-authorization/feature-id'; +import { By } from '@angular/platform-browser'; +import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; + +describe('DsoPageEditButtonComponent', () => { + let component: DsoPageVersionButtonComponent; + let fixture: ComponentFixture; + + let authorizationService: AuthorizationDataService; + let dso: DSpaceObject; + + beforeEach(waitForAsync(() => { + dso = Object.assign(new Item(), { + id: 'test-item', + _links: { + self: { href: 'test-item-selflink' } + } + }); + authorizationService = jasmine.createSpyObj('authorizationService', { + isAuthorized: observableOf(true) + }); + TestBed.configureTestingModule({ + declarations: [DsoPageVersionButtonComponent], + imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), NgbModule], + providers: [ + { provide: AuthorizationDataService, useValue: authorizationService } + ] + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DsoPageVersionButtonComponent); + component = fixture.componentInstance; + component.dso = dso; + component.pageRoute = 'test'; + fixture.detectChanges(); + }); + + it('should check the authorization of the current user', () => { + expect(authorizationService.isAuthorized).toHaveBeenCalledWith(FeatureID.CanEditMetadata, dso.self); + }); + + describe('when the user is authorized', () => { + beforeEach(() => { + (authorizationService.isAuthorized as jasmine.Spy).and.returnValue(observableOf(true)); + component.ngOnInit(); + fixture.detectChanges(); + }); + + it('should render a link', () => { + const link = fixture.debugElement.query(By.css('a')); + expect(link).not.toBeNull(); + }); + }); + + describe('when the user is not authorized', () => { + beforeEach(() => { + (authorizationService.isAuthorized as jasmine.Spy).and.returnValue(observableOf(false)); + component.ngOnInit(); + fixture.detectChanges(); + }); + + it('should not render a link', () => { + const link = fixture.debugElement.query(By.css('a')); + expect(link).toBeNull(); + }); + }); +}); diff --git a/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.ts b/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.ts new file mode 100644 index 0000000000..72d9872965 --- /dev/null +++ b/src/app/shared/dso-page/dso-page-version-button/dso-page-version-button.component.ts @@ -0,0 +1,43 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { DSpaceObject } from '../../../core/shared/dspace-object.model'; +import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service'; +import { Observable } from 'rxjs/internal/Observable'; +import { FeatureID } from '../../../core/data/feature-authorization/feature-id'; + +@Component({ + selector: 'ds-dso-page-version-button', + templateUrl: './dso-page-version-button.component.html', + styleUrls: ['./dso-page-version-button.component.scss'] +}) +/** + * Display a button linking to the edit page of a DSpaceObject + */ +export class DsoPageVersionButtonComponent implements OnInit { + /** + * The DSpaceObject to display a button to the edit page for + */ + @Input() dso: DSpaceObject; + + /** + * The prefix of the route to the edit page (before the object's UUID, e.g. "items") + */ + @Input() pageRoute: string; + + /** + * A message for the tooltip on the button + * Supports i18n keys + */ + @Input() tooltipMsg: string; + + /** + * Whether or not the current user is authorized to edit the DSpaceObject + */ + isAuthorized$: Observable; + + constructor(protected authorizationService: AuthorizationDataService) { } + + ngOnInit() { + this.isAuthorized$ = this.authorizationService.isAuthorized(FeatureID.CanEditMetadata, this.dso.self); + } + +} diff --git a/src/app/shared/item/item-versions/item-versions.component.html b/src/app/shared/item/item-versions/item-versions.component.html index 34764e7925..7d8077d62d 100644 --- a/src/app/shared/item/item-versions/item-versions.component.html +++ b/src/app/shared/item/item-versions/item-versions.component.html @@ -11,36 +11,72 @@ [retainScrollPosition]="true"> - - - - - - - + + + + + + + + - - - + + - + - - - + + + + +
{{"item.version.history.table.version" | translate}}{{"item.version.history.table.item" | translate}}{{"item.version.history.table.editor" | translate}}{{"item.version.history.table.date" | translate}}{{"item.version.history.table.summary" | translate}}
{{"item.version.history.table.version" | translate}}{{"item.version.history.table.item" | translate}}{{"item.version.history.table.editor" | translate}}{{"item.version.history.table.date" | translate}}{{"item.version.history.table.summary" | translate}}{{"item.version.history.table.actions" | translate}}
{{version?.version}} +
{{version?.version}} {{item?.handle}} * - + {{eperson?.name}} - {{version?.created}}{{version?.summary}}
{{version?.created}}{{version?.summary}} +
+ + + + + +
+
* {{"item.version.history.selected" | translate}}
- + diff --git a/src/app/shared/item/item-versions/item-versions.component.ts b/src/app/shared/item/item-versions/item-versions.component.ts index 268c6f00db..aca786b7af 100644 --- a/src/app/shared/item/item-versions/item-versions.component.ts +++ b/src/app/shared/item/item-versions/item-versions.component.ts @@ -19,6 +19,8 @@ import { followLink } from '../../utils/follow-link-config.model'; import { hasValue, hasValueOperator } from '../../empty.util'; import { PaginationService } from '../../../core/pagination/pagination.service'; import { getItemPageRoute } from '../../../item-page/item-page-routing-paths'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { ItemVersionSummaryModalComponent } from '../../../item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component'; @Component({ selector: 'ds-item-versions', @@ -45,6 +47,11 @@ export class ItemVersionsComponent implements OnInit { */ @Input() displayTitle = true; + /** + * Whether or not to display the action buttons + */ + @Input() displayActions: boolean; + /** * The AlertType enumeration * @type {AlertType} @@ -102,10 +109,15 @@ export class ItemVersionsComponent implements OnInit { }>; constructor(private versionHistoryService: VersionHistoryDataService, - private paginationService: PaginationService + private paginationService: PaginationService, + private modalService: NgbModal, ) { } + openEditDialog() { + this.modalService.open(ItemVersionSummaryModalComponent); + } + /** * Initialize all observables */ diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 9b993e551f..5aa155faa8 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -211,6 +211,7 @@ import { CollectionSidebarSearchListElementComponent } from './object-list/sideb import { CommunitySidebarSearchListElementComponent } from './object-list/sidebar-search-list-element/community/community-sidebar-search-list-element.component'; import { AuthorizedCollectionSelectorComponent } from './dso-selector/dso-selector/authorized-collection-selector/authorized-collection-selector.component'; import { DsoPageEditButtonComponent } from './dso-page/dso-page-edit-button/dso-page-edit-button.component'; +import { DsoPageVersionButtonComponent } from './dso-page/dso-page-version-button/dso-page-version-button.component'; import { HoverClassDirective } from './hover-class.directive'; import { ValidationSuggestionsComponent } from './input-suggestions/validation-suggestions/validation-suggestions.component'; import { ItemAlertsComponent } from './item/item-alerts/item-alerts.component'; @@ -534,6 +535,7 @@ const SHARED_ITEM_PAGE_COMPONENTS = [ MetadataFieldWrapperComponent, MetadataValuesComponent, DsoPageEditButtonComponent, + DsoPageVersionButtonComponent, ItemAlertsComponent, GenericItemPageFieldComponent, MetadataRepresentationListComponent, diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 8908ca42f6..349d3b0b33 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -1250,7 +1250,7 @@ "file-section.error.header": "Error obtaining files for this item", - + "footer.copyright": "copyright © 2002-{{ year }}", @@ -1910,6 +1910,8 @@ "item.page.return": "Back", + "item.page.version": "Create new version", + "item.preview.dc.identifier.uri": "Identifier:", "item.preview.dc.contributor.author": "Authors:", @@ -1975,6 +1977,14 @@ "item.version.history.table.summary": "Summary", + "item.version.history.table.actions": "Action", + + + "item.version.history.table.action.editSummary": "Edit summary", + + "item.version.history.table.action.newVersion": "Create new version from this one", + + "item.version.history.table.action.deleteVersion": "Delete version", "item.version.notice": "This is not the latest version of this item. The latest version can be found here.", From 6f24b31b393e8e3be91135e74cecf448df695908 Mon Sep 17 00:00:00 2001 From: Davide Negretti Date: Tue, 7 Sep 2021 14:47:36 +0200 Subject: [PATCH 03/85] [CST-4499] Version history (WIP) - Removed summary page (with routing) and modal --- .../edit-item-page/edit-item-page.module.ts | 2 + .../edit-item-page.routing.module.ts | 5 +- .../item-version-history.component.html | 0 .../item-version-history.component.spec.ts | 6 +- .../item-version-history.component.ts | 8 +- .../item-version-history-form.component.html | 5 -- .../item-version-history-form.component.scss | 0 ...tem-version-history-form.component.spec.ts | 25 ------- .../item-version-history-form.component.ts | 74 ------------------- .../item-version-summary-modal.component.html | 11 --- .../item-version-summary-modal.component.scss | 0 ...em-version-summary-modal.component.spec.ts | 25 ------- .../item-version-summary-modal.component.ts | 23 ------ .../version-history/version-history.module.ts | 20 ----- .../version-history.routing.module.ts | 40 ---------- .../item-versions.component.html | 1 + .../item-versions/item-versions.component.ts | 5 +- 17 files changed, 13 insertions(+), 237 deletions(-) rename src/app/item-page/edit-item-page/{version-history => }/item-version-history/item-version-history.component.html (100%) rename src/app/item-page/edit-item-page/{version-history => }/item-version-history/item-version-history.component.spec.ts (87%) rename src/app/item-page/edit-item-page/{version-history => }/item-version-history/item-version-history.component.ts (75%) delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.html delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.scss delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.spec.ts delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.ts delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.html delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.scss delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.spec.ts delete mode 100644 src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.ts delete mode 100644 src/app/item-page/edit-item-page/version-history/version-history.module.ts delete mode 100644 src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts diff --git a/src/app/item-page/edit-item-page/edit-item-page.module.ts b/src/app/item-page/edit-item-page/edit-item-page.module.ts index 6b12603fc2..11b1d585ba 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.module.ts @@ -28,6 +28,7 @@ import { DragDropModule } from '@angular/cdk/drag-drop'; import { ItemEditBitstreamDragHandleComponent } from './item-bitstreams/item-edit-bitstream-drag-handle/item-edit-bitstream-drag-handle.component'; import { PaginatedDragAndDropBitstreamListComponent } from './item-bitstreams/item-edit-bitstream-bundle/paginated-drag-and-drop-bitstream-list/paginated-drag-and-drop-bitstream-list.component'; import { VirtualMetadataComponent } from './virtual-metadata/virtual-metadata.component'; +import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; import { ItemAuthorizationsComponent } from './item-authorizations/item-authorizations.component'; import { ObjectValuesPipe } from '../../shared/utils/object-values-pipe'; @@ -56,6 +57,7 @@ import { ObjectValuesPipe } from '../../shared/utils/object-values-pipe'; ItemMetadataComponent, ItemRelationshipsComponent, ItemBitstreamsComponent, + ItemVersionHistoryComponent, EditInPlaceFieldComponent, ItemEditBitstreamComponent, ItemEditBitstreamBundleComponent, diff --git a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts index 26327f9fcc..2535e42216 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts @@ -13,6 +13,7 @@ import { ItemCollectionMapperComponent } from './item-collection-mapper/item-col import { ItemMoveComponent } from './item-move/item-move.component'; import { ItemRelationshipsComponent } from './item-relationships/item-relationships.component'; import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver'; +import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; import { ItemAuthorizationsComponent } from './item-authorizations/item-authorizations.component'; import { ResourcePolicyTargetResolver } from '../../shared/resource-policies/resolvers/resource-policy-target.resolver'; import { ResourcePolicyResolver } from '../../shared/resource-policies/resolvers/resource-policy.resolver'; @@ -43,7 +44,6 @@ import { ItemPageCollectionMapperGuard } from './item-page-collection-mapper.gua */ @NgModule({ imports: [ - // items//edit/''/public RouterModule.forChild([ { path: '', @@ -99,8 +99,7 @@ import { ItemPageCollectionMapperGuard } from './item-page-collection-mapper.gua }, */ { path: 'versionhistory', - loadChildren: () => import('./version-history/version-history.module') - .then((m) => m.VersionHistoryModule), + component: ItemVersionHistoryComponent, data: { title: 'item.edit.tabs.versionhistory.title', showBreadcrumbs: true }, canActivate: [ItemPageVersionHistoryGuard] }, diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.html b/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.html similarity index 100% rename from src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.html rename to src/app/item-page/edit-item-page/item-version-history/item-version-history.component.html diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.spec.ts b/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.spec.ts similarity index 87% rename from src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.spec.ts rename to src/app/item-page/edit-item-page/item-version-history/item-version-history.component.spec.ts index 6806decbf6..c68dcfeba3 100644 --- a/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.spec.ts +++ b/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.spec.ts @@ -1,13 +1,13 @@ import { ItemVersionHistoryComponent } from './item-version-history.component'; import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; -import { VarDirective } from '../../../../shared/utils/var.directive'; +import { VarDirective } from '../../../shared/utils/var.directive'; import { RouterTestingModule } from '@angular/router/testing'; import { TranslateModule } from '@ngx-translate/core'; import { NO_ERRORS_SCHEMA } from '@angular/core'; -import { Item } from '../../../../core/shared/item.model'; +import { Item } from '../../../core/shared/item.model'; import { ActivatedRoute } from '@angular/router'; import { of as observableOf } from 'rxjs'; -import { createSuccessfulRemoteDataObject } from '../../../../shared/remote-data.utils'; +import { createSuccessfulRemoteDataObject } from '../../../shared/remote-data.utils'; describe('ItemVersionHistoryComponent', () => { let component: ItemVersionHistoryComponent; diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.ts b/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts similarity index 75% rename from src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.ts rename to src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts index a982447064..18878109c2 100644 --- a/src/app/item-page/edit-item-page/version-history/item-version-history/item-version-history.component.ts +++ b/src/app/item-page/edit-item-page/item-version-history/item-version-history.component.ts @@ -1,11 +1,11 @@ import { Component } from '@angular/core'; import { Observable } from 'rxjs'; -import { RemoteData } from '../../../../core/data/remote-data'; -import { Item } from '../../../../core/shared/item.model'; +import { RemoteData } from '../../../core/data/remote-data'; +import { Item } from '../../../core/shared/item.model'; import { map } from 'rxjs/operators'; -import { getFirstSucceededRemoteData } from '../../../../core/shared/operators'; +import { getFirstSucceededRemoteData } from '../../../core/shared/operators'; import { ActivatedRoute } from '@angular/router'; -import { AlertType } from '../../../../shared/alert/aletr-type'; +import { AlertType } from '../../../shared/alert/aletr-type'; @Component({ selector: 'ds-item-version-history', diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.html b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.html deleted file mode 100644 index 74e2c195a6..0000000000 --- a/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.html +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.scss b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.spec.ts b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.spec.ts deleted file mode 100644 index d9a2892831..0000000000 --- a/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ItemVersionHistoryFormComponent } from './item-version-history-form.component'; - -describe('ItemVersionHistoryCreateComponent', () => { - let component: ItemVersionHistoryFormComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ ItemVersionHistoryFormComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(ItemVersionHistoryFormComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.ts b/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.ts deleted file mode 100644 index 892cb9ec01..0000000000 --- a/src/app/item-page/edit-item-page/version-history/item-version-history-form/item-version-history-form.component.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { getFirstSucceededRemoteData } from '../../../../core/shared/operators'; -import { VersionDataService } from '../../../../core/data/version-data.service'; -import { take } from 'rxjs/operators'; -import { DynamicFormControlModel, DynamicFormLayout, DynamicInputModel } from '@ng-dynamic-forms/core'; -import { FormGroup } from '@angular/forms'; - -@Component({ - selector: 'ds-item-version-history-edit', - templateUrl: './item-version-history-form.component.html', - styleUrls: ['./item-version-history-form.component.scss'] -}) -export class ItemVersionHistoryFormComponent implements OnInit { - - versionId; - - itemId; - - itemVersion: DynamicInputModel; - - formId = 'item-version-form'; - formModel: DynamicFormControlModel[]; - formGroup: FormGroup; - formLayout: DynamicFormLayout = { - itemVersion: { - grid: { - host: 'row' - } - }, - }; - - - constructor(private route: ActivatedRoute, private versionDataService: VersionDataService) { - } - - ngOnInit(): void { - - this.versionId = this.route.snapshot.params.versionId; - - console.log(this.route.snapshot.params); - - - - this.itemVersion = new DynamicInputModel({ - id: 'groupName', - label: 'item version label', - name: 'itemVersion', - validators: { - required: null, - }, - required: true, - }); - - - this.formModel = [ - this.itemVersion, - ]; - - /*this.versionDataService.findById(this.versionId).pipe(getFirstSucceededRemoteData()).subscribe( - (res) => { - this.versionDataService.update() - const updatedVersion = - Object.assign({}, res.payload, { - summary: 'New summary', - }); - this.versionDataService.update(updatedVersion).pipe(take(1)).subscribe(); - } - );*/ // TODO check not null - - - } - -} diff --git a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.html b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.html deleted file mode 100644 index fde2b7a55d..0000000000 --- a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.html +++ /dev/null @@ -1,11 +0,0 @@ -
- - -
diff --git a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.scss b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.spec.ts b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.spec.ts deleted file mode 100644 index b666f2a0b0..0000000000 --- a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ItemVersionSummaryModalComponent } from './item-version-summary-modal.component'; - -describe('ItemVersionSummaryModalComponent', () => { - let component: ItemVersionSummaryModalComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ ItemVersionSummaryModalComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(ItemVersionSummaryModalComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.ts b/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.ts deleted file mode 100644 index b64fd53772..0000000000 --- a/src/app/item-page/edit-item-page/version-history/item-version-summary-modal/item-version-summary-modal.component.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; - -@Component({ - selector: 'ds-item-version-summary-modal', - templateUrl: './item-version-summary-modal.component.html', - styleUrls: ['./item-version-summary-modal.component.scss'] -}) -export class ItemVersionSummaryModalComponent implements OnInit { - - constructor(protected activeModal: NgbActiveModal) { - } - - ngOnInit(): void { - } - - /** - * Close the modal - */ - close() { - this.activeModal.close(); - } -} diff --git a/src/app/item-page/edit-item-page/version-history/version-history.module.ts b/src/app/item-page/edit-item-page/version-history/version-history.module.ts deleted file mode 100644 index 0d15aef8c4..0000000000 --- a/src/app/item-page/edit-item-page/version-history/version-history.module.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { SharedModule } from '../../../shared/shared.module'; -import { VersionHistoryRoutingModule } from './version-history.routing.module'; -import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; -import { ItemVersionHistoryFormComponent } from './item-version-history-form/item-version-history-form.component'; - -@NgModule({ - declarations: [ - ItemVersionHistoryComponent, - ItemVersionHistoryFormComponent - ], - imports: [ - CommonModule, - SharedModule, - VersionHistoryRoutingModule - ] -}) -export class VersionHistoryModule { -} diff --git a/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts b/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts deleted file mode 100644 index 8a5c4a36e1..0000000000 --- a/src/app/item-page/edit-item-page/version-history/version-history.routing.module.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; -import { ItemVersionHistoryFormComponent } from './item-version-history-form/item-version-history-form.component'; - - -/** - * Routing module that handles the routing for the Edit Item page administrator functionality - */ -@NgModule({ - imports: [ - // items//edit/''/version-history - RouterModule.forChild([ - { - path: '', - component: ItemVersionHistoryComponent, - // children: [ - // { - // path: '', - // pathMatch: 'full', - // - // } - // ] - }, - { - path: 'create', - component: ItemVersionHistoryFormComponent, - }, - { - path: ':versionId/edit', - component: ItemVersionHistoryFormComponent, - } - ]) - ], - providers: [ - ] -}) -export class VersionHistoryRoutingModule { - -} diff --git a/src/app/shared/item/item-versions/item-versions.component.html b/src/app/shared/item/item-versions/item-versions.component.html index 7d8077d62d..68b64e690f 100644 --- a/src/app/shared/item/item-versions/item-versions.component.html +++ b/src/app/shared/item/item-versions/item-versions.component.html @@ -2,6 +2,7 @@

{{"item.version.history.head" | translate}}

+ Date: Tue, 7 Sep 2021 20:33:47 +0200 Subject: [PATCH 04/85] [CST-4499] Version history (WIP) - Added in-row editing in version history (call to REST service TBD) and other fixes --- .../item-metadata.component.html | 119 +++++++++--------- .../item-versions.component.html | 71 +++++++++-- .../item-versions.component.scss | 9 ++ .../item-versions/item-versions.component.ts | 34 ++++- .../pagination/pagination.component.html | 2 +- src/assets/i18n/en.json5 | 6 + 6 files changed, 166 insertions(+), 75 deletions(-) create mode 100644 src/app/shared/item/item-versions/item-versions.component.scss diff --git a/src/app/item-page/edit-item-page/item-metadata/item-metadata.component.html b/src/app/item-page/edit-item-page/item-metadata/item-metadata.component.html index e154487402..70cd2aaa39 100644 --- a/src/app/item-page/edit-item-page/item-metadata/item-metadata.component.html +++ b/src/app/item-page/edit-item-page/item-metadata/item-metadata.component.html @@ -1,66 +1,69 @@