81 lines
2.3 KiB
TypeScript
81 lines
2.3 KiB
TypeScript
import { Component, OnInit } from '@angular/core';
|
|
import { TranslateService } from '@ngx-translate/core';
|
|
import { ApiClientService } from 'src/app/_services/api-client.service';
|
|
import { AuthService } from 'src/app/_services/auth.service';
|
|
import { ToastrService } from 'ngx-toastr';
|
|
import Swal from 'sweetalert2';
|
|
|
|
@Component({
|
|
selector: 'app-admin-options',
|
|
templateUrl: './admin-options.component.html',
|
|
styleUrls: ['./admin-options.component.scss']
|
|
})
|
|
export class AdminOptionsComponent implements OnInit {
|
|
options: any[] = [];
|
|
|
|
constructor(
|
|
private translateService: TranslateService,
|
|
private api: ApiClientService,
|
|
public auth: AuthService,
|
|
private toastr: ToastrService
|
|
) { }
|
|
|
|
getOptions() {
|
|
this.api.get('admin/options').then((res: any) => {
|
|
res.forEach((option: any) => {
|
|
switch (option.type) {
|
|
case 'boolean':
|
|
option.value = option.value === '1' || option.value === 'true';
|
|
break;
|
|
case 'number':
|
|
option.value = parseFloat(option.value);
|
|
break;
|
|
case 'string':
|
|
option.value = option.value.toString();
|
|
break;
|
|
}
|
|
//Add properties used in the UI
|
|
option._origValue = option.value;
|
|
option._updating = false;
|
|
});
|
|
this.options = res;
|
|
console.log(this.options);
|
|
}).catch((err: any) => {
|
|
console.error(err);
|
|
Swal.fire({
|
|
title: this.translateService.instant("error_title"),
|
|
text: err.error.message,
|
|
icon: 'error',
|
|
confirmButtonText: 'Ok'
|
|
});
|
|
});
|
|
}
|
|
|
|
ngOnInit() {
|
|
this.getOptions();
|
|
}
|
|
|
|
updateOption(optionId: number) {
|
|
let option = this.options.find(o => o.id === optionId);
|
|
option._updating = true;
|
|
console.log(option);
|
|
this.api.put('admin/options/'+option.id, {
|
|
value: option.value
|
|
}).then((res: any) => {
|
|
console.log(res);
|
|
option._origValue = option.value;
|
|
this.toastr.success(this.translateService.instant("admin.option_update_success"));
|
|
}).catch((err: any) => {
|
|
console.error(err);
|
|
Swal.fire({
|
|
title: this.translateService.instant("error_title"),
|
|
text: err.error.message,
|
|
icon: 'error',
|
|
confirmButtonText: 'Ok'
|
|
});
|
|
}).finally(() => {
|
|
option._updating = false;
|
|
});
|
|
}
|
|
}
|