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 @@
-
\ 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 @@
-
\ 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', '**'
];