{{ 'CONTEXT_MENU.COPY' | translate }}
{{ 'CONTEXT_MENU.PASTE' | translate }}
diff --git a/src/gui/qt-daemon/html_source/src/app/login/login.component.html b/src/gui/qt-daemon/html_source/src/app/login/login.component.html
index b33949fe..3a1e67ce 100644
--- a/src/gui/qt-daemon/html_source/src/app/login/login.component.html
+++ b/src/gui/qt-daemon/html_source/src/app/login/login.component.html
@@ -35,10 +35,13 @@
-
+
+
+
+
-
+
\ No newline at end of file
diff --git a/src/gui/qt-daemon/html_source/src/app/login/login.component.ts b/src/gui/qt-daemon/html_source/src/app/login/login.component.ts
index 4944fe13..2fc23710 100644
--- a/src/gui/qt-daemon/html_source/src/app/login/login.component.ts
+++ b/src/gui/qt-daemon/html_source/src/app/login/login.component.ts
@@ -26,7 +26,7 @@ export class LoginComponent implements OnInit, OnDestroy {
password: new FormControl('')
});
- type = 'reg';
+ type = 'reg';
constructor(
private route: ActivatedRoute,
@@ -47,10 +47,13 @@ export class LoginComponent implements OnInit, OnDestroy {
onSubmitCreatePass(): void {
if (this.regForm.valid) {
- this.variablesService.appPass = this.regForm.get('password').value;
- this.backend.storeSecureAppData((status, data) => {
+ this.variablesService.appPass = this.regForm.get('password').value //the pass what was written in input of login form by user
+
+ this.backend.setMasterPassword({pass: this.variablesService.appPass}, (status, data) => {
if (status) {
+ this.backend.storeSecureAppData({pass: this.variablesService.appPass});
this.variablesService.appLogin = true;
+ this.variablesService.dataIsLoaded = true;
this.variablesService.startCountdown();
this.ngZone.run(() => {
this.router.navigate(['/']);
@@ -58,7 +61,8 @@ export class LoginComponent implements OnInit, OnDestroy {
} else {
console.log(data['error_code']);
}
- });
+
+ })
}
}
@@ -70,91 +74,115 @@ export class LoginComponent implements OnInit, OnDestroy {
});
}
+ dropSecureAppData(): void{
+ this.backend.dropSecureAppData(() => {
+ this.onSkipCreatePass();
+ });
+ }
+
onSubmitAuthPass(): void {
if (this.authForm.valid) {
- const appPass = this.authForm.get('password').value;
- this.backend.getSecureAppData({pass: appPass}, (status, data) => {
- if (!data.error_code) {
- this.variablesService.appLogin = true;
- this.variablesService.startCountdown();
- this.variablesService.appPass = appPass;
- if (this.variablesService.wallets.length) {
- this.ngZone.run(() => {
- this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);
- });
- return;
- }
- if (Object.keys(data).length !== 0) {
- let openWallets = 0;
- let runWallets = 0;
- data.forEach((wallet, wallet_index) => {
- this.backend.openWallet(wallet.path, wallet.pass, true, (open_status, open_data, open_error) => {
- if (open_status || open_error === 'FILE_RESTORED') {
- openWallets++;
- this.ngZone.run(() => {
- const new_wallet = new Wallet(
- open_data.wallet_id,
- wallet.name,
- wallet.pass,
- open_data['wi'].path,
- open_data['wi'].address,
- open_data['wi'].balance,
- open_data['wi'].unlocked_balance,
- open_data['wi'].mined_total,
- open_data['wi'].tracking_hey
- );
- new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);
- if (wallet.staking) {
- new_wallet.staking = true;
- this.backend.startPosMining(new_wallet.wallet_id);
- } else {
- new_wallet.staking = false;
- }
- if (open_data.recent_history && open_data.recent_history.history) {
- new_wallet.prepareHistory(open_data.recent_history.history);
- }
- this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {
- if (contracts_status && contracts_data.hasOwnProperty('contracts')) {
- this.ngZone.run(() => {
- new_wallet.prepareContractsAfterOpen(contracts_data.contracts, this.variablesService.exp_med_ts, this.variablesService.height_app, this.variablesService.settings.viewedContracts, this.variablesService.settings.notViewedContracts);
- });
- }
- });
- this.variablesService.wallets.push(new_wallet);
- if (this.variablesService.wallets.length === 1) {
- this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);
- }
- });
- this.backend.runWallet(open_data.wallet_id, (run_status) => {
- if (run_status) {
- runWallets++;
- } else {
- if (wallet_index === data.length - 1 && runWallets === 0) {
- this.ngZone.run(() => {
- this.router.navigate(['/']);
- });
- }
- }
- });
- } else {
- if (wallet_index === data.length - 1 && openWallets === 0) {
- this.ngZone.run(() => {
- this.router.navigate(['/']);
- });
- }
- }
+ this.variablesService.appPass = this.authForm.get('password').value;
+
+ if (this.variablesService.dataIsLoaded) {
+ this.backend.checkMasterPassword({pass: this.variablesService.appPass}, (status, data) => {
+ if (status) {
+ this.variablesService.appLogin = true;
+ this.variablesService.startCountdown();
+ this.ngZone.run(() => {
+ this.router.navigate(['/']);
});
- });
- } else {
- this.ngZone.run(() => {
- this.router.navigate(['/']);
- });
- }
- }
- });
+ }
+ })
+ } else {
+ this.getWalletData(this.variablesService.appPass)
+ }
}
}
+ getWalletData(appPass) {
+ this.backend.getSecureAppData({pass: appPass}, (status, data) => {
+ if (!data.error_code) {
+ this.variablesService.appLogin = true;
+ this.variablesService.dataIsLoaded = true;
+ this.variablesService.startCountdown();
+ this.variablesService.appPass = appPass;
+ if (this.variablesService.wallets.length) {
+ this.ngZone.run(() => {
+ this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);
+ });
+ return;
+ }
+ if (Object.keys(data).length !== 0) {
+ let openWallets = 0;
+ let runWallets = 0;
+ data.forEach((wallet, wallet_index) => {
+ this.backend.openWallet(wallet.path, wallet.pass, true, (open_status, open_data, open_error) => {
+ if (open_status || open_error === 'FILE_RESTORED') {
+ openWallets++;
+ this.ngZone.run(() => {
+ const new_wallet = new Wallet(
+ open_data.wallet_id,
+ wallet.name,
+ wallet.pass,
+ open_data['wi'].path,
+ open_data['wi'].address,
+ open_data['wi'].balance,
+ open_data['wi'].unlocked_balance,
+ open_data['wi'].mined_total,
+ open_data['wi'].tracking_hey
+ );
+ new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);
+ if (wallet.staking) {
+ new_wallet.staking = true;
+ this.backend.startPosMining(new_wallet.wallet_id);
+ } else {
+ new_wallet.staking = false;
+ }
+ if (open_data.recent_history && open_data.recent_history.history) {
+ new_wallet.prepareHistory(open_data.recent_history.history);
+ }
+ this.backend.getContracts(open_data.wallet_id, (contracts_status, contracts_data) => {
+ if (contracts_status && contracts_data.hasOwnProperty('contracts')) {
+ this.ngZone.run(() => {
+ new_wallet.prepareContractsAfterOpen(contracts_data.contracts, this.variablesService.exp_med_ts, this.variablesService.height_app, this.variablesService.settings.viewedContracts, this.variablesService.settings.notViewedContracts);
+ });
+ }
+ });
+ this.variablesService.wallets.push(new_wallet);
+ if (this.variablesService.wallets.length === 1) {
+ this.router.navigate(['/wallet/' + this.variablesService.wallets[0].wallet_id]);
+ }
+ });
+ this.backend.runWallet(open_data.wallet_id, (run_status) => {
+ if (run_status) {
+ runWallets++;
+ } else {
+ if (wallet_index === data.length - 1 && runWallets === 0) {
+ this.ngZone.run(() => {
+ this.router.navigate(['/']);
+ });
+ }
+ }
+ });
+ } else {
+ if (wallet_index === data.length - 1 && openWallets === 0) {
+ this.ngZone.run(() => {
+ this.router.navigate(['/']);
+ });
+ }
+ }
+ });
+ });
+ } else {
+ this.ngZone.run(() => {
+ this.router.navigate(['/']);
+ });
+ }
+ }
+ });
+ }
+
ngOnDestroy() {
this.queryRouting.unsubscribe();
diff --git a/src/gui/qt-daemon/html_source/src/app/settings/settings.component.ts b/src/gui/qt-daemon/html_source/src/app/settings/settings.component.ts
index d5a5d579..03220b54 100644
--- a/src/gui/qt-daemon/html_source/src/app/settings/settings.component.ts
+++ b/src/gui/qt-daemon/html_source/src/app/settings/settings.component.ts
@@ -72,6 +72,7 @@ export class SettingsComponent implements OnInit {
];
currentBuild = '';
+ appPass: any;
constructor(
private renderer: Renderer2,
@@ -123,14 +124,24 @@ export class SettingsComponent implements OnInit {
if (this.changeForm.valid) {
this.variablesService.appPass = this.changeForm.get('new_password').value;
if (this.variablesService.appPass) {
- this.backend.storeSecureAppData();
+ this.backend.setMasterPassword({pass: this.variablesService.appPass}, (status, data) => {
+ if (status) {
+ this.backend.storeSecureAppData({pass: this.variablesService.appPass});
+ this.variablesService.appLogin = true;
+ this.variablesService.dataIsLoaded = true;
+ this.variablesService.startCountdown();
+ } else {
+ console.log(data['error_code']);
+ }
+
+ })
} else {
this.backend.dropSecureAppData();
}
this.changeForm.reset();
}
}
-
+
onLockChange() {
if (this.variablesService.appLogin) {
this.variablesService.restartCountdown();
diff --git a/src/gui/qt-daemon/html_source/src/assets/i18n/en.json b/src/gui/qt-daemon/html_source/src/assets/i18n/en.json
index 62fab79d..2bebce57 100644
--- a/src/gui/qt-daemon/html_source/src/assets/i18n/en.json
+++ b/src/gui/qt-daemon/html_source/src/assets/i18n/en.json
@@ -5,6 +5,7 @@
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
+ "BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
diff --git a/src/gui/qt-daemon/html_source/src/assets/scss/base/_base.scss b/src/gui/qt-daemon/html_source/src/assets/scss/base/_base.scss
index d7aebcc7..f0625dbf 100644
--- a/src/gui/qt-daemon/html_source/src/assets/scss/base/_base.scss
+++ b/src/gui/qt-daemon/html_source/src/assets/scss/base/_base.scss
@@ -20,7 +20,8 @@ button {
padding: 0 1rem;
height: 4.2rem;
- &:disabled:not(.transparent-button) {
+ &:disabled:not(.transparent-button),
+ &.blue-button_reset{
@include themify($themes) {
background-color: themed(disabledButtonBackgroundColor);