diff --git a/src/app/modules/news/page/news-page.component.ts b/src/app/modules/news/page/news-page.component.ts
index 5aeca01b..6edcb9c7 100644
--- a/src/app/modules/news/page/news-page.component.ts
+++ b/src/app/modules/news/page/news-page.component.ts
@@ -13,6 +13,7 @@
* this program. If not, see .
*/
import {Component} from '@angular/core';
+import {IonRefresher} from '@ionic/angular';
import {SCMessage} from '@openstapps/core';
import {NewsProvider} from '../news.provider';
/**
@@ -26,16 +27,38 @@ export class NewsPageComponent {
/**
* News (messages) to show
*/
- news: SCMessage[];
+ news: SCMessage[] = [];
constructor(private newsProvider: NewsProvider) {
}
/**
- * Initialize the local variables on component initialization
+ * Fetch news from the backend
*/
- async ngOnInit() {
+ async fetchNews() {
/* tslint:disable:no-magic-numbers */
this.news = await this.newsProvider.getList(30, true);
}
+
+ /**
+ * Initialize the local variables on component initialization
+ */
+ ngOnInit() {
+ void this.fetchNews();
+ }
+
+ /**
+ * Updates the shown list
+ *
+ * @param refresher Refresher component that triggers the update
+ */
+ async refresh(refresher: IonRefresher) {
+ try {
+ await this.fetchNews();
+ } catch (e) {
+ this.news = [];
+ } finally {
+ await refresher.complete();
+ }
+ }
}
diff --git a/src/app/modules/news/page/news-page.html b/src/app/modules/news/page/news-page.html
index 30585b05..38596c37 100644
--- a/src/app/modules/news/page/news-page.html
+++ b/src/app/modules/news/page/news-page.html
@@ -10,13 +10,18 @@
+
+
+
+
-
+
-
+ 0">