Config Updates

Config Updates
pull/260/head
Shahana Farooqui 4 years ago
parent 17564c9d9b
commit da3045e2cd

@ -3,8 +3,8 @@ root = true
[*]
charset = utf-8
indent_style = tab
indent_size = 1
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

@ -1,7 +1,7 @@
## Ride The Lightning (RTL)
![](screenshots/RTL_Home.png)
<a href="https://snyk.io/test/github/ShahanaFarooqui/RTL"><img src="https://snyk.io/test/github/ShahanaFarooqui/RTL/badge.svg" alt="Known Vulnerabilities" data-canonical-src="https://snyk.io/test/github/ShahanaFarooqui/RTL" style="max-width:100%;"></a>
<a href="https://snyk.io/test/github/Ride-The-Lightning/RTL"><img src="https://snyk.io/test/github/Ride-The-Lightning/RTL/badge.svg" alt="Known Vulnerabilities" data-canonical-src="https://snyk.io/test/github/Ride-The-Lightning/RTL" style="max-width:100%;"></a>
[![license](https://img.shields.io/github/license/DAVFoundation/captain-n3m0.svg?style=flat-square)](https://github.com/DAVFoundation/captain-n3m0/blob/master/LICENSE)
### Stable Release: v0.5.4
@ -93,19 +93,15 @@ rtlCookiePath=C:\RTL\cookies\auth.cookie
logoutRedirectLink=/login
[Settings]
userPersona=Operator
flgSidenavOpened=true
flgSidenavPinned=true
menu=vertical
menuType=regular
fontSize=regular-font
themeMode=night
themeColor=blue
satsToBTC=false
lndServerUrl=https://192.168.0.0:8080/v1
bitcoindConfigPath=
enableLogging=false
userPersona=OPERATOR
themeMode=DAY
themeColor=PURPLE
channelBackupPath=C:\Users\shaha\backup\node-0
bitcoindConfigPath=C:/Bitcoin/bitcoin.conf
enableLogging=true
port=3000
lndServerUrl=https://192.168.1.16:8080/v1
currencyUnit=USD
```
For details on all the configuration options refer to [this page](./docs/Application_configurations).

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -9,8 +9,8 @@
<link rel="icon" type="image/png" sizes="32x32" href="assets/images/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="assets/images/favicon/favicon-16x16.png">
<link rel="manifest" href="assets/images/favicon/site.webmanifest">
<link rel="stylesheet" href="styles.87b171242d5c32215e74.css"></head>
<link rel="stylesheet" href="styles.fc36fcae8eb3636c1114.css"></head>
<body>
<rtl-app></rtl-app>
<script src="runtime.2062541fefdba5cf619b.js" defer></script><script src="polyfills-es5.b8e32dec482ae69710a2.js" nomodule defer></script><script src="polyfills.ebf9033c33aa4a5af12a.js" defer></script><script src="main.4679d6e3b00f58ed7626.js" defer></script></body>
<script src="runtime.e9128a76f55c487a9b24.js" defer></script><script src="polyfills-es5.b8e32dec482ae69710a2.js" nomodule defer></script><script src="polyfills.ebf9033c33aa4a5af12a.js" defer></script><script src="main.567798a446f68c375f5e.js" defer></script></body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
!function(e){function r(r){for(var n,a,i=r[0],c=r[1],f=r[2],p=0,s=[];p<i.length;p++)a=i[p],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&s.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(l&&l(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++)0!==o[t[i]]&&(n=!1);n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={0:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+""+({}[e]||e)+"."+{1:"77d491bf73b15683870f",6:"cc4447fe1aa70926a7b5",7:"732d0cd09eb4c42fa623"}[e]+".js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(f);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var f=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,(function(r){return e[r]}).bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a.oe=function(e){throw console.error(e),e};var i=window.webpackJsonp=window.webpackJsonp||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var f=0;f<i.length;f++)r(i[f]);var l=c;t()}([]);
!function(e){function r(r){for(var n,a,i=r[0],c=r[1],l=r[2],p=0,s=[];p<i.length;p++)a=i[p],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&s.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++)0!==o[t[i]]&&(n=!1);n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={0:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+""+({}[e]||e)+"."+{1:"454a80537ee5d2127464",6:"a8aaac1c40edefc2e998",7:"111462271a145f4492a0"}[e]+".js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,(function(r){return e[r]}).bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a.oe=function(e){throw console.error(e),e};var i=window.webpackJsonp=window.webpackJsonp||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var l=0;l<i.length;l++)r(i[l]);var f=c;t()}([]);

File diff suppressed because one or more lines are too long

@ -59,14 +59,14 @@ connect.setDefaultConfig = () => {
configPath: configPath,
},
Settings: {
userPersona: 'Operator',
userPersona: 'OPERATOR',
flgSidenavOpened: true,
flgSidenavPinned: true,
menu: "vertical",
menuType: "regular",
fontSize: "regular-font",
themeMode: "day",
themeColor: "purple",
menu: "VERTICAL",
menuType: "REGULAR",
fontSize: "MEDIUM",
themeMode: "DAY",
themeColor: "PURPLE",
satsToBTC: false,
channelBackupPath: channelBackupPath,
enableLogging: "true",

@ -35,11 +35,11 @@ exports.getRTLConfig = (req, res, next) => {
jsonConfig.Settings.channelBackupPath = (undefined !== jsonConfig.Settings.channelBackupPath) ? jsonConfig.Settings.channelBackupPath : common.nodes[0].channel_backup_path;
jsonConfig.Settings.flgSidenavOpened = (undefined !== jsonConfig.Settings.flgSidenavOpened) ? jsonConfig.Settings.flgSidenavOpened : true;
jsonConfig.Settings.flgSidenavPinned = (undefined !== jsonConfig.Settings.flgSidenavPinned) ? jsonConfig.Settings.flgSidenavPinned : true;
jsonConfig.Settings.menu = (undefined !== jsonConfig.Settings.menu) ? jsonConfig.Settings.menu : 'vertical';
jsonConfig.Settings.menuType = (undefined !== jsonConfig.Settings.menuType) ? jsonConfig.Settings.menuType : 'regular';
jsonConfig.Settings.fontSize = (undefined !== jsonConfig.Settings.fontSize) ? jsonConfig.Settings.fontSize : 'regular-font';
jsonConfig.Settings.themeMode = (undefined !== jsonConfig.Settings.themeMode) ? jsonConfig.Settings.themeMode : 'day';
jsonConfig.Settings.themeColor = (undefined !== jsonConfig.Settings.themeColor) ? jsonConfig.Settings.themeColor : 'purple';
jsonConfig.Settings.menu = (undefined !== jsonConfig.Settings.menu) ? jsonConfig.Settings.menu : 'VERTICAL';
jsonConfig.Settings.menuType = (undefined !== jsonConfig.Settings.menuType) ? jsonConfig.Settings.menuType : 'REGULAR';
jsonConfig.Settings.fontSize = (undefined !== jsonConfig.Settings.fontSize) ? jsonConfig.Settings.fontSize : 'MEDIUM';
jsonConfig.Settings.themeMode = (undefined !== jsonConfig.Settings.themeMode) ? jsonConfig.Settings.themeMode : 'DAY';
jsonConfig.Settings.themeColor = (undefined !== jsonConfig.Settings.themeColor) ? jsonConfig.Settings.themeColor : 'PURPLE';
jsonConfig.Settings.satsToBTC = (undefined !== jsonConfig.Settings.satsToBTC) ? jsonConfig.Settings.satsToBTC : false;
res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: common.selectedNode.index, sso: sso, nodes: [{
index: common.nodes[0].index,
@ -85,11 +85,11 @@ exports.getRTLConfig = (req, res, next) => {
node.Settings.channelBackupPath = (undefined !== node.Settings.channelBackupPath) ? node.Settings.channelBackupPath : common.nodes[i].channel_backup_path;
node.Settings.flgSidenavOpened = (undefined !== node.Settings.flgSidenavOpened) ? node.Settings.flgSidenavOpened : true;
node.Settings.flgSidenavPinned = (undefined !== node.Settings.flgSidenavPinned) ? node.Settings.flgSidenavPinned : true;
node.Settings.menu = (undefined !== node.Settings.menu) ? node.Settings.menu : 'vertical';
node.Settings.menuType = (undefined !== node.Settings.menuType) ? node.Settings.menuType : 'regular';
node.Settings.fontSize = (undefined !== node.Settings.fontSize) ? node.Settings.fontSize : 'regular-font';
node.Settings.themeMode = (undefined !== node.Settings.themeMode) ? node.Settings.themeMode : 'day';
node.Settings.themeColor = (undefined !== node.Settings.themeColor) ? node.Settings.themeColor : 'purple';
node.Settings.menu = (undefined !== node.Settings.menu) ? node.Settings.menu : 'VERTICAL';
node.Settings.menuType = (undefined !== node.Settings.menuType) ? node.Settings.menuType : 'REGULAR';
node.Settings.fontSize = (undefined !== node.Settings.fontSize) ? node.Settings.fontSize : 'MEDIUM';
node.Settings.themeMode = (undefined !== node.Settings.themeMode) ? node.Settings.themeMode : 'DAY';
node.Settings.themeColor = (undefined !== node.Settings.themeColor) ? node.Settings.themeColor : 'PURPLE';
node.Settings.satsToBTC = (undefined !== node.Settings.satsToBTC) ? node.Settings.satsToBTC : false;
nodesArr.push({
index: node.index,
@ -118,9 +118,9 @@ exports.updateUISettings = (req, res, next) => {
node.Settings.currencyUnit = req.body.updatedSettings.currencyUnit;
node.Settings.flgSidenavOpened = true; // req.body.updatedSettings.flgSidenavOpened;
node.Settings.flgSidenavPinned = true; // req.body.updatedSettings.flgSidenavPinned;
node.Settings.menu = 'vertical'; // req.body.updatedSettings.menu;
node.Settings.menuType = 'regular'; // req.body.updatedSettings.menuType;
node.Settings.fontSize = 'regular-font'; // req.body.updatedSettings.fontSize;
node.Settings.menu = 'VERTICAL'; // req.body.updatedSettings.menu;
node.Settings.menuType = 'REGULAR'; // req.body.updatedSettings.menuType;
node.Settings.fontSize = 'MEDIUM'; // req.body.updatedSettings.fontSize;
node.Settings.satsToBTC = false; // req.body.updatedSettings.satsToBTC;
}
});
@ -146,9 +146,9 @@ exports.updateUISettings = (req, res, next) => {
settingsTemp.currencyUnit = req.body.updatedSettings.currencyUnit;
settingsTemp.flgSidenavOpened = true; // req.body.updatedSettings.flgSidenavOpened;
settingsTemp.flgSidenavPinned = true; // req.body.updatedSettings.flgSidenavPinned;
settingsTemp.menu = 'vertical'; // req.body.updatedSettings.menu;
settingsTemp.menuType = 'regular'; // req.body.updatedSettings.menuType;
settingsTemp.fontSize = 'regular-font'; // req.body.updatedSettings.fontSize;
settingsTemp.menu = 'VERTICAL'; // req.body.updatedSettings.menu;
settingsTemp.menuType = 'REGULAR'; // req.body.updatedSettings.menuType;
settingsTemp.fontSize = 'MEDIUM'; // req.body.updatedSettings.fontSize;
settingsTemp.satsToBTC = false; // req.body.updatedSettings.satsToBTC;
delete config.Settings;
fs.writeFileSync(RTLConfFile, ini.stringify(config));

@ -14,23 +14,11 @@ rtlPass=<>
[Settings]
;Set by RTL
userPersona=Operator
userPersona=OPERATOR
;Set by RTL
flgSidenavOpened=true
themeMode=DAY
;Set by RTL
flgSidenavPinned=true
;Set by RTL
menu=vertical
;Set by RTL
menuType=regular
;Set by RTL
fontSize=regular-font
;Set by RTL
themeMode=night
;Set by RTL
themeColor=blue
;Set by RTL
satsToBTC=false
themeColor=PURPLE
;Full path of the bitcoin.conf file including the file name
bitcoindConfigPath=<>
;parameter to turn RTL logging off/on. Allowed values - true, false

@ -28,7 +28,7 @@ Follow the below steps to install and setup RTL to run on c-lightning.
#### First time setup
* Fetch sources from RTL git repository, by executing the below on the command prompt:
`$ git clone https://github.com/ShahanaFarooqui/RTL.git`
`$ git clone https://github.com/Ride-The-Lightning/RTL.git`
* Change directory to RTL folder:
`$ cd RTL`
@ -75,17 +75,12 @@ Ensure that the follow values are correct per your config:
"configPath": "<Optional - Config file path for c-lightning>"
},
"Settings": {
"userPersona": "Operator",
"flgSidenavOpened": false,
"flgSidenavPinned": true,
"menu": "vertical",
"menuType": "regular",
"fontSize": "regular-font",
"themeMode": "night",
"themeColor": "pink",
"satsToBTC": false,
"userPersona": "OPERATOR",
"themeMode": "DAY",
"themeColor": "PURPLE",
"bitcoindConfigPath": "",
"enableLogging": "true",
"enableLogging": true,
"currencyUnit": "USD",
"lnServerUrl": "https://<cl-rest api server ip address>:3001/v1"
}
}

@ -17,41 +17,32 @@
"lndConfigPath": "<Optional:Path of the lnd.conf if present locally or empty>"
},
"Settings": {
"userPersona": "Operator",
"flgSidenavOpened": "true",
"flgSidenavPinned": "true",
"menu": "vertical",
"menuType": "regular",
"themeMode": "night",
"themeColor": "blue",
"fontSize":"regular-font",
"satsToBTC": "false",
"userPersona": "OPERATOR",
"themeMode": "DAY",
"themeColor": "PURPLE",
"channelBackupPath": "C:\\RTL\\backup\\node-1",
"bitcoindConfigPath": "<Optional: path of bitcoind.conf path if available locally>",
"enableLogging": "true",
"enableLogging": true,
"currencyUnit": "USD",
"lndServerUrl": "<Service url for LND REST APIs for node # 1 e.g. https://192.168.0.1:8080/v1"
}
},
{
"index": 2,
"lnNode": "LND Mainnet",
"lnImplementation": "LND",
"lnNode": "C Lighting Testnet",
"lnImplementation": "CLT",
"Authentication": {
"macaroonPath": "<Complete path of the folder containing admin.macaroon for the node # 2>"
},
"Settings": {
"userPersona": "Merchant",
"flgSidenavOpened": "true",
"flgSidenavPinned": "true",
"menu": "vertical",
"menuType": "regular",
"themeMode": "day",
"themeColor": "teal",
"satsToBTC": "false",
"userPersona": "MERCHANT",
"themeMode": "NIGHT",
"themeColor": "TEAL",
"channelBackupPath": "C:\\RTL\\backup\\node-2",
"bitcoindConfigPath": "",
"enableLogging": "true",
"lndServerUrl": "<Service url for LND REST APIs for node # 2 e.g. https://192.168.0.6:8080/v1"
"enableLogging": true,
"currencyUnit": "GBP",
"lnServerUrl": "<Service url for C Lightning REST APIs for node # 2 e.g. https://192.168.0.2:3001/v1"
}
}
]

@ -5,15 +5,9 @@ lndConfigPath=
rtlPass=
[Settings]
userPersona=Operator
flgSidenavOpened=true
flgSidenavPinned=true
menu=vertical
menuType=regular
fontSize=regular-font
themeMode=night
themeColor=blue
satsToBTC=false
userPersona=OPERATOR
themeMode=DAY
themeColor=PURPLE
channelBackupPath=C:\RTL\backup
bitcoindConfigPath=
enableLogging=true

@ -1,23 +1,23 @@
<!-- <div fxLayout="column" id="rtl-container" class="rtl-container" [ngClass]="[settings.themeColor, settings.themeMode]" [class.horizontal]="settings.menu === 'horizontal'" [class.compact]="settings.menuType === 'compact'" [class.mini]="settings.menuType === 'mini'" [style.fontSize.px]="getFontSize()"> -->
<div fxLayout="column" id="rtl-container" class="rtl-container" [ngClass]="[settings.themeColor, settings.themeMode, settings.fontSize]" [class.horizontal]="settings.menu === 'horizontal'" [class.compact]="settings.menuType === 'compact'" [class.mini]="settings.menuType === 'mini'">
<mat-toolbar fxLayout="row" fxLayoutAlign="space-between center" class="padding-gap-x bg-primary rtl-top-toolbar" *ngIf="settings.menu === 'vertical'">
<!-- <div fxLayout="column" id="rtl-container" class="rtl-container" [ngClass]="[settings.themeColor, settings.themeMode]" [class.horizontal]="settings.menu === 'HORIZONTAL'" [class.compact]="settings.menuType === 'COMPACT'" [class.mini]="settings.menuType === 'MINI'" [style.fontSize.px]="getFontSize()"> -->
<div fxLayout="column" id="rtl-container" class="rtl-container" [ngClass]="[settings.themeColor | lowercase, settings.themeMode | lowercase, settings.fontSize | lowercase]" [class.horizontal]="settings.menu === 'HORIZONTAL'" [class.compact]="settings.menuType === 'COMPACT'" [class.mini]="settings.menuType === 'MINI'">
<mat-toolbar fxLayout="row" fxLayoutAlign="space-between center" class="padding-gap-x bg-primary rtl-top-toolbar" *ngIf="settings.menu === 'VERTICAL'">
<div>
<button *ngIf="settings.menu === 'vertical'" class="top-toolbar-icon" mat-icon-button (click)="sideNavToggle()">
<button *ngIf="settings.menu === 'VERTICAL'" class="top-toolbar-icon" mat-icon-button (click)="sideNavToggle()">
<mat-icon class="mr-5px">menu</mat-icon>
</button>
<button *ngIf="settings.fontSize === 'small-font' && settings.menu === 'vertical' && !smallScreen" mat-icon-button (click)="settings.flgSidenavPinned = !settings.flgSidenavPinned">
<button *ngIf="settings.fontSize === 'SMALL' && settings.menu === 'VERTICAL' && !smallScreen" mat-icon-button (click)="settings.flgSidenavPinned = !settings.flgSidenavPinned">
<svg class="top-toolbar-icon icon-pinned" viewBox="0 0 42 42">
<path fill="currentColor" *ngIf="!settings.flgSidenavPinned" d="M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z" />
<path fill="currentColor" *ngIf="settings.flgSidenavPinned" d="M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z" />
</svg>
</button>
<button *ngIf="settings.fontSize === 'regular-font' && settings.menu === 'vertical' && !smallScreen" mat-icon-button (click)="settings.flgSidenavPinned = !settings.flgSidenavPinned">
<button *ngIf="settings.fontSize === 'MEDIUM' && settings.menu === 'VERTICAL' && !smallScreen" mat-icon-button (click)="settings.flgSidenavPinned = !settings.flgSidenavPinned">
<svg class="top-toolbar-icon icon-pinned" viewBox="0 0 32 32">
<path fill="currentColor" *ngIf="!settings.flgSidenavPinned" d="M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z" />
<path fill="currentColor" *ngIf="settings.flgSidenavPinned" d="M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z" />
</svg>
</button>
<button *ngIf="settings.fontSize === 'large-font' && settings.menu === 'vertical' && !smallScreen" mat-icon-button (click)="settings.flgSidenavPinned = !settings.flgSidenavPinned">
<button *ngIf="settings.fontSize === 'LARGE' && settings.menu === 'VERTICAL' && !smallScreen" mat-icon-button (click)="settings.flgSidenavPinned = !settings.flgSidenavPinned">
<svg class="top-toolbar-icon icon-pinned" viewBox="0 0 24 24">
<path fill="currentColor" *ngIf="!settings.flgSidenavPinned" d="M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z" />
<path fill="currentColor" *ngIf="settings.flgSidenavPinned" d="M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z" />
@ -32,11 +32,11 @@
<rtl-top-menu></rtl-top-menu>
</div>
</mat-toolbar>
<mat-toolbar color="primary" *ngIf="settings.menu === 'horizontal'" class="padding-gap-x horizontal-nav">
<mat-toolbar color="primary" *ngIf="settings.menu === 'HORIZONTAL'" class="padding-gap-x horizontal-nav">
<rtl-horizontal-navigation fxLayout="row" fxFlex="100" fxLayoutAlign="start center" class="h-100"></rtl-horizontal-navigation>
</mat-toolbar>
<mat-sidenav-container>
<mat-sidenav perfectScrollbar *ngIf="settings.menu === 'vertical'" [opened]="settings.flgSidenavOpened" [mode]="(settings.flgSidenavPinned && !smallScreen) ? 'side' : 'over'" #sideNavigation class="sidenav mat-elevation-z6">
<mat-sidenav perfectScrollbar *ngIf="settings.menu === 'VERTICAL'" [opened]="settings.flgSidenavOpened" [mode]="(settings.flgSidenavPinned && !smallScreen) ? 'side' : 'over'" #sideNavigation class="sidenav mat-elevation-z6">
<rtl-side-navigation (ChildNavClicked)="onNavigationClicked($event)" fxFlex="100"></rtl-side-navigation>
</mat-sidenav>
<mat-sidenav-content perfectScrollbar>

@ -91,7 +91,7 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
// START: Workaround to add adjust container width initially
this.sideNavigation.toggle();
setTimeout(() => { this.sideNavigation.toggle(); }, 50);
if (this.settings.menuType === 'compact' || this.settings.menuType === 'mini') {
if (this.settings.menuType === 'COMPACT' || this.settings.menuType === 'MINI') {
this.sideNavigation.toggle(); // To dynamically update the width to 100% after side nav is closed
setTimeout(() => { this.sideNavigation.toggle(); }, 100);
}
@ -129,7 +129,7 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
}
ngAfterViewInit() {
if ((this.settings.menuType.toLowerCase() !== 'regular' || !this.settings.flgSidenavPinned) || (this.smallScreen)) {
if ((this.settings.menuType !== 'REGULAR' || !this.settings.flgSidenavPinned) || (this.smallScreen)) {
this.sideNavigation.close();
}
}

@ -141,12 +141,12 @@ export function LNDReducer(state = initLNDState, action: RTLActions.RTLActions)
let localBal = 0, remoteBal = 0, activeChannels = 0, inactiveChannels = 0, totalCapacityActive = 0, totalCapacityInactive = 0;
if (action.payload) {
action.payload.filter(channel => {
if (undefined !== channel.local_balance) {
if (channel.local_balance) {
localBal = +localBal + +channel.local_balance;
} else {
channel.local_balance = 0;
}
if (undefined !== channel.remote_balance) {
if (channel.remote_balance) {
remoteBal = +remoteBal + +channel.remote_balance;
} else {
channel.remote_balance = 0;

@ -6,13 +6,13 @@
</mat-option>
</mat-select>
<mat-divider class="w-100"></mat-divider>
<mat-tree #tree [dataSource]="navMenus" [treeControl]="treeControlNested" *ngIf="settings.menuType === 'regular'">
<mat-tree #tree [dataSource]="navMenus" [treeControl]="treeControlNested" *ngIf="settings.menuType === 'REGULAR'">
<mat-tree-node *matTreeNodeDef="let node" matTreeNodeToggle routerLinkActive="active-link" routerLink="{{node.link}}">
<div (click)="onChildNavClicked(node)">
<div fxLayout="row" fxFlex="100" fxLayoutAlign="start center">
<fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-small mr-2"></fa-icon>
<mat-icon *ngIf="!node.iconType" class="mat-icon-36">{{node.icon}}</mat-icon>
<span *ngIf="settings.menuType === 'regular'">{{node.name}}</span>
<span *ngIf="settings.menuType === 'REGULAR'">{{node.name}}</span>
</div>
</div>
</mat-tree-node>
@ -35,7 +35,7 @@
</mat-nested-tree-node>
</mat-tree>
<mat-tree [dataSource]="navMenus" [treeControl]="treeControlNested" *ngIf="settings.menuType === 'compact'">
<mat-tree [dataSource]="navMenus" [treeControl]="treeControlNested" *ngIf="settings.menuType === 'COMPACT'">
<mat-tree-node fxLayout="row" matTreeNodeToggle fxLayoutAlign="start center" *matTreeNodeDef="let node"
(click)="onChildNavClicked(node)" routerLinkActive="active-link" routerLink="{{node.link}}">
<fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-small mr-1"></fa-icon>
@ -61,7 +61,7 @@
</mat-nested-tree-node>
</mat-tree>
<mat-tree [dataSource]="navMenus" [treeControl]="treeControlNested" *ngIf="settings.menuType === 'mini'">
<mat-tree [dataSource]="navMenus" [treeControl]="treeControlNested" *ngIf="settings.menuType === 'MINI'">
<mat-tree-node *matTreeNodeDef="let node" matTreeNodeToggle routerLinkActive="active-link" routerLink="{{node.link}}">
<div (click)="onChildNavClicked(node)">
<div fxLayout="row" fxFlex="100" fxLayoutAlign="start center">
@ -88,7 +88,7 @@
</mat-nested-tree-node>
</mat-tree>
<mat-divider class="w-100"></mat-divider>
<mat-tree [dataSource]="navMenusShowData" [treeControl]="treeControlShowData" *ngIf="settings.menuType === 'regular'">
<mat-tree [dataSource]="navMenusShowData" [treeControl]="treeControlShowData" *ngIf="settings.menuType === 'REGULAR'">
<mat-tree-node *matTreeNodeDef="let node" (click)="onShowData(node)">
<fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-small mr-2" matTooltip="{{node.name}}" matTooltipPosition="right"></fa-icon>
<mat-icon *ngIf="!node.iconType" class="mat-icon-36" matTooltip="{{node.name}}" matTooltipPosition="right">{{node.icon}}</mat-icon>
@ -96,35 +96,35 @@
</mat-tree-node>
</mat-tree>
<mat-tree [dataSource]="navMenusShowData" [treeControl]="treeControlShowData" *ngIf="settings.menuType === 'compact'">
<mat-tree [dataSource]="navMenusShowData" [treeControl]="treeControlShowData" *ngIf="settings.menuType === 'COMPACT'">
<mat-tree-node fxLayout="row" fxLayoutAlign="start center" *matTreeNodeDef="let node" (click)="onShowData(node)">
<fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-small mr-1"></fa-icon>
<span>{{node.name}}</span>
</mat-tree-node>
</mat-tree>
<mat-tree [dataSource]="navMenusShowData" [treeControl]="treeControlShowData" *ngIf="settings.menuType === 'mini'">
<mat-tree [dataSource]="navMenusShowData" [treeControl]="treeControlShowData" *ngIf="settings.menuType === 'MINI'">
<mat-tree-node *matTreeNodeDef="let node" (click)="onShowData(node)" fxLayoutAlign="start center">
<fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-regular" matTooltip="{{node.name}}" matTooltipPosition="right"></fa-icon>
</mat-tree-node>
</mat-tree>
</div>
<div fxLayout="column" fxFlex="10" fxLayoutAlign="end stretch" class="w-100">
<mat-tree [dataSource]="navMenusLogout" [treeControl]="treeControlLogout" *ngIf="settings.menuType === 'regular' && showLogout">
<mat-tree [dataSource]="navMenusLogout" [treeControl]="treeControlLogout" *ngIf="settings.menuType === 'REGULAR' && showLogout">
<mat-tree-node *matTreeNodeDef="let node" (click)="onClick(node)">
<fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-small mr-2" matTooltip="{{node.name}}" matTooltipPosition="right"></fa-icon>
<span>{{node.name}}</span>
</mat-tree-node>
</mat-tree>
<mat-tree [dataSource]="navMenusLogout" [treeControl]="treeControlLogout" *ngIf="settings.menuType === 'compact' && showLogout">
<mat-tree [dataSource]="navMenusLogout" [treeControl]="treeControlLogout" *ngIf="settings.menuType === 'COMPACT' && showLogout">
<mat-tree-node fxLayout="row" fxLayoutAlign="start center" *matTreeNodeDef="let node" (click)="onClick(node)">
<fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-small mr-1"></fa-icon>
<span>{{node.name}}</span>
</mat-tree-node>
</mat-tree>
<mat-tree [dataSource]="navMenusLogout" [treeControl]="treeControlLogout" *ngIf="settings.menuType === 'mini' && showLogout">
<mat-tree [dataSource]="navMenusLogout" [treeControl]="treeControlLogout" *ngIf="settings.menuType === 'MINI' && showLogout">
<mat-tree-node *matTreeNodeDef="let node" (click)="onClick(node)" fxLayoutAlign="start center">
<fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-regular" matTooltip="{{node.name}}" matTooltipPosition="right"></fa-icon>
</mat-tree-node>

@ -25,7 +25,7 @@
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field fxFlex="32" fxLayoutAlign="start end" *ngIf="appConfig.nodes.length && appConfig.nodes.length > 1">
<mat-form-field fxFlex="32" fxLayoutAlign="start end" *ngIf="appConfig.nodes.length && appConfig.nodes.length > 1;else emptyBlock">
<mat-label>Default Node</mat-label>
<mat-select [(ngModel)]="appConfig.defaultNodeIndex" tabindex="1" name="defaultNode">
<mat-option *ngFor="let node of appConfig.nodes" [value]="node.index">
@ -54,7 +54,7 @@
<h4>Themes</h4>
<div fxLayout="row" fxFlex="100" fxLayoutAlign="space-between start">
<span *ngFor="let themeColor of themeColors" fxLayout="row">
<div [class]="themeColor.id" [ngClass]="{'skin': true, 'selected-color': selectedThemeColor === themeColor.id}" (click)="changeThemeColor(themeColor.id)"></div>
<div [class]="themeColor.id | lowercase" [ngClass]="{'skin': true, 'selected-color': selectedThemeColor === themeColor.id}" (click)="changeThemeColor(themeColor.id)"></div>
{{themeColor.name}}
</span>
</div>
@ -69,4 +69,5 @@
</div>
</div>
</div>
</div>
</div>
<ng-template #emptyBlock><div fxLayout="row" fxFlex="32" fxLayoutAlign="start end"></div></ng-template>

@ -62,7 +62,7 @@ export class AppSettingsComponent implements OnInit, OnDestroy {
this.selectedThemeColor = this.selNode.settings.themeColor;
this.selectedFontSize = this.fontSizes.find(fontSize => fontSize.class === this.selNode.settings.fontSize);
if (window.innerWidth <= 768) {
this.selNode.settings.menu = 'vertical';
this.selNode.settings.menu = 'VERTICAL';
this.selNode.settings.flgSidenavOpened = false;
this.selNode.settings.flgSidenavPinned = false;
this.showSettingOption = false;
@ -95,7 +95,7 @@ export class AppSettingsComponent implements OnInit, OnDestroy {
if(toggleField === 'menu') {
this.selNode.settings.flgSidenavOpened = (!event.checked) ? false : true;
setTimeout(() => {
this.selNode.settings.menu = (!event.checked) ? 'horizontal' : 'vertical';
this.selNode.settings.menu = (!event.checked) ? 'HORIZONTAL' : 'VERTICAL';
}, 10);
} else {
this.selNode.settings[toggleField] = !this.selNode.settings[toggleField];

@ -51,21 +51,21 @@ export const FEE_RATE_TYPES = [
export const NODE_SETTINGS = {
themes: [
{id: 'purple', name: 'Diogo'},
{id: 'teal', name: 'My2Sats'},
{id: 'indigo', name: 'RTL'},
{id: 'pink', name: 'BK'}
{id: 'PURPLE', name: 'Diogo'},
{id: 'TEAL', name: 'My2Sats'},
{id: 'INDIGO', name: 'RTL'},
{id: 'PINK', name: 'BK'}
],
modes: [{id: 'day', name: 'Day'}, {id: 'night', name: 'Night'}],
fontSize: [{id: 1, name: 'Small', class: 'small-font'}, {id: 2, name: 'Regular', class: 'regular-font'}, {id: 3, name: 'Large', class: 'large-font'}],
menuTypes: [{id: 'regular', name: 'Regular'}, {id: 'compact', name: 'Compact'}, {id: 'mini', name: 'Mini'}],
menus: [{id: 'vertical', name: 'Vertical'}, {id: 'horizontal', name: 'Horizontal'}]
modes: [{id: 'DAY', name: 'Day'}, {id: 'NIGHT', name: 'Night'}],
fontSize: [{id: 1, name: 'Small', class: 'SMALL'}, {id: 2, name: 'Medium', class: 'MEDIUM'}, {id: 3, name: 'Large', class: 'LARGE'}],
menuTypes: [{id: 'REGULAR', name: 'Regular'}, {id: 'COMPACT', name: 'Compact'}, {id: 'MINI', name: 'Mini'}],
menus: [{id: 'VERTICAL', name: 'Vertical'}, {id: 'HORIZONTAL', name: 'Horizontal'}]
};
export enum UserPersonaEnum {
OPERATOR = 'operator',
MERCHANT = 'merchant',
ALL = 'all'
OPERATOR = 'OPERATOR',
MERCHANT = 'MERCHANT',
ALL = 'ALL'
}
export enum AlertTypeEnum {

@ -3,7 +3,7 @@
@mixin change-font($typography) {
@include mat-core($typography);
&.small-font {
&.small {
.mat-header-cell {
font-weight: 700;
}
@ -75,12 +75,12 @@
max-width: 3.6rem;
}
}
&.regular-font {
&.medium {
.mat-header-cell {
font-weight: 700;
}
.inner-sidenav-content {
padding-top: $regular-font-size;
padding-top: $medium-font-size;
}
.mat-tree .mat-tree-node, .mat-tree .mat-nested-tree-node-parent {
min-height: $tree-node-height;
@ -88,71 +88,71 @@
}
.mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),
.mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {
font-size: $regular-font-size * 1.1;
font-size: $medium-font-size * 1.1;
}
.genseed-message, .validation-error-message .validation-error-icon.mat-icon {
font-size: $regular-font-size * 1.2;
font-size: $medium-font-size * 1.2;
}
.page-title-container, .page-sub-title-container {
font-size: $regular-font-size * 1.1;
font-size: $medium-font-size * 1.1;
}
.fa-icon-small, .top-icon-small, .modal-info-header {
font-size: $regular-font-size * 1.2;
font-size: $medium-font-size * 1.2;
}
.top-toolbar-icon.icon-pinned {
font-size: $regular-font-size * 1.3;
font-size: $medium-font-size * 1.3;
}
.top-toolbar-icon .top-toolbar-img, .sidenav-img svg {
width: $regular-font-size * 1.8;
height: $regular-font-size * 1.8;
font-size: $regular-font-size * 1.3;
width: $medium-font-size * 1.8;
height: $medium-font-size * 1.8;
font-size: $medium-font-size * 1.3;
}
.horizontal-button .sidenav-img svg {
width: $regular-font-size * 2.2;
height: $regular-font-size * 2.2;
width: $medium-font-size * 2.2;
height: $medium-font-size * 2.2;
font-size: 2.5rem;
}
.material-icons {
font-size: $regular-font-size * 2;
font-size: $medium-font-size * 2;
}
.mat-step-header .mat-step-icon .mat-icon {
font-size: initial;
}
.mat-expansion-panel-header, .mat-menu-item, .mat-list .mat-list-item, .mat-nav-list .mat-list-item, .mat-option, .mat-select, .mat-selection-list .mat-list-item {
font-size: $regular-font-size !important;
font-size: $medium-font-size !important;
}
.logo {
font-size: $regular-font-size * 2;
font-size: $medium-font-size * 2;
}
.font-60-percent {
font-size: $regular-font-size * 0.6;
font-size: $medium-font-size * 0.6;
}
.fa-icon-regular {
font-size: $regular-font-size * 1.75;
font-size: $medium-font-size * 1.75;
}
.icon-large {
font-size: $regular-font-size * 5;
font-size: $medium-font-size * 5;
}
.icon-small {
font-size: $regular-font-size * 1.5 !important;
font-size: $medium-font-size * 1.5 !important;
}
.icon-smaller {
font-size: $regular-font-size * 0.75 !important;
font-size: $medium-font-size * 0.75 !important;
}
.size-triple {
font-size: $regular-font-size * 3;
font-size: $medium-font-size * 3;
}
.mat-icon-36 {
font-size: $regular-font-size * 2;
font-size: $medium-font-size * 2;
}
.btn-close-x {
font-size: $regular-font-size * 1.5;
font-size: $medium-font-size * 1.5;
font-weight: 600;
min-width: 3.6rem;
max-width: 3.6rem;
}
}
&.large-font {
&.large {
.mat-header-cell {
font-weight: 800;
}

@ -1,6 +1,6 @@
$font-family: 'Roboto', sans-serif;
$small-font-size: 1.2rem;
$regular-font-size: 1.4rem;
$medium-font-size: 1.4rem;
$large-font-size: 1.6rem;
$nodes-toolbar-height: 52px;

@ -7,9 +7,9 @@
.rtl-container{
&.purple {
@import "../skins/purple";
&.small-font {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);}
&.large-font {@include change-font($large-typography);}
&.small {@include change-font($small-typography);}
&.medium {@include change-font($medium-typography);}
&.large {@include change-font($large-typography);}
&.day {
@include angular-material-theme($purple-day-theme);
@include change-theme($purple-day-theme);
@ -21,9 +21,9 @@
}
&.blue{
@import "../skins/blue";
&.small-font {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);}
&.large-font {@include change-font($large-typography);}
&.small {@include change-font($small-typography);}
&.medium {@include change-font($medium-typography);}
&.large {@include change-font($large-typography);}
&.day {
@include angular-material-theme($blue-day-theme);
@include change-theme($blue-day-theme);
@ -35,9 +35,9 @@
}
&.indigo{
@import "../skins/indigo";
&.small-font {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);}
&.large-font {@include change-font($large-typography);}
&.small {@include change-font($small-typography);}
&.medium {@include change-font($medium-typography);}
&.large {@include change-font($large-typography);}
&.day {
@include angular-material-theme($indigo-day-theme);
@include change-theme($indigo-day-theme);
@ -49,9 +49,9 @@
}
&.green{
@import "../skins/green";
&.small-font {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);}
&.large-font {@include change-font($large-typography);}
&.small {@include change-font($small-typography);}
&.medium {@include change-font($medium-typography);}
&.large {@include change-font($large-typography);}
&.day {
@include angular-material-theme($green-day-theme);
@include change-theme($green-day-theme);
@ -63,9 +63,9 @@
}
&.teal{
@import "../skins/teal";
&.small-font {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);}
&.large-font {@include change-font($large-typography);}
&.small {@include change-font($small-typography);}
&.medium {@include change-font($medium-typography);}
&.large {@include change-font($large-typography);}
&.day {
@include angular-material-theme($teal-day-theme);
@include change-theme($teal-day-theme);
@ -77,9 +77,9 @@
}
&.pink{
@import "../skins/pink";
&.small-font {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);}
&.large-font {@include change-font($large-typography);}
&.small {@include change-font($small-typography);}
&.medium {@include change-font($medium-typography);}
&.large {@include change-font($large-typography);}
&.day {
@include angular-material-theme($pink-day-theme);
@include change-theme($pink-day-theme);

@ -14,7 +14,7 @@ $small-typography: mat-typography-config(
$input: (font-size: inherit, line-height: 1.125, font-weight: 400)
);
$regular-typography: mat-typography-config(
$medium-typography: mat-typography-config(
$display-4: (font-size: 112px, line-height: 112px, font-weight: 300),
$display-3: (font-size: 56px, line-height: 56px, font-weight: 400),
$display-2: (font-size: 45px, line-height: 48px, font-weight: 400),

@ -13,7 +13,7 @@ export interface RootState {
nodeData: GetInfoRoot;
}
const initNodeSettings = { userPersona: 'Operator', flgSidenavOpened: true, flgSidenavPinned: true, menu: 'vertical', menuType: 'regular', fontSize: 'regular-font', themeMode: 'day', themeColor: 'purple', satsToBTC: false, channelBackupPath: '', selCurrencyUnit: 'USD', currencyUnits: ['Sats', 'BTC', 'USD'] };
const initNodeSettings = { userPersona: 'OPERATOR', flgSidenavOpened: true, flgSidenavPinned: true, menu: 'VERTICAL', menuType: 'REGULAR', fontSize: 'MEDIUM', themeMode: 'DAY', themeColor: 'PURPLE', satsToBTC: false, channelBackupPath: '', selCurrencyUnit: 'USD', currencyUnits: ['Sats', 'BTC', 'USD'] };
const initNodeAuthentication = { nodeAuthType: 'CUSTOM', configPath: '', bitcoindConfigPath: '' };
const initRootState: RootState = {

Loading…
Cancel
Save