From 0175b50d480b51d90f28e627e48aa99a01735d5d Mon Sep 17 00:00:00 2001 From: lotte Date: Thu, 12 Mar 2020 12:49:48 +0100 Subject: [PATCH] applied feedback --- src/app/+admin/admin-routing.module.ts | 7 +- ...-search-result-grid-element.component.html | 0 ...-search-result-grid-element.component.scss | 0 ...arch-result-grid-element.component.spec.ts | 21 ++- ...in-search-result-grid-element.component.ts | 14 +- ...-search-result-grid-element.component.html | 0 ...-search-result-grid-element.component.scss | 0 ...arch-result-grid-element.component.spec.ts | 22 +-- ...in-search-result-grid-element.component.ts | 14 +- ...-search-result-grid-element.component.html | 15 ++ ...-search-result-grid-element.component.scss | 0 ...arch-result-grid-element.component.spec.ts | 121 +++++++++++++++ ...in-search-result-grid-element.component.ts | 75 ++++++++++ ...-search-result-list-element.component.html | 0 ...-search-result-list-element.component.scss | 0 ...arch-result-list-element.component.spec.ts | 12 +- ...in-search-result-list-element.component.ts | 14 +- ...-search-result-list-element.component.html | 0 ...-search-result-list-element.component.scss | 0 ...arch-result-list-element.component.spec.ts | 14 +- ...in-search-result-list-element.component.ts | 14 +- ...-search-result-list-element.component.html | 12 ++ ...-search-result-list-element.component.scss | 0 ...arch-result-list-element.component.spec.ts | 101 +++++++++++++ ...in-search-result-list-element.component.ts | 20 +++ ...admin-search-result-actions.component.html | 27 ++++ ...admin-search-result-actions.component.scss | 1 + ...n-search-result-actions.component.spec.ts} | 98 +++++++----- ...-admin-search-result-actions.component.ts} | 32 ++-- src/app/+admin/admin.module.ts | 27 +++- ...-search-result-grid-element.component.html | 41 ------ ...arch-result-grid-element.component.spec.ts | 139 ------------------ ...in-search-result-grid-element.component.ts | 124 ---------------- ...-search-result-list-element.component.html | 39 ----- src/app/shared/shared.module.ts | 18 --- 35 files changed, 542 insertions(+), 480 deletions(-) rename src/app/{shared/object-grid => +admin/admin-search-page/admin-search-results}/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.html (100%) rename src/app/{shared/object-grid => +admin/admin-search-page/admin-search-results}/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.scss (100%) rename src/app/{shared/object-grid => +admin/admin-search-page/admin-search-results}/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.spec.ts (69%) rename src/app/{shared/object-grid => +admin/admin-search-page/admin-search-results}/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.ts (51%) rename src/app/{shared/object-grid => +admin/admin-search-page/admin-search-results}/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.html (100%) rename src/app/{shared/object-grid => +admin/admin-search-page/admin-search-results}/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.scss (100%) rename src/app/{shared/object-grid => +admin/admin-search-page/admin-search-results}/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.spec.ts (64%) rename src/app/{shared/object-grid => +admin/admin-search-page/admin-search-results}/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.ts (51%) create mode 100644 src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html rename src/app/{shared/object-grid => +admin/admin-search-page/admin-search-results}/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.scss (100%) create mode 100644 src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts create mode 100644 src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.ts rename src/app/{shared/object-list => +admin/admin-search-page/admin-search-results}/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.html (100%) rename src/app/{shared/object-list => +admin/admin-search-page/admin-search-results}/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.scss (100%) rename src/app/{shared/object-list => +admin/admin-search-page/admin-search-results}/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.spec.ts (77%) rename src/app/{shared/object-list => +admin/admin-search-page/admin-search-results}/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.ts (51%) rename src/app/{shared/object-list => +admin/admin-search-page/admin-search-results}/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.html (100%) rename src/app/{shared/object-list => +admin/admin-search-page/admin-search-results}/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.scss (100%) rename src/app/{shared/object-list => +admin/admin-search-page/admin-search-results}/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.spec.ts (75%) rename src/app/{shared/object-list => +admin/admin-search-page/admin-search-results}/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.ts (51%) create mode 100644 src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html rename src/app/{shared/object-list => +admin/admin-search-page/admin-search-results}/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.scss (100%) create mode 100644 src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.spec.ts create mode 100644 src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.ts create mode 100644 src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.html create mode 100644 src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.scss rename src/app/{shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.spec.ts => +admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.spec.ts} (52%) rename src/app/{shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.ts => +admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.ts} (52%) delete mode 100644 src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html delete mode 100644 src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts delete mode 100644 src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.ts delete mode 100644 src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html diff --git a/src/app/+admin/admin-routing.module.ts b/src/app/+admin/admin-routing.module.ts index 7864f91ad9..373551d3c0 100644 --- a/src/app/+admin/admin-routing.module.ts +++ b/src/app/+admin/admin-routing.module.ts @@ -18,7 +18,12 @@ export function getRegistriesModulePath() { path: REGISTRIES_MODULE_PATH, loadChildren: './admin-registries/admin-registries.module#AdminRegistriesModule' }, - { path: 'search', resolve: { breadcrumb: I18nBreadcrumbResolver }, component: AdminSearchPageComponent, data: { title: 'admin.search.title', breadcrumbKey: 'admin.search' } }, + { + path: 'search', + resolve: { breadcrumb: I18nBreadcrumbResolver }, + component: AdminSearchPageComponent, + data: { title: 'admin.search.title', breadcrumbKey: 'admin.search' } + }, ]) ] }) diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.html b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.html similarity index 100% rename from src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.html rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.html diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.scss b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.scss similarity index 100% rename from src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.scss rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.scss diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.spec.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.spec.ts similarity index 69% rename from src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.spec.ts rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.spec.ts index 268ede777c..1dcd978095 100644 --- a/src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.spec.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.spec.ts @@ -1,20 +1,18 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { NO_ERRORS_SCHEMA } from '@angular/core'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { BitstreamDataService } from '../../../../core/data/bitstream-data.service'; -import { mockTruncatableService } from '../../../mocks/mock-trucatable.service'; -import { SharedModule } from '../../../shared.module'; +import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service'; +import { mockTruncatableService } from '../../../../../shared/mocks/mock-trucatable.service'; +import { SharedModule } from '../../../../../shared/shared.module'; import { CollectionAdminSearchResultGridElementComponent } from './collection-admin-search-result-grid-element.component'; import { TranslateModule } from '@ngx-translate/core'; -import { TruncatableService } from '../../../truncatable/truncatable.service'; -import { CollectionElementLinkType } from '../../../object-collection/collection-element-link.type'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { CollectionSearchResult } from '../../../object-collection/shared/collection-search-result.model'; -import { Collection } from '../../../../core/shared/collection.model'; +import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service'; +import { CollectionElementLinkType } from '../../../../../shared/object-collection/collection-element-link.type'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { CollectionSearchResult } from '../../../../../shared/object-collection/shared/collection-search-result.model'; +import { Collection } from '../../../../../core/shared/collection.model'; import { By } from '@angular/platform-browser'; import { RouterTestingModule } from '@angular/router/testing'; -import { getCollectionEditPath } from '../../../../+collection-page/collection-page-routing.module'; +import { getCollectionEditPath } from '../../../../../+collection-page/collection-page-routing.module'; describe('CollectionAdminSearchResultGridElementComponent', () => { let component: CollectionAdminSearchResultGridElementComponent; @@ -37,6 +35,7 @@ describe('CollectionAdminSearchResultGridElementComponent', () => { RouterTestingModule.withRoutes([]), SharedModule ], + declarations: [CollectionAdminSearchResultGridElementComponent], providers: [ { provide: TruncatableService, useValue: mockTruncatableService }, { provide: BitstreamDataService, useValue: {} }, diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.ts similarity index 51% rename from src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.ts rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.ts index a43e6782e7..5e784165ab 100644 --- a/src/app/shared/object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.ts @@ -1,11 +1,11 @@ import { Component } from '@angular/core'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; -import { Context } from '../../../../core/shared/context.model'; -import { CollectionSearchResult } from '../../../object-collection/shared/collection-search-result.model'; -import { Collection } from '../../../../core/shared/collection.model'; -import { getCollectionEditPath } from '../../../../+collection-page/collection-page-routing.module'; -import { SearchResultGridElementComponent } from '../../search-result-grid-element/search-result-grid-element.component'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { listableObjectComponent } from '../../../../../shared/object-collection/shared/listable-object/listable-object.decorator'; +import { Context } from '../../../../../core/shared/context.model'; +import { CollectionSearchResult } from '../../../../../shared/object-collection/shared/collection-search-result.model'; +import { Collection } from '../../../../../core/shared/collection.model'; +import { getCollectionEditPath } from '../../../../../+collection-page/collection-page-routing.module'; +import { SearchResultGridElementComponent } from '../../../../../shared/object-grid/search-result-grid-element/search-result-grid-element.component'; @listableObjectComponent(CollectionSearchResult, ViewMode.GridElement, Context.AdminSearch) @Component({ diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.html b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.html similarity index 100% rename from src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.html rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.html diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.scss b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.scss similarity index 100% rename from src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.scss rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.scss diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.spec.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.spec.ts similarity index 64% rename from src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.spec.ts rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.spec.ts index fc8257289c..99d33f841a 100644 --- a/src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.spec.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.spec.ts @@ -3,18 +3,19 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { NO_ERRORS_SCHEMA } from '@angular/core'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { TranslateModule } from '@ngx-translate/core'; -import { BitstreamDataService } from '../../../../core/data/bitstream-data.service'; -import { mockTruncatableService } from '../../../mocks/mock-trucatable.service'; -import { SharedModule } from '../../../shared.module'; -import { TruncatableService } from '../../../truncatable/truncatable.service'; -import { CollectionElementLinkType } from '../../../object-collection/collection-element-link.type'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { Collection } from '../../../../core/shared/collection.model'; +import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service'; +import { mockTruncatableService } from '../../../../../shared/mocks/mock-trucatable.service'; +import { SharedModule } from '../../../../../shared/shared.module'; +import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service'; +import { CollectionElementLinkType } from '../../../../../shared/object-collection/collection-element-link.type'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; import { By } from '@angular/platform-browser'; import { RouterTestingModule } from '@angular/router/testing'; import { CommunityAdminSearchResultGridElementComponent } from './community-admin-search-result-grid-element.component'; -import { CommunitySearchResult } from '../../../object-collection/shared/community-search-result.model'; -import { getCommunityEditPath } from '../../../../+community-page/community-page-routing.module'; +import { CommunitySearchResult } from '../../../../../shared/object-collection/shared/community-search-result.model'; +import { getCommunityEditPath } from '../../../../../+community-page/community-page-routing.module'; +import { Community } from '../../../../../core/shared/community.model'; +import { CommunityAdminSearchResultListElementComponent } from '../../admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component'; describe('CommunityAdminSearchResultGridElementComponent', () => { let component: CommunityAdminSearchResultGridElementComponent; @@ -25,7 +26,7 @@ describe('CommunityAdminSearchResultGridElementComponent', () => { function init() { id = '780b2588-bda5-4112-a1cd-0b15000a5339'; searchResult = new CommunitySearchResult(); - searchResult.indexableObject = new Collection(); + searchResult.indexableObject = new Community(); searchResult.indexableObject.uuid = id; } beforeEach(async(() => { @@ -37,6 +38,7 @@ describe('CommunityAdminSearchResultGridElementComponent', () => { RouterTestingModule.withRoutes([]), SharedModule ], + declarations: [CommunityAdminSearchResultGridElementComponent], providers: [ { provide: TruncatableService, useValue: mockTruncatableService }, { provide: BitstreamDataService, useValue: {} }, diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.ts similarity index 51% rename from src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.ts rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.ts index ae3221896e..8df12e703f 100644 --- a/src/app/shared/object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.ts @@ -1,11 +1,11 @@ import { Component } from '@angular/core'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; -import { Context } from '../../../../core/shared/context.model'; -import { CommunitySearchResult } from '../../../object-collection/shared/community-search-result.model'; -import { Community } from '../../../../core/shared/community.model'; -import { getCommunityEditPath } from '../../../../+community-page/community-page-routing.module'; -import { SearchResultGridElementComponent } from '../../search-result-grid-element/search-result-grid-element.component'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { listableObjectComponent } from '../../../../../shared/object-collection/shared/listable-object/listable-object.decorator'; +import { Context } from '../../../../../core/shared/context.model'; +import { CommunitySearchResult } from '../../../../../shared/object-collection/shared/community-search-result.model'; +import { Community } from '../../../../../core/shared/community.model'; +import { getCommunityEditPath } from '../../../../../+community-page/community-page-routing.module'; +import { SearchResultGridElementComponent } from '../../../../../shared/object-grid/search-result-grid-element/search-result-grid-element.component'; @listableObjectComponent(CommunitySearchResult, ViewMode.GridElement, Context.AdminSearch) @Component({ diff --git a/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html new file mode 100644 index 0000000000..c571c3d663 --- /dev/null +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html @@ -0,0 +1,15 @@ + + +
+
+ {{ "admin.search.item.private" | translate }} +
+
+ {{ "admin.search.item.withdrawn" | translate }} +
+
+ diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.scss b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.scss similarity index 100% rename from src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.scss rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.scss diff --git a/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts new file mode 100644 index 0000000000..d940781f79 --- /dev/null +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts @@ -0,0 +1,121 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { TranslateModule } from '@ngx-translate/core'; +import { Observable } from 'rxjs/internal/Observable'; +import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service'; +import { RemoteData } from '../../../../../core/data/remote-data'; +import { Bitstream } from '../../../../../core/shared/bitstream.model'; +import { Item } from '../../../../../core/shared/item.model'; +import { mockTruncatableService } from '../../../../../shared/mocks/mock-trucatable.service'; +import { SharedModule } from '../../../../../shared/shared.module'; +import { createSuccessfulRemoteDataObject$ } from '../../../../../shared/testing/utils'; +import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service'; +import { CollectionElementLinkType } from '../../../../../shared/object-collection/collection-element-link.type'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { By } from '@angular/platform-browser'; +import { RouterTestingModule } from '@angular/router/testing'; +import { ItemSearchResult } from '../../../../../shared/object-collection/shared/item-search-result.model'; +import { ItemAdminSearchResultGridElementComponent } from './item-admin-search-result-grid-element.component'; + +describe('ItemAdminSearchResultGridElementComponent', () => { + let component: ItemAdminSearchResultGridElementComponent; + let fixture: ComponentFixture; + let id; + let searchResult; + + const mockBitstreamDataService = { + getThumbnailFor(item: Item): Observable> { + return createSuccessfulRemoteDataObject$(new Bitstream()); + } + }; + + function init() { + id = '780b2588-bda5-4112-a1cd-0b15000a5339'; + searchResult = new ItemSearchResult(); + searchResult.indexableObject = new Item(); + searchResult.indexableObject.uuid = id; + } + + beforeEach(async(() => { + init(); + TestBed.configureTestingModule( + { + declarations: [ItemAdminSearchResultGridElementComponent], + imports: [ + NoopAnimationsModule, + TranslateModule.forRoot(), + RouterTestingModule.withRoutes([]), + SharedModule + ], + providers: [ + { provide: TruncatableService, useValue: mockTruncatableService }, + { provide: BitstreamDataService, useValue: mockBitstreamDataService }, + ], + schemas: [NO_ERRORS_SCHEMA] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ItemAdminSearchResultGridElementComponent); + component = fixture.componentInstance; + component.object = searchResult; + component.linkTypes = CollectionElementLinkType; + component.index = 0; + component.viewModes = ViewMode; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('when the item is not withdrawn', () => { + beforeEach(() => { + component.dso.isWithdrawn = false; + fixture.detectChanges(); + }); + + it('should not show the withdrawn badge', () => { + const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); + expect(badge).toBeNull(); + }); + }); + + describe('when the item is withdrawn', () => { + beforeEach(() => { + component.dso.isWithdrawn = true; + fixture.detectChanges(); + }); + + it('should show the withdrawn badge', () => { + const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); + expect(badge).not.toBeNull(); + }); + }); + + describe('when the item is not private', () => { + beforeEach(() => { + component.dso.isDiscoverable = true; + fixture.detectChanges(); + }); + it('should not show the private badge', () => { + const badge = fixture.debugElement.query(By.css('div.private-badge')); + expect(badge).toBeNull(); + }); + }); + + describe('when the item is private', () => { + beforeEach(() => { + component.dso.isDiscoverable = false; + fixture.detectChanges(); + }); + + it('should show the private badge', () => { + const badge = fixture.debugElement.query(By.css('div.private-badge')); + expect(badge).not.toBeNull(); + }); + }) +}); diff --git a/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.ts new file mode 100644 index 0000000000..04558f6320 --- /dev/null +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.ts @@ -0,0 +1,75 @@ +import { Component, ComponentFactoryResolver, ElementRef, OnInit, ViewChild, ViewContainerRef } from '@angular/core'; +import { Item } from '../../../../../core/shared/item.model'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { getListableObjectComponent, listableObjectComponent } from '../../../../../shared/object-collection/shared/listable-object/listable-object.decorator'; +import { Context } from '../../../../../core/shared/context.model'; +import { ItemSearchResult } from '../../../../../shared/object-collection/shared/item-search-result.model'; +import { getItemEditPath } from '../../../../../+item-page/item-page-routing.module'; +import { URLCombiner } from '../../../../../core/url-combiner/url-combiner'; +import { + ITEM_EDIT_DELETE_PATH, + ITEM_EDIT_MOVE_PATH, + ITEM_EDIT_PRIVATE_PATH, + ITEM_EDIT_PUBLIC_PATH, + ITEM_EDIT_REINSTATE_PATH, + ITEM_EDIT_WITHDRAW_PATH +} from '../../../../../+item-page/edit-item-page/edit-item-page.routing.module'; +import { SearchResultGridElementComponent } from '../../../../../shared/object-grid/search-result-grid-element/search-result-grid-element.component'; +import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service'; +import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service'; +import { GenericConstructor } from '../../../../../core/shared/generic-constructor'; +import { ListableObjectDirective } from '../../../../../shared/object-collection/shared/listable-object/listable-object.directive'; + +@listableObjectComponent(ItemSearchResult, ViewMode.GridElement, Context.AdminSearch) +@Component({ + selector: 'ds-item-admin-search-result-grid-element', + styleUrls: ['./item-admin-search-result-grid-element.component.scss'], + templateUrl: './item-admin-search-result-grid-element.component.html' +}) +/** + * The component for displaying a list element for an item search result on the admin search page + */ +export class ItemAdminSearchResultGridElementComponent extends SearchResultGridElementComponent implements OnInit { + @ViewChild(ListableObjectDirective, { static: true }) listableObjectDirective: ListableObjectDirective; + @ViewChild('badges', { static: true }) badges: ElementRef; + @ViewChild('buttons', { static: true }) buttons: ElementRef; + + constructor(protected truncatableService: TruncatableService, + protected bitstreamDataService: BitstreamDataService, + private componentFactoryResolver: ComponentFactoryResolver + ) { + super(truncatableService, bitstreamDataService); + } + + /** + * Setup the dynamic child component + */ + ngOnInit(): void { + super.ngOnInit(); + const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.getComponent()); + + const viewContainerRef = this.listableObjectDirective.viewContainerRef; + viewContainerRef.clear(); + + const componentRef = viewContainerRef.createComponent( + componentFactory, + 0, + undefined, + [ + [this.badges.nativeElement], + [this.buttons.nativeElement] + ]); + (componentRef.instance as any).object = this.object; + (componentRef.instance as any).index = this.index; + (componentRef.instance as any).linkType = this.linkType; + (componentRef.instance as any).listID = this.listID; + } + + /** + * Fetch the component depending on the item's relationship type, view mode and context + * @returns {GenericConstructor} + */ + private getComponent(): GenericConstructor { + return getListableObjectComponent(this.object.getRenderTypes(), ViewMode.GridElement, undefined) + } +} diff --git a/src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.html b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.html similarity index 100% rename from src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.html rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.html diff --git a/src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.scss b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.scss similarity index 100% rename from src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.scss rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.scss diff --git a/src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.spec.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.spec.ts similarity index 77% rename from src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.spec.ts rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.spec.ts index 9e932db81c..259d1d64aa 100644 --- a/src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.spec.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.spec.ts @@ -3,14 +3,14 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { NO_ERRORS_SCHEMA } from '@angular/core'; import { CollectionAdminSearchResultListElementComponent } from './collection-admin-search-result-list-element.component'; import { TranslateModule } from '@ngx-translate/core'; -import { TruncatableService } from '../../../truncatable/truncatable.service'; -import { CollectionElementLinkType } from '../../../object-collection/collection-element-link.type'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { CollectionSearchResult } from '../../../object-collection/shared/collection-search-result.model'; -import { Collection } from '../../../../core/shared/collection.model'; +import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service'; +import { CollectionElementLinkType } from '../../../../../shared/object-collection/collection-element-link.type'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { CollectionSearchResult } from '../../../../../shared/object-collection/shared/collection-search-result.model'; +import { Collection } from '../../../../../core/shared/collection.model'; import { By } from '@angular/platform-browser'; import { RouterTestingModule } from '@angular/router/testing'; -import { getCollectionEditPath } from '../../../../+collection-page/collection-page-routing.module'; +import { getCollectionEditPath } from '../../../../../+collection-page/collection-page-routing.module'; describe('CollectionAdminSearchResultListElementComponent', () => { let component: CollectionAdminSearchResultListElementComponent; diff --git a/src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.ts similarity index 51% rename from src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.ts rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.ts index 5adb12cf77..e49f272184 100644 --- a/src/app/shared/object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.ts @@ -1,11 +1,11 @@ import { Component } from '@angular/core'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; -import { Context } from '../../../../core/shared/context.model'; -import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component'; -import { CollectionSearchResult } from '../../../object-collection/shared/collection-search-result.model'; -import { Collection } from '../../../../core/shared/collection.model'; -import { getCollectionEditPath } from '../../../../+collection-page/collection-page-routing.module'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { listableObjectComponent } from '../../../../../shared/object-collection/shared/listable-object/listable-object.decorator'; +import { Context } from '../../../../../core/shared/context.model'; +import { SearchResultListElementComponent } from '../../../../../shared/object-list/search-result-list-element/search-result-list-element.component'; +import { CollectionSearchResult } from '../../../../../shared/object-collection/shared/collection-search-result.model'; +import { Collection } from '../../../../../core/shared/collection.model'; +import { getCollectionEditPath } from '../../../../../+collection-page/collection-page-routing.module'; @listableObjectComponent(CollectionSearchResult, ViewMode.ListElement, Context.AdminSearch) @Component({ diff --git a/src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.html b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.html similarity index 100% rename from src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.html rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.html diff --git a/src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.scss b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.scss similarity index 100% rename from src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.scss rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.scss diff --git a/src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.spec.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.spec.ts similarity index 75% rename from src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.spec.ts rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.spec.ts index 79e7350437..a7922d7cf5 100644 --- a/src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.spec.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.spec.ts @@ -2,15 +2,15 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { NO_ERRORS_SCHEMA } from '@angular/core'; import { TranslateModule } from '@ngx-translate/core'; -import { TruncatableService } from '../../../truncatable/truncatable.service'; -import { CollectionElementLinkType } from '../../../object-collection/collection-element-link.type'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { Collection } from '../../../../core/shared/collection.model'; +import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service'; +import { CollectionElementLinkType } from '../../../../../shared/object-collection/collection-element-link.type'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; import { By } from '@angular/platform-browser'; import { RouterTestingModule } from '@angular/router/testing'; import { CommunityAdminSearchResultListElementComponent } from './community-admin-search-result-list-element.component'; -import { CommunitySearchResult } from '../../../object-collection/shared/community-search-result.model'; -import { getCommunityEditPath } from '../../../../+community-page/community-page-routing.module'; +import { CommunitySearchResult } from '../../../../../shared/object-collection/shared/community-search-result.model'; +import { getCommunityEditPath } from '../../../../../+community-page/community-page-routing.module'; +import { Community } from '../../../../../core/shared/community.model'; describe('CommunityAdminSearchResultListElementComponent', () => { let component: CommunityAdminSearchResultListElementComponent; @@ -21,7 +21,7 @@ describe('CommunityAdminSearchResultListElementComponent', () => { function init() { id = '780b2588-bda5-4112-a1cd-0b15000a5339'; searchResult = new CommunitySearchResult(); - searchResult.indexableObject = new Collection(); + searchResult.indexableObject = new Community(); searchResult.indexableObject.uuid = id; } beforeEach(async(() => { diff --git a/src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.ts similarity index 51% rename from src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.ts rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.ts index c835f02062..71fe4203ef 100644 --- a/src/app/shared/object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.ts @@ -1,11 +1,11 @@ import { Component } from '@angular/core'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; -import { Context } from '../../../../core/shared/context.model'; -import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component'; -import { CommunitySearchResult } from '../../../object-collection/shared/community-search-result.model'; -import { Community } from '../../../../core/shared/community.model'; -import { getCommunityEditPath } from '../../../../+community-page/community-page-routing.module'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { listableObjectComponent } from '../../../../../shared/object-collection/shared/listable-object/listable-object.decorator'; +import { Context } from '../../../../../core/shared/context.model'; +import { SearchResultListElementComponent } from '../../../../../shared/object-list/search-result-list-element/search-result-list-element.component'; +import { CommunitySearchResult } from '../../../../../shared/object-collection/shared/community-search-result.model'; +import { Community } from '../../../../../core/shared/community.model'; +import { getCommunityEditPath } from '../../../../../+community-page/community-page-routing.module'; @listableObjectComponent(CommunitySearchResult, ViewMode.ListElement, Context.AdminSearch) @Component({ diff --git a/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html new file mode 100644 index 0000000000..a74e339e63 --- /dev/null +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html @@ -0,0 +1,12 @@ +
+ {{ "admin.search.item.private" | translate }} +
+
+ {{ "admin.search.item.withdrawn" | translate }} +
+ + diff --git a/src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.scss b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.scss similarity index 100% rename from src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.scss rename to src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.scss diff --git a/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.spec.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.spec.ts new file mode 100644 index 0000000000..8395bd4f11 --- /dev/null +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.spec.ts @@ -0,0 +1,101 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { TranslateModule } from '@ngx-translate/core'; +import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service'; +import { CollectionElementLinkType } from '../../../../../shared/object-collection/collection-element-link.type'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { By } from '@angular/platform-browser'; +import { RouterTestingModule } from '@angular/router/testing'; +import { ItemSearchResult } from '../../../../../shared/object-collection/shared/item-search-result.model'; +import { ItemAdminSearchResultListElementComponent } from './item-admin-search-result-list-element.component'; +import { Item } from '../../../../../core/shared/item.model'; + +describe('ItemAdminSearchResultListElementComponent', () => { + let component: ItemAdminSearchResultListElementComponent; + let fixture: ComponentFixture; + let id; + let searchResult; + + function init() { + id = '780b2588-bda5-4112-a1cd-0b15000a5339'; + searchResult = new ItemSearchResult(); + searchResult.indexableObject = new Item(); + searchResult.indexableObject.uuid = id; + } + + beforeEach(async(() => { + init(); + TestBed.configureTestingModule({ + imports: [ + TranslateModule.forRoot(), + RouterTestingModule.withRoutes([]) + ], + declarations: [ItemAdminSearchResultListElementComponent], + providers: [{ provide: TruncatableService, useValue: {} }], + schemas: [NO_ERRORS_SCHEMA] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ItemAdminSearchResultListElementComponent); + component = fixture.componentInstance; + component.object = searchResult; + component.linkTypes = CollectionElementLinkType; + component.index = 0; + component.viewModes = ViewMode; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('when the item is not withdrawn', () => { + beforeEach(() => { + component.dso.isWithdrawn = false; + fixture.detectChanges(); + }); + + it('should not show the withdrawn badge', () => { + const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); + expect(badge).toBeNull(); + }); + }); + + describe('when the item is withdrawn', () => { + beforeEach(() => { + component.dso.isWithdrawn = true; + fixture.detectChanges(); + }); + + it('should show the withdrawn badge', () => { + const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); + expect(badge).not.toBeNull(); + }); + }); + + describe('when the item is not private', () => { + beforeEach(() => { + component.dso.isDiscoverable = true; + fixture.detectChanges(); + }); + it('should not show the private badge', () => { + const badge = fixture.debugElement.query(By.css('div.private-badge')); + expect(badge).toBeNull(); + }); + }); + + describe('when the item is private', () => { + beforeEach(() => { + component.dso.isDiscoverable = false; + fixture.detectChanges(); + }); + + it('should show the private badge', () => { + const badge = fixture.debugElement.query(By.css('div.private-badge')); + expect(badge).not.toBeNull(); + }); + }) +}); diff --git a/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.ts b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.ts new file mode 100644 index 0000000000..b1dea11341 --- /dev/null +++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; +import { Item } from '../../../../../core/shared/item.model'; +import { ViewMode } from '../../../../../core/shared/view-mode.model'; +import { listableObjectComponent } from '../../../../../shared/object-collection/shared/listable-object/listable-object.decorator'; +import { Context } from '../../../../../core/shared/context.model'; +import { ItemSearchResult } from '../../../../../shared/object-collection/shared/item-search-result.model'; +import { SearchResultListElementComponent } from '../../../../../shared/object-list/search-result-list-element/search-result-list-element.component'; + +@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.AdminSearch) +@Component({ + selector: 'ds-item-admin-search-result-list-element', + styleUrls: ['./item-admin-search-result-list-element.component.scss'], + templateUrl: './item-admin-search-result-list-element.component.html' +}) +/** + * The component for displaying a list element for an item search result on the admin search page + */ +export class ItemAdminSearchResultListElementComponent extends SearchResultListElementComponent { + +} diff --git a/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.html b/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.html new file mode 100644 index 0000000000..a4a923e725 --- /dev/null +++ b/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.html @@ -0,0 +1,27 @@ + + {{"admin.search.item.edit" | translate}} + + + + {{"admin.search.item.withdraw" | translate}} + + + + {{"admin.search.item.reinstate" | translate}} + + + + {{"admin.search.item.make-private" | translate}} + + + + {{"admin.search.item.make-public" | translate}} + + + + {{"admin.search.item.delete" | translate}} + + + + {{"admin.search.item.move" | translate}} + diff --git a/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.scss b/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.scss new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.scss @@ -0,0 +1 @@ + diff --git a/src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.spec.ts b/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.spec.ts similarity index 52% rename from src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.spec.ts rename to src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.spec.ts index e75244ff3e..c1aceb477d 100644 --- a/src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.spec.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.spec.ts @@ -2,29 +2,31 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { NO_ERRORS_SCHEMA } from '@angular/core'; import { TranslateModule } from '@ngx-translate/core'; -import { TruncatableService } from '../../../truncatable/truncatable.service'; -import { CollectionElementLinkType } from '../../../object-collection/collection-element-link.type'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { Collection } from '../../../../core/shared/collection.model'; import { By } from '@angular/platform-browser'; import { RouterTestingModule } from '@angular/router/testing'; -import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model'; -import { ItemAdminSearchResultListElementComponent } from './item-admin-search-result-list-element.component'; -import { getItemEditPath } from '../../../../+item-page/item-page-routing.module'; -import { URLCombiner } from '../../../../core/url-combiner/url-combiner'; -import { ITEM_EDIT_DELETE_PATH, ITEM_EDIT_MOVE_PATH, ITEM_EDIT_REINSTATE_PATH, ITEM_EDIT_WITHDRAW_PATH } from '../../../../+item-page/edit-item-page/edit-item-page.routing.module'; +import { ItemAdminSearchResultActionsComponent } from './item-admin-search-result-actions.component'; +import { Item } from '../../../core/shared/item.model'; +import { + ITEM_EDIT_DELETE_PATH, + ITEM_EDIT_MOVE_PATH, + ITEM_EDIT_PRIVATE_PATH, + ITEM_EDIT_PUBLIC_PATH, + ITEM_EDIT_REINSTATE_PATH, + ITEM_EDIT_WITHDRAW_PATH +} from '../../../+item-page/edit-item-page/edit-item-page.routing.module'; +import { getItemEditPath } from '../../../+item-page/item-page-routing.module'; +import { URLCombiner } from '../../../core/url-combiner/url-combiner'; -describe('ItemAdminSearchResultListElementComponent', () => { - let component: ItemAdminSearchResultListElementComponent; - let fixture: ComponentFixture; +describe('ItemAdminSearchResultActionsComponent', () => { + let component: ItemAdminSearchResultActionsComponent; + let fixture: ComponentFixture; let id; - let searchResult; + let item; function init() { id = '780b2588-bda5-4112-a1cd-0b15000a5339'; - searchResult = new ItemSearchResult(); - searchResult.indexableObject = new Collection(); - searchResult.indexableObject.uuid = id; + item = new Item(); + item.uuid = id; } beforeEach(async(() => { init(); @@ -33,20 +35,16 @@ describe('ItemAdminSearchResultListElementComponent', () => { TranslateModule.forRoot(), RouterTestingModule.withRoutes([]) ], - declarations: [ItemAdminSearchResultListElementComponent], - providers: [{ provide: TruncatableService, useValue: {} }], + declarations: [ItemAdminSearchResultActionsComponent], schemas: [NO_ERRORS_SCHEMA] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(ItemAdminSearchResultListElementComponent); + fixture = TestBed.createComponent(ItemAdminSearchResultActionsComponent); component = fixture.componentInstance; - component.object = searchResult; - component.linkTypes = CollectionElementLinkType; - component.index = 0; - component.viewModes = ViewMode; + component.item = item; fixture.detectChanges(); }); @@ -74,15 +72,10 @@ describe('ItemAdminSearchResultListElementComponent', () => { describe('when the item is not withdrawn', () => { beforeEach(() => { - component.dso.isWithdrawn = false; + component.item.isWithdrawn = false; fixture.detectChanges(); }); - it('should not show the withdrawn badge', () => { - const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); - expect(badge).toBeNull(); - }); - it('should render a withdraw button with the correct link', () => { const a = fixture.debugElement.query(By.css('a.withdraw-link')); const link = a.nativeElement.href; @@ -97,24 +90,55 @@ describe('ItemAdminSearchResultListElementComponent', () => { describe('when the item is withdrawn', () => { beforeEach(() => { - component.dso.isWithdrawn = true; + component.item.isWithdrawn = true; fixture.detectChanges(); }); - it('should show the withdrawn badge', () => { - const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); - expect(badge).not.toBeNull(); - }); - - it('should render a withdraw button with the correct link', () => { + it('should not render a withdraw button with the correct link', () => { const a = fixture.debugElement.query(By.css('a.withdraw-link')); expect(a).toBeNull(); }); - it('should not render a reinstate button with the correct link', () => { + it('should render a reinstate button with the correct link', () => { const a = fixture.debugElement.query(By.css('a.reinstate-link')); const link = a.nativeElement.href; expect(link).toContain(new URLCombiner(getItemEditPath(id), ITEM_EDIT_REINSTATE_PATH).toString()); }); + }); + + describe('when the item is not private', () => { + beforeEach(() => { + component.item.isDiscoverable = true; + fixture.detectChanges(); + }); + + it('should render a make private button with the correct link', () => { + const a = fixture.debugElement.query(By.css('a.private-link')); + const link = a.nativeElement.href; + expect(link).toContain(new URLCombiner(getItemEditPath(id), ITEM_EDIT_PRIVATE_PATH).toString()); + }); + + it('should not render a make public button with the correct link', () => { + const a = fixture.debugElement.query(By.css('a.public-link')); + expect(a).toBeNull(); + }); + }); + + describe('when the item is private', () => { + beforeEach(() => { + component.item.isDiscoverable = false; + fixture.detectChanges(); + }); + + it('should not render a make private button with the correct link', () => { + const a = fixture.debugElement.query(By.css('a.private-link')); + expect(a).toBeNull(); + }); + + it('should render a make private button with the correct link', () => { + const a = fixture.debugElement.query(By.css('a.public-link')); + const link = a.nativeElement.href; + expect(link).toContain(new URLCombiner(getItemEditPath(id), ITEM_EDIT_PUBLIC_PATH).toString()); + }); }) }); diff --git a/src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.ts b/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.ts similarity index 52% rename from src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.ts rename to src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.ts index 3eb84e08ad..e8ce31bcf6 100644 --- a/src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.ts +++ b/src/app/+admin/admin-search-page/admin-search-results/item-admin-search-result-actions.component.ts @@ -1,36 +1,32 @@ -import { Component } from '@angular/core'; -import { Item } from '../../../../core/shared/item.model'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; -import { Context } from '../../../../core/shared/context.model'; -import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model'; -import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component'; -import { getItemEditPath } from '../../../../+item-page/item-page-routing.module'; -import { URLCombiner } from '../../../../core/url-combiner/url-combiner'; +import { Component, Input } from '@angular/core'; +import { Item } from '../../../core/shared/item.model'; +import { getItemEditPath } from '../../../+item-page/item-page-routing.module'; +import { URLCombiner } from '../../../core/url-combiner/url-combiner'; import { ITEM_EDIT_DELETE_PATH, ITEM_EDIT_MOVE_PATH, - ITEM_EDIT_PRIVATE_PATH, ITEM_EDIT_PUBLIC_PATH, + ITEM_EDIT_PRIVATE_PATH, + ITEM_EDIT_PUBLIC_PATH, ITEM_EDIT_REINSTATE_PATH, ITEM_EDIT_WITHDRAW_PATH -} from '../../../../+item-page/edit-item-page/edit-item-page.routing.module'; +} from '../../../+item-page/edit-item-page/edit-item-page.routing.module'; -@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.AdminSearch) @Component({ - selector: 'ds-item-admin-search-result-list-element', - styleUrls: ['./item-admin-search-result-list-element.component.scss'], - templateUrl: './item-admin-search-result-list-element.component.html' + selector: 'ds-item-admin-search-result-actions-element', + styleUrls: ['./item-admin-search-result-actions.component.scss'], + templateUrl: './item-admin-search-result-actions.component.html' }) /** * The component for displaying a list element for an item search result on the admin search page */ -export class ItemAdminSearchResultListElementComponent extends SearchResultListElementComponent { - +export class ItemAdminSearchResultActionsComponent { + @Input() public item: Item; + @Input() public small: boolean; /** * Returns the path to the edit page of this item */ getEditPath(): string { - return getItemEditPath(this.dso.uuid) + return getItemEditPath(this.item.uuid) } /** diff --git a/src/app/+admin/admin.module.ts b/src/app/+admin/admin.module.ts index b3617cdf4d..90fe03cba0 100644 --- a/src/app/+admin/admin.module.ts +++ b/src/app/+admin/admin.module.ts @@ -4,6 +4,13 @@ import { AdminRoutingModule } from './admin-routing.module'; import { SharedModule } from '../shared/shared.module'; import { AdminSearchPageComponent } from './admin-search-page/admin-search-page.component'; import { SearchPageModule } from '../+search-page/search-page.module'; +import { ItemAdminSearchResultListElementComponent } from './admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component'; +import { CommunityAdminSearchResultListElementComponent } from './admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component'; +import { CollectionAdminSearchResultListElementComponent } from './admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component'; +import { ItemAdminSearchResultGridElementComponent } from './admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component'; +import { CommunityAdminSearchResultGridElementComponent } from './admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component'; +import { CollectionAdminSearchResultGridElementComponent } from './admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component'; +import { ItemAdminSearchResultActionsComponent } from './admin-search-page/admin-search-results/item-admin-search-result-actions.component'; @NgModule({ imports: [ @@ -12,7 +19,25 @@ import { SearchPageModule } from '../+search-page/search-page.module'; SharedModule, SearchPageModule ], - declarations: [AdminSearchPageComponent], + declarations: [ + AdminSearchPageComponent, + ItemAdminSearchResultListElementComponent, + CommunityAdminSearchResultListElementComponent, + CollectionAdminSearchResultListElementComponent, + ItemAdminSearchResultGridElementComponent, + CommunityAdminSearchResultGridElementComponent, + CollectionAdminSearchResultGridElementComponent, + ItemAdminSearchResultActionsComponent + ], + entryComponents: [ + ItemAdminSearchResultListElementComponent, + CommunityAdminSearchResultListElementComponent, + CollectionAdminSearchResultListElementComponent, + ItemAdminSearchResultGridElementComponent, + CommunityAdminSearchResultGridElementComponent, + CollectionAdminSearchResultGridElementComponent, + ItemAdminSearchResultActionsComponent + ] }) export class AdminModule { diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html b/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html deleted file mode 100644 index 1394d49154..0000000000 --- a/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html +++ /dev/null @@ -1,41 +0,0 @@ - - -
-
- {{ "admin.search.item.private" | translate }} -
-
- {{ "admin.search.item.withdrawn" | translate }} -
-
- diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts b/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts deleted file mode 100644 index 92110c4735..0000000000 --- a/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { NO_ERRORS_SCHEMA } from '@angular/core'; -import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { TranslateModule } from '@ngx-translate/core'; -import { Observable } from 'rxjs/internal/Observable'; -import { BitstreamDataService } from '../../../../core/data/bitstream-data.service'; -import { RemoteData } from '../../../../core/data/remote-data'; -import { Bitstream } from '../../../../core/shared/bitstream.model'; -import { Item } from '../../../../core/shared/item.model'; -import { mockTruncatableService } from '../../../mocks/mock-trucatable.service'; -import { SharedModule } from '../../../shared.module'; -import { createSuccessfulRemoteDataObject$ } from '../../../testing/utils'; -import { TruncatableService } from '../../../truncatable/truncatable.service'; -import { CollectionElementLinkType } from '../../../object-collection/collection-element-link.type'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { Collection } from '../../../../core/shared/collection.model'; -import { By } from '@angular/platform-browser'; -import { RouterTestingModule } from '@angular/router/testing'; -import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model'; -import { ItemAdminSearchResultGridElementComponent } from './item-admin-search-result-grid-element.component'; -import { getItemEditPath } from '../../../../+item-page/item-page-routing.module'; -import { URLCombiner } from '../../../../core/url-combiner/url-combiner'; -import { ITEM_EDIT_DELETE_PATH, ITEM_EDIT_MOVE_PATH, ITEM_EDIT_REINSTATE_PATH, ITEM_EDIT_WITHDRAW_PATH } from '../../../../+item-page/edit-item-page/edit-item-page.routing.module'; - -describe('ItemAdminSearchResultListElementComponent', () => { - let component: ItemAdminSearchResultGridElementComponent; - let fixture: ComponentFixture; - let id; - let searchResult; - - const mockBitstreamDataService = { - getThumbnailFor(item: Item): Observable> { - return createSuccessfulRemoteDataObject$(new Bitstream()); - } - }; - - function init() { - id = '780b2588-bda5-4112-a1cd-0b15000a5339'; - searchResult = new ItemSearchResult(); - searchResult.indexableObject = new Collection(); - searchResult.indexableObject.uuid = id; - } - beforeEach(async(() => { - init(); - TestBed.configureTestingModule({ - imports: [ - NoopAnimationsModule, - TranslateModule.forRoot(), - RouterTestingModule.withRoutes([]), - SharedModule - ], - providers: [ - { provide: TruncatableService, useValue: mockTruncatableService }, - { provide: BitstreamDataService, useValue: mockBitstreamDataService }, - ], - schemas: [NO_ERRORS_SCHEMA] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ItemAdminSearchResultGridElementComponent); - component = fixture.componentInstance; - component.object = searchResult; - component.linkTypes = CollectionElementLinkType; - component.index = 0; - component.viewModes = ViewMode; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - it('should render an edit button with the correct link', () => { - const button = fixture.debugElement.query(By.css('a.edit-link')); - const link = button.nativeElement.href; - expect(link).toContain(getItemEditPath(id)); - }); - - it('should render a delete button with the correct link', () => { - const button = fixture.debugElement.query(By.css('a.delete-link')); - const link = button.nativeElement.href; - expect(link).toContain(new URLCombiner(getItemEditPath(id), ITEM_EDIT_DELETE_PATH).toString()); - }); - - it('should render a move button with the correct link', () => { - const a = fixture.debugElement.query(By.css('a.move-link')); - const link = a.nativeElement.href; - expect(link).toContain(new URLCombiner(getItemEditPath(id), ITEM_EDIT_MOVE_PATH).toString()); - }); - - describe('when the item is not withdrawn', () => { - beforeEach(() => { - component.dso.isWithdrawn = false; - fixture.detectChanges(); - }); - - it('should not show the withdrawn badge', () => { - const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); - expect(badge).toBeNull(); - }); - - it('should render a withdraw button with the correct link', () => { - const a = fixture.debugElement.query(By.css('a.withdraw-link')); - const link = a.nativeElement.href; - expect(link).toContain(new URLCombiner(getItemEditPath(id), ITEM_EDIT_WITHDRAW_PATH).toString()); - }); - - it('should not render a reinstate button with the correct link', () => { - const a = fixture.debugElement.query(By.css('a.reinstate-link')); - expect(a).toBeNull(); - }); - }); - - describe('when the item is withdrawn', () => { - beforeEach(() => { - component.dso.isWithdrawn = true; - fixture.detectChanges(); - }); - - it('should show the withdrawn badge', () => { - const badge = fixture.debugElement.query(By.css('div.withdrawn-badge')); - expect(badge).not.toBeNull(); - }); - - it('should render a withdraw button with the correct link', () => { - const a = fixture.debugElement.query(By.css('a.withdraw-link')); - expect(a).toBeNull(); - }); - - it('should not render a reinstate button with the correct link', () => { - const a = fixture.debugElement.query(By.css('a.reinstate-link')); - const link = a.nativeElement.href; - expect(link).toContain(new URLCombiner(getItemEditPath(id), ITEM_EDIT_REINSTATE_PATH).toString()); - }); - }) -}); diff --git a/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.ts b/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.ts deleted file mode 100644 index 8ac4f3904c..0000000000 --- a/src/app/shared/object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { Component, ComponentFactoryResolver, ElementRef, OnInit, ViewChild, ViewContainerRef } from '@angular/core'; -import { Item } from '../../../../core/shared/item.model'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { getListableObjectComponent, listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; -import { Context } from '../../../../core/shared/context.model'; -import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model'; -import { getItemEditPath } from '../../../../+item-page/item-page-routing.module'; -import { URLCombiner } from '../../../../core/url-combiner/url-combiner'; -import { - ITEM_EDIT_DELETE_PATH, - ITEM_EDIT_MOVE_PATH, - ITEM_EDIT_PRIVATE_PATH, - ITEM_EDIT_PUBLIC_PATH, - ITEM_EDIT_REINSTATE_PATH, - ITEM_EDIT_WITHDRAW_PATH -} from '../../../../+item-page/edit-item-page/edit-item-page.routing.module'; -import { SearchResultGridElementComponent } from '../../search-result-grid-element/search-result-grid-element.component'; -import { TruncatableService } from '../../../truncatable/truncatable.service'; -import { BitstreamDataService } from '../../../../core/data/bitstream-data.service'; -import { GenericConstructor } from '../../../../core/shared/generic-constructor'; -import { ListableObjectDirective } from '../../../object-collection/shared/listable-object/listable-object.directive'; - -@listableObjectComponent(ItemSearchResult, ViewMode.GridElement, Context.AdminSearch) -@Component({ - selector: 'ds-item-admin-search-result-grid-element', - styleUrls: ['./item-admin-search-result-grid-element.component.scss'], - templateUrl: './item-admin-search-result-grid-element.component.html' -}) -/** - * The component for displaying a list element for an item search result on the admin search page - */ -export class ItemAdminSearchResultGridElementComponent extends SearchResultGridElementComponent implements OnInit { - @ViewChild(ListableObjectDirective, {static: true}) listableObjectDirective: ListableObjectDirective; - @ViewChild('badges', {static: true}) badges: ElementRef; - @ViewChild('buttons', {static: true}) buttons: ElementRef; - - constructor(protected truncatableService: TruncatableService, - protected bitstreamDataService: BitstreamDataService, - private componentFactoryResolver: ComponentFactoryResolver, - private viewContainerRef: ViewContainerRef) { - super(truncatableService, bitstreamDataService); - } - - /** - * Setup the dynamic child component - */ - ngOnInit(): void { - super.ngOnInit(); - const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.getComponent()); - - const viewContainerRef = this.listableObjectDirective.viewContainerRef; - viewContainerRef.clear(); - - const componentRef = viewContainerRef.createComponent( - componentFactory, - 0, - undefined, - [ - [this.badges.nativeElement], - [this.buttons.nativeElement] - ]); - (componentRef.instance as any).object = this.object; - (componentRef.instance as any).index = this.index; - (componentRef.instance as any).linkType = this.linkType; - (componentRef.instance as any).listID = this.listID; - } - - /** - * Fetch the component depending on the item's relationship type, view mode and context - * @returns {GenericConstructor} - */ - private getComponent(): GenericConstructor { - return getListableObjectComponent(this.object.getRenderTypes(), ViewMode.GridElement, undefined) - } - - /** - * Returns the path to the edit page of this item - */ - getEditPath(): string { - return getItemEditPath(this.dso.uuid) - } - - /** - * Returns the path to the move page of this item - */ - getMovePath(): string { - return new URLCombiner(this.getEditPath(), ITEM_EDIT_MOVE_PATH).toString(); - } - - /** - * Returns the path to the delete page of this item - */ - getDeletePath(): string { - return new URLCombiner(this.getEditPath(), ITEM_EDIT_DELETE_PATH).toString(); - } - - /** - * Returns the path to the withdraw page of this item - */ - getWithdrawPath(): string { - return new URLCombiner(this.getEditPath(), ITEM_EDIT_WITHDRAW_PATH).toString(); - } - - /** - * Returns the path to the reinstate page of this item - */ - getReinstatePath(): string { - return new URLCombiner(this.getEditPath(), ITEM_EDIT_REINSTATE_PATH).toString(); - } - - /** - * Returns the path to the page where the user can make this item private - */ - getPrivatePath(): string { - return new URLCombiner(this.getEditPath(), ITEM_EDIT_PRIVATE_PATH).toString(); - } - - /** - * Returns the path to the page where the user can make this item public - */ - getPublicPath(): string { - return new URLCombiner(this.getEditPath(), ITEM_EDIT_PUBLIC_PATH).toString(); - } -} diff --git a/src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html b/src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html deleted file mode 100644 index 6c9d422a06..0000000000 --- a/src/app/shared/object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html +++ /dev/null @@ -1,39 +0,0 @@ -
- {{ "admin.search.item.private" | translate }} -
-
- {{ "admin.search.item.withdrawn" | translate }} -
- - - - {{"admin.search.item.edit" | translate}} - - - - {{"admin.search.item.withdraw" | translate}} - - - - {{"admin.search.item.reinstate" | translate}} - - - - {{"admin.search.item.make-private" | translate}} - - - - {{"admin.search.item.make-public" | translate}} - - - - {{"admin.search.item.delete" | translate}} - - - - {{"admin.search.item.move" | translate}} - diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 84738559ee..c229b6c429 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -177,13 +177,7 @@ import { ImportableListItemControlComponent } from './object-collection/shared/i import { DragDropModule } from '@angular/cdk/drag-drop'; import { ExistingMetadataListElementComponent } from './form/builder/ds-dynamic-form-ui/existing-metadata-list-element/existing-metadata-list-element.component'; import { SortablejsModule } from 'ngx-sortablejs'; -import { ItemAdminSearchResultListElementComponent } from './object-list/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component'; -import { CommunityAdminSearchResultListElementComponent } from './object-list/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component'; -import { CollectionAdminSearchResultListElementComponent } from './object-list/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component'; import { MissingTranslationHelper } from './translate/missing-translation.helper'; -import { ItemAdminSearchResultGridElementComponent } from './object-grid/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component'; -import { CommunityAdminSearchResultGridElementComponent } from './object-grid/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component'; -import { CollectionAdminSearchResultGridElementComponent } from './object-grid/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component'; const MODULES = [ // Do NOT include UniversalModule, HttpModule, or JsonpModule here @@ -351,12 +345,6 @@ const COMPONENTS = [ ImportableListItemControlComponent, ExistingMetadataListElementComponent, PublicationSearchResultListElementComponent, - ItemAdminSearchResultListElementComponent, - CommunityAdminSearchResultListElementComponent, - CollectionAdminSearchResultListElementComponent, - ItemAdminSearchResultGridElementComponent, - CommunityAdminSearchResultGridElementComponent, - CollectionAdminSearchResultGridElementComponent ]; const ENTRY_COMPONENTS = [ @@ -420,12 +408,6 @@ const ENTRY_COMPONENTS = [ DsDynamicLookupRelationSelectionTabComponent, DsDynamicLookupRelationExternalSourceTabComponent, ExternalSourceEntryImportModalComponent, - ItemAdminSearchResultListElementComponent, - CommunityAdminSearchResultListElementComponent, - CollectionAdminSearchResultListElementComponent, - ItemAdminSearchResultGridElementComponent, - CommunityAdminSearchResultGridElementComponent, - CollectionAdminSearchResultGridElementComponent ]; const SHARED_ITEM_PAGE_COMPONENTS = [