diff --git a/src/app/shared/components/node-config/page-settings/page-settings.component.ts b/src/app/shared/components/node-config/page-settings/page-settings.component.ts
index af2abf5e..e43dbd7c 100644
--- a/src/app/shared/components/node-config/page-settings/page-settings.component.ts
+++ b/src/app/shared/components/node-config/page-settings/page-settings.component.ts
@@ -4,12 +4,13 @@ import { takeUntil } from 'rxjs/operators';
import { Store } from '@ngrx/store';
import { faPenRuler } from '@fortawesome/free-solid-svg-icons';
-import { CLN_TABLE_FIELDS_DEF, PAGE_SIZE_OPTIONS, ScreenSizeEnum, SORT_ORDERS } from '../../../services/consts-enums-functions';
+import { CLN_DEFAULT_PAGE_SETTINGS, CLN_TABLE_FIELDS_DEF, PAGE_SIZE_OPTIONS, ScreenSizeEnum, SORT_ORDERS } from '../../../services/consts-enums-functions';
import { LoggerService } from '../../../services/logger.service';
import { CommonService } from '../../../services/common.service';
import { RTLState } from '../../../../store/rtl.state';
import { TableSetting, PageSettingsCLN } from '../../../models/pageSettings';
import { clnPageSettings } from '../../../../cln/store/cln.selector';
+import { savePageSettings } from '../../../../cln/store/cln.actions';
@Component({
selector: 'rtl-page-settings',
@@ -22,7 +23,8 @@ export class PageSettingsComponent implements OnInit, OnDestroy {
public screenSize = '';
public screenSizeEnum = ScreenSizeEnum;
public pageSizeOptions = PAGE_SIZE_OPTIONS;
- public pageSettings: PageSettingsCLN | null = null;
+ public pageSettings: PageSettingsCLN[] = [];
+ public initialPageSettings: PageSettingsCLN[] = CLN_DEFAULT_PAGE_SETTINGS;
public tableFieldsDef = CLN_TABLE_FIELDS_DEF;
public sortOrders = SORT_ORDERS;
unSubs: Array> = [new Subject(), new Subject()];
@@ -34,6 +36,7 @@ export class PageSettingsComponent implements OnInit, OnDestroy {
ngOnInit() {
this.store.select(clnPageSettings).pipe(takeUntil(this.unSubs[0])).subscribe((settings) => {
this.pageSettings = settings.pageSettings;
+ this.initialPageSettings = JSON.parse(JSON.stringify(settings.pageSettings));
this.logger.info(settings);
});
}
@@ -44,19 +47,15 @@ export class PageSettingsComponent implements OnInit, OnDestroy {
}
}
- onUpdatePageSettings() {
- // if (this.selNode.settings.fiatConversion && !this.selNode.settings.currencyUnit) {
- // return true;
- // }
- // this.store.dispatch(setChildNodeSettingsECL({
- // payload: {
- // userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl
- // }
- // }));
+ onUpdatePageSettings(): boolean | void {
+ if (this.pageSettings.reduce((pacc, page) => pacc || (page.tables.reduce((acc, table) => !(table.recordsPerPage && table.sortBy && table.sortOrder && table.showColumns && table.showColumns.length >= 3), false)), false)) {
+ return true;
+ }
+ this.store.dispatch(savePageSettings({ payload: this.pageSettings }));
}
onResetPageSettings() {
- // this.store.dispatch(setSelectedNode({ payload: { uiMessage: UI_MESSAGES.NO_SPINNER, prevLnNodeIndex: +prevIndex, currentLnNode: this.selNode, isInitialSetup: true } }));
+ this.pageSettings = this.initialPageSettings;
}
ngOnDestroy() {
diff --git a/src/app/shared/models/pageSettings.ts b/src/app/shared/models/pageSettings.ts
index c4eeef93..c6fdc5d2 100644
--- a/src/app/shared/models/pageSettings.ts
+++ b/src/app/shared/models/pageSettings.ts
@@ -12,8 +12,7 @@ export class TableSetting {
export class PageSettingsCLN {
- payments?: { seq?: number, tables?: TableSetting[] };
- invoices?: { seq?: number, tables?: TableSetting[] };
- utxos?: { seq?: number, tables?: TableSetting[] };
+ pageId: string;
+ tables: TableSetting[];
}
diff --git a/src/app/shared/services/consts-enums-functions.ts b/src/app/shared/services/consts-enums-functions.ts
index 7be8a70f..aaaad3d5 100644
--- a/src/app/shared/services/consts-enums-functions.ts
+++ b/src/app/shared/services/consts-enums-functions.ts
@@ -674,18 +674,14 @@ export enum SortOrderEnum {
export const SORT_ORDERS = ['Ascending', 'Descending'];
-export const CLN_DEFAULT_PAGE_SETTINGS: PageSettingsCLN = {
- payments: { seq: 1, tables: [{ tableId: 'payments', recordsPerPage: 10, sortBy: 'created_at', sortOrder: SortOrderEnum.DESCENDING,
+export const CLN_DEFAULT_PAGE_SETTINGS: PageSettingsCLN[] = [
+ { pageId: 'payments', tables: [{ tableId: 'payments', recordsPerPage: 10, sortBy: 'created_at', sortOrder: SortOrderEnum.DESCENDING,
showColumns: ['created_at', 'type', 'payment_hash', 'msatoshi_sent', 'msatoshi'] }] },
- invoices: { seq: 2, tables: [{ tableId: 'invoices', recordsPerPage: 10, sortBy: 'expires_at', sortOrder: SortOrderEnum.DESCENDING,
- showColumns: ['expires_at', 'paid_at', 'type', 'description', 'msatoshi', 'msatoshi_received'] }] },
- utxos: { seq: 3, tables: [{ tableId: 'utxos', recordsPerPage: 10, sortBy: 'expires_at', sortOrder: SortOrderEnum.DESCENDING,
+ { pageId: 'invoices', tables: [{ tableId: 'invoices', recordsPerPage: 10, sortBy: 'expires_at', sortOrder: SortOrderEnum.DESCENDING,
showColumns: ['expires_at', 'paid_at', 'type', 'description', 'msatoshi', 'msatoshi_received'] }] }
-
-};
+];
export const CLN_TABLE_FIELDS_DEF = {
payments: ['created_at', 'type', 'payment_hash', 'msatoshi_sent', 'msatoshi', 'amount_msat', 'amount_sent_msat', 'destination', 'status', 'memo'],
- invoices: ['expires_at', 'paid_at', 'type', 'description', 'msatoshi', 'msatoshi_received', 'label', 'payment_hash', 'amount_msat', 'status', 'amount_received_msat'],
- utxos: ['expires_at', 'paid_at', 'type', 'description', 'msatoshi', 'msatoshi_received', 'label', 'payment_hash', 'amount_msat', 'status', 'amount_received_msat']
+ invoices: ['expires_at', 'paid_at', 'type', 'description', 'msatoshi', 'msatoshi_received', 'label', 'payment_hash', 'amount_msat', 'status', 'amount_received_msat']
};