tools.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import { Component } from '@angular/core';
  2. import { NavController, NavParams, AlertController, LoadingController, ToastController } from 'ionic-angular';
  3. import { LoginPage } from "../login/login";
  4. import { SyncService } from "../../services/sync-service";
  5. import { PouchService } from "../../services/pouch-service";
  6. @Component({
  7. selector: 'page-tools',
  8. templateUrl: 'tools.html'
  9. })
  10. export class ToolsPage {
  11. constructor(
  12. public navCtrl: NavController,
  13. public navParams: NavParams,
  14. public alertCtrl: AlertController,
  15. public loadingCtrl: LoadingController,
  16. public toastCtrl: ToastController,
  17. public sync: SyncService,
  18. public pouch: PouchService
  19. ) { }
  20. /**
  21. *
  22. */
  23. ionViewDidLoad() {
  24. console.log('ionViewDidLoad ToolsPage');
  25. }
  26. /**
  27. *
  28. */
  29. askIfSyncData(): void {
  30. this.alertCtrl.create({
  31. title: "Confirmar",
  32. message: "Desea sincronizar sus datos ahora?",
  33. buttons: [
  34. {
  35. text: "Cancelar"
  36. },
  37. {
  38. text: "Aceptar",
  39. handler: () => {
  40. this.syncData();
  41. }
  42. }
  43. ]
  44. }).present();
  45. }
  46. /**
  47. *
  48. */
  49. syncData(): void {
  50. let loader = this.loadingCtrl.create({
  51. content: "Actualizando datos, espere..."
  52. });
  53. loader.present();
  54. let toast = this.toastCtrl.create({
  55. duration: 3000
  56. });
  57. this.sync.do().subscribe(s => {
  58. toast.setMessage("Datos actualizados correctamente");
  59. }, e => {
  60. console.log(e);
  61. toast.setMessage("No se pudo actualizar los datos");
  62. }, () => {
  63. loader.dismiss();
  64. toast.present();
  65. });
  66. }
  67. /**
  68. *
  69. */
  70. askIfDeleteAccount() {
  71. this.alertCtrl.create({
  72. title: "Confirmar",
  73. message: "Desea eliminar su cuenta?",
  74. buttons: [
  75. {
  76. text: "Cancelar"
  77. },
  78. {
  79. text: "Aceptar",
  80. handler: () => {
  81. this.deleteAccount();
  82. }
  83. }
  84. ]
  85. }).present();
  86. }
  87. /**
  88. *
  89. */
  90. deleteAccount() {
  91. let loader = this.loadingCtrl.create({
  92. content: "Eliminando cuenta, espere..."
  93. });
  94. loader.present();
  95. let toast = this.toastCtrl.create({
  96. duration: 3000
  97. });
  98. this.pouch.destroyAndInitialize().subscribe(s => {
  99. localStorage.clear();
  100. this.navCtrl.setRoot(LoginPage);
  101. }, e => {
  102. toast.setMessage("No se pudo eliminar su cuenta");
  103. }, () => {
  104. loader.dismiss();
  105. toast.present();
  106. });
  107. }
  108. }