From e9eda2d30c317b3f349c8bb6068071b6226297ee Mon Sep 17 00:00:00 2001 From: Rene Vergara A Date: Wed, 7 Sep 2022 22:00:43 -0500 Subject: [PATCH] Update settings component and xeroService --- CHANGELOG.md | 3 ++- src/app/notifier.service.ts | 2 +- src/app/settings/settings.component.ts | 36 ++++++++++++------------- src/app/xero.service.ts | 14 ++++++++-- src/assets/notifier_1.mp3 | Bin 0 -> 20835 bytes 5 files changed, 32 insertions(+), 23 deletions(-) create mode 100644 src/assets/notifier_1.mp3 diff --git a/CHANGELOG.md b/CHANGELOG.md index bc15eaa..7287b72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Added new service for Xero integration ### Changed - +- settings component updated to use observable when saving Account Code +- xeroService's saveAccountCode function optimized to export observable - Field for Xero's AccountCode added to Settings component's integration tab - Listorders component updated to show date in ANSI international format. - Settings component updated to use owner's invoices field to control diff --git a/src/app/notifier.service.ts b/src/app/notifier.service.ts index 4e6b524..e917c6e 100644 --- a/src/app/notifier.service.ts +++ b/src/app/notifier.service.ts @@ -26,7 +26,7 @@ export class NotifierService { playSound() { // console.log('Play sound called...'); let audio = new Audio(); - audio.src = '../assets/notifier.mp3'; + audio.src = '../assets/notifier_1.mp3'; audio.load(); audio.play(); } diff --git a/src/app/settings/settings.component.ts b/src/app/settings/settings.component.ts index 7681150..08bf988 100644 --- a/src/app/settings/settings.component.ts +++ b/src/app/settings/settings.component.ts @@ -60,7 +60,6 @@ export class SettingsComponent implements OnInit { accCodeUpdate: Observable; linked2Xero : boolean = false; pmtServiceURL : string = ''; - saveStat : boolean = false; constructor( private notifierService : NotifierService, @@ -185,29 +184,28 @@ export class SettingsComponent implements OnInit { this.xeroAccCod = this.accCodForm.value.xAcc; console.log(">>> " + this.xeroAccCod); if ( this.xeroAccCod.length <= 10 ) { - this.xeroService - .setXeroAccountCode(this.owner.address, - this.xeroAccCod); + const obs = this.xeroService + .setXeroAccountCode(this.owner.address, + this.xeroAccCod); + obs.subscribe(responseData => { + if (responseData.status == 202) { + console.log('Account saved'); + this.notifierService + .showNotification("Account Code saved!!","Close",'success'); + } else { + console.log('Account not saved -> status[' + responseData.status + ']'); + this.notifierService + .showNotification("Account Code not saved","Close",'error'); + } + + }, error => { + console.log('Error saving Account Code -> ' + error.msg) + }); } else { this.notifierService .showNotification("Invalid Account code (10 chars max.)","Close",'error'); }; - console.log("saveStat -> ",this.saveStat); - } - - checkSave( arg: any ) { - console.log("CheckSave -> " + arg); - this.saveStat = arg; -/* - if ( arg ) { - this.notifierService - .showNotification("Account saved correctly.)","Close",'success'); - } else { - this.notifierService - .showNotification("Account was not saved!!","Close",'error'); - } -*/ } xeroAccCodChanged( arg: any ) { diff --git a/src/app/xero.service.ts b/src/app/xero.service.ts index 465da7e..1edeb0f 100644 --- a/src/app/xero.service.ts +++ b/src/app/xero.service.ts @@ -21,6 +21,12 @@ export class XeroService { tokenType: '' }; xeroAcc: string = ''; + savedAcc : boolean = false; + + public savedAccObs = new Observable((observer) => { + console.log("starting savedAccObs"); + setTimeout(() => {observer.next(this.savedAcc)},1000); + }) private _clientIdUpdated: BehaviorSubject = new BehaviorSubject(this.clientId); //private _clientSecretUpdated: BehaviorSubject = new BehaviorSubject(this.clientSecret); @@ -75,19 +81,23 @@ export class XeroService { } }); return obs; - } setXeroAccountCode(address: string, code: string) { const params = new HttpParams().append('address', address).append('code', code); let obs = this.http.post(this.beUrl + 'api/xeroaccount', {}, {headers: this.reqHeaders, params: params, observe: 'response'}); +/* obs.subscribe(responseData => { if (responseData.status == 202) { console.log('Account saved'); - + this.savedAcc = true; } }, error => { + this.savedAcc = false; + console.log("error : " + error.msg) }); +*/ + return obs; } } diff --git a/src/assets/notifier_1.mp3 b/src/assets/notifier_1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5325142db0a0ce6162705e3005295b3411d1c00d GIT binary patch literal 20835 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