From 8274594848fa30f2185d9cbf2437c1a62200b78a Mon Sep 17 00:00:00 2001 From: Davide Negretti Date: Mon, 16 Aug 2021 17:03:07 +0200 Subject: [PATCH 001/161] [CST-4058] Show EPerson's email address --- .../group-form/members-list/members-list.component.html | 2 ++ .../group-registry/groups-registry.component.ts | 5 +++-- src/assets/i18n/en.json5 | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html index 51282b49c0..4f8e8090dc 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html @@ -93,6 +93,7 @@ {{messagePrefix + '.table.id' | translate}} {{messagePrefix + '.table.name' | translate}} + {{messagePrefix + '.table.email' | translate}} {{messagePrefix + '.table.edit' | translate}} @@ -101,6 +102,7 @@ {{ePerson.eperson.id}} {{ePerson.eperson.name}} + {{ePerson.eperson.email}}
+
+ + 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 019/161] [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 020/161] [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 @@