refactor: replace TSLint with ESLint

This commit is contained in:
Wieland Schöbl
2021-06-30 13:53:44 +02:00
committed by Jovan Krunić
parent 67fb4a43c9
commit d696215d08
147 changed files with 5471 additions and 2704 deletions

View File

@@ -22,31 +22,27 @@ import {DataModule} from '../data/data.module';
import {SettingsProvider} from '../settings/settings.provider';
import {NewsItemComponent} from './page/news-item.component';
import {NewsPageComponent} from './page/news-page.component';
import {SkeletonNewsItem} from './page/skeleton-news-item.component';
import {SkeletonNewsItemComponent} from './page/skeleton-news-item.component';
const newsRoutes: Routes = [
{path: 'news', component: NewsPageComponent},
];
const newsRoutes: Routes = [{path: 'news', component: NewsPageComponent}];
/**
* News Module
*/
@NgModule({
declarations: [
NewsPageComponent,
SkeletonNewsItem,
NewsItemComponent,
NewsPageComponent,
SkeletonNewsItemComponent,
],
imports: [
IonicModule.forRoot(),
TranslateModule.forChild(),
RouterModule.forChild(newsRoutes),
CommonModule,
MomentModule,
DataModule,
IonicModule.forRoot(),
MomentModule,
RouterModule.forChild(newsRoutes),
TranslateModule.forChild(),
],
providers: [
SettingsProvider,
],
providers: [SettingsProvider],
})
export class NewsModule {}

View File

@@ -15,6 +15,7 @@
import {Injectable} from '@angular/core';
import {SCMessage} from '@openstapps/core';
import {DataProvider} from '../data/data.provider';
/**
* Service for providing news messages
*/
@@ -22,12 +23,12 @@ import {DataProvider} from '../data/data.provider';
providedIn: 'root',
})
export class NewsProvider {
constructor(private dataProvider: DataProvider) {
}
constructor(private dataProvider: DataProvider) {}
/**
* Get news messages
* TODO: make dates sortable on the backend side and then adjust this method
*
* @param size How many messages/news to fetch
* @param sort If sort by date needs to be performed
*/
@@ -47,8 +48,15 @@ export class NewsProvider {
if (sort) {
news.sort((a, b) => {
if (typeof a.datePublished !== 'undefined' && typeof b.datePublished !== 'undefined') {
return (a.datePublished > b.datePublished) ? -1 : ((a.datePublished < b.datePublished) ? 1 : 0);
if (
typeof a.datePublished !== 'undefined' &&
typeof b.datePublished !== 'undefined'
) {
return a.datePublished > b.datePublished
? -1
: a.datePublished < b.datePublished
? 1
: 0;
}
return 0;

View File

@@ -27,5 +27,4 @@ export class NewsItemComponent {
* News (message) to show
*/
@Input() item: SCMessage;
}

View File

@@ -1,25 +1,41 @@
<ion-card>
<span *ngIf="item.url; else imageNoUrl">
<a href="{{item.url}}">
<ion-thumbnail><ion-img src="{{item.image}}" (ionError)="$event.target.nextSibling.style.display='block'" alt=""></ion-img>
<ion-icon name="newspaper-outline"></ion-icon>
</ion-thumbnail>
</a>
</span>
<span *ngIf="item.url; else imageNoUrl">
<a href="{{ item.url }}">
<ion-thumbnail
><ion-img
src="{{ item.image }}"
(ionError)="$event.target.nextSibling.style.display = 'block'"
alt=""
></ion-img>
<ion-icon name="newspaper-outline"></ion-icon>
</ion-thumbnail>
</a>
</span>
<ng-template #imageNoUrl>
<ion-thumbnail>
<ion-img src="{{item.image}}" (ionError)="$event.target.nextSibling.style.display='block'" alt=""></ion-img>
<ion-img
src="{{ item.image }}"
(ionError)="$event.target.nextSibling.style.display = 'block'"
alt=""
></ion-img>
<ion-icon name="newspaper-outline"></ion-icon>
</ion-thumbnail>
</ng-template>
<ion-card-header>
<ion-card-subtitle *ngIf="item.datePublished">{{item.datePublished | amDateFormat:'LLL'}}</ion-card-subtitle>
<ion-card-subtitle *ngIf="item.datePublished">{{
item.datePublished | amDateFormat: 'LLL'
}}</ion-card-subtitle>
<ion-card-title>
<span *ngIf="item.url; else titleNoUrl"><a href="{{item.url}}"><span class="text">{{item.name}}</span><span class="icon"><ion-icon name="open-outline"></ion-icon></span></a></span>
<ng-template #titleNoUrl>{{item.name}}</ng-template>
<span *ngIf="item.url; else titleNoUrl"
><a href="{{ item.url }}"
><span class="text">{{ item.name }}</span
><span class="icon"
><ion-icon name="open-outline"></ion-icon></span></a
></span>
<ng-template #titleNoUrl>{{ item.name }}</ng-template>
</ion-card-title>
</ion-card-header>
<ion-card-content>
{{item.messageBody}}
{{ item.messageBody }}
</ion-card-content>
</ion-card>

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {Component} from '@angular/core';
import {Component, OnInit} from '@angular/core';
import {IonRefresher} from '@ionic/angular';
import {SCMessage} from '@openstapps/core';
import {NewsProvider} from '../news.provider';
@@ -23,20 +23,19 @@ import {NewsProvider} from '../news.provider';
selector: 'stapps-news-page',
templateUrl: 'news-page.html',
})
export class NewsPageComponent {
export class NewsPageComponent implements OnInit {
/**
* News (messages) to show
*/
news: SCMessage[] = [];
constructor(private newsProvider: NewsProvider) {
}
constructor(private newsProvider: NewsProvider) {}
/**
* Fetch news from the backend
*/
async fetchNews() {
/* tslint:disable:no-magic-numbers */
/* eslint-disable no-magic-numbers */
this.news = await this.newsProvider.getList(30, true);
}
@@ -55,7 +54,7 @@ export class NewsPageComponent {
async refresh(refresher: IonRefresher) {
try {
await this.fetchNews();
} catch (e) {
} catch {
this.news = [];
} finally {
await refresher.complete();

View File

@@ -5,14 +5,17 @@
<ion-menu-button></ion-menu-button>
</ion-buttons>
<!--TODO: read this from the config (menu item title)-->
<ion-title>{{'news.title' | translate}}</ion-title>
<ion-title>{{ 'news.title' | translate }}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content fullscreen>
<ion-refresher slot="fixed" (ionRefresh)="refresh($event.target)">
<ion-refresher-content pullingIcon="chevron-down-outline" pullingText="{{'data.REFRESH_ACTION' | translate}}"
refreshingText="{{'data.REFRESHING' | translate}}">
<ion-refresher-content
pullingIcon="chevron-down-outline"
pullingText="{{ 'data.REFRESH_ACTION' | translate }}"
refreshingText="{{ 'data.REFRESHING' | translate }}"
>
</ion-refresher-content>
</ion-refresher>
<ion-grid>

View File

@@ -21,5 +21,4 @@ import {Component} from '@angular/core';
selector: 'stapps-skeleton-news-item',
templateUrl: 'skeleton-news-item.html',
})
export class SkeletonNewsItem {
}
export class SkeletonNewsItemComponent {}

View File

@@ -1,12 +1,18 @@
<ion-card>
<ion-card-header>
<ion-card-subtitle><ion-skeleton-text animated style="width: 20%"></ion-skeleton-text></ion-card-subtitle>
<ion-card-title><ion-skeleton-text animated style="width: 95%"></ion-skeleton-text></ion-card-title>
<ion-card-title><ion-skeleton-text animated style="width: 65%"></ion-skeleton-text></ion-card-title>
<ion-card-subtitle
><ion-skeleton-text animated style="width: 20%"></ion-skeleton-text
></ion-card-subtitle>
<ion-card-title
><ion-skeleton-text animated style="width: 95%"></ion-skeleton-text
></ion-card-title>
<ion-card-title
><ion-skeleton-text animated style="width: 65%"></ion-skeleton-text
></ion-card-title>
</ion-card-header>
<ion-card-content>
<p><ion-skeleton-text animated style="width: 95%;"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 95%;"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 55%;"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 95%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 95%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 55%"></ion-skeleton-text></p>
</ion-card-content>
</ion-card>