From 3ad3df75689333b29b6969e6a5f296d7410c3c08 Mon Sep 17 00:00:00 2001 From: Christian Scheible Date: Tue, 13 Jun 2017 10:02:49 +0200 Subject: [PATCH] =?UTF-8?q?Refactored=20community=20and=20collection=20pag?= =?UTF-8?q?es=20to=20use=20a=20shared=20component=20for=20most=20of=20the?= =?UTF-8?q?=20content.=20This=20PR=20connect=E2=80=99s=20to=20#89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/i18n/en.json | 9 +++++ src/app/app.module.ts | 2 + .../collection-page.component.html | 33 +++++++++++------ .../collection-page/collection-page.module.ts | 10 +---- .../collection-page-copyright.component.html | 3 -- .../collection-page-copyright.component.ts | 11 ------ ...tion-page-introductory-text.component.html | 3 -- ...tion-page-introductory-text.component.scss | 1 - ...ection-page-introductory-text.component.ts | 11 ------ .../collection-page-license.component.html | 4 -- .../collection-page-license.component.scss | 1 - .../collection-page-license.component.ts | 11 ------ .../news/collection-page-news.component.html | 4 -- .../news/collection-page-news.component.scss | 1 - .../news/collection-page-news.component.ts | 11 ------ .../community-page.component.html | 33 +++++++++++------ .../community-page/community-page.module.ts | 10 +---- .../community-page-copyright.component.html | 3 -- .../community-page-copyright.component.scss | 1 - .../community-page-copyright.component.ts | 11 ------ ...nity-page-introductory-text.component.html | 3 -- ...nity-page-introductory-text.component.scss | 1 - ...munity-page-introductory-text.component.ts | 11 ------ .../community-page-license.component.html | 4 -- .../community-page-license.component.scss | 1 - .../community-page-license.component.ts | 11 ------ .../news/community-page-news.component.html | 4 -- .../news/community-page-news.component.scss | 1 - .../news/community-page-news.component.ts | 11 ------ .../models/normalized-community.model.ts | 2 + ...content-with-optional-title.component.html | 5 +++ ...ontent-with-optional-title.component.scss} | 0 .../content-with-optional-title.component.ts | 37 +++++++++++++++++++ src/app/shared/shared.module.ts | 4 +- src/backend/communities.ts | 3 +- src/server.routes.ts | 2 +- 36 files changed, 107 insertions(+), 166 deletions(-) delete mode 100644 src/app/collection-page/copyright/collection-page-copyright.component.html delete mode 100644 src/app/collection-page/copyright/collection-page-copyright.component.ts delete mode 100644 src/app/collection-page/introductory-text/collection-page-introductory-text.component.html delete mode 100644 src/app/collection-page/introductory-text/collection-page-introductory-text.component.scss delete mode 100644 src/app/collection-page/introductory-text/collection-page-introductory-text.component.ts delete mode 100644 src/app/collection-page/license/collection-page-license.component.html delete mode 100644 src/app/collection-page/license/collection-page-license.component.scss delete mode 100644 src/app/collection-page/license/collection-page-license.component.ts delete mode 100644 src/app/collection-page/news/collection-page-news.component.html delete mode 100644 src/app/collection-page/news/collection-page-news.component.scss delete mode 100644 src/app/collection-page/news/collection-page-news.component.ts delete mode 100644 src/app/community-page/copyright/community-page-copyright.component.html delete mode 100644 src/app/community-page/copyright/community-page-copyright.component.scss delete mode 100644 src/app/community-page/copyright/community-page-copyright.component.ts delete mode 100644 src/app/community-page/introductory-text/community-page-introductory-text.component.html delete mode 100644 src/app/community-page/introductory-text/community-page-introductory-text.component.scss delete mode 100644 src/app/community-page/introductory-text/community-page-introductory-text.component.ts delete mode 100644 src/app/community-page/license/community-page-license.component.html delete mode 100644 src/app/community-page/license/community-page-license.component.scss delete mode 100644 src/app/community-page/license/community-page-license.component.ts delete mode 100644 src/app/community-page/news/community-page-news.component.html delete mode 100644 src/app/community-page/news/community-page-news.component.scss delete mode 100644 src/app/community-page/news/community-page-news.component.ts create mode 100644 src/app/shared/content-with-optional-title/content-with-optional-title.component.html rename src/app/{collection-page/copyright/collection-page-copyright.component.scss => shared/content-with-optional-title/content-with-optional-title.component.scss} (100%) create mode 100644 src/app/shared/content-with-optional-title/content-with-optional-title.component.ts diff --git a/resources/i18n/en.json b/resources/i18n/en.json index 7489228eb5..82a51f2ebd 100644 --- a/resources/i18n/en.json +++ b/resources/i18n/en.json @@ -10,6 +10,15 @@ "license": "License" } }, + "community": { + "page": { + "news": "News", + "license": "License" + }, + "sub-collection-list": { + "head": "Collections of this Community" + } + }, "item": { "page": { "author": "Author", diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 95bfc73517..8a20dee66d 100755 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -10,6 +10,7 @@ import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { HeaderComponent } from './header/header.component'; import { CollectionPageModule } from './collection-page/collection-page.module'; +import { CommunityPageModule } from './community-page/community-page.module'; import { PageNotFoundComponent } from './pagenotfound/pagenotfound.component'; @@ -24,6 +25,7 @@ import { PageNotFoundComponent } from './pagenotfound/pagenotfound.component'; HomeModule, ItemPageModule, CollectionPageModule, + CommunityPageModule, CoreModule.forRoot(), AppRoutingModule ], diff --git a/src/app/collection-page/collection-page.component.html b/src/app/collection-page/collection-page.component.html index e9a4ab9916..cfa4ef4dee 100644 --- a/src/app/collection-page/collection-page.component.html +++ b/src/app/collection-page/collection-page.component.html @@ -1,16 +1,25 @@
- - - - - - - - + + + + + + + + > + + + > +
diff --git a/src/app/collection-page/collection-page.module.ts b/src/app/collection-page/collection-page.module.ts index 9b204cb0bb..1065d237df 100644 --- a/src/app/collection-page/collection-page.module.ts +++ b/src/app/collection-page/collection-page.module.ts @@ -3,14 +3,11 @@ import { CommonModule } from '@angular/common'; import { TranslateModule } from "@ngx-translate/core"; +import { SharedModule } from '../shared/shared.module'; import { CollectionPageComponent } from './collection-page.component'; import { FieldWrapperComponent } from './field-wrapper/field-wrapper.component'; import { CollectionPageNameComponent } from './name/collection-page-name.component'; import { CollectionPageLogoComponent } from './logo/collection-page-logo.component'; -import { CollectionPageIntroductoryTextComponent } from './introductory-text/collection-page-introductory-text.component'; -import { CollectionPageNewsComponent } from './news/collection-page-news.component'; -import { CollectionPageCopyrightComponent } from './copyright/collection-page-copyright.component'; -import { CollectionPageLicenseComponent } from './license/collection-page-license.component'; import { CollectionPageRoutingModule } from './collection-page-routing.module'; @NgModule({ @@ -18,16 +15,13 @@ import { CollectionPageRoutingModule } from './collection-page-routing.module'; CollectionPageRoutingModule, CommonModule, TranslateModule, + SharedModule, ], declarations: [ CollectionPageComponent, FieldWrapperComponent, CollectionPageNameComponent, CollectionPageLogoComponent, - CollectionPageIntroductoryTextComponent, - CollectionPageNewsComponent, - CollectionPageCopyrightComponent, - CollectionPageLicenseComponent, ] }) export class CollectionPageModule { } diff --git a/src/app/collection-page/copyright/collection-page-copyright.component.html b/src/app/collection-page/copyright/collection-page-copyright.component.html deleted file mode 100644 index db7b77d614..0000000000 --- a/src/app/collection-page/copyright/collection-page-copyright.component.html +++ /dev/null @@ -1,3 +0,0 @@ - -

-
\ No newline at end of file diff --git a/src/app/collection-page/copyright/collection-page-copyright.component.ts b/src/app/collection-page/copyright/collection-page-copyright.component.ts deleted file mode 100644 index e4bc21553f..0000000000 --- a/src/app/collection-page/copyright/collection-page-copyright.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component, Input } from '@angular/core'; - - -@Component({ - selector: 'ds-collection-page-copyright', - styleUrls: ['./collection-page-copyright.component.css'], - templateUrl: './collection-page-copyright.component.html', -}) -export class CollectionPageCopyrightComponent { - @Input() copyrightText: String; -} diff --git a/src/app/collection-page/introductory-text/collection-page-introductory-text.component.html b/src/app/collection-page/introductory-text/collection-page-introductory-text.component.html deleted file mode 100644 index 904a6d7f21..0000000000 --- a/src/app/collection-page/introductory-text/collection-page-introductory-text.component.html +++ /dev/null @@ -1,3 +0,0 @@ - -

-
\ No newline at end of file diff --git a/src/app/collection-page/introductory-text/collection-page-introductory-text.component.scss b/src/app/collection-page/introductory-text/collection-page-introductory-text.component.scss deleted file mode 100644 index ad84b72f8c..0000000000 --- a/src/app/collection-page/introductory-text/collection-page-introductory-text.component.scss +++ /dev/null @@ -1 +0,0 @@ -@import '../../../styles/variables.scss'; \ No newline at end of file diff --git a/src/app/collection-page/introductory-text/collection-page-introductory-text.component.ts b/src/app/collection-page/introductory-text/collection-page-introductory-text.component.ts deleted file mode 100644 index f6526c9943..0000000000 --- a/src/app/collection-page/introductory-text/collection-page-introductory-text.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component, Input } from '@angular/core'; - - -@Component({ - selector: 'ds-collection-page-introductory-text', - styleUrls: ['./collection-page-introductory-text.component.css'], - templateUrl: './collection-page-introductory-text.component.html', -}) -export class CollectionPageIntroductoryTextComponent { - @Input() introductoryText: String; -} diff --git a/src/app/collection-page/license/collection-page-license.component.html b/src/app/collection-page/license/collection-page-license.component.html deleted file mode 100644 index af0a6e4261..0000000000 --- a/src/app/collection-page/license/collection-page-license.component.html +++ /dev/null @@ -1,4 +0,0 @@ - -

{{ 'collection.page.license' | translate }}

-

{{ license }}

-
\ No newline at end of file diff --git a/src/app/collection-page/license/collection-page-license.component.scss b/src/app/collection-page/license/collection-page-license.component.scss deleted file mode 100644 index ad84b72f8c..0000000000 --- a/src/app/collection-page/license/collection-page-license.component.scss +++ /dev/null @@ -1 +0,0 @@ -@import '../../../styles/variables.scss'; \ No newline at end of file diff --git a/src/app/collection-page/license/collection-page-license.component.ts b/src/app/collection-page/license/collection-page-license.component.ts deleted file mode 100644 index 8f269cca8c..0000000000 --- a/src/app/collection-page/license/collection-page-license.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component, Input } from '@angular/core'; - - -@Component({ - selector: 'ds-collection-page-license', - styleUrls: ['./collection-page-license.component.css'], - templateUrl: './collection-page-license.component.html', -}) -export class CollectionPageLicenseComponent { - @Input() license: String; -} diff --git a/src/app/collection-page/news/collection-page-news.component.html b/src/app/collection-page/news/collection-page-news.component.html deleted file mode 100644 index bd17c7ea77..0000000000 --- a/src/app/collection-page/news/collection-page-news.component.html +++ /dev/null @@ -1,4 +0,0 @@ - -

{{ 'collection.page.news' | translate }}

-

-
\ No newline at end of file diff --git a/src/app/collection-page/news/collection-page-news.component.scss b/src/app/collection-page/news/collection-page-news.component.scss deleted file mode 100644 index ad84b72f8c..0000000000 --- a/src/app/collection-page/news/collection-page-news.component.scss +++ /dev/null @@ -1 +0,0 @@ -@import '../../../styles/variables.scss'; \ No newline at end of file diff --git a/src/app/collection-page/news/collection-page-news.component.ts b/src/app/collection-page/news/collection-page-news.component.ts deleted file mode 100644 index 479c37a7c6..0000000000 --- a/src/app/collection-page/news/collection-page-news.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component, Input } from '@angular/core'; - - -@Component({ - selector: 'ds-collection-page-news', - styleUrls: ['./collection-page-news.component.css'], - templateUrl: './collection-page-news.component.html', -}) -export class CollectionPageNewsComponent { - @Input() sidebarText: String; -} diff --git a/src/app/community-page/community-page.component.html b/src/app/community-page/community-page.component.html index 28425e48fe..d01130a006 100644 --- a/src/app/community-page/community-page.component.html +++ b/src/app/community-page/community-page.component.html @@ -1,17 +1,26 @@
- - - - - - - - + + + + + + + + + + + +
diff --git a/src/app/community-page/community-page.module.ts b/src/app/community-page/community-page.module.ts index f8fb2c57b3..043b5ca47a 100644 --- a/src/app/community-page/community-page.module.ts +++ b/src/app/community-page/community-page.module.ts @@ -4,14 +4,11 @@ import { RouterModule } from "@angular/router"; import { TranslateModule } from "@ngx-translate/core"; +import { SharedModule } from '../shared/shared.module'; import { CommunityPageComponent } from './community-page.component'; import { FieldWrapperComponent } from './field-wrapper/field-wrapper.component'; import { CommunityPageNameComponent } from './name/community-page-name.component'; import { CommunityPageLogoComponent } from './logo/community-page-logo.component'; -import { CommunityPageIntroductoryTextComponent } from './introductory-text/community-page-introductory-text.component'; -import { CommunityPageNewsComponent } from './news/community-page-news.component'; -import { CommunityPageCopyrightComponent } from './copyright/community-page-copyright.component'; -import { CommunityPageLicenseComponent } from './license/community-page-license.component'; import { CommunityPageSubCollectionListComponent } from './sub-collection-list/community-page-sub-collection-list.component'; import { CommunityPageRoutingModule } from './community-page-routing.module'; @@ -21,16 +18,13 @@ import { CommunityPageRoutingModule } from './community-page-routing.module'; CommonModule, TranslateModule, RouterModule, + SharedModule, ], declarations: [ CommunityPageComponent, FieldWrapperComponent, CommunityPageNameComponent, CommunityPageLogoComponent, - CommunityPageIntroductoryTextComponent, - CommunityPageNewsComponent, - CommunityPageCopyrightComponent, - CommunityPageLicenseComponent, CommunityPageSubCollectionListComponent, ] }) diff --git a/src/app/community-page/copyright/community-page-copyright.component.html b/src/app/community-page/copyright/community-page-copyright.component.html deleted file mode 100644 index 987f3cb64a..0000000000 --- a/src/app/community-page/copyright/community-page-copyright.component.html +++ /dev/null @@ -1,3 +0,0 @@ - -

-
\ No newline at end of file diff --git a/src/app/community-page/copyright/community-page-copyright.component.scss b/src/app/community-page/copyright/community-page-copyright.component.scss deleted file mode 100644 index ad84b72f8c..0000000000 --- a/src/app/community-page/copyright/community-page-copyright.component.scss +++ /dev/null @@ -1 +0,0 @@ -@import '../../../styles/variables.scss'; \ No newline at end of file diff --git a/src/app/community-page/copyright/community-page-copyright.component.ts b/src/app/community-page/copyright/community-page-copyright.component.ts deleted file mode 100644 index 1639f57db2..0000000000 --- a/src/app/community-page/copyright/community-page-copyright.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component, Input } from '@angular/core'; - - -@Component({ - selector: 'ds-community-page-copyright', - styleUrls: ['./community-page-copyright.component.css'], - templateUrl: './community-page-copyright.component.html', -}) -export class CommunityPageCopyrightComponent { - @Input() copyrightText: String; -} diff --git a/src/app/community-page/introductory-text/community-page-introductory-text.component.html b/src/app/community-page/introductory-text/community-page-introductory-text.component.html deleted file mode 100644 index 8c1f89544a..0000000000 --- a/src/app/community-page/introductory-text/community-page-introductory-text.component.html +++ /dev/null @@ -1,3 +0,0 @@ - -

-
\ No newline at end of file diff --git a/src/app/community-page/introductory-text/community-page-introductory-text.component.scss b/src/app/community-page/introductory-text/community-page-introductory-text.component.scss deleted file mode 100644 index ad84b72f8c..0000000000 --- a/src/app/community-page/introductory-text/community-page-introductory-text.component.scss +++ /dev/null @@ -1 +0,0 @@ -@import '../../../styles/variables.scss'; \ No newline at end of file diff --git a/src/app/community-page/introductory-text/community-page-introductory-text.component.ts b/src/app/community-page/introductory-text/community-page-introductory-text.component.ts deleted file mode 100644 index beee2df466..0000000000 --- a/src/app/community-page/introductory-text/community-page-introductory-text.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component, Input } from '@angular/core'; - - -@Component({ - selector: 'ds-community-page-introductory-text', - styleUrls: ['./community-page-introductory-text.component.css'], - templateUrl: './community-page-introductory-text.component.html', -}) -export class CommunityPageIntroductoryTextComponent { - @Input() introductoryText: String; -} diff --git a/src/app/community-page/license/community-page-license.component.html b/src/app/community-page/license/community-page-license.component.html deleted file mode 100644 index 7bea146194..0000000000 --- a/src/app/community-page/license/community-page-license.component.html +++ /dev/null @@ -1,4 +0,0 @@ - -

{{ 'community.page.license' | translate }}

-

{{ license }}

-
\ No newline at end of file diff --git a/src/app/community-page/license/community-page-license.component.scss b/src/app/community-page/license/community-page-license.component.scss deleted file mode 100644 index ad84b72f8c..0000000000 --- a/src/app/community-page/license/community-page-license.component.scss +++ /dev/null @@ -1 +0,0 @@ -@import '../../../styles/variables.scss'; \ No newline at end of file diff --git a/src/app/community-page/license/community-page-license.component.ts b/src/app/community-page/license/community-page-license.component.ts deleted file mode 100644 index cf3e8e0661..0000000000 --- a/src/app/community-page/license/community-page-license.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component, Input } from '@angular/core'; - - -@Component({ - selector: 'ds-community-page-license', - styleUrls: ['./community-page-license.component.css'], - templateUrl: './community-page-license.component.html', -}) -export class CommunityPageLicenseComponent { - @Input() license: String; -} diff --git a/src/app/community-page/news/community-page-news.component.html b/src/app/community-page/news/community-page-news.component.html deleted file mode 100644 index bce01dd378..0000000000 --- a/src/app/community-page/news/community-page-news.component.html +++ /dev/null @@ -1,4 +0,0 @@ - -

{{ 'community.page.news' | translate }}

-

-
\ No newline at end of file diff --git a/src/app/community-page/news/community-page-news.component.scss b/src/app/community-page/news/community-page-news.component.scss deleted file mode 100644 index ad84b72f8c..0000000000 --- a/src/app/community-page/news/community-page-news.component.scss +++ /dev/null @@ -1 +0,0 @@ -@import '../../../styles/variables.scss'; \ No newline at end of file diff --git a/src/app/community-page/news/community-page-news.component.ts b/src/app/community-page/news/community-page-news.component.ts deleted file mode 100644 index b978d41a55..0000000000 --- a/src/app/community-page/news/community-page-news.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component, Input } from '@angular/core'; - - -@Component({ - selector: 'ds-community-page-news', - styleUrls: ['./community-page-news.component.css'], - templateUrl: './community-page-news.component.html', -}) -export class CommunityPageNewsComponent { - @Input() sidebarText: String; -} diff --git a/src/app/core/cache/models/normalized-community.model.ts b/src/app/core/cache/models/normalized-community.model.ts index 774abcc979..e691f30fec 100644 --- a/src/app/core/cache/models/normalized-community.model.ts +++ b/src/app/core/cache/models/normalized-community.model.ts @@ -17,6 +17,8 @@ export class NormalizedCommunity extends NormalizedDSpaceObject { /** * The Bitstream that represents the logo of this Community */ + @autoserialize + @relationship(NormalizedDSOType.NormalizedBitstream) logo: string; /** diff --git a/src/app/shared/content-with-optional-title/content-with-optional-title.component.html b/src/app/shared/content-with-optional-title/content-with-optional-title.component.html new file mode 100644 index 0000000000..67c49496ae --- /dev/null +++ b/src/app/shared/content-with-optional-title/content-with-optional-title.component.html @@ -0,0 +1,5 @@ +
+

{{ title | translate }}

+

+

{{content}}

+
\ No newline at end of file diff --git a/src/app/collection-page/copyright/collection-page-copyright.component.scss b/src/app/shared/content-with-optional-title/content-with-optional-title.component.scss similarity index 100% rename from src/app/collection-page/copyright/collection-page-copyright.component.scss rename to src/app/shared/content-with-optional-title/content-with-optional-title.component.scss diff --git a/src/app/shared/content-with-optional-title/content-with-optional-title.component.ts b/src/app/shared/content-with-optional-title/content-with-optional-title.component.ts new file mode 100644 index 0000000000..a838f548d8 --- /dev/null +++ b/src/app/shared/content-with-optional-title/content-with-optional-title.component.ts @@ -0,0 +1,37 @@ +import { Component, Input } from '@angular/core'; + +/** + * This component renders any content inside of this component. + * If there is a title set it will render the title. + * If hasInnerHtml is true the content will be handled as html. + * To see how it is used see collection-page or community-page. + */ + +@Component({ + selector: 'ds-content-with-optional-title', + styleUrls: ['./content-with-optional-title.component.css'], + templateUrl: './content-with-optional-title.component.html' +}) +export class ContentWithOptionalTitleComponent { + + // Optional title + @Input() title: string; + + // The content to render. Might be html + @Input() content: string; + + // flag whether the content contains html syntax or not + @Input() hasInnerHtml: boolean; + + + + constructor() { + this.universalInit(); + + } + + universalInit() { + + } + +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 6f93a0b86e..285f1087bd 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -14,6 +14,7 @@ import { ThumbnailComponent } from "../thumbnail/thumbnail.component"; import { SafeUrlPipe } from "./utils/safe-url-pipe"; import { HostWindowService } from "./host-window.service"; import { NativeWindowFactory, NativeWindowService } from "./window.service"; +import { ContentWithOptionalTitleComponent } from "./content-with-optional-title/content-with-optional-title.component"; const MODULES = [ // Do NOT include UniversalModule, HttpModule, or JsonpModule here @@ -35,7 +36,8 @@ const PIPES = [ const COMPONENTS = [ // put shared components here PaginationComponent, - ThumbnailComponent + ThumbnailComponent, + ContentWithOptionalTitleComponent ]; const PROVIDERS = [ diff --git a/src/backend/communities.ts b/src/backend/communities.ts index 940f6c72d5..02f474f66b 100644 --- a/src/backend/communities.ts +++ b/src/backend/communities.ts @@ -38,7 +38,8 @@ export const COMMUNITIES = [ }, "collections": [ { "href": "/collections/5179" } - ] + ], + "logo": { "href": "/bitstreams/4688" } } }, { diff --git a/src/server.routes.ts b/src/server.routes.ts index 19ba0264aa..834923da30 100644 --- a/src/server.routes.ts +++ b/src/server.routes.ts @@ -10,5 +10,5 @@ * ]; **/ export const routes: string[] = [ - 'home', 'items/:id' , 'collections/:id', '**' + 'home', 'items/:id' , 'collections/:id', 'communities/:id', '**' ];