From db0db81c63de93f5fc0124ff4ffbda4139300ba5 Mon Sep 17 00:00:00 2001 From: Jonas Van Goolen Date: Fri, 17 Nov 2017 16:26:33 +0100 Subject: [PATCH] #150 Generalised AbstractListableElementComponent instead of grid/list specific implementations --- .../abstract-listable-element.component.ts | 13 +++++++++++++ .../collection-grid-element.component.ts | 4 ++-- .../community-grid-element.component.ts | 4 ++-- .../item-grid-element.component.ts | 4 ++-- .../object-grid-element.component.html | 0 .../object-grid-element.component.scss | 5 ----- .../object-grid-element.component.ts | 14 -------------- .../search-result-grid-element.component.ts | 4 ++-- .../collection-list-element.component.ts | 4 ++-- .../community-list-element.component.ts | 4 ++-- .../item-list-element.component.ts | 4 ++-- .../object-list-element.component.html | 0 .../object-list-element.component.scss | 6 ------ .../object-list-element.component.ts | 14 -------------- .../search-result-list-element.component.ts | 4 ++-- src/app/shared/shared.module.ts | 6 ++---- 16 files changed, 31 insertions(+), 59 deletions(-) create mode 100644 src/app/shared/object-collection/shared/object-collection-element/abstract-listable-element.component.ts delete mode 100644 src/app/shared/object-grid/object-grid-element/object-grid-element.component.html delete mode 100644 src/app/shared/object-grid/object-grid-element/object-grid-element.component.scss delete mode 100644 src/app/shared/object-grid/object-grid-element/object-grid-element.component.ts delete mode 100644 src/app/shared/object-list/object-list-element/object-list-element.component.html delete mode 100644 src/app/shared/object-list/object-list-element/object-list-element.component.scss delete mode 100644 src/app/shared/object-list/object-list-element/object-list-element.component.ts diff --git a/src/app/shared/object-collection/shared/object-collection-element/abstract-listable-element.component.ts b/src/app/shared/object-collection/shared/object-collection-element/abstract-listable-element.component.ts new file mode 100644 index 0000000000..d52036b5dc --- /dev/null +++ b/src/app/shared/object-collection/shared/object-collection-element/abstract-listable-element.component.ts @@ -0,0 +1,13 @@ +import { Component, Inject } from '@angular/core'; +import { ListableObject } from '../listable-object.model'; + +@Component({ + selector: 'ds-abstract-object-element', + template: ``, +}) +export class AbstractListableElementComponent { + object: T; + public constructor(@Inject('objectElementProvider') public listableObject: ListableObject) { + this.object = listableObject as T; + } +} diff --git a/src/app/shared/object-grid/collection-grid-element/collection-grid-element.component.ts b/src/app/shared/object-grid/collection-grid-element/collection-grid-element.component.ts index 09aadab15e..a7f5ef3e49 100644 --- a/src/app/shared/object-grid/collection-grid-element/collection-grid-element.component.ts +++ b/src/app/shared/object-grid/collection-grid-element/collection-grid-element.component.ts @@ -1,9 +1,9 @@ import { Component, Inject } from '@angular/core'; import { Collection } from '../../../core/shared/collection.model'; -import { ObjectGridElementComponent } from '../object-grid-element/object-grid-element.component'; import { renderElementsFor} from '../../object-collection/shared/dso-element-decorator'; import { ViewMode } from '../../../+search-page/search-options.model'; +import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component'; @Component({ @@ -13,4 +13,4 @@ import { ViewMode } from '../../../+search-page/search-options.model'; }) @renderElementsFor(Collection, ViewMode.Grid) -export class CollectionGridElementComponent extends ObjectGridElementComponent {} +export class CollectionGridElementComponent extends AbstractListableElementComponent {} diff --git a/src/app/shared/object-grid/community-grid-element/community-grid-element.component.ts b/src/app/shared/object-grid/community-grid-element/community-grid-element.component.ts index d40bd717a4..21d73ff0fa 100644 --- a/src/app/shared/object-grid/community-grid-element/community-grid-element.component.ts +++ b/src/app/shared/object-grid/community-grid-element/community-grid-element.component.ts @@ -1,7 +1,7 @@ import { Component, Input, Inject } from '@angular/core'; import { Community } from '../../../core/shared/community.model'; -import { ObjectGridElementComponent } from '../object-grid-element/object-grid-element.component'; +import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component'; import { renderElementsFor} from '../../object-collection/shared/dso-element-decorator'; import { ViewMode } from '../../../+search-page/search-options.model'; @@ -12,4 +12,4 @@ import { ViewMode } from '../../../+search-page/search-options.model'; }) @renderElementsFor(Community, ViewMode.Grid) -export class CommunityGridElementComponent extends ObjectGridElementComponent {} +export class CommunityGridElementComponent extends AbstractListableElementComponent {} diff --git a/src/app/shared/object-grid/item-grid-element/item-grid-element.component.ts b/src/app/shared/object-grid/item-grid-element/item-grid-element.component.ts index c41a6c9352..5a8d46f1f2 100644 --- a/src/app/shared/object-grid/item-grid-element/item-grid-element.component.ts +++ b/src/app/shared/object-grid/item-grid-element/item-grid-element.component.ts @@ -2,7 +2,7 @@ import { Component, Input, Inject } from '@angular/core'; import { Item } from '../../../core/shared/item.model'; import { renderElementsFor} from '../../object-collection/shared/dso-element-decorator'; -import { ObjectGridElementComponent } from '../object-grid-element/object-grid-element.component'; +import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component'; import { ViewMode } from '../../../+search-page/search-options.model'; @Component({ @@ -12,4 +12,4 @@ import { ViewMode } from '../../../+search-page/search-options.model'; }) @renderElementsFor(Item, ViewMode.Grid) -export class ItemGridElementComponent extends ObjectGridElementComponent {} +export class ItemGridElementComponent extends AbstractListableElementComponent {} diff --git a/src/app/shared/object-grid/object-grid-element/object-grid-element.component.html b/src/app/shared/object-grid/object-grid-element/object-grid-element.component.html deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/app/shared/object-grid/object-grid-element/object-grid-element.component.scss b/src/app/shared/object-grid/object-grid-element/object-grid-element.component.scss deleted file mode 100644 index d4720c4a64..0000000000 --- a/src/app/shared/object-grid/object-grid-element/object-grid-element.component.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import '../../../../styles/variables'; -:host { - display: block; - margin-bottom: $spacer; -} diff --git a/src/app/shared/object-grid/object-grid-element/object-grid-element.component.ts b/src/app/shared/object-grid/object-grid-element/object-grid-element.component.ts deleted file mode 100644 index c3ab5e39e3..0000000000 --- a/src/app/shared/object-grid/object-grid-element/object-grid-element.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Component, Inject } from '@angular/core'; -import { ListableObject } from '../../object-collection/shared/listable-object.model'; - -@Component({ - selector: 'ds-object-grid-element', - styleUrls: ['./object-grid-element.component.scss'], - templateUrl: './object-grid-element.component.html' -}) -export class ObjectGridElementComponent { - object: T; - public constructor(@Inject('objectElementProvider') public gridable: ListableObject) { - this.object = gridable as T; - } -} diff --git a/src/app/shared/object-grid/search-result-grid-element/search-result-grid-element.component.ts b/src/app/shared/object-grid/search-result-grid-element/search-result-grid-element.component.ts index 052a9377b5..8e1d7e0647 100644 --- a/src/app/shared/object-grid/search-result-grid-element/search-result-grid-element.component.ts +++ b/src/app/shared/object-grid/search-result-grid-element/search-result-grid-element.component.ts @@ -4,7 +4,7 @@ import { SearchResult } from '../../../+search-page/search-result.model'; import { DSpaceObject } from '../../../core/shared/dspace-object.model'; import { Metadatum } from '../../../core/shared/metadatum.model'; import { isEmpty, hasNoValue } from '../../empty.util'; -import { ObjectGridElementComponent } from '../object-grid-element/object-grid-element.component'; +import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component'; import { ListableObject } from '../../object-collection/shared/listable-object.model'; @Component({ @@ -12,7 +12,7 @@ import { ListableObject } from '../../object-collection/shared/listable-object.m template: `` }) -export class SearchResultGridElementComponent, K extends DSpaceObject> extends ObjectGridElementComponent { +export class SearchResultGridElementComponent, K extends DSpaceObject> extends AbstractListableElementComponent { dso: K; public constructor(@Inject('objectElementProvider') public gridable: ListableObject) { diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.ts b/src/app/shared/object-list/collection-list-element/collection-list-element.component.ts index 5e08e8ef3a..f95c087d5c 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.ts +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.ts @@ -1,9 +1,9 @@ import { Component, Inject } from '@angular/core'; import { Collection } from '../../../core/shared/collection.model'; -import { ObjectListElementComponent } from '../object-list-element/object-list-element.component'; import { renderElementsFor } from '../../object-collection/shared/dso-element-decorator'; import { ViewMode } from '../../../+search-page/search-options.model'; +import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component'; @Component({ selector: 'ds-collection-list-element', @@ -12,4 +12,4 @@ import { ViewMode } from '../../../+search-page/search-options.model'; }) @renderElementsFor(Collection, ViewMode.List) -export class CollectionListElementComponent extends ObjectListElementComponent {} +export class CollectionListElementComponent extends AbstractListableElementComponent {} diff --git a/src/app/shared/object-list/community-list-element/community-list-element.component.ts b/src/app/shared/object-list/community-list-element/community-list-element.component.ts index cd6e6f7574..e92c080a31 100644 --- a/src/app/shared/object-list/community-list-element/community-list-element.component.ts +++ b/src/app/shared/object-list/community-list-element/community-list-element.component.ts @@ -1,7 +1,7 @@ import { Component, Input, Inject } from '@angular/core'; import { Community } from '../../../core/shared/community.model'; -import { ObjectListElementComponent } from '../object-list-element/object-list-element.component'; +import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component'; import { renderElementsFor } from '../../object-collection/shared/dso-element-decorator'; import { ViewMode } from '../../../+search-page/search-options.model'; @@ -12,4 +12,4 @@ import { ViewMode } from '../../../+search-page/search-options.model'; }) @renderElementsFor(Community, ViewMode.List) -export class CommunityListElementComponent extends ObjectListElementComponent {} +export class CommunityListElementComponent extends AbstractListableElementComponent {} diff --git a/src/app/shared/object-list/item-list-element/item-list-element.component.ts b/src/app/shared/object-list/item-list-element/item-list-element.component.ts index 43c59f0980..e4efbd6b08 100644 --- a/src/app/shared/object-list/item-list-element/item-list-element.component.ts +++ b/src/app/shared/object-list/item-list-element/item-list-element.component.ts @@ -1,7 +1,7 @@ import { Component, Input, Inject } from '@angular/core'; import { Item } from '../../../core/shared/item.model'; -import { ObjectListElementComponent } from '../object-list-element/object-list-element.component'; +import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component'; import { renderElementsFor } from '../../object-collection/shared/dso-element-decorator'; import { ViewMode } from '../../../+search-page/search-options.model'; @@ -12,4 +12,4 @@ import { ViewMode } from '../../../+search-page/search-options.model'; }) @renderElementsFor(Item, ViewMode.List) -export class ItemListElementComponent extends ObjectListElementComponent {} +export class ItemListElementComponent extends AbstractListableElementComponent {} diff --git a/src/app/shared/object-list/object-list-element/object-list-element.component.html b/src/app/shared/object-list/object-list-element/object-list-element.component.html deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/app/shared/object-list/object-list-element/object-list-element.component.scss b/src/app/shared/object-list/object-list-element/object-list-element.component.scss deleted file mode 100644 index f96f4ae744..0000000000 --- a/src/app/shared/object-list/object-list-element/object-list-element.component.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import '../../../../styles/variables'; - -:host { - display: block; - margin-bottom: $spacer; -} diff --git a/src/app/shared/object-list/object-list-element/object-list-element.component.ts b/src/app/shared/object-list/object-list-element/object-list-element.component.ts deleted file mode 100644 index 24f0ec1d93..0000000000 --- a/src/app/shared/object-list/object-list-element/object-list-element.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Component, Inject } from '@angular/core'; -import { ListableObject } from '../../object-collection/shared/listable-object.model'; - -@Component({ - selector: 'ds-object-list-element', - styleUrls: ['./object-list-element.component.scss'], - templateUrl: './object-list-element.component.html' -}) -export class ObjectListElementComponent { - object: T; - public constructor(@Inject('objectElementProvider') public listable: ListableObject) { - this.object = listable as T; - } -} diff --git a/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts b/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts index b89bb56da6..6c79eaad53 100644 --- a/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts +++ b/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts @@ -1,18 +1,18 @@ import { Component, Inject } from '@angular/core'; -import { ObjectListElementComponent } from '../object-list-element/object-list-element.component'; import { SearchResult } from '../../../+search-page/search-result.model'; import { DSpaceObject } from '../../../core/shared/dspace-object.model'; import { Metadatum } from '../../../core/shared/metadatum.model'; import { isEmpty, hasNoValue } from '../../empty.util'; import { ListableObject } from '../../object-collection/shared/listable-object.model'; +import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component'; @Component({ selector: 'ds-search-result-list-element', template: `` }) -export class SearchResultListElementComponent, K extends DSpaceObject> extends ObjectListElementComponent { +export class SearchResultListElementComponent, K extends DSpaceObject> extends AbstractListableElementComponent { dso: K; public constructor(@Inject('objectElementProvider') public listable: ListableObject) { diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 7ee5ba56df..ca13067851 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -17,7 +17,6 @@ import { TruncatePipe } from './utils/truncate.pipe'; import { CollectionListElementComponent } from './object-list/collection-list-element/collection-list-element.component'; import { CommunityListElementComponent } from './object-list/community-list-element/community-list-element.component'; import { ItemListElementComponent } from './object-list/item-list-element/item-list-element.component'; -import { ObjectListElementComponent } from './object-list/object-list-element/object-list-element.component'; import { SearchResultListElementComponent } from './object-list/search-result-list-element/search-result-list-element.component'; import { WrapperListElementComponent } from './object-list/wrapper-list-element/wrapper-list-element.component'; import { ObjectListComponent } from './object-list/object-list.component'; @@ -25,7 +24,7 @@ import { ObjectListComponent } from './object-list/object-list.component'; import { CollectionGridElementComponent} from './object-grid/collection-grid-element/collection-grid-element.component' import { CommunityGridElementComponent} from './object-grid/community-grid-element/community-grid-element.component' import { ItemGridElementComponent} from './object-grid/item-grid-element/item-grid-element.component' -import { ObjectGridElementComponent} from './object-grid/object-grid-element/object-grid-element.component' +import { AbstractListableElementComponent} from './object-collection/shared/object-collection-element/abstract-listable-element.component' import { WrapperGridElementComponent} from './object-grid/wrapper-grid-element/wrapper-grid-element.component' import { ObjectGridComponent } from './object-grid/object-grid.component'; import { ObjectCollectionComponent } from './object-collection/object-collection.component'; @@ -70,10 +69,9 @@ const COMPONENTS = [ ErrorComponent, LoadingComponent, ObjectListComponent, - ObjectListElementComponent, + AbstractListableElementComponent, WrapperListElementComponent, ObjectGridComponent, - ObjectGridElementComponent, WrapperGridElementComponent, ObjectCollectionComponent, PaginationComponent,