diff --git a/apps/client/src/app/components/transactions-table/transactions-table.component.scss b/libs/ui/src/lib/activities-table/activities-table.component.scss
similarity index 100%
rename from apps/client/src/app/components/transactions-table/transactions-table.component.scss
rename to libs/ui/src/lib/activities-table/activities-table.component.scss
diff --git a/apps/client/src/app/components/transactions-table/transactions-table.component.ts b/libs/ui/src/lib/activities-table/activities-table.component.ts
similarity index 78%
rename from apps/client/src/app/components/transactions-table/transactions-table.component.ts
rename to libs/ui/src/lib/activities-table/activities-table.component.ts
index e22a0bcb..0cbde822 100644
--- a/apps/client/src/app/components/transactions-table/transactions-table.component.ts
+++ b/libs/ui/src/lib/activities-table/activities-table.component.ts
@@ -30,30 +30,28 @@ const SEARCH_PLACEHOLDER = 'Search for account, currency, symbol or type...';
const SEARCH_STRING_SEPARATOR = ',';
@Component({
- selector: 'gf-transactions-table',
changeDetection: ChangeDetectionStrategy.OnPush,
- templateUrl: './transactions-table.component.html',
- styleUrls: ['./transactions-table.component.scss']
+ selector: 'gf-activities-table',
+ styleUrls: ['./activities-table.component.scss'],
+ templateUrl: './activities-table.component.html'
})
-export class TransactionsTableComponent
- implements OnChanges, OnDestroy, OnInit
-{
+export class ActivitiesTableComponent implements OnChanges, OnDestroy {
+ @Input() activities: OrderWithAccount[];
@Input() baseCurrency: string;
@Input() deviceType: string;
- @Input() hasPermissionToCreateOrder: boolean;
+ @Input() hasPermissionToCreateActivity: boolean;
@Input() hasPermissionToFilter = true;
- @Input() hasPermissionToImportOrders: boolean;
+ @Input() hasPermissionToImportActivities: boolean;
@Input() hasPermissionToOpenDetails = true;
@Input() locale: string;
@Input() showActions: boolean;
@Input() showSymbolColumn = true;
- @Input() transactions: OrderWithAccount[];
+ @Output() activityDeleted = new EventEmitter
();
+ @Output() activityToClone = new EventEmitter();
+ @Output() activityToUpdate = new EventEmitter();
@Output() export = new EventEmitter();
@Output() import = new EventEmitter();
- @Output() transactionDeleted = new EventEmitter();
- @Output() transactionToClone = new EventEmitter();
- @Output() transactionToUpdate = new EventEmitter();
@ViewChild('autocomplete') matAutocomplete: MatAutocomplete;
@ViewChild('searchInput') searchInput: ElementRef;
@@ -124,8 +122,6 @@ export class TransactionsTableComponent
this.searchControl.setValue(null);
}
- public ngOnInit() {}
-
public ngOnChanges() {
this.displayedColumns = [
'count',
@@ -152,8 +148,8 @@ export class TransactionsTableComponent
this.isLoading = true;
- if (this.transactions) {
- this.dataSource = new MatTableDataSource(this.transactions);
+ if (this.activities) {
+ this.dataSource = new MatTableDataSource(this.activities);
this.dataSource.filterPredicate = (data, filter) => {
const dataString = this.getFilterableValues(data)
.join(' ')
@@ -171,13 +167,15 @@ export class TransactionsTableComponent
}
}
- public onDeleteTransaction(aId: string) {
- const confirmation = confirm(
- 'Do you really want to delete this transaction?'
- );
+ public onCloneActivity(aActivity: OrderWithAccount) {
+ this.activityToClone.emit(aActivity);
+ }
+
+ public onDeleteActivity(aId: string) {
+ const confirmation = confirm('Do you really want to delete this activity?');
if (confirmation) {
- this.transactionDeleted.emit(aId);
+ this.activityDeleted.emit(aId);
}
}
@@ -195,12 +193,8 @@ export class TransactionsTableComponent
});
}
- public onUpdateTransaction(aTransaction: OrderWithAccount) {
- this.transactionToUpdate.emit(aTransaction);
- }
-
- public onCloneTransaction(aTransaction: OrderWithAccount) {
- this.transactionToClone.emit(aTransaction);
+ public onUpdateActivity(aActivity: OrderWithAccount) {
+ this.activityToUpdate.emit(aActivity);
}
public ngOnDestroy() {
@@ -217,7 +211,7 @@ export class TransactionsTableComponent
this.placeholder =
lowercaseSearchKeywords.length <= 0 ? SEARCH_PLACEHOLDER : '';
- this.allFilters = this.getSearchableFieldValues(this.transactions).filter(
+ this.allFilters = this.getSearchableFieldValues(this.activities).filter(
(item) => {
return !lowercaseSearchKeywords.includes(item.trim().toLowerCase());
}
@@ -226,11 +220,11 @@ export class TransactionsTableComponent
this.filters$.next(this.allFilters);
}
- private getSearchableFieldValues(transactions: OrderWithAccount[]): string[] {
+ private getSearchableFieldValues(activities: OrderWithAccount[]): string[] {
const fieldValues = new Set();
- for (const transaction of transactions) {
- this.getFilterableValues(transaction, fieldValues);
+ for (const activity of activities) {
+ this.getFilterableValues(activity, fieldValues);
}
return [...fieldValues]
@@ -255,15 +249,15 @@ export class TransactionsTableComponent
}
private getFilterableValues(
- transaction: OrderWithAccount,
+ activity: OrderWithAccount,
fieldValues: Set = new Set()
): string[] {
- fieldValues.add(transaction.currency);
- fieldValues.add(transaction.symbol);
- fieldValues.add(transaction.type);
- fieldValues.add(transaction.Account?.name);
- fieldValues.add(transaction.Account?.Platform?.name);
- fieldValues.add(format(transaction.date, 'yyyy'));
+ fieldValues.add(activity.currency);
+ fieldValues.add(activity.symbol);
+ fieldValues.add(activity.type);
+ fieldValues.add(activity.Account?.name);
+ fieldValues.add(activity.Account?.Platform?.name);
+ fieldValues.add(format(activity.date, 'yyyy'));
return [...fieldValues].filter((item) => {
return item !== undefined;
diff --git a/apps/client/src/app/components/transactions-table/transactions-table.module.ts b/libs/ui/src/lib/activities-table/activities-table.module.ts
similarity index 81%
rename from apps/client/src/app/components/transactions-table/transactions-table.module.ts
rename to libs/ui/src/lib/activities-table/activities-table.module.ts
index 86292812..56947d7e 100644
--- a/apps/client/src/app/components/transactions-table/transactions-table.module.ts
+++ b/libs/ui/src/lib/activities-table/activities-table.module.ts
@@ -9,17 +9,17 @@ import { MatMenuModule } from '@angular/material/menu';
import { MatSortModule } from '@angular/material/sort';
import { MatTableModule } from '@angular/material/table';
import { RouterModule } from '@angular/router';
+import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module';
import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module';
import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info';
import { GfValueModule } from '@ghostfolio/ui/value';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-import { GfSymbolIconModule } from '../symbol-icon/symbol-icon.module';
-import { TransactionsTableComponent } from './transactions-table.component';
+import { ActivitiesTableComponent } from './activities-table.component';
@NgModule({
- declarations: [TransactionsTableComponent],
- exports: [TransactionsTableComponent],
+ declarations: [ActivitiesTableComponent],
+ exports: [ActivitiesTableComponent],
imports: [
CommonModule,
GfNoTransactionsInfoModule,
@@ -37,7 +37,6 @@ import { TransactionsTableComponent } from './transactions-table.component';
ReactiveFormsModule,
RouterModule
],
- providers: [],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
-export class GfTransactionsTableModule {}
+export class GfActivitiesTableModule {}
diff --git a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html
index bb3ce123..9f30d437 100644
--- a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html
+++ b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html
@@ -5,10 +5,10 @@
- Time to add your first transaction.
+ Time to add your first activity.