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 charset = utf-8
indent_style = tab indent_style = space
indent_size = 1 indent_size = 2
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true

@ -1,7 +1,7 @@
## Ride The Lightning (RTL) ## Ride The Lightning (RTL)
![](screenshots/RTL_Home.png) ![](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) [![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 ### Stable Release: v0.5.4
@ -93,19 +93,15 @@ rtlCookiePath=C:\RTL\cookies\auth.cookie
logoutRedirectLink=/login logoutRedirectLink=/login
[Settings] [Settings]
userPersona=Operator userPersona=OPERATOR
flgSidenavOpened=true themeMode=DAY
flgSidenavPinned=true themeColor=PURPLE
menu=vertical channelBackupPath=C:\Users\shaha\backup\node-0
menuType=regular bitcoindConfigPath=C:/Bitcoin/bitcoin.conf
fontSize=regular-font enableLogging=true
themeMode=night
themeColor=blue
satsToBTC=false
lndServerUrl=https://192.168.0.0:8080/v1
bitcoindConfigPath=
enableLogging=false
port=3000 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). 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="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="icon" type="image/png" sizes="16x16" href="assets/images/favicon/favicon-16x16.png">
<link rel="manifest" href="assets/images/favicon/site.webmanifest"> <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> <body>
<rtl-app></rtl-app> <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> </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, configPath: configPath,
}, },
Settings: { Settings: {
userPersona: 'Operator', userPersona: 'OPERATOR',
flgSidenavOpened: true, flgSidenavOpened: true,
flgSidenavPinned: true, flgSidenavPinned: true,
menu: "vertical", menu: "VERTICAL",
menuType: "regular", menuType: "REGULAR",
fontSize: "regular-font", fontSize: "MEDIUM",
themeMode: "day", themeMode: "DAY",
themeColor: "purple", themeColor: "PURPLE",
satsToBTC: false, satsToBTC: false,
channelBackupPath: channelBackupPath, channelBackupPath: channelBackupPath,
enableLogging: "true", 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.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.flgSidenavOpened = (undefined !== jsonConfig.Settings.flgSidenavOpened) ? jsonConfig.Settings.flgSidenavOpened : true;
jsonConfig.Settings.flgSidenavPinned = (undefined !== jsonConfig.Settings.flgSidenavPinned) ? jsonConfig.Settings.flgSidenavPinned : 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.menu = (undefined !== jsonConfig.Settings.menu) ? jsonConfig.Settings.menu : 'VERTICAL';
jsonConfig.Settings.menuType = (undefined !== jsonConfig.Settings.menuType) ? jsonConfig.Settings.menuType : 'regular'; 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.fontSize = (undefined !== jsonConfig.Settings.fontSize) ? jsonConfig.Settings.fontSize : 'MEDIUM';
jsonConfig.Settings.themeMode = (undefined !== jsonConfig.Settings.themeMode) ? jsonConfig.Settings.themeMode : 'day'; jsonConfig.Settings.themeMode = (undefined !== jsonConfig.Settings.themeMode) ? jsonConfig.Settings.themeMode : 'DAY';
jsonConfig.Settings.themeColor = (undefined !== jsonConfig.Settings.themeColor) ? jsonConfig.Settings.themeColor : 'purple'; jsonConfig.Settings.themeColor = (undefined !== jsonConfig.Settings.themeColor) ? jsonConfig.Settings.themeColor : 'PURPLE';
jsonConfig.Settings.satsToBTC = (undefined !== jsonConfig.Settings.satsToBTC) ? jsonConfig.Settings.satsToBTC : false; jsonConfig.Settings.satsToBTC = (undefined !== jsonConfig.Settings.satsToBTC) ? jsonConfig.Settings.satsToBTC : false;
res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: common.selectedNode.index, sso: sso, nodes: [{ res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: common.selectedNode.index, sso: sso, nodes: [{
index: common.nodes[0].index, 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.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.flgSidenavOpened = (undefined !== node.Settings.flgSidenavOpened) ? node.Settings.flgSidenavOpened : true;
node.Settings.flgSidenavPinned = (undefined !== node.Settings.flgSidenavPinned) ? node.Settings.flgSidenavPinned : 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.menu = (undefined !== node.Settings.menu) ? node.Settings.menu : 'VERTICAL';
node.Settings.menuType = (undefined !== node.Settings.menuType) ? node.Settings.menuType : 'regular'; 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.fontSize = (undefined !== node.Settings.fontSize) ? node.Settings.fontSize : 'MEDIUM';
node.Settings.themeMode = (undefined !== node.Settings.themeMode) ? node.Settings.themeMode : 'day'; node.Settings.themeMode = (undefined !== node.Settings.themeMode) ? node.Settings.themeMode : 'DAY';
node.Settings.themeColor = (undefined !== node.Settings.themeColor) ? node.Settings.themeColor : 'purple'; node.Settings.themeColor = (undefined !== node.Settings.themeColor) ? node.Settings.themeColor : 'PURPLE';
node.Settings.satsToBTC = (undefined !== node.Settings.satsToBTC) ? node.Settings.satsToBTC : false; node.Settings.satsToBTC = (undefined !== node.Settings.satsToBTC) ? node.Settings.satsToBTC : false;
nodesArr.push({ nodesArr.push({
index: node.index, index: node.index,
@ -118,9 +118,9 @@ exports.updateUISettings = (req, res, next) => {
node.Settings.currencyUnit = req.body.updatedSettings.currencyUnit; node.Settings.currencyUnit = req.body.updatedSettings.currencyUnit;
node.Settings.flgSidenavOpened = true; // req.body.updatedSettings.flgSidenavOpened; node.Settings.flgSidenavOpened = true; // req.body.updatedSettings.flgSidenavOpened;
node.Settings.flgSidenavPinned = true; // req.body.updatedSettings.flgSidenavPinned; node.Settings.flgSidenavPinned = true; // req.body.updatedSettings.flgSidenavPinned;
node.Settings.menu = 'vertical'; // req.body.updatedSettings.menu; node.Settings.menu = 'VERTICAL'; // req.body.updatedSettings.menu;
node.Settings.menuType = 'regular'; // req.body.updatedSettings.menuType; node.Settings.menuType = 'REGULAR'; // req.body.updatedSettings.menuType;
node.Settings.fontSize = 'regular-font'; // req.body.updatedSettings.fontSize; node.Settings.fontSize = 'MEDIUM'; // req.body.updatedSettings.fontSize;
node.Settings.satsToBTC = false; // req.body.updatedSettings.satsToBTC; node.Settings.satsToBTC = false; // req.body.updatedSettings.satsToBTC;
} }
}); });
@ -146,9 +146,9 @@ exports.updateUISettings = (req, res, next) => {
settingsTemp.currencyUnit = req.body.updatedSettings.currencyUnit; settingsTemp.currencyUnit = req.body.updatedSettings.currencyUnit;
settingsTemp.flgSidenavOpened = true; // req.body.updatedSettings.flgSidenavOpened; settingsTemp.flgSidenavOpened = true; // req.body.updatedSettings.flgSidenavOpened;
settingsTemp.flgSidenavPinned = true; // req.body.updatedSettings.flgSidenavPinned; settingsTemp.flgSidenavPinned = true; // req.body.updatedSettings.flgSidenavPinned;
settingsTemp.menu = 'vertical'; // req.body.updatedSettings.menu; settingsTemp.menu = 'VERTICAL'; // req.body.updatedSettings.menu;
settingsTemp.menuType = 'regular'; // req.body.updatedSettings.menuType; settingsTemp.menuType = 'REGULAR'; // req.body.updatedSettings.menuType;
settingsTemp.fontSize = 'regular-font'; // req.body.updatedSettings.fontSize; settingsTemp.fontSize = 'MEDIUM'; // req.body.updatedSettings.fontSize;
settingsTemp.satsToBTC = false; // req.body.updatedSettings.satsToBTC; settingsTemp.satsToBTC = false; // req.body.updatedSettings.satsToBTC;
delete config.Settings; delete config.Settings;
fs.writeFileSync(RTLConfFile, ini.stringify(config)); fs.writeFileSync(RTLConfFile, ini.stringify(config));

@ -14,23 +14,11 @@ rtlPass=<>
[Settings] [Settings]
;Set by RTL ;Set by RTL
userPersona=Operator userPersona=OPERATOR
;Set by RTL ;Set by RTL
flgSidenavOpened=true themeMode=DAY
;Set by RTL ;Set by RTL
flgSidenavPinned=true themeColor=PURPLE
;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
;Full path of the bitcoin.conf file including the file name ;Full path of the bitcoin.conf file including the file name
bitcoindConfigPath=<> bitcoindConfigPath=<>
;parameter to turn RTL logging off/on. Allowed values - true, false ;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 #### First time setup
* Fetch sources from RTL git repository, by executing the below on the command prompt: * 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: * Change directory to RTL folder:
`$ cd RTL` `$ cd RTL`
@ -75,17 +75,12 @@ Ensure that the follow values are correct per your config:
"configPath": "<Optional - Config file path for c-lightning>" "configPath": "<Optional - Config file path for c-lightning>"
}, },
"Settings": { "Settings": {
"userPersona": "Operator", "userPersona": "OPERATOR",
"flgSidenavOpened": false, "themeMode": "DAY",
"flgSidenavPinned": true, "themeColor": "PURPLE",
"menu": "vertical",
"menuType": "regular",
"fontSize": "regular-font",
"themeMode": "night",
"themeColor": "pink",
"satsToBTC": false,
"bitcoindConfigPath": "", "bitcoindConfigPath": "",
"enableLogging": "true", "enableLogging": true,
"currencyUnit": "USD",
"lnServerUrl": "https://<cl-rest api server ip address>:3001/v1" "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>" "lndConfigPath": "<Optional:Path of the lnd.conf if present locally or empty>"
}, },
"Settings": { "Settings": {
"userPersona": "Operator", "userPersona": "OPERATOR",
"flgSidenavOpened": "true", "themeMode": "DAY",
"flgSidenavPinned": "true", "themeColor": "PURPLE",
"menu": "vertical",
"menuType": "regular",
"themeMode": "night",
"themeColor": "blue",
"fontSize":"regular-font",
"satsToBTC": "false",
"channelBackupPath": "C:\\RTL\\backup\\node-1", "channelBackupPath": "C:\\RTL\\backup\\node-1",
"bitcoindConfigPath": "<Optional: path of bitcoind.conf path if available locally>", "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" "lndServerUrl": "<Service url for LND REST APIs for node # 1 e.g. https://192.168.0.1:8080/v1"
} }
}, },
{ {
"index": 2, "index": 2,
"lnNode": "LND Mainnet", "lnNode": "C Lighting Testnet",
"lnImplementation": "LND", "lnImplementation": "CLT",
"Authentication": { "Authentication": {
"macaroonPath": "<Complete path of the folder containing admin.macaroon for the node # 2>" "macaroonPath": "<Complete path of the folder containing admin.macaroon for the node # 2>"
}, },
"Settings": { "Settings": {
"userPersona": "Merchant", "userPersona": "MERCHANT",
"flgSidenavOpened": "true", "themeMode": "NIGHT",
"flgSidenavPinned": "true", "themeColor": "TEAL",
"menu": "vertical",
"menuType": "regular",
"themeMode": "day",
"themeColor": "teal",
"satsToBTC": "false",
"channelBackupPath": "C:\\RTL\\backup\\node-2", "channelBackupPath": "C:\\RTL\\backup\\node-2",
"bitcoindConfigPath": "", "bitcoindConfigPath": "",
"enableLogging": "true", "enableLogging": true,
"lndServerUrl": "<Service url for LND REST APIs for node # 2 e.g. https://192.168.0.6:8080/v1" "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= rtlPass=
[Settings] [Settings]
userPersona=Operator userPersona=OPERATOR
flgSidenavOpened=true themeMode=DAY
flgSidenavPinned=true themeColor=PURPLE
menu=vertical
menuType=regular
fontSize=regular-font
themeMode=night
themeColor=blue
satsToBTC=false
channelBackupPath=C:\RTL\backup channelBackupPath=C:\RTL\backup
bitcoindConfigPath= bitcoindConfigPath=
enableLogging=true 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]" [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'"> <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'"> <mat-toolbar fxLayout="row" fxLayoutAlign="space-between center" class="padding-gap-x bg-primary rtl-top-toolbar" *ngIf="settings.menu === 'VERTICAL'">
<div> <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> <mat-icon class="mr-5px">menu</mat-icon>
</button> </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"> <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="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" /> <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> </svg>
</button> </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"> <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="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" /> <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> </svg>
</button> </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"> <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="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" /> <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> <rtl-top-menu></rtl-top-menu>
</div> </div>
</mat-toolbar> </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> <rtl-horizontal-navigation fxLayout="row" fxFlex="100" fxLayoutAlign="start center" class="h-100"></rtl-horizontal-navigation>
</mat-toolbar> </mat-toolbar>
<mat-sidenav-container> <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> <rtl-side-navigation (ChildNavClicked)="onNavigationClicked($event)" fxFlex="100"></rtl-side-navigation>
</mat-sidenav> </mat-sidenav>
<mat-sidenav-content perfectScrollbar> <mat-sidenav-content perfectScrollbar>

@ -91,7 +91,7 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
// START: Workaround to add adjust container width initially // START: Workaround to add adjust container width initially
this.sideNavigation.toggle(); this.sideNavigation.toggle();
setTimeout(() => { this.sideNavigation.toggle(); }, 50); 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 this.sideNavigation.toggle(); // To dynamically update the width to 100% after side nav is closed
setTimeout(() => { this.sideNavigation.toggle(); }, 100); setTimeout(() => { this.sideNavigation.toggle(); }, 100);
} }
@ -129,7 +129,7 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
} }
ngAfterViewInit() { 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(); 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; let localBal = 0, remoteBal = 0, activeChannels = 0, inactiveChannels = 0, totalCapacityActive = 0, totalCapacityInactive = 0;
if (action.payload) { if (action.payload) {
action.payload.filter(channel => { action.payload.filter(channel => {
if (undefined !== channel.local_balance) { if (channel.local_balance) {
localBal = +localBal + +channel.local_balance; localBal = +localBal + +channel.local_balance;
} else { } else {
channel.local_balance = 0; channel.local_balance = 0;
} }
if (undefined !== channel.remote_balance) { if (channel.remote_balance) {
remoteBal = +remoteBal + +channel.remote_balance; remoteBal = +remoteBal + +channel.remote_balance;
} else { } else {
channel.remote_balance = 0; channel.remote_balance = 0;

@ -6,13 +6,13 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-divider class="w-100"></mat-divider> <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}}"> <mat-tree-node *matTreeNodeDef="let node" matTreeNodeToggle routerLinkActive="active-link" routerLink="{{node.link}}">
<div (click)="onChildNavClicked(node)"> <div (click)="onChildNavClicked(node)">
<div fxLayout="row" fxFlex="100" fxLayoutAlign="start center"> <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> <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> <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>
</div> </div>
</mat-tree-node> </mat-tree-node>
@ -35,7 +35,7 @@
</mat-nested-tree-node> </mat-nested-tree-node>
</mat-tree> </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" <mat-tree-node fxLayout="row" matTreeNodeToggle fxLayoutAlign="start center" *matTreeNodeDef="let node"
(click)="onChildNavClicked(node)" routerLinkActive="active-link" routerLink="{{node.link}}"> (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> <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-nested-tree-node>
</mat-tree> </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}}"> <mat-tree-node *matTreeNodeDef="let node" matTreeNodeToggle routerLinkActive="active-link" routerLink="{{node.link}}">
<div (click)="onChildNavClicked(node)"> <div (click)="onChildNavClicked(node)">
<div fxLayout="row" fxFlex="100" fxLayoutAlign="start center"> <div fxLayout="row" fxFlex="100" fxLayoutAlign="start center">
@ -88,7 +88,7 @@
</mat-nested-tree-node> </mat-nested-tree-node>
</mat-tree> </mat-tree>
<mat-divider class="w-100"></mat-divider> <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)"> <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> <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> <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-node>
</mat-tree> </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)"> <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> <fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-small mr-1"></fa-icon>
<span>{{node.name}}</span> <span>{{node.name}}</span>
</mat-tree-node> </mat-tree-node>
</mat-tree> </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"> <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> <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-node>
</mat-tree> </mat-tree>
</div> </div>
<div fxLayout="column" fxFlex="10" fxLayoutAlign="end stretch" class="w-100"> <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)"> <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> <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> <span>{{node.name}}</span>
</mat-tree-node> </mat-tree-node>
</mat-tree> </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)"> <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> <fa-icon *ngIf="node.iconType === 'FA'" [icon]="node.icon" class="fa-icon-small mr-1"></fa-icon>
<span>{{node.name}}</span> <span>{{node.name}}</span>
</mat-tree-node> </mat-tree-node>
</mat-tree> </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"> <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> <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-node>

@ -25,7 +25,7 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </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-label>Default Node</mat-label>
<mat-select [(ngModel)]="appConfig.defaultNodeIndex" tabindex="1" name="defaultNode"> <mat-select [(ngModel)]="appConfig.defaultNodeIndex" tabindex="1" name="defaultNode">
<mat-option *ngFor="let node of appConfig.nodes" [value]="node.index"> <mat-option *ngFor="let node of appConfig.nodes" [value]="node.index">
@ -54,7 +54,7 @@
<h4>Themes</h4> <h4>Themes</h4>
<div fxLayout="row" fxFlex="100" fxLayoutAlign="space-between start"> <div fxLayout="row" fxFlex="100" fxLayoutAlign="space-between start">
<span *ngFor="let themeColor of themeColors" fxLayout="row"> <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}} {{themeColor.name}}
</span> </span>
</div> </div>
@ -69,4 +69,5 @@
</div> </div>
</div> </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.selectedThemeColor = this.selNode.settings.themeColor;
this.selectedFontSize = this.fontSizes.find(fontSize => fontSize.class === this.selNode.settings.fontSize); this.selectedFontSize = this.fontSizes.find(fontSize => fontSize.class === this.selNode.settings.fontSize);
if (window.innerWidth <= 768) { if (window.innerWidth <= 768) {
this.selNode.settings.menu = 'vertical'; this.selNode.settings.menu = 'VERTICAL';
this.selNode.settings.flgSidenavOpened = false; this.selNode.settings.flgSidenavOpened = false;
this.selNode.settings.flgSidenavPinned = false; this.selNode.settings.flgSidenavPinned = false;
this.showSettingOption = false; this.showSettingOption = false;
@ -95,7 +95,7 @@ export class AppSettingsComponent implements OnInit, OnDestroy {
if(toggleField === 'menu') { if(toggleField === 'menu') {
this.selNode.settings.flgSidenavOpened = (!event.checked) ? false : true; this.selNode.settings.flgSidenavOpened = (!event.checked) ? false : true;
setTimeout(() => { setTimeout(() => {
this.selNode.settings.menu = (!event.checked) ? 'horizontal' : 'vertical'; this.selNode.settings.menu = (!event.checked) ? 'HORIZONTAL' : 'VERTICAL';
}, 10); }, 10);
} else { } else {
this.selNode.settings[toggleField] = !this.selNode.settings[toggleField]; this.selNode.settings[toggleField] = !this.selNode.settings[toggleField];

@ -51,21 +51,21 @@ export const FEE_RATE_TYPES = [
export const NODE_SETTINGS = { export const NODE_SETTINGS = {
themes: [ themes: [
{id: 'purple', name: 'Diogo'}, {id: 'PURPLE', name: 'Diogo'},
{id: 'teal', name: 'My2Sats'}, {id: 'TEAL', name: 'My2Sats'},
{id: 'indigo', name: 'RTL'}, {id: 'INDIGO', name: 'RTL'},
{id: 'pink', name: 'BK'} {id: 'PINK', name: 'BK'}
], ],
modes: [{id: 'day', name: 'Day'}, {id: 'night', name: 'Night'}], 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'}], 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'}], menuTypes: [{id: 'REGULAR', name: 'Regular'}, {id: 'COMPACT', name: 'Compact'}, {id: 'MINI', name: 'Mini'}],
menus: [{id: 'vertical', name: 'Vertical'}, {id: 'horizontal', name: 'Horizontal'}] menus: [{id: 'VERTICAL', name: 'Vertical'}, {id: 'HORIZONTAL', name: 'Horizontal'}]
}; };
export enum UserPersonaEnum { export enum UserPersonaEnum {
OPERATOR = 'operator', OPERATOR = 'OPERATOR',
MERCHANT = 'merchant', MERCHANT = 'MERCHANT',
ALL = 'all' ALL = 'ALL'
} }
export enum AlertTypeEnum { export enum AlertTypeEnum {

@ -3,7 +3,7 @@
@mixin change-font($typography) { @mixin change-font($typography) {
@include mat-core($typography); @include mat-core($typography);
&.small-font { &.small {
.mat-header-cell { .mat-header-cell {
font-weight: 700; font-weight: 700;
} }
@ -75,12 +75,12 @@
max-width: 3.6rem; max-width: 3.6rem;
} }
} }
&.regular-font { &.medium {
.mat-header-cell { .mat-header-cell {
font-weight: 700; font-weight: 700;
} }
.inner-sidenav-content { .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 { .mat-tree .mat-tree-node, .mat-tree .mat-nested-tree-node-parent {
min-height: $tree-node-height; 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-select-panel .mat-option.mat-selected:not(.mat-option-multiple),
.mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) { .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 { .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 { .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 { .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 { .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 { .top-toolbar-icon .top-toolbar-img, .sidenav-img svg {
width: $regular-font-size * 1.8; width: $medium-font-size * 1.8;
height: $regular-font-size * 1.8; height: $medium-font-size * 1.8;
font-size: $regular-font-size * 1.3; font-size: $medium-font-size * 1.3;
} }
.horizontal-button .sidenav-img svg { .horizontal-button .sidenav-img svg {
width: $regular-font-size * 2.2; width: $medium-font-size * 2.2;
height: $regular-font-size * 2.2; height: $medium-font-size * 2.2;
font-size: 2.5rem; font-size: 2.5rem;
} }
.material-icons { .material-icons {
font-size: $regular-font-size * 2; font-size: $medium-font-size * 2;
} }
.mat-step-header .mat-step-icon .mat-icon { .mat-step-header .mat-step-icon .mat-icon {
font-size: initial; 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 { .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 { .logo {
font-size: $regular-font-size * 2; font-size: $medium-font-size * 2;
} }
.font-60-percent { .font-60-percent {
font-size: $regular-font-size * 0.6; font-size: $medium-font-size * 0.6;
} }
.fa-icon-regular { .fa-icon-regular {
font-size: $regular-font-size * 1.75; font-size: $medium-font-size * 1.75;
} }
.icon-large { .icon-large {
font-size: $regular-font-size * 5; font-size: $medium-font-size * 5;
} }
.icon-small { .icon-small {
font-size: $regular-font-size * 1.5 !important; font-size: $medium-font-size * 1.5 !important;
} }
.icon-smaller { .icon-smaller {
font-size: $regular-font-size * 0.75 !important; font-size: $medium-font-size * 0.75 !important;
} }
.size-triple { .size-triple {
font-size: $regular-font-size * 3; font-size: $medium-font-size * 3;
} }
.mat-icon-36 { .mat-icon-36 {
font-size: $regular-font-size * 2; font-size: $medium-font-size * 2;
} }
.btn-close-x { .btn-close-x {
font-size: $regular-font-size * 1.5; font-size: $medium-font-size * 1.5;
font-weight: 600; font-weight: 600;
min-width: 3.6rem; min-width: 3.6rem;
max-width: 3.6rem; max-width: 3.6rem;
} }
} }
&.large-font { &.large {
.mat-header-cell { .mat-header-cell {
font-weight: 800; font-weight: 800;
} }

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

@ -7,9 +7,9 @@
.rtl-container{ .rtl-container{
&.purple { &.purple {
@import "../skins/purple"; @import "../skins/purple";
&.small-font {@include change-font($small-typography);} &.small {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);} &.medium {@include change-font($medium-typography);}
&.large-font {@include change-font($large-typography);} &.large {@include change-font($large-typography);}
&.day { &.day {
@include angular-material-theme($purple-day-theme); @include angular-material-theme($purple-day-theme);
@include change-theme($purple-day-theme); @include change-theme($purple-day-theme);
@ -21,9 +21,9 @@
} }
&.blue{ &.blue{
@import "../skins/blue"; @import "../skins/blue";
&.small-font {@include change-font($small-typography);} &.small {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);} &.medium {@include change-font($medium-typography);}
&.large-font {@include change-font($large-typography);} &.large {@include change-font($large-typography);}
&.day { &.day {
@include angular-material-theme($blue-day-theme); @include angular-material-theme($blue-day-theme);
@include change-theme($blue-day-theme); @include change-theme($blue-day-theme);
@ -35,9 +35,9 @@
} }
&.indigo{ &.indigo{
@import "../skins/indigo"; @import "../skins/indigo";
&.small-font {@include change-font($small-typography);} &.small {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);} &.medium {@include change-font($medium-typography);}
&.large-font {@include change-font($large-typography);} &.large {@include change-font($large-typography);}
&.day { &.day {
@include angular-material-theme($indigo-day-theme); @include angular-material-theme($indigo-day-theme);
@include change-theme($indigo-day-theme); @include change-theme($indigo-day-theme);
@ -49,9 +49,9 @@
} }
&.green{ &.green{
@import "../skins/green"; @import "../skins/green";
&.small-font {@include change-font($small-typography);} &.small {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);} &.medium {@include change-font($medium-typography);}
&.large-font {@include change-font($large-typography);} &.large {@include change-font($large-typography);}
&.day { &.day {
@include angular-material-theme($green-day-theme); @include angular-material-theme($green-day-theme);
@include change-theme($green-day-theme); @include change-theme($green-day-theme);
@ -63,9 +63,9 @@
} }
&.teal{ &.teal{
@import "../skins/teal"; @import "../skins/teal";
&.small-font {@include change-font($small-typography);} &.small {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);} &.medium {@include change-font($medium-typography);}
&.large-font {@include change-font($large-typography);} &.large {@include change-font($large-typography);}
&.day { &.day {
@include angular-material-theme($teal-day-theme); @include angular-material-theme($teal-day-theme);
@include change-theme($teal-day-theme); @include change-theme($teal-day-theme);
@ -77,9 +77,9 @@
} }
&.pink{ &.pink{
@import "../skins/pink"; @import "../skins/pink";
&.small-font {@include change-font($small-typography);} &.small {@include change-font($small-typography);}
&.regular-font {@include change-font($regular-typography);} &.medium {@include change-font($medium-typography);}
&.large-font {@include change-font($large-typography);} &.large {@include change-font($large-typography);}
&.day { &.day {
@include angular-material-theme($pink-day-theme); @include angular-material-theme($pink-day-theme);
@include change-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) $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-4: (font-size: 112px, line-height: 112px, font-weight: 300),
$display-3: (font-size: 56px, line-height: 56px, font-weight: 400), $display-3: (font-size: 56px, line-height: 56px, font-weight: 400),
$display-2: (font-size: 45px, line-height: 48px, font-weight: 400), $display-2: (font-size: 45px, line-height: 48px, font-weight: 400),

@ -13,7 +13,7 @@ export interface RootState {
nodeData: GetInfoRoot; 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 initNodeAuthentication = { nodeAuthType: 'CUSTOM', configPath: '', bitcoindConfigPath: '' };
const initRootState: RootState = { const initRootState: RootState = {

Loading…
Cancel
Save