Compare commits
No commits in common. "1f39c6f8f9c13c2ca1a43d55312dea3eccff0b13" and "04ae91b9b7a2526eea0d1868d214c83a33fa3018" have entirely different histories.
1f39c6f8f9
...
04ae91b9b7
6 changed files with 92 additions and 278 deletions
|
@ -39,8 +39,8 @@
|
||||||
"budgets": [
|
"budgets": [
|
||||||
{
|
{
|
||||||
"type": "initial",
|
"type": "initial",
|
||||||
"maximumWarning": "5mb",
|
"maximumWarning": "500kb",
|
||||||
"maximumError": "10mb"
|
"maximumError": "1mb"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "anyComponentStyle",
|
"type": "anyComponentStyle",
|
||||||
|
|
|
@ -45,15 +45,4 @@
|
||||||
color: dodgerblue;
|
color: dodgerblue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.small {
|
|
||||||
font-size: 12px;
|
|
||||||
background: #dddddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.heading {
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toolbar {
|
|
||||||
padding: 12px;
|
|
||||||
}
|
|
||||||
|
|
|
@ -77,8 +77,6 @@
|
||||||
<mat-tab *ngIf="proVersion"
|
<mat-tab *ngIf="proVersion"
|
||||||
label="Integrations"
|
label="Integrations"
|
||||||
style="align-items: center;">
|
style="align-items: center;">
|
||||||
<mat-tab-group mat-tab-align-tabs="start">
|
|
||||||
<mat-tab label="Xero">
|
|
||||||
<div class="container" style="margin-bottom: 20px;">
|
<div class="container" style="margin-bottom: 20px;">
|
||||||
<mat-dialog-content [formGroup]="accCodForm">
|
<mat-dialog-content [formGroup]="accCodForm">
|
||||||
<div style="height: 10px;
|
<div style="height: 10px;
|
||||||
|
@ -145,6 +143,9 @@
|
||||||
placeholder="9999999999"
|
placeholder="9999999999"
|
||||||
formControlName="xAcc"
|
formControlName="xAcc"
|
||||||
(keyup)="checkStatus($event)">
|
(keyup)="checkStatus($event)">
|
||||||
|
<!--
|
||||||
|
(change)="xeroAccCodChanged($event)">
|
||||||
|
-->
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -169,55 +170,5 @@
|
||||||
margin-top: 10px;">
|
margin-top: 10px;">
|
||||||
</div>
|
</div>
|
||||||
</mat-tab>
|
</mat-tab>
|
||||||
<mat-tab label="WooCommerce">
|
|
||||||
<div *ngIf="wooOwner == ''">
|
|
||||||
<button mat-raised-button color="primary" (click)="generateWooToken()">
|
|
||||||
Generate Token
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<table *ngIf="wooOwner != ''">
|
|
||||||
<tr>
|
|
||||||
<td class="heading">Owner:</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="small">{{wooOwner}}</td>
|
|
||||||
<td class="urlCopyBtn">
|
|
||||||
<a (click)='copyWooOwner()' >
|
|
||||||
<fa-icon [icon]="faCopy"
|
|
||||||
class="copy-button">
|
|
||||||
</fa-icon>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="heading">Token:</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="small">{{wooToken}}</td>
|
|
||||||
<td class="urlCopyBtn">
|
|
||||||
<a (click)='copyWooToken()' >
|
|
||||||
<fa-icon [icon]="faCopy"
|
|
||||||
class="copy-button">
|
|
||||||
</fa-icon>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="heading">URL:</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="small">{{wooUrl}}</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<div class="toolbar" align="center">
|
|
||||||
<button mat-raised-button
|
|
||||||
(click)="close()">
|
|
||||||
Close
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</mat-tab>
|
|
||||||
</mat-tab-group>
|
|
||||||
</mat-tab>
|
|
||||||
</mat-tab-group>
|
</mat-tab-group>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,7 +5,6 @@ import { UntypedFormBuilder, Validators, UntypedFormGroup, FormControl } from '@
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { Owner } from '../owner.model';
|
import { Owner } from '../owner.model';
|
||||||
import { XeroService } from '../xero.service';
|
import { XeroService } from '../xero.service';
|
||||||
import { WoocommerceService } from '../woocommerce.service';
|
|
||||||
|
|
||||||
import { NotifierService } from '../notifier.service';
|
import { NotifierService } from '../notifier.service';
|
||||||
import { faCopy } from '@fortawesome/free-solid-svg-icons';
|
import { faCopy } from '@fortawesome/free-solid-svg-icons';
|
||||||
|
@ -57,13 +56,6 @@ export class SettingsComponent implements OnInit {
|
||||||
xeroLink: string = '';
|
xeroLink: string = '';
|
||||||
localToken: string = '';
|
localToken: string = '';
|
||||||
clientId: string = '';
|
clientId: string = '';
|
||||||
wooOwner: string = '';
|
|
||||||
wooToken: string = '';
|
|
||||||
wooUrl: string = '';
|
|
||||||
wooOwnerUpdate: Observable<string>;
|
|
||||||
wooTokenUpdate: Observable<string>;
|
|
||||||
wooUrlUpdate: Observable<string>;
|
|
||||||
|
|
||||||
clientIdUpdate: Observable<string>;
|
clientIdUpdate: Observable<string>;
|
||||||
accCodeUpdate: Observable<string>;
|
accCodeUpdate: Observable<string>;
|
||||||
linked2Xero : boolean = false;
|
linked2Xero : boolean = false;
|
||||||
|
@ -73,7 +65,6 @@ export class SettingsComponent implements OnInit {
|
||||||
private notifierService : NotifierService,
|
private notifierService : NotifierService,
|
||||||
private fb: UntypedFormBuilder,
|
private fb: UntypedFormBuilder,
|
||||||
public xeroService: XeroService,
|
public xeroService: XeroService,
|
||||||
public wooService: WoocommerceService,
|
|
||||||
private dialogRef: MatDialogRef<SettingsComponent>,
|
private dialogRef: MatDialogRef<SettingsComponent>,
|
||||||
@Inject(MAT_DIALOG_DATA) public data: Owner) {
|
@Inject(MAT_DIALOG_DATA) public data: Owner) {
|
||||||
this.useZats = data.zats;
|
this.useZats = data.zats;
|
||||||
|
@ -111,19 +102,6 @@ export class SettingsComponent implements OnInit {
|
||||||
console.log("xeroAccCod -> [" + this.xeroAccCod + "]");
|
console.log("xeroAccCod -> [" + this.xeroAccCod + "]");
|
||||||
this.accCodForm.get('xAcc')!.setValue(this.xeroAccCod);
|
this.accCodForm.get('xAcc')!.setValue(this.xeroAccCod);
|
||||||
});
|
});
|
||||||
this.wooOwnerUpdate = wooService.ownerUpdate;
|
|
||||||
this.wooTokenUpdate = wooService.tokenUpdate;
|
|
||||||
this.wooUrlUpdate = wooService.siteurlUpdate;
|
|
||||||
wooService.getWooToken(this.owner._id!);
|
|
||||||
this.wooOwnerUpdate.subscribe(owData => {
|
|
||||||
this.wooOwner = owData;
|
|
||||||
});
|
|
||||||
this.wooTokenUpdate.subscribe(tkData => {
|
|
||||||
this.wooToken = tkData;
|
|
||||||
});
|
|
||||||
this.wooUrlUpdate.subscribe(uData => {
|
|
||||||
this.wooUrl = uData;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
@ -150,7 +128,7 @@ export class SettingsComponent implements OnInit {
|
||||||
closeIntegration() {
|
closeIntegration() {
|
||||||
if ( (this.xeroAccCod == '') && (this.linked2Xero) )
|
if ( (this.xeroAccCod == '') && (this.linked2Xero) )
|
||||||
this.notifierService
|
this.notifierService
|
||||||
.showNotification("Xero Payment confirmation disabled!!","Close",'warning');
|
.showNotification("Payment confirmation disabled!!","Close",'warning');
|
||||||
this.dialogRef.close();
|
this.dialogRef.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,29 +179,6 @@ export class SettingsComponent implements OnInit {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
copyWooOwner(){
|
|
||||||
try {
|
|
||||||
navigator.clipboard.writeText(this.wooOwner);
|
|
||||||
this.notifierService.showNotification("Owner ID copied to clipboard", "Close", "success");
|
|
||||||
} catch (err) {
|
|
||||||
this.notifierService.showNotification("Copying not available in your browser", "Close", "error");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
copyWooToken(){
|
|
||||||
try {
|
|
||||||
navigator.clipboard.writeText(this.wooToken);
|
|
||||||
this.notifierService.showNotification("WooCommerce Token copied to clipboard", "Close", "success");
|
|
||||||
} catch (err) {
|
|
||||||
this.notifierService.showNotification("Copying not available in your browser", "Close", "error");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
generateWooToken(){
|
|
||||||
this.wooService.createWooToken(this.owner._id!);
|
|
||||||
this.wooService.getWooToken(this.owner._id!);
|
|
||||||
}
|
|
||||||
|
|
||||||
saveAccCod() {
|
saveAccCod() {
|
||||||
|
|
||||||
this.xeroAccCod = this.accCodForm.value.xAcc;
|
this.xeroAccCod = this.accCodForm.value.xAcc;
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
import { TestBed } from '@angular/core/testing';
|
|
||||||
|
|
||||||
import { WoocommerceService } from './woocommerce.service';
|
|
||||||
|
|
||||||
describe('WoocommerceService', () => {
|
|
||||||
let service: WoocommerceService;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
TestBed.configureTestingModule({});
|
|
||||||
service = TestBed.inject(WoocommerceService);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should be created', () => {
|
|
||||||
expect(service).toBeTruthy();
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,65 +0,0 @@
|
||||||
import { Injectable } from '@angular/core';
|
|
||||||
import { BehaviorSubject, Observable } from 'rxjs';
|
|
||||||
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
|
|
||||||
|
|
||||||
import { ConfigData } from './configdata';
|
|
||||||
|
|
||||||
var Buffer = require('buffer/').Buffer;
|
|
||||||
|
|
||||||
@Injectable({
|
|
||||||
providedIn: 'root'
|
|
||||||
})
|
|
||||||
export class WoocommerceService {
|
|
||||||
beUrl = ConfigData.Be_URL;
|
|
||||||
private reqHeaders: HttpHeaders;
|
|
||||||
private ownerId: string = '';
|
|
||||||
private token: string = '';
|
|
||||||
private siteurl: string = '';
|
|
||||||
private _ownerIdUpdated: BehaviorSubject<string> = new BehaviorSubject(this.ownerId);
|
|
||||||
private _tokenUpdated: BehaviorSubject<string> = new BehaviorSubject(this.token);
|
|
||||||
private _siteurlUpdated: BehaviorSubject<string> = new BehaviorSubject(this.siteurl);
|
|
||||||
public readonly ownerUpdate: Observable<string> = this._ownerIdUpdated.asObservable();
|
|
||||||
public readonly tokenUpdate: Observable<string> = this._tokenUpdated.asObservable();
|
|
||||||
public readonly siteurlUpdate: Observable<string> = this._siteurlUpdated.asObservable();
|
|
||||||
|
|
||||||
constructor(
|
|
||||||
private http: HttpClient
|
|
||||||
) {
|
|
||||||
var auth = 'Basic ' + Buffer.from(ConfigData.UsrPwd).toString('base64');
|
|
||||||
this.reqHeaders = new HttpHeaders().set('Authorization', auth);
|
|
||||||
this._ownerIdUpdated.next(Object.assign({}, this).ownerId);
|
|
||||||
this._tokenUpdated.next(Object.assign({}, this).token);
|
|
||||||
this._siteurlUpdated.next(Object.assign({}, this).siteurl);
|
|
||||||
}
|
|
||||||
|
|
||||||
getWooToken(ownerId: string) {
|
|
||||||
const params = new HttpParams().append('ownerid', ownerId);
|
|
||||||
let obs = this.http.get<{ownerid: string, token: string, siteurl: string}>(this.beUrl + 'api/wootoken', {headers: this.reqHeaders, params: params, observe: 'response'});
|
|
||||||
obs.subscribe(tokenResponse => {
|
|
||||||
if (tokenResponse.status == 200) {
|
|
||||||
this.ownerId = tokenResponse.body!.ownerid;
|
|
||||||
this.token = tokenResponse.body!.token;
|
|
||||||
this.siteurl = tokenResponse.body!.siteurl;
|
|
||||||
this._ownerIdUpdated.next(Object.assign({}, this).ownerId);
|
|
||||||
this._tokenUpdated.next(Object.assign({}, this).token);
|
|
||||||
this._siteurlUpdated.next(Object.assign({}, this).siteurl);
|
|
||||||
} else {
|
|
||||||
console.log('No WooCommerce token found');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return obs;
|
|
||||||
}
|
|
||||||
|
|
||||||
createWooToken(ownerId: string) {
|
|
||||||
const params = new HttpParams().append('ownerid', ownerId);
|
|
||||||
let obs = this.http.post(this.beUrl+'api/wootoken', {}, {headers: this.reqHeaders, params: params, observe: 'response'});
|
|
||||||
obs.subscribe(responseData => {
|
|
||||||
if (responseData.status == 202) {
|
|
||||||
console.log('WooToken created.');
|
|
||||||
} else {
|
|
||||||
console.log('WooToken creation failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue