{"version":3,"sources":["../../src/pages/account/account.module.ts","../../src/pages/add-user/add-user.ts","../../src/models/groupings.ts","../../src/pages/account/account.ts","../../src/components/upgrade-plan/upgrade-plan.ts","../../src/components/upgrade-plan-old/upgrade-plan-old.ts"],"names":[],"mappings":"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","file":"6.3b9697fb56a09a54e17c.chunk.js","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { IonicPageModule } from 'ionic-angular';\r\nimport { AccountPage } from './account';\r\nimport {UpgradePlanComponent} from '../../components/upgrade-plan/upgrade-plan';\r\nimport {UpgradePlanOldComponent} from '../../components/upgrade-plan-old/upgrade-plan-old';\r\n\r\n@NgModule({\r\n declarations: [\r\n AccountPage,\r\n UpgradePlanComponent,\r\n UpgradePlanOldComponent\r\n ],\r\n imports: [\r\n IonicPageModule.forChild(AccountPage),\r\n ],\r\n entryComponents: [\r\n AccountPage\r\n ]\r\n})\r\nexport class AccountPageModule {}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/account/account.module.ts","import { Component } from '@angular/core';\r\nimport { IonicPage, NavController, NavParams, ViewController } from 'ionic-angular';\r\nimport { FormGroup, FormBuilder, Validators, AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\n/**\r\n * Generated class for the AddUserPage page.\r\n *\r\n * See https://ionicframework.com/docs/components/#navigation for more info on\r\n * Ionic pages and navigation.\r\n */\r\n\r\n@IonicPage()\r\n@Component({\r\n selector: 'page-add-user',\r\n templateUrl: 'add-user.html',\r\n})\r\nexport class AddUserPage {\r\n\r\n user: { email: string, usertype_id: string } = {\r\n email: '',\r\n usertype_id: '',\r\n };\r\n\r\n isReadyToSend: boolean;\r\n\r\n public form: FormGroup;\r\n\r\n constructor(public navCtrl: NavController, public navParams: NavParams, public viewCtrl: ViewController\r\n , formBuilder: FormBuilder) {\r\n this.form = formBuilder.group({\r\n email: ['', this.emailOrEmpty],\r\n usertype_id: ['2',this.user.usertype_id]\r\n });\r\n\r\n // Watch the form for changes, and\r\n this.form.valueChanges.subscribe((v) => {\r\n this.isReadyToSend = this.form.valid;\r\n });\r\n }\r\n\r\n ionViewDidLoad() {\r\n }\r\n\r\n cancel() {\r\n this.viewCtrl.dismiss();\r\n }\r\n\r\n done() {\r\n if (!this.form.valid) { return; }\r\n this.viewCtrl.dismiss({ form: this.form.value, dismiss: 'done' });\r\n }\r\n\r\n emailOrEmpty(control: AbstractControl): ValidationErrors | null {\r\n return control.value === ' ' ? null : Validators.email(control);\r\n}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/add-user/add-user.ts","export class Grouping {\r\n id: string;\r\n practice_id: string;\r\n name: string;\r\n description: string;\r\n created: string;\r\n modified: string;\r\n\r\n constructor(name) {\r\n this.name = name;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/models/groupings.ts","import { Component } from '@angular/core';\r\nimport { IonicPage, NavController, App, NavParams, ViewController, ModalController, Modal, LoadingController, AlertController, ToastController } from 'ionic-angular';\r\nimport { Items } from '../../providers/providers';\r\nimport { UserAccount } from '../../models/account';\r\nimport { User } from '../../providers/user';\r\nimport { Practice } from '../../models/practice';\r\nimport { UserData } from '../../models/user';\r\nimport { Client } from '../../models/client';\r\nimport { environment } from '../../environment/environment';\r\n\r\n/**\r\n * Generated class for the AccountPage page.\r\n *\r\n * See http://ionicframework.com/docs/components/#navigation for more info\r\n * on Ionic pages and navigation.\r\n */\r\n\r\n@IonicPage({\r\n name: 'account',\r\n segment: 'account',\r\n})\r\n@Component({\r\n selector: 'page-account',\r\n templateUrl: 'account.html',\r\n})\r\nexport class AccountPage {\r\n\r\n text: string;\r\n isPlanSelected: boolean;\r\n isAccountSelected: boolean;\r\n isFeedbackSelected: boolean;\r\n isHelpSelected: boolean;\r\n isUsersSelected: boolean;\r\n isDataSelected: boolean;\r\n isGroupingSelected: boolean;\r\n isSessionSelected: boolean;\r\n isImportSelected: boolean;\r\n accountData: UserAccount;\r\n practiceDetails: any;\r\n practice: any;\r\n userData: UserData;\r\n practiceData: Practice;\r\n isMasterUser: boolean;\r\n isSupervisor: boolean;\r\n isPractitioner: boolean;\r\n better_access: boolean;\r\n menu_search: string = '';\r\n show_result: boolean = false;\r\n displayList: Client[];\r\n fullList: Client[];\r\n component: string = '';\r\n hasChargebee: boolean;\r\n hasInsightUpgrade: boolean = false;\r\n novoNote: boolean = false;\r\n novoNoteURL: string = '';\r\n imagePath: string = environment.imagePath;\r\n logoutRedirection: string = environment.logoutRedirection;\r\n siteKey: string = environment.recaptchaSiteKey;\r\n webappVersion: string = environment.webappVersion;\r\n\r\n constructor(public navCtrl: NavController, public navParams: NavParams, public viewCtrl: ViewController, public toastCtrl: ToastController,\r\n public items: Items, public modalCtrl: ModalController, public user: User, public loading: LoadingController, public app: App, public alertCtrl: AlertController) {\r\n this.hasChargebee = environment.chargebee\r\n this.items.isAuthenticated().then(isAuthenticated => {\r\n console.log(isAuthenticated)\r\n if (!isAuthenticated) {\r\n var rememberMe = localStorage.getItem('rememberMe');\r\n var promoLastShown = localStorage.getItem('promoLastShown');\r\n localStorage.clear();\r\n localStorage.setItem('rememberMe',rememberMe);\r\n localStorage.setItem('promoLastShown',promoLastShown);\r\n\r\n let toast = this.toastCtrl.create({\r\n message: 'You have been logged out- session expired',\r\n duration: 5000,\r\n position: 'top'\r\n });\r\n toast.present();\r\n \r\n this.navCtrl.setRoot('login');\r\n }\r\n });\r\n \r\n let isAdminestering = this.items.isAdminestering();\r\n\r\n if (isAdminestering) {\r\n this.navCtrl.push('assessment-stop', { isAdminister: true });\r\n }\r\n \r\n this.userData = JSON.parse(localStorage.getItem('userData'));\r\n const isUserDataLoaded = sessionStorage.getItem('isUserDataLoaded');\r\n \r\n this.hasInsightUpgrade = environment.hasInsightUpgrade\r\n this.novoNote = environment.novoNote\r\n\r\n if (this.userData) {\r\n this.novoNoteURL = this.userData.novonote_url\r\n }\r\n\r\n if (!isUserDataLoaded) {\r\n console.log('Reget user data')\r\n this.items.getUserDetails().subscribe(res => {\r\n if (res) {\r\n sessionStorage.setItem('isUserDataLoaded', 'true');\r\n localStorage.setItem('userData', JSON.stringify(res));\r\n this.userData = JSON.parse(localStorage.getItem('userData'));\r\n this.novoNoteURL = this.userData.novonote_url\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n if (this.userData) {\r\n if (this.userData.usertype_id === \"1\") {\r\n this.isMasterUser = true;\r\n this.text = this.hasChargebee ? 'plan' : 'account';\r\n this.isPlanSelected = this.hasChargebee ? true : false;\r\n } else {\r\n this.text = 'account';\r\n this.isAccountSelected = true;\r\n }\r\n if (this.userData.usertype_id === \"2\") {\r\n this.isSupervisor = true;\r\n }\r\n if (this.userData.usertype_id === \"3\") {\r\n this.isPractitioner = true;\r\n }\r\n // disable better access\r\n // this.checkBetterAcces();\r\n }\r\n\r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n this.accountData = res;\r\n localStorage.setItem('accountData', JSON.stringify(res));\r\n \r\n\r\n let packages = ['free', 'free-trial', 'free-limited-use', 'trainee-trial', 'free-limited-use-extended', 'trial-direct', 'cancel-subscription']\r\n\r\n if (packages.indexOf(this.accountData.chargebee_plan_id) !== -1) {\r\n this.component = 'new'\r\n } else {\r\n this.component = 'old'\r\n }\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n ionViewDidLoad () {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 50000, cssClass: 'activity-detail-loading', showBackdrop: true, dismissOnPageChange: true });\r\n loading.present();\r\n\r\n // this.checkVersion();\r\n this.refreshPage('', loading, 0)\r\n }\r\n\r\n logout(){\r\n var rememberMe = localStorage.getItem('rememberMe');\r\n var promoLastShown = localStorage.getItem('promoLastShown');\r\n localStorage.clear();\r\n localStorage.setItem('rememberMe',rememberMe);\r\n localStorage.setItem('promoLastShown',promoLastShown);\r\n setTimeout(() => this.backToWelcome(), 1000);\r\n }\r\n\r\n backToWelcome(){\r\n if (this.logoutRedirection != '') {\r\n window.top.location.href = this.logoutRedirection;\r\n } else {\r\n const root = this.app.getRootNav();\r\n root.popToRoot();\r\n }\r\n }\r\n\r\n \r\n checkVersion() {\r\n // need to set as env variable\r\n let version = '5.5.8';\r\n let doNotReload = localStorage.getItem(\"doNotReload\");\r\n let doNotWarn = localStorage.getItem(\"doNotWarn\");\r\n\r\n this.items.getVersion().subscribe(res => {\r\n let currentVersion = res.result;\r\n\r\n if (currentVersion !== 'off') {\r\n if (currentVersion === version) {\r\n localStorage.removeItem('doNotReload');\r\n localStorage.removeItem('doNotWarn');\r\n } else {\r\n if (doNotReload !== currentVersion) {\r\n localStorage.setItem('doNotReload', currentVersion);\r\n window.location.reload();\r\n } else {\r\n if (doNotWarn !== currentVersion) {\r\n localStorage.setItem('doNotWarn', currentVersion);\r\n const alert = this.alertCtrl.create({\r\n title: 'Outdated Version!',\r\n subTitle: 'You are running older version of Novopsych, please clear cache to get the latest version.',\r\n buttons: ['OK']\r\n });\r\n alert.present();\r\n }\r\n }\r\n }\r\n } \r\n },\r\n err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n checkBetterAcces() { \r\n this.items.checkBetterAccess().subscribe(res => {\r\n this.better_access = res == '1' ? true : false;\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n onCancel() {\r\n this.menu_search = ''\r\n this.onInput()\r\n }\r\n\r\n onInput() {\r\n var menu_search = this.menu_search.trim()\r\n\r\n if (menu_search.length < 3) {\r\n this.displayList = [];\r\n this.show_result = false;\r\n } else { \r\n this.items.getClientSmallList(this.menu_search).subscribe(res => {\r\n if (res) {\r\n this.displayList = res;\r\n this.show_result = true;\r\n return this.displayList;\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n } \r\n }\r\n\r\n selectClient(item) {\r\n this.navCtrl.push('clients', { clientId: item.id, client: item })\r\n\r\n }\r\n\r\n updatePage(res) {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 50000, cssClass: 'activity-detail-loading', showBackdrop: true, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n (window as any).grecaptcha.ready(() => {\r\n (window as any).grecaptcha\r\n .execute(this.siteKey, { action: 'upgrade_insight' })\r\n .then((recaptchatoken: string) => {\r\n console.log('reCAPTCHA token:', recaptchatoken);\r\n let body: any;\r\n if (res.token) {\r\n body = { plan: res.plan, token: res.token, recaptchatoken: recaptchatoken, webappVersion: this.webappVersion }\r\n } else {\r\n body = { plan: res.plan, recaptchatoken: recaptchatoken, webappVersion: this.webappVersion }\r\n }\r\n this.items.planSignup(body, this.userData.id).subscribe(\r\n data => {\r\n this.refreshPage(res.plan, loading, 0)\r\n },\r\n err => {\r\n \r\n const alert = this.alertCtrl.create({\r\n title: 'Payment Issue',\r\n subTitle: 'There was a problem with the payment. Please ensure that your card details are accurate.',\r\n buttons: ['OK']\r\n });\r\n loading.dismissAll();\r\n alert.present();\r\n console.log(err);\r\n },\r\n \r\n );\r\n })\r\n .catch((err: any) => console.error('reCAPTCHA error:', err));\r\n });\r\n\r\n }\r\n\r\n presentToast(msg) {\r\n let toast = this.toastCtrl.create({\r\n message: msg,\r\n duration: 3000,\r\n position: 'top'\r\n });\r\n toast.present();\r\n }\r\n\r\n refreshPage(newplan, loading, retry) {\r\n this.items.getUserDetails().subscribe(res => {\r\n if (res) {\r\n this.userData = res;\r\n console.log(res)\r\n console.log(newplan)\r\n console.log(this.userData.chargebee_plan_id)\r\n\r\n if (newplan !== '') {\r\n if (newplan === this.userData.chargebee_plan_id) {\r\n localStorage.setItem('userData', JSON.stringify(res));\r\n \r\n if (this.userData) {\r\n if (this.userData.usertype_id === \"1\") {\r\n this.isMasterUser = true;\r\n if (this.hasChargebee) {\r\n this.text = 'plan';\r\n this.isPlanSelected = true\r\n } else {\r\n this.text = 'account';\r\n this.isAccountSelected = true;\r\n }\r\n } else {\r\n this.text = 'account';\r\n this.isAccountSelected = true;\r\n }\r\n if (this.userData.usertype_id === \"2\") {\r\n this.isSupervisor = true;\r\n }\r\n if (this.userData.usertype_id === \"3\") {\r\n this.isPractitioner = true;\r\n }\r\n // disable better access\r\n // this.checkBetterAcces();\r\n \r\n let packages = ['free', 'free-trial', 'free-limited-use', 'trainee-trial', 'free-limited-use-extended', 'trial-direct', 'cancel-subscription', 'practitioner-in-training']\r\n \r\n if (packages.indexOf(this.userData.chargebee_plan_id) !== -1) {\r\n this.component = 'new'\r\n } else {\r\n this.component = 'old'\r\n }\r\n console.log('component ' + this.component)\r\n console.log('package ' + this.userData.chargebee_plan_id)\r\n \r\n const alert = this.alertCtrl.create({\r\n title: 'Plan update',\r\n subTitle: 'Your plan was successfully updated!',\r\n buttons: ['OK']\r\n });\r\n loading.dismissAll();\r\n alert.present();\r\n }\r\n \r\n } else {\r\n if (retry === 20) {\r\n const alert = this.alertCtrl.create({\r\n title: 'Plan update',\r\n subTitle: 'The process to confirm successful update took longer than usual. You can check again at later time. If the problem persists, feel free to contact our customer service.',\r\n buttons: ['OK']\r\n });\r\n loading.dismissAll();\r\n alert.present();\r\n } else {\r\n this.refreshPage(newplan, loading, retry + 1)\r\n }\r\n }\r\n } else {\r\n loading.dismissAll()\r\n }\r\n } else {\r\n loading.dismissAll()\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n loading.dismissAll();\r\n });\r\n }\r\n\r\n makeAccountPayment(userAccount) {\r\n // this.items.getAccountDetails().subscribe(res => {\r\n // if (res) {\r\n // this.accountData = res;\r\n // localStorage.setItem('accountData', JSON.stringify(res));\r\n // let modal = this.modalCtrl.create('payment', null, { cssClass: \"my-modal\" });\r\n // modal.onDidDismiss(data => {\r\n // if (data) {\r\n\r\n // if (data) {\r\n // let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n // loading.present();\r\n\r\n // setTimeout(function() {\r\n // loading.dismissAll();\r\n // this.navCtrl.push('account');\r\n // }, 5000);\r\n // }\r\n // }\r\n // })\r\n // modal.present();\r\n // }\r\n // }, err => {\r\n // console.error('ERROR', err);\r\n // });\r\n \r\n let modal = this.modalCtrl.create('payment', null, { cssClass: \"my-modal\" });\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n\r\n if (data) {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n\r\n setTimeout(function() {\r\n loading.dismissAll();\r\n }, 5000);\r\n }\r\n }\r\n })\r\n modal.present();\r\n }\r\n\r\n planSelected(item) {\r\n this.text = item;\r\n this.isPlanSelected = true;\r\n this.isAccountSelected = false;\r\n this.isFeedbackSelected = false;\r\n this.isHelpSelected = false;\r\n this.isUsersSelected = false;\r\n this.isDataSelected = false;\r\n this.isGroupingSelected = false;\r\n this.isSessionSelected = false;\r\n this.isImportSelected = false;\r\n }\r\n\r\n accountSelected(item) {\r\n this.text = item;\r\n this.isAccountSelected = true;\r\n this.isFeedbackSelected = false;\r\n this.isHelpSelected = false;\r\n this.isPlanSelected = false;\r\n this.isUsersSelected = false;\r\n this.isDataSelected = false;\r\n this.isGroupingSelected = false;\r\n this.isSessionSelected = false;\r\n this.isImportSelected = false;\r\n }\r\n\r\n feedbackSelected(item) {\r\n this.text = item;\r\n this.isFeedbackSelected = true;\r\n this.isPlanSelected = false;\r\n this.isHelpSelected = false;\r\n this.isAccountSelected = false;\r\n this.isUsersSelected = false;\r\n this.isDataSelected = false;\r\n this.isGroupingSelected = false;\r\n this.isSessionSelected = false;\r\n this.isImportSelected = false;\r\n }\r\n\r\n helpSelected(item) {\r\n this.text = item;\r\n this.isHelpSelected = true;\r\n this.isFeedbackSelected = false;\r\n this.isPlanSelected = false;\r\n this.isAccountSelected = false;\r\n this.isUsersSelected = false;\r\n this.isDataSelected = false;\r\n this.isGroupingSelected = false;\r\n this.isSessionSelected = false;\r\n this.isImportSelected = false;\r\n }\r\n usersSelected(item) {\r\n this.user.getPractices().subscribe(res => {\r\n if (res) {\r\n this.practice = res;\r\n this.text = item;\r\n this.isUsersSelected = true;\r\n this.isHelpSelected = false;\r\n this.isFeedbackSelected = false;\r\n this.isPlanSelected = false;\r\n this.isAccountSelected = false;\r\n this.isDataSelected = false;\r\n this.isGroupingSelected = false;\r\n this.isSessionSelected = false;\r\n this.isImportSelected = false;\r\n localStorage.setItem('practiceData', JSON.stringify(res));\r\n \r\n\r\n }\r\n },\r\n err => {\r\n // Log errors if any\r\n console.log(err);\r\n });\r\n }\r\n\r\n dataSelected(item) {\r\n this.text = item;\r\n this.isHelpSelected = false;\r\n this.isFeedbackSelected = false;\r\n this.isPlanSelected = false;\r\n this.isAccountSelected = false;\r\n this.isUsersSelected = false;\r\n this.isDataSelected = true;\r\n this.isGroupingSelected = false;\r\n this.isSessionSelected = false;\r\n this.isImportSelected = false;\r\n }\r\n\r\n groupingSelected(item) {\r\n this.text = item;\r\n this.isHelpSelected = false;\r\n this.isFeedbackSelected = false;\r\n this.isPlanSelected = false;\r\n this.isAccountSelected = false;\r\n this.isUsersSelected = false;\r\n this.isDataSelected = false;\r\n this.isGroupingSelected = true;\r\n this.isSessionSelected = false;\r\n this.isImportSelected = false;\r\n }\r\n\r\n sessionSelected(item) {\r\n this.text = item;\r\n this.isHelpSelected = false;\r\n this.isFeedbackSelected = false;\r\n this.isPlanSelected = false;\r\n this.isAccountSelected = false;\r\n this.isUsersSelected = false;\r\n this.isDataSelected = false;\r\n this.isGroupingSelected = false;\r\n this.isSessionSelected = true;\r\n this.isImportSelected = false;\r\n }\r\n\r\n importSelected(item) {\r\n this.text = item;\r\n this.isHelpSelected = false;\r\n this.isFeedbackSelected = false;\r\n this.isPlanSelected = false;\r\n this.isAccountSelected = false;\r\n this.isUsersSelected = false;\r\n this.isDataSelected = false;\r\n this.isGroupingSelected = false;\r\n this.isSessionSelected = false;\r\n this.isImportSelected = true;\r\n }\r\n\r\n /* same as makeAccountPaymentMethod because of the event emitter\r\n */\r\n usersTabSelected(practice) {\r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n this.accountData = res;\r\n localStorage.setItem('accountData', JSON.stringify(res));\r\n let modal = this.modalCtrl.create('payment', null, { cssClass: \"my-modal\" });\r\n modal.present();\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n goToClientsPage() {\r\n this.navCtrl.push('clients');\r\n }\r\n\r\n goToHomePage() {\r\n this.navCtrl.push('home');\r\n }\r\n\r\n goToAssessmentsPage() {\r\n this.navCtrl.push('assessments');\r\n }\r\n\r\n goToInsightPage() {\r\n this.navCtrl.push('insights');\r\n }\r\n\r\n goToAccountsPage() {\r\n this.navCtrl.push('account');\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/account/account.ts","import { Component, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { UserData } from '../../models/user';\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { Items } from '../../providers/providers';\r\nimport { User } from '../../providers/user';\r\nimport { UserAccount } from '../../models/account';\r\n//import {Paypal} from '../../providers/paypal'\r\nimport { NavController, ToastController, AlertController, ModalController, LoadingController, App, Platform } from 'ionic-angular';\r\nimport { PasswordChangePage } from '../../pages/password-change/password-change';\r\nimport { AddUserPage } from '../../pages/add-user/add-user';\r\nimport { Practice } from '../../models/practice';\r\nimport { Template } from '../../models/template';\r\nimport { Grouping } from '../../models/groupings';\r\nimport { environment } from '../../environment/environment';\r\nimport { Country } from '../../models/country';\r\nimport { Countries } from '../../providers/providers';\r\n/**\r\n * Generated class for the UpgradePlanComponent component.\r\n *\r\n * See https://angular.io/docs/ts/latest/api/core/index/ComponentMetadata-class.html\r\n * for more info on Angular Components.\r\n */\r\ndeclare var Stripe: any;\r\n\r\n@Component({\r\n selector: 'upgrade-plan',\r\n templateUrl: 'upgrade-plan.html'\r\n})\r\nexport class UpgradePlanComponent {\r\n\r\n @Input() text: string;\r\n @Input() practice: any;\r\n // @Input() accountData: UserAccount;\r\n @Output() makeAccountPayment: EventEmitter = new EventEmitter();\r\n @Output() updatePage: EventEmitter = new EventEmitter();\r\n @Output() usersTabSelected: EventEmitter = new EventEmitter();//usersTabSelected method is mapped in account.ts and will be called if something changes here\r\n userData: UserData;\r\n isReadyToSave: boolean;\r\n isReadyToSend: boolean;\r\n isMasterUser: boolean;\r\n isReadyToUpdate: boolean;\r\n isReadyToUpdateRef: boolean;\r\n accountData: UserAccount;\r\n emailTemplates: Template[]// = new Array(5)\r\n filteredEmailTemplates: Template[]// = new Array(5)\r\n // emailTemplates: Template\r\n userRole: any[];\r\n plan: string;\r\n maxClients: string;\r\n maxAssessments: string;\r\n clientCount: number;\r\n monthlyAssessments: string;\r\n users: any[];\r\n filteredUsers: any[];\r\n groupings: any[];\r\n selectedGroup: Grouping;\r\n showClient: boolean;\r\n groupClients: any[];\r\n betterAccessClients: any[];\r\n toggleVisitHide: any[];\r\n selectedSession: any;\r\n showSession: boolean;\r\n clientSessions: any[];\r\n userType: string;\r\n practiceName: string;\r\n assessment_redirect_link: string;\r\n practiceId: string;\r\n practiceData: Practice;\r\n radioSelected: any;\r\n page_search: string = '';\r\n privacy_1: boolean;\r\n privacy_2: boolean;\r\n privacy_3: boolean;\r\n updatingPrivacy: boolean;\r\n showDownload: boolean;\r\n showUserGroup: boolean = false;\r\n download_from: string;\r\n download_to: string;\r\n updatingToPref: boolean;\r\n two_factor: boolean = false;\r\n updatingTwoFactor: boolean = false;\r\n updatingToPref5: boolean = false;\r\n allow_view_unassigned: boolean;\r\n stripe = Stripe(environment.stripeKey);\r\n // stripe = Stripe(\"pk_live_7CMAfpsDQwbZZ7QqAxWxHB41\");\r\n card: any;\r\n changingPlan: boolean = false;\r\n selectedPlan: string = '';\r\n selectedPlanDesc: string = '';\r\n selectedPlanPrice: number = 0;\r\n selectedPlanDuration: string = '';\r\n transactions: any[];\r\n cards: any;\r\n check_url_valid: boolean = true;\r\n countries: Country[];\r\n enum_details = [\r\n { name: 'Supervisor', id: '2' },\r\n { name: 'Practitioner', id: '3' },\r\n ];\r\n sendingFeedback: boolean = false;\r\n selectedFile: File | null = null;\r\n validatedData: any[] = [];\r\n validateError: number = 0;\r\n validateSuccess: number = 0;\r\n importError: number = 0;\r\n importSuccess: number = 0;\r\n csvContent: any;\r\n\r\n public form: FormGroup\r\n public form1: FormGroup\r\n public form2: FormGroup\r\n public form3: FormGroup\r\n public form4: FormGroup\r\n public form5: FormGroup\r\n\r\n constructor(public countryProvider: Countries, public formBuilder: FormBuilder, public items: Items, public alertCtrl: AlertController, public toastCtrl: ToastController, public user: User,\r\n public navCtrl: NavController, public modalCtrl: ModalController, public loading: LoadingController,\r\n public app: App, public platform: Platform) {\r\n this.userData = JSON.parse(localStorage.getItem('userData'));\r\n\r\n this.countries = this.countryProvider.query();\r\n if (this.userData) {\r\n if (this.userData.usertype_id === \"1\") {\r\n this.isMasterUser = true;\r\n }\r\n this.showClient = false;\r\n this.showSession = false;\r\n this.showDownload = false;\r\n this.updatingPrivacy = false;\r\n this.userType = \"2\";\r\n this.download_to = new Date(new Date().setDate(new Date().getDate() + 1)).toISOString().slice(0, 10);\r\n this.download_from = new Date(new Date().setFullYear(new Date().getFullYear() - 1)).toISOString().slice(0, 10);\r\n this.practiceData = JSON.parse(localStorage.getItem('practiceData'));\r\n if (this.practiceData) {\r\n this.privacy_1 = this.practiceData.privacy_1 == '1' ? true : false;\r\n this.privacy_2 = this.practiceData.privacy_2 == '1' ? true : false;\r\n this.privacy_3 = this.practiceData.privacy_3 == '1' ? true : false;\r\n this.allow_view_unassigned = this.practiceData.allow_view_unassigned == '1' ? true : false;\r\n this.practiceName = this.practiceData.name;\r\n this.assessment_redirect_link = this.practiceData.assessment_redirect_link;\r\n var userId = this.userData.id;\r\n console.log('user' + userId);\r\n //this.users = this.practiceData.users.filter(function (el) { return el.usertype_id != '1' && el.id != userId; });\r\n }\r\n this.refreshRole();\r\n \r\n this.getGroupings();\r\n // this.getBetterAccessClients();\r\n this.getUsers();\r\n \r\n \r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n this.accountData = res;\r\n localStorage.setItem('accountData', JSON.stringify(res));\r\n this.plan = this.accountData.chargebee_plan;\r\n this.maxClients = this.accountData.max_clients;\r\n this.maxAssessments = this.accountData.max_assessments;\r\n this.clientCount = this.accountData.client_count;\r\n this.monthlyAssessments = this.accountData.monthly_administered_assessments;\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n this.items.getEmailTemplates().subscribe(res => {\r\n if (res) {\r\n this.emailTemplates = res;\r\n this.filteredEmailTemplates = this.emailTemplates.filter(function (e) {\r\n return e.title != \"\";\r\n });\r\n // this.emailTemplates[0] = {title: \"Email Template 1\", subject: \"Novopsych\", body: 'Dear FIRST NAME, '\r\n // + 'This is an automated email setup by CLINICIAN TITLE FIRST NAME LAST NAME who would like you to fill in a questionnaire to check in with you.'\r\n // + 'Please click the link below and follow the prompts to fill in the assessment. The results will be available to clinician once you have submitted the assessment.Thank you.', default: true}\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n let EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;\r\n this.form = this.formBuilder.group({\r\n first_name: [this.userData.first_name, Validators.required],\r\n last_name: [this.userData.last_name, Validators.required],\r\n email: [this.userData.email, Validators.compose([Validators.required, Validators.pattern(EMAIL_REGEXP)])],\r\n title_id: [this.userData.title_id, Validators.required],\r\n profession_id: [this.userData.profession_id, Validators.required],\r\n country_id: [this.userData.country_id, Validators.required]\r\n });\r\n\r\n this.two_factor =(this.userData.two_auth == '1' ? true : false)\r\n \r\n // Watch the form for changes, and\r\n this.form.valueChanges.map((val) => {\r\n // remove the trailing spaces from first name and last name\r\n val.first_name = val.first_name.trim();\r\n val.last_name = val.last_name.trim();\r\n return val;\r\n })\r\n .subscribe((val) => {\r\n this.isReadyToSave = this.form.valid;\r\n });\r\n \r\n //Form2 to send feedback\r\n this.form1 = this.formBuilder.group({\r\n body: [, Validators.required],\r\n feedback_type_id: ['1',]\r\n });\r\n \r\n this.form1.valueChanges.subscribe((v) => {\r\n this.isReadyToSend = this.form1.valid;\r\n });\r\n \r\n //Form2 to send feedback\r\n if (this.isMasterUser) {\r\n this.form2 = this.formBuilder.group({\r\n send_to_administer: [this.userData.send_to_administer == 1 ? true : false],\r\n send_to_practitioner: [this.userData.send_to_practitioner == 1 ? true : false],\r\n response_pdf: [this.userData.response_pdf],\r\n forward_email: [this.userData.forward_email, Validators.compose([Validators.pattern(EMAIL_REGEXP)])],\r\n reply_to: [this.practiceData ? this.practiceData.reply_to : \"\"],\r\n reply_to_email: [(this.practiceData ? this.practiceData.reply_to_email : \"\"), Validators.compose([Validators.pattern(EMAIL_REGEXP)])]\r\n });\r\n } else {\r\n this.form2 = this.formBuilder.group({\r\n send_to_administer: [this.userData.send_to_administer == 1 ? true : false],\r\n send_to_practitioner: [this.userData.send_to_practitioner == 1 ? true : false],\r\n response_pdf: [this.userData.response_pdf],\r\n forward_email: [this.userData.forward_email, Validators.compose([Validators.pattern(EMAIL_REGEXP)])]\r\n });\r\n }\r\n \r\n this.form2.valueChanges.subscribe((v) => {\r\n if (!this.form2.valid) {\r\n this.isReadyToUpdateRef = false;\r\n } else {\r\n if (this.isMasterUser) {\r\n if (this.form2.controls.reply_to.value == \"2\" && (this.form2.controls.reply_to_email.value === \"\" || this.form2.controls.reply_to_email.value === null)) {\r\n this.isReadyToUpdateRef = false;\r\n } else {\r\n this.isReadyToUpdateRef = true;\r\n }\r\n } else {\r\n this.isReadyToUpdateRef = true;\r\n }\r\n }\r\n });\r\n \r\n //form3 to modify userType\r\n this.form3 = this.formBuilder.group({\r\n usertype_id: ['2']\r\n });\r\n \r\n this.form4 = this.formBuilder.group({\r\n name: [this.practiceName, Validators.required]\r\n });\r\n this.form4.valueChanges.subscribe((v) => {\r\n this.isReadyToUpdate = this.form4.valid;\r\n });\r\n \r\n this.form5 = this.formBuilder.group({\r\n assessment_redirect_link: [this.assessment_redirect_link]\r\n });\r\n }\r\n\r\n this.items.getPaymentDetails().subscribe(res => {\r\n console.log(res)\r\n if (res) {\r\n this.transactions = res.transaction;\r\n this.cards = res.card;\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n ionViewWillEnter(){\r\n //this.setupStripe();\r\n }\r\n\r\n public trackById (index, user) {\r\n return user.id;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n for (let propName in changes) {\r\n if (propName === 'practice') {\r\n let practice = changes['practice'].currentValue;\r\n if (typeof practice === 'undefined') {\r\n //do nothing\r\n } else {\r\n var userId = this.userData.id;\r\n console.log('user' + userId);\r\n //this.users = this.practice.users.filter(function (el) { return el.usertype_id != '1' && el.id != userId; });\r\n console.log('watcher');\r\n //console.log(this.users);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n updatePlan(item, token = false) {\r\n let data: any;\r\n if (token) {\r\n data = { plan: item, token: token }\r\n } else {\r\n data = { plan: item }\r\n }\r\n this.updatePage.emit(data);\r\n }\r\n\r\n // updatePlan(item, token = false) {\r\n // let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 50000, cssClass: 'activity-detail-loading', showBackdrop: true, dismissOnPageChange: true });\r\n // loading.present();\r\n // let body: any;\r\n // if (token) {\r\n // body = { plan: item, token: token }\r\n // } else {\r\n // body = { plan: item }\r\n // }\r\n // this.items.planSignup(body, this.userData.id).subscribe(\r\n // data => {\r\n // loading.dismissAll();\r\n // this.updatePage.emit(this.selectedPlan);\r\n // },\r\n // err => {\r\n // loading.dismissAll();\r\n // this.presentToast(\"There was a problem with the payment\");\r\n // console.log(err);\r\n // },\r\n\r\n // );\r\n // }\r\n\r\n cancelPlan() {\r\n let prompt = this.alertCtrl.create({\r\n // title: 'Enter Password',\r\n message: \"Are you sure you want to cancel your plan?\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n this.updatePlan('cancel-subscription');\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n \r\n \r\n\r\n showTransction() {\r\n console.log(this.transactions)\r\n let modal = this.modalCtrl.create('TransactionListPage', { transactions: this.transactions });\r\n modal.present();\r\n }\r\n\r\n changePlan() {\r\n this.changingPlan = true\r\n }\r\n\r\n selectPlan(plan, planDesc, planPrice, planDuration) {\r\n this.selectedPlan = plan\r\n this.selectedPlanDesc = planDesc\r\n this.selectedPlanPrice = planPrice\r\n this.selectedPlanDuration = planDuration\r\n let cards = null\r\n\r\n if (this.cards) {\r\n var curr = new Date();\r\n var card_expiry = new Date(this.cards.expiry_year.toString() + '/' + this.cards.expiry_month.toString() + '/01');\r\n\r\n if (card_expiry >= curr) {\r\n cards = this.cards\r\n }\r\n }\r\n \r\n this.addPayment(cards)\r\n }\r\n\r\n // selectPlan(plan, planDesc, planPrice) {\r\n // this.selectedPlan = plan\r\n // this.selectedPlanDesc = planDesc\r\n // this.selectedPlanPrice = planPrice\r\n\r\n // if (this.cards) {\r\n // var curr = new Date();\r\n // var card_expiry = new Date(this.cards.expiry_year.toString() + '/' + this.cards.expiry_month.toString() + '/01');\r\n\r\n // if (card_expiry < curr) {\r\n // this.addPayment()\r\n // } else {\r\n // let modal = this.modalCtrl.create('SelectMethodPage', { card: this.cards });\r\n // modal.onDidDismiss(data => {\r\n // if (data) {\r\n // if (data.action == 'change') {\r\n // this.addPayment()\r\n // } else {\r\n // this.updatePlan(plan);\r\n // }\r\n // }\r\n // })\r\n // modal.present();\r\n // }\r\n // } else {\r\n // this.addPayment()\r\n // }\r\n // }\r\n\r\n deactivateAccount() {\r\n let modal = this.modalCtrl.create('DeactivateAccountPage', null, {cssClass : 'deactivateModal'});\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n if (data.result == 'deactivate') {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 70000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n this.items.deactivateAccount().subscribe(res => {\r\n if(res){\r\n loading.dismissAll();\r\n const prompt = this.alertCtrl.create({\r\n message: \"Your account was successfully deactivated, you will redirected\",\r\n buttons: [\r\n {\r\n text: 'Ok',\r\n handler: data => {\r\n this.logout('website');\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n\r\n setTimeout(() => {\r\n this.logout('website');\r\n }, 5000);\r\n }\r\n },\r\n err => {\r\n // Log errors if any\r\n console.log(err);\r\n loading.dismissAll();\r\n });\r\n \r\n console.log('deactivate');\r\n\r\n } else if (data.result == 'unsubscribe') {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 70000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n this.items.unsubscribeAccount().subscribe(res => {\r\n if(res){\r\n loading.dismissAll();\r\n const prompt = this.alertCtrl.create({\r\n title: \"Your subscription has been cancelled\",\r\n message: \"You can still login and access data but withlimited functionality\",\r\n buttons: [\r\n {\r\n text: 'Ok',\r\n handler: data => {\r\n this.logout();\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n setTimeout(() => {\r\n this.logout();\r\n }, 5000);\r\n }\r\n },\r\n err => {\r\n // Log errors if any\r\n console.log(err);\r\n loading.dismissAll();\r\n });;\r\n console.log('unsubscribe');\r\n }\r\n }\r\n })\r\n modal.present();\r\n }\r\n\r\n logout(url = ''){\r\n var rememberMe = localStorage.getItem('rememberMe');\r\n var promoLastShown = localStorage.getItem('promoLastShown');\r\n localStorage.clear();\r\n localStorage.setItem('rememberMe',rememberMe);\r\n localStorage.setItem('promoLastShown',promoLastShown);\r\n setTimeout(() => this.backToWelcome(url), 1000);\r\n }\r\n\r\n backToWelcome(url = ''){\r\n if (url == '') {\r\n const root = this.app.getRootNav();\r\n root.popToRoot();\r\n } else {\r\n window.top.location.href = environment.websiteUrl;\r\n }\r\n }\r\n\r\n addPayment(card) {\r\n let modal = this.modalCtrl.create('PaymentMethodPage', { card: card, plan: this.selectedPlan, planDesc: this.selectedPlanDesc, planPrice: this.selectedPlanPrice, planDuration: this.selectedPlanDuration });\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n if (data.token) {\r\n this.updatePlan(this.selectedPlan, data.token)\r\n } else {\r\n this.updatePlan(this.selectedPlan)\r\n }\r\n }\r\n })\r\n modal.present();\r\n }\r\n\r\n refreshRole() {\r\n this.userRole = new Array();\r\n if (this.users) {\r\n for (let i = 0; i < this.users.length; i++) {\r\n console.log(this.users[i].usertype_id);\r\n this.userRole.push(parseInt(this.users[i].usertype_id));\r\n }\r\n }\r\n }\r\n\r\n getPractice() {\r\n this.user.getPractices().subscribe(res => {\r\n if(res){\r\n localStorage.setItem('practiceData', JSON.stringify(res));\r\n }\r\n },\r\n err => {\r\n // Log errors if any\r\n console.log(err);\r\n });\r\n }\r\n\r\n togglePrivacy() {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.updatingPrivacy = true;\r\n var privacy = {\r\n 'privacy_1': this.privacy_1,\r\n 'privacy_2': this.privacy_2,\r\n 'privacy_3': this.privacy_3,\r\n };\r\n let seq = this.items.updatePracticePrivacy(privacy, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n loading.dismissAll();\r\n this.presentToast(\"Privacy information successfully saved\");\r\n this.getPractice()\r\n this.updatingPrivacy = false;\r\n }, err => {\r\n loading.dismissAll();\r\n this.presentToast(\"Fail to update privacy settings\");\r\n this.updatingPrivacy = false;\r\n });\r\n }\r\n\r\n toggleAllowUnassigned() {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.updatingToPref5 = true;\r\n var privacy = {\r\n 'allow_view_unassigned': this.allow_view_unassigned\r\n };\r\n let seq = this.items.updatePracticePrivacy(privacy, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n loading.dismissAll();\r\n this.presentToast(\"Practice setting successfully saved\");\r\n this.updatingToPref5 = false;\r\n }, err => {\r\n loading.dismissAll();\r\n this.presentToast(\"Fail to update practice settings\");\r\n this.updatingToPref5 = false;\r\n });\r\n }\r\n\r\n toggleShowDownload() {\r\n this.showDownload = !this.showDownload;\r\n }\r\n\r\n selectGroup(group, clients) {\r\n this.selectedGroup = group;\r\n this.groupClients = clients;\r\n this.showClient = true;\r\n }\r\n\r\n deselectGroup(group) {\r\n this.showClient = false;\r\n }\r\n\r\n getUsers() {\r\n this.items.getUsers().subscribe(res => {\r\n console.log(res);\r\n console.log('test');\r\n if (res) {\r\n this.users = res;\r\n this.filteredUsers = this.users;\r\n }\r\n },\r\n err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n filterUsers() {\r\n if (this.page_search && this.page_search.trim() !== '') {\r\n this.filteredUsers = this.users.filter((user) => \r\n user.name.toLowerCase().includes(this.page_search.toLowerCase()) || user.email.toLowerCase().includes(this.page_search.toLowerCase())\r\n );\r\n } else {\r\n this.filteredUsers = this.users;\r\n }\r\n }\r\n\r\n updateGrouping(id, value) {\r\n var data = {\r\n 'user_id': id,\r\n 'groups': value\r\n };\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.items.assignGrouping(data).subscribe((resp) => {\r\n if (resp) {\r\n loading.dismissAll();\r\n this.presentToast(\"Selected user's group setting updated\");\r\n }\r\n }, (err) => {\r\n loading.dismissAll();\r\n this.presentToast(\"Fail to update selected user's group setting\");\r\n })\r\n }\r\n\r\n getGroupings() {\r\n this.items.getGroupings().subscribe(res => {\r\n if (res) {\r\n this.groupings = res;\r\n\r\n if (this.groupings.length > 0) {\r\n this.showUserGroup = true;\r\n } else {\r\n this.showUserGroup = false;\r\n }\r\n }\r\n },\r\n err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n addGrouping() {\r\n let prompt = this.alertCtrl.create({\r\n title: 'Client Group',\r\n message: \"Create new client group\",\r\n inputs: [\r\n {\r\n name: 'groupName',\r\n placeholder: 'Enter group name'\r\n }\r\n ],\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n\r\n }\r\n },\r\n {\r\n text: 'OK',\r\n handler: data => {\r\n if (data.groupName.trim == '') {\r\n this.presentToast(\"Please insert the new client group name\")\r\n } else {\r\n let grouping = new Grouping(data.groupName);\r\n this.items.addGrouping(grouping).subscribe((resp) => {\r\n this.presentToast(\"Group successfully created\");\r\n this.getGroupings();\r\n }, (err) => {\r\n this.presentToast(\"Error creating group\");\r\n })\r\n }\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n editGrouping(group) {\r\n let prompt = this.alertCtrl.create({\r\n title: 'Client Group',\r\n message: \"Edit client group\",\r\n inputs: [\r\n {\r\n name: 'groupName',\r\n placeholder: 'Enter group name',\r\n value: group.name\r\n }\r\n ],\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n\r\n }\r\n },\r\n {\r\n text: 'OK',\r\n handler: data => {\r\n if (data.groupName.trim == '') {\r\n this.presentToast(\"Please insert the new group name\")\r\n } else {\r\n let grouping = new Grouping(data.groupName);\r\n this.items.editGrouping(grouping, group.id).subscribe((resp) => {\r\n this.presentToast(\"Group successfully created\");\r\n this.getGroupings();\r\n }, (err) => {\r\n this.presentToast(\"Error creating group\");\r\n })\r\n }\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n deleteGrouping(id) {\r\n let prompt = this.alertCtrl.create({\r\n message: \"Are you sure you want to delete this client group?\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n this.items.deleteGrouping(id).subscribe((resp) => {\r\n if (resp) {\r\n this.presentToast(\"Group successfully removed\");\r\n this.getGroupings();\r\n }\r\n }, (err) => {\r\n\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n deleteClientGrouping(id) {\r\n let prompt = this.alertCtrl.create({\r\n message: \"Are you sure you want to remove this client from group?\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n this.items.deleteClientGrouping(this.selectedGroup, id).subscribe((resp) => {\r\n if (resp) {\r\n console.log(resp.grouping);\r\n this.presentToast(\"Client successfully removed from group\");\r\n this.groupClients = resp.grouping.Client;\r\n this.getGroupings();\r\n }\r\n }, (err) => {\r\n\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n addClientGrouping(clients) {\r\n let modal = this.modalCtrl.create('ClientGroupingPage', { clients: clients, group: this.selectedGroup });\r\n modal.onDidDismiss(data => {\r\n console.log(data);\r\n this.groupClients = data;\r\n this.getGroupings();\r\n });\r\n modal.present();\r\n }\r\n\r\n exportUsers() {\r\n var download = {\r\n 'download_from': this.download_from,\r\n 'download_to': this.download_to\r\n };\r\n let prompt = this.alertCtrl.create({\r\n message: \"Generate email link to download responses in CSV? We will email you a link to download the files. Please note that the email can take up to 10 minutes to arrive\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.items.exportUsers(download).subscribe((resp) => {\r\n if (resp) {\r\n loading.dismissAll();\r\n this.presentToast(\"Export response request was successful. Link for the file will be sent through your email.\");\r\n }\r\n }, (err) => {\r\n loading.dismissAll();\r\n this.presentToast(\"There is no response associated with this practice, the export request was cancelled.\");\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n getSessionClientDetail(clientId) {\r\n this.items.getClientDetailSession(clientId).subscribe(res => {\r\n if (res) {\r\n this.selectedSession = res;\r\n this.clientSessions = res.Visit;\r\n } else {\r\n this.showSession = false;\r\n }\r\n },\r\n err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n getBetterAccessClients() {\r\n var toggleVisitHide = [];\r\n this.items.getBetterAccessClients().subscribe(res => {\r\n if (res) {\r\n this.betterAccessClients = res;\r\n console.log(res);\r\n\r\n this.betterAccessClients.forEach(client => {\r\n toggleVisitHide['id' + client.Client.id] = false;\r\n });\r\n\r\n this.toggleVisitHide = toggleVisitHide;\r\n console.log(this.toggleVisitHide);\r\n }\r\n },\r\n err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n showMore(id) {\r\n this.toggleVisitHide['id' + id] = true;\r\n }\r\n\r\n showLess(id) {\r\n this.toggleVisitHide['id' + id] = false;\r\n }\r\n\r\n selectSession(item) {\r\n this.selectedSession = item;\r\n this.clientSessions = item.Visit;\r\n this.showSession = true;\r\n console.log('in');\r\n }\r\n\r\n deselectSession(group) {\r\n this.showSession = false;\r\n }\r\n\r\n addSession(clientId){\r\n let createSession = this.modalCtrl.create('CreateSessionPage', { clientId: clientId, manage: true });\r\n createSession.onDidDismiss( data => {\r\n if (data) {\r\n if (data.dismiss === 'done') {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.items.addSession(data.form).subscribe(res => {\r\n if (res) {\r\n loading.dismissAll();\r\n this.getBetterAccessClients();\r\n this.getSessionClientDetail(clientId);\r\n }\r\n },\r\n err => {\r\n loading.dismissAll();\r\n console.log(err);\r\n });\r\n }\r\n }\r\n });\r\n createSession.present();\r\n }\r\n\r\n editSession(item, clientId){\r\n let createSession = this.modalCtrl.create('CreateSessionPage', { clientId: clientId, visit: item, manage: true });\r\n createSession.onDidDismiss( data => {\r\n if (data) {\r\n if (data.dismiss === 'done') {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.items.editSession(data.form, item.id).subscribe(res => {\r\n if (res) {\r\n loading.dismissAll();\r\n this.getBetterAccessClients();\r\n this.getSessionClientDetail(clientId);\r\n }\r\n },\r\n err => {\r\n loading.dismissAll();\r\n console.log(err);\r\n });\r\n }\r\n }\r\n });\r\n createSession.present();\r\n }\r\n\r\n deleteSession(id, clientId) {\r\n let prompt = this.alertCtrl.create({\r\n message: \"Are you sure you want to remove this visit from client?\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n this.items.deleteSession(id).subscribe((resp) => {\r\n if (resp) {\r\n this.getBetterAccessClients();\r\n this.getSessionClientDetail(clientId);\r\n }\r\n }, (err) => {\r\n\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n addUser() {\r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n this.accountData = res;\r\n if (this.accountData.is_practice || this.accountData.usertype_id == \"2\") {\r\n let addModal = this.modalCtrl.create(AddUserPage, null, { cssClass: \"add-user-modal\" });\r\n addModal.onDidDismiss(item => {\r\n if (item) {\r\n if (item.dismiss === 'done') {\r\n this.items.addUser(item.form).subscribe(res => {\r\n if (res) {\r\n let modal = this.modalCtrl.create('AlertPage', { text: this.createAlertText(item.form.email), screen: 'account' });\r\n modal.present();\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n\r\n }\r\n }\r\n })\r\n addModal.present();\r\n }\r\n else {\r\n this.presentAlert();\r\n }\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n\r\n }\r\n\r\n deleteUser(id) {\r\n let prompt = this.alertCtrl.create({\r\n message: \"Are you sure you want to delete this user? Clients of the user will still be available to other users within the practice.\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n this.items.deleteUser(id).subscribe((resp) => {\r\n if (resp) {\r\n let index = this.users.findIndex(result => result.id === id);\r\n if (index > -1) {\r\n this.users.splice(index, 1);\r\n }\r\n \r\n this.user.getPractices().subscribe(res => {\r\n if(res){\r\n localStorage.setItem('practiceData', JSON.stringify(res));\r\n this.practiceData = JSON.parse(localStorage.getItem('practiceData'));\r\n var userId = this.userData.id;\r\n //this.users = this.practiceData.users.filter(function (el) { return el.usertype_id != '1' && el.id != userId; });\r\n this.refreshRole();\r\n this.getUsers();\r\n }\r\n this.presentToast(\"User removed from practice\");\r\n });\r\n }\r\n }, (err) => {\r\n\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n userRoleChange(id: any, role: any) {\r\n //console.log(index);\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n let item = {\r\n usertype_id: role\r\n }\r\n let seq = this.items.updateUserRole(item, id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n if (res) {\r\n //this.userRole[index] = role;\r\n this.user.getPractices().subscribe(res => {\r\n if(res){\r\n localStorage.setItem('practiceData', JSON.stringify(res));\r\n this.practiceData = JSON.parse(JSON.stringify(res));\r\n var userId = this.userData.id;\r\n //this.users = this.practiceData.users.filter(function (el) { return el.usertype_id != '1' && el.id != userId; });\r\n //console.log(this.users);\r\n this.refreshRole();\r\n this.getUsers();\r\n }\r\n loading.dismissAll();\r\n this.presentToast(\"User information successfully saved\");\r\n },\r\n err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n }, err => {\r\n loading.dismissAll();\r\n this.presentToast(\"Fail to update user role\");\r\n console.error('ERROR', err);\r\n });\r\n\r\n // this.items.updateUserRole(item).subscribe(res =>{\r\n // if(res){\r\n // console.log(\"practice deleted\")\r\n // }\r\n // },\r\n // err => {\r\n // console.error('ERROR', err);\r\n // });\r\n }\r\n\r\n radioChecked(item1: any, item2: any) {\r\n console.log(this.userData);\r\n console.log(item1);\r\n console.log(item2);\r\n // this.items.updateUserRole(item).subscribe(res =>{\r\n // if(res){\r\n // console.log(\"practice deleted\")\r\n // }\r\n // },\r\n // err => {\r\n // console.error('ERROR', err);\r\n // });\r\n }\r\n\r\n\r\n createAlertText(email: string) {\r\n var string = \"An email invite has been sent to \"\r\n return string + email;\r\n }\r\n\r\n updateUser() {\r\n if (!this.form.valid) { return; }\r\n console.log(this.form.value);\r\n let seq = this.items.updateUser(this.form.value, this.userData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n if (res) {\r\n console.log('update userId' + res.user.email);\r\n localStorage.setItem('userData', JSON.stringify(res.user));\r\n localStorage.setItem('userId', res.user .email);\r\n this.presentToast(\"User information successfully saved\");\r\n }\r\n\r\n }, err => {\r\n this.presentToast(\"Cannot update, this email already exists\");\r\n this.form.get('email').setValue(localStorage.getItem('userId'));\r\n console.error('ERROR', err);\r\n });\r\n\r\n }\r\n\r\n updateSecurity() {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n this.updatingTwoFactor = true\r\n this.userData = JSON.parse(localStorage.getItem('userData'));\r\n let seq = this.user.changeSecurity(this.two_factor, this.userData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n localStorage.setItem('userData', JSON.stringify(res.user));\r\n this.presentToast(\"Your security preference is changed\");\r\n this.updatingTwoFactor = false;\r\n loading.dismiss()\r\n }, err => {\r\n console.error('ERROR', err);\r\n this.updatingTwoFactor = false;\r\n loading.dismiss()\r\n });\r\n }\r\n\r\n changePreference(isMasterUser) {\r\n this.updatingToPref = true;\r\n if (!this.form2.valid) {\r\n this.updatingToPref = false;\r\n return;\r\n }\r\n this.userData = JSON.parse(localStorage.getItem('userData'));\r\n let seq = this.user.changePreference(this.form2.value, this.userData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n localStorage.setItem('userData', JSON.stringify(res.user));\r\n if (isMasterUser) {\r\n let seq = this.items.updatPracticeName(this.form2.value, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n this.presentToast(\"Your email preference is changed\");\r\n this.getPractice()\r\n this.updatingToPref = false;\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n } else {\r\n this.presentToast(\"Your email preference is changed\");\r\n this.updatingToPref = false;\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n this.updatingToPref = false;\r\n });\r\n }\r\n\r\n changePracticeName() {\r\n if (!this.form4.valid) { return; }\r\n let seq = this.items.updatPracticeName(this.form4.value, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n this.presentToast(\"Practice name updated\");\r\n this.getPractice()\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n updatePractice() {\r\n const urlPattern = /^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$/;\r\n const valid = urlPattern.test(this.form5.value.assessment_redirect_link);\r\n\r\n if (!valid && this.form5.value.assessment_redirect_link != '') {\r\n this.presentToast(\"Please enter valid URL\");\r\n this.check_url_valid = false;\r\n return;\r\n } else {\r\n this.check_url_valid = true;\r\n }\r\n \r\n if (!this.form5.valid) { return; }\r\n let seq = this.items.updatePractice(this.form5.value, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n this.presentToast(\"Redirect link updated\");\r\n this.getPractice()\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n sendFeedback() {\r\n this.sendingFeedback = true\r\n let feedback: any;\r\n if (!this.form1.valid) { return; }\r\n feedback = { body: this.form1.value.body, user_id: this.userData.id, feedback_type_id: this.form1.value.feedback_type_id };\r\n this.user.sendFeedback(feedback).subscribe((resp) => {\r\n this.presentToast(\"Thanks for sharing your feedback\");\r\n this.sendingFeedback = false\r\n }, (err) => {\r\n this.presentToast(\"There was a problem sending your feedback\");\r\n this.sendingFeedback = false\r\n })\r\n }\r\n\r\n sendEmail() {\r\n window.open(\"mailto:info@novopsych.com?Subject=Practice Plan\", '_system');\r\n }\r\n\r\n openPricing() {\r\n window.open(\"https://novopsych.com/pricing/\", \"_blank\", \"location=true\");\r\n }\r\n\r\n changePassword() {\r\n let modal = this.modalCtrl.create(PasswordChangePage, null, {cssClass: 'ask-for-password'});\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n let item = data.item;\r\n\r\n if (data.action == 'save') {\r\n if (item.new_password != item.confirm_password) {\r\n this.presentToast(\"The new password fields do not match, please try again\")\r\n }\r\n \r\n let password = localStorage.getItem('password');\r\n if (item.current_password != password) {\r\n this.presentToast(\"please check your current password and try again\")\r\n } else {\r\n this.user.changePassword(item.current_password, item.new_password, item.confirm_password).subscribe((resp) => {\r\n this.presentToast(\"Your password has been changed\");\r\n localStorage.setItem('password', item.new_password);\r\n }, (err) => {\r\n this.presentToast(\"The current password is not correct\");\r\n })\r\n }\r\n\r\n }\r\n }\r\n })\r\n \r\n modal.present();\r\n }\r\n\r\n changePasswordOld() {\r\n let prompt = this.alertCtrl.create({\r\n title: 'Change Password?',\r\n message: \"Please enter your current and new password\",\r\n inputs: [\r\n {\r\n name: 'currentPassword',\r\n placeholder: 'Current Password'\r\n },\r\n {\r\n name: 'newPassword',\r\n placeholder: 'New Password',\r\n type: 'password'\r\n },\r\n {\r\n name: 'confirmPassword',\r\n placeholder: 'Confirm Password',\r\n type: 'password'\r\n }\r\n ],\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n\r\n }\r\n },\r\n {\r\n text: 'OK',\r\n handler: data => {\r\n if (data.newPassword != data.confirmPassword) {\r\n this.presentToast(\"The new password fields do not match, please try again\")\r\n }\r\n let password = localStorage.getItem('password');\r\n if (data.currentPassword != password) {\r\n this.presentToast(\"please check your current password and try again\")\r\n } else {\r\n this.user.changePassword(data.currentPassword, data.newPassword, data.confirmPassword).subscribe((resp) => {\r\n this.presentToast(\"Your password has been changed\");\r\n localStorage.setItem('password', data.newPassword);\r\n }, (err) => {\r\n this.presentToast(\"The current password is not correct\");\r\n })\r\n }\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n presentToast(msg, duration = 3000) {\r\n let toast = this.toastCtrl.create({\r\n message: msg,\r\n duration: duration,\r\n position: 'top'\r\n });\r\n toast.present();\r\n }\r\n\r\n makePayment() {\r\n let modal = this.modalCtrl.create('payment', null, { cssClass: \"my-modal\" });\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n\r\n if (data) {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n setTimeout(() => {\r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n console.log(res)\r\n this.accountData = res;\r\n localStorage.setItem('accountData', JSON.stringify(res));\r\n this.plan = this.accountData.chargebee_plan;\r\n this.maxClients = this.accountData.max_clients;\r\n this.maxAssessments = this.accountData.max_assessments;\r\n this.clientCount = this.accountData.client_count;\r\n this.monthlyAssessments = this.accountData.monthly_administered_assessments;\r\n loading.dismissAll();\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n loading.dismissAll();\r\n });\r\n }, 5000);\r\n }\r\n }\r\n })\r\n modal.present();\r\n // this.makeAccountPayment.emit(this.accountData);\r\n // this.items.getAccountDetails().subscribe(res => {\r\n // if (res) {\r\n // console.log(res)\r\n // this.accountData = res;\r\n // localStorage.setItem('accountData', JSON.stringify(res));\r\n // let modal = this.modalCtrl.create('payment', null, { cssClass: \"my-modal\" });\r\n \r\n // modal.onDidDismiss(data => {\r\n // if (data) {\r\n // let item = data.item;\r\n\r\n // if (data.action == 'save') {\r\n // let seq = this.items.addNote({ clientId: clientId, title: item.title, body: item.body }).share();\r\n // seq\r\n // .map(res => res.json().data.note)\r\n // .subscribe(res => {\r\n // this.clientNotes.push(res);\r\n // }, err => {\r\n // console.error('ERROR', err);\r\n // });\r\n // }\r\n // }\r\n // })\r\n // modal.present();\r\n // }\r\n // }, err => {\r\n // console.error('ERROR', err);\r\n // });\r\n\r\n }\r\n\r\n updatePayment() {\r\n // this.makeAccountPayment.emit(this.accountData);\r\n let modal = this.modalCtrl.create('payment', null, { cssClass: \"my-modal\" });\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n\r\n if (data) {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n setTimeout(() => {\r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n console.log(res)\r\n this.accountData = res;\r\n localStorage.setItem('accountData', JSON.stringify(res));\r\n this.plan = this.accountData.chargebee_plan;\r\n this.maxClients = this.accountData.max_clients;\r\n this.maxAssessments = this.accountData.max_assessments;\r\n this.clientCount = this.accountData.client_count;\r\n this.monthlyAssessments = this.accountData.monthly_administered_assessments;\r\n loading.dismissAll();\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n loading.dismissAll();\r\n });\r\n }, 5000);\r\n }\r\n }\r\n })\r\n modal.present();\r\n }\r\n\r\n presentTemplateAlert() {\r\n let alert = this.alertCtrl.create({\r\n message: 'Only five templates can be saved, to create a new template please delete or edit an existing one',\r\n buttons: [\r\n {\r\n text: 'OK',\r\n handler: data => {\r\n }\r\n }\r\n ]\r\n });\r\n alert.present();\r\n }\r\n\r\n createTemplate() {\r\n if (this.filteredEmailTemplates.length > 4) {\r\n this.presentTemplateAlert()\r\n }\r\n else {\r\n let modal = this.modalCtrl.create('EmailTemplatePage');\r\n modal.onDidDismiss(item => {\r\n if (item) {\r\n if(item.template.default == true){\r\n for (let j = 0; j < this.emailTemplates.length; j++){\r\n if (this.emailTemplates[j].default == true){\r\n this.emailTemplates[j].default = false\r\n }\r\n }\r\n }\r\n for (let i = 0; i < this.emailTemplates.length; i++) {\r\n if (this.emailTemplates[i].title === \"\") {\r\n this.emailTemplates[i].title = item.template.title;\r\n this.emailTemplates[i].subject = item.template.subject;\r\n this.emailTemplates[i].body = item.template.body;\r\n this.emailTemplates[i].default = item.template.default;\r\n break\r\n }\r\n\r\n }\r\n\r\n let seq = this.items.createEmailTemplate(this.emailTemplates).share();\r\n seq\r\n .map(res => res.json().data.templates)\r\n .subscribe(res => {\r\n this.emailTemplates = res;\r\n this.filteredEmailTemplates = this.emailTemplates.filter(function (e) {\r\n return e.title != \"\";\r\n });\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n })\r\n modal.present();\r\n }\r\n }\r\n\r\n editTemplate(template, indexValue) {\r\n let modal = this.modalCtrl.create('EmailTemplatePage', { template: template });\r\n modal.onDidDismiss(item => {\r\n if (item) {\r\n if (item.dismiss === 'done') {\r\n if(item.template.default == true){\r\n for (let j = 0; j < this.emailTemplates.length; j++){\r\n if (this.emailTemplates[j].default == true){\r\n this.emailTemplates[j].default = false\r\n }\r\n }\r\n }\r\n this.emailTemplates[indexValue].title = item.template.title;\r\n this.emailTemplates[indexValue].subject = item.template.subject;\r\n this.emailTemplates[indexValue].body = item.template.body;\r\n this.emailTemplates[indexValue].default = item.template.default;\r\n\r\n let seq = this.items.createEmailTemplate(this.emailTemplates).share();\r\n seq\r\n .map(res => res.json().data.templates)\r\n .subscribe(res => {\r\n this.emailTemplates = res;\r\n this.filteredEmailTemplates = this.emailTemplates.filter(function (e) {\r\n return e.title != \"\";\r\n });\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n else {\r\n if (item.dismiss === 'delete') {\r\n this.emailTemplates[indexValue].title = \"\";\r\n this.emailTemplates[indexValue].subject = \"\";\r\n this.emailTemplates[indexValue].body = \"\";\r\n this.emailTemplates[indexValue].default = false;\r\n \r\n let seq = this.items.createEmailTemplate(this.emailTemplates).share();\r\n seq\r\n .map(res => res.json().data.templates)\r\n .subscribe(res => {\r\n this.emailTemplates = res;\r\n this.filteredEmailTemplates = this.emailTemplates.filter(function (e) {\r\n return e.title != \"\";\r\n });\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n }\r\n }\r\n })\r\n modal.present();\r\n }\r\n\r\n onFileSelected(event: any) {\r\n const file = event.target.files[0];\r\n if (file) {\r\n if (this.isValidCsvFile(file)) {\r\n this.selectedFile = file;\r\n this.presentToast(\"CSV file selected successfully\");\r\n } else {\r\n this.presentToast(\"Please select a valid CSV file\");\r\n event.target.value = null; // Reset file input\r\n }\r\n }\r\n }\r\n\r\n isValidCsvFile(file: File): boolean {\r\n // Check file extension\r\n const validExtensions = ['csv'];\r\n const fileExtension = file.name.split('.').pop().toLowerCase();\r\n if (fileExtension && validExtensions.indexOf(fileExtension) === -1) {\r\n return false;\r\n }\r\n\r\n // Check MIME type\r\n const validMimeTypes = ['text/csv', 'application/csv', 'application/vnd.ms-excel'];\r\n if (validMimeTypes.indexOf(file.type) === -1) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n uploadCsv() {\r\n if (!this.selectedFile) {\r\n this.presentToast(\"Please select a CSV file first\");\r\n return;\r\n }\r\n\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n this.csvContent = e.target.result;\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 90000, cssClass: 'activity-detail-loading', showBackdrop: true, dismissOnPageChange: false });\r\n loading.present();\r\n \r\n let seq = this.items.importClientValidate({ csv_file: this.csvContent }).share();\r\n seq\r\n .map(res => res.json())\r\n .subscribe(res => {\r\n console.log(res);\r\n if (res.data.length > 0) {\r\n this.validatedData = res.data\r\n this.validateError = res.error_count\r\n this.validateSuccess = res.success_count\r\n } else {\r\n this.validatedData = []\r\n this.presentToast(\"No client data found in CSV file\");\r\n }\r\n loading.dismissAll()\r\n }, err => {\r\n console.error('ERROR', err);\r\n this.presentToast(\"Error verifying CSV file\");\r\n loading.dismissAll()\r\n });\r\n };\r\n reader.readAsText(this.selectedFile);\r\n }\r\n\r\n importClient() {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 90000, cssClass: 'activity-detail-loading', showBackdrop: true, dismissOnPageChange: false });\r\n loading.present();\r\n\r\n let seq = this.items.importClient({ csv_file: this.csvContent }).share();\r\n seq\r\n .map(res => res.json())\r\n .subscribe(res => {\r\n console.log(res);\r\n this.importError = res.error_count\r\n this.importSuccess = res.success_count\r\n this.resetImport();\r\n var message = this.importSuccess + ' client(s) succesfully imported.'\r\n\r\n if (this.importError > 0) {\r\n message += ' Skipped ' + this.importError + ' invalid records.'\r\n }\r\n this.presentToast(message, 5000);\r\n loading.dismissAll()\r\n }, err => {\r\n console.error('ERROR', err);\r\n this.presentToast(\"Error verifying CSV file\");\r\n loading.dismissAll()\r\n });\r\n }\r\n\r\n resetImport() {\r\n this.validatedData = []\r\n this.validateSuccess = 0\r\n this.validateError = 0\r\n this.selectedFile = null\r\n\r\n const fileInput = document.getElementById('fileImport') as HTMLInputElement;\r\n if (fileInput) {\r\n fileInput.value = '';\r\n }\r\n }\r\n\r\n presentAlert() {\r\n let alert = this.alertCtrl.create({\r\n message: 'To add users please upgrade to the Practice Plan',\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Change Plan',\r\n handler: data => {\r\n\r\n this.usersTabSelected.emit();\r\n }\r\n }\r\n ]\r\n });\r\n alert.present();\r\n }\r\n\r\n openUserGuide() {\r\n window.open(\"https://novopsych.com/user_guide/\", \"_blank\");\r\n }\r\n\r\n openFAQ() {\r\n window.open(\"https://novopsych.com/faq/\", \"_blank\");\r\n }\r\n\r\n openTerms() {\r\n window.open(\"https://novopsych.com/terms-conditions-privacy/\", \"_blank\");\r\n }\r\n\r\n openWebsite() {\r\n window.open(\"https://novopsych.com/\", \"_blank\")\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/upgrade-plan/upgrade-plan.ts","import { Component, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { UserData } from '../../models/user';\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { Items } from '../../providers/providers';\r\nimport { User } from '../../providers/user';\r\nimport { UserAccount } from '../../models/account';\r\n//import {Paypal} from '../../providers/paypal'\r\nimport { NavController, ToastController, AlertController, ModalController, LoadingController, App, Platform } from 'ionic-angular';\r\nimport { PasswordChangePage } from '../../pages/password-change/password-change';\r\nimport { AddUserPage } from '../../pages/add-user/add-user';\r\nimport { Practice } from '../../models/practice';\r\nimport { Template } from '../../models/template';\r\nimport { Grouping } from '../../models/groupings';\r\nimport { Country } from '../../models/country';\r\nimport { Countries } from '../../providers/providers';\r\nimport { environment } from '../../environment/environment';\r\n/**\r\n * Generated class for the UpgradePlanComponent component.\r\n *\r\n * See https://angular.io/docs/ts/latest/api/core/index/ComponentMetadata-class.html\r\n * for more info on Angular Components.\r\n */\r\n@Component({\r\n selector: 'upgrade-plan-old',\r\n templateUrl: 'upgrade-plan-old.html'\r\n})\r\nexport class UpgradePlanOldComponent {\r\n\r\n @Input() text: string;\r\n @Input() practice: any;\r\n // @Input() accountData: UserAccount;\r\n @Output() makeAccountPayment: EventEmitter = new EventEmitter();\r\n @Output() usersTabSelected: EventEmitter = new EventEmitter();//usersTabSelected method is mapped in account.ts and will be called if something changes here\r\n userData: UserData;\r\n isReadyToSave: boolean;\r\n isReadyToSend: boolean;\r\n isMasterUser: boolean;\r\n isReadyToUpdate: boolean;\r\n isReadyToUpdateRef: boolean;\r\n accountData: UserAccount;\r\n emailTemplates: Template[]// = new Array(5)\r\n filteredEmailTemplates: Template[]// = new Array(5)\r\n // emailTemplates: Template\r\n userRole: any[];\r\n plan: string;\r\n maxClients: string;\r\n maxAssessments: string;\r\n clientCount: number;\r\n monthlyAssessments: string;\r\n users: any[];\r\n filteredUsers: any[];\r\n groupings: any[];\r\n selectedGroup: Grouping;\r\n showClient: boolean;\r\n groupClients: any[];\r\n betterAccessClients: any[];\r\n toggleVisitHide: any[];\r\n selectedSession: any;\r\n showSession: boolean;\r\n clientSessions: any[];\r\n userType: string;\r\n practiceName: string;\r\n assessment_redirect_link: string;\r\n practiceId: string;\r\n practiceData: Practice;\r\n radioSelected: any;\r\n page_search: string = '';\r\n privacy_1: boolean;\r\n privacy_2: boolean;\r\n privacy_3: boolean;\r\n updatingPrivacy: boolean;\r\n showDownload: boolean;\r\n showUserGroup: boolean = false;\r\n download_from: string;\r\n download_to: string;\r\n updatingToPref: boolean;\r\n two_factor: boolean = false;\r\n updatingTwoFactor: boolean = false;\r\n updatingToPref5: boolean = false;\r\n allow_view_unassigned: boolean;\r\n check_url_valid: boolean = true;\r\n countries: Country[];\r\n enum_details = [\r\n { name: 'Supervisor', id: '2' },\r\n { name: 'Practitioner', id: '3' },\r\n ]\r\n sendingFeedback: boolean = false;\r\n selectedFile: File | null = null;\r\n validatedData: any[] = [];\r\n validateError: number = 0;\r\n validateSuccess: number = 0;\r\n importError: number = 0;\r\n importSuccess: number = 0;\r\n csvContent: any;\r\n\r\n public form: FormGroup\r\n public form1: FormGroup\r\n public form2: FormGroup\r\n public form3: FormGroup\r\n public form4: FormGroup\r\n public form5: FormGroup\r\n\r\n constructor(public countryProvider: Countries, public formBuilder: FormBuilder, public items: Items, public alertCtrl: AlertController, public toastCtrl: ToastController, public user: User,\r\n public navCtrl: NavController, public modalCtrl: ModalController, public loading: LoadingController,\r\n public app: App, public platform: Platform) {\r\n this.userData = JSON.parse(localStorage.getItem('userData'));\r\n\r\n this.countries = this.countryProvider.query();\r\n if (this.userData) {\r\n if (this.userData.usertype_id === \"1\") {\r\n this.isMasterUser = true;\r\n }\r\n this.showClient = false;\r\n this.showSession = false;\r\n this.showDownload = false;\r\n this.updatingPrivacy = false;\r\n this.userType = \"2\";\r\n this.download_to = new Date(new Date().setDate(new Date().getDate() + 1)).toISOString().slice(0, 10);\r\n this.download_from = new Date(new Date().setFullYear(new Date().getFullYear() - 1)).toISOString().slice(0, 10);\r\n this.practiceData = JSON.parse(localStorage.getItem('practiceData'));\r\n if (this.practiceData) {\r\n this.privacy_1 = this.practiceData.privacy_1 == '1' ? true : false;\r\n this.privacy_2 = this.practiceData.privacy_2 == '1' ? true : false;\r\n this.privacy_3 = this.practiceData.privacy_3 == '1' ? true : false;\r\n this.allow_view_unassigned = this.practiceData.allow_view_unassigned == '1' ? true : false;\r\n this.practiceName = this.practiceData.name;\r\n this.assessment_redirect_link = this.practiceData.assessment_redirect_link;\r\n var userId = this.userData.id;\r\n console.log('user' + userId);\r\n //this.users = this.practiceData.users.filter(function (el) { return el.usertype_id != '1' && el.id != userId; });\r\n }\r\n this.refreshRole();\r\n \r\n this.getGroupings();\r\n // this.getBetterAccessClients();\r\n this.getUsers();\r\n \r\n \r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n this.accountData = res;\r\n localStorage.setItem('accountData', JSON.stringify(res));\r\n this.plan = this.accountData.chargebee_plan;\r\n this.maxClients = this.accountData.max_clients;\r\n this.maxAssessments = this.accountData.max_assessments;\r\n this.clientCount = this.accountData.client_count;\r\n this.monthlyAssessments = this.accountData.monthly_administered_assessments;\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n this.items.getEmailTemplates().subscribe(res => {\r\n if (res) {\r\n this.emailTemplates = res;\r\n this.filteredEmailTemplates = this.emailTemplates.filter(function (e) {\r\n return e.title != \"\";\r\n });\r\n // this.emailTemplates[0] = {title: \"Email Template 1\", subject: \"Novopsych\", body: 'Dear FIRST NAME, '\r\n // + 'This is an automated email setup by CLINICIAN TITLE FIRST NAME LAST NAME who would like you to fill in a questionnaire to check in with you.'\r\n // + 'Please click the link below and follow the prompts to fill in the assessment. The results will be available to clinician once you have submitted the assessment.Thank you.', default: true}\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n let EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;\r\n this.form = this.formBuilder.group({\r\n first_name: [this.userData.first_name, Validators.required],\r\n last_name: [this.userData.last_name, Validators.required],\r\n email: [this.userData.email, Validators.compose([Validators.required, Validators.pattern(EMAIL_REGEXP)])],\r\n title_id: [this.userData.title_id, Validators.required],\r\n profession_id: [this.userData.profession_id, Validators.required],\r\n country_id: [this.userData.country_id, Validators.required]\r\n });\r\n\r\n this.two_factor =(this.userData.two_auth == '1' ? true : false)\r\n \r\n // Watch the form for changes, and\r\n this.form.valueChanges.map((val) => {\r\n // remove the trailing spaces from first name and last name\r\n val.first_name = val.first_name.trim();\r\n val.last_name = val.last_name.trim();\r\n return val;\r\n })\r\n .subscribe((val) => {\r\n this.isReadyToSave = this.form.valid;\r\n });\r\n \r\n //Form2 to send feedback\r\n this.form1 = this.formBuilder.group({\r\n body: [, Validators.required],\r\n feedback_type_id: ['1',]\r\n });\r\n \r\n this.form1.valueChanges.subscribe((v) => {\r\n this.isReadyToSend = this.form1.valid;\r\n });\r\n \r\n //Form2 to send feedback\r\n if (this.isMasterUser) {\r\n this.form2 = this.formBuilder.group({\r\n send_to_administer: [this.userData.send_to_administer == 1 ? true : false],\r\n send_to_practitioner: [this.userData.send_to_practitioner == 1 ? true : false],\r\n response_pdf: [this.userData.response_pdf],\r\n forward_email: [this.userData.forward_email, Validators.compose([Validators.pattern(EMAIL_REGEXP)])],\r\n reply_to: [this.practiceData ? this.practiceData.reply_to : \"\"],\r\n reply_to_email: [(this.practiceData ? this.practiceData.reply_to_email : \"\"), Validators.compose([Validators.pattern(EMAIL_REGEXP)])]\r\n });\r\n } else {\r\n this.form2 = this.formBuilder.group({\r\n send_to_administer: [this.userData.send_to_administer == 1 ? true : false],\r\n send_to_practitioner: [this.userData.send_to_practitioner == 1 ? true : false],\r\n response_pdf: [this.userData.response_pdf],\r\n forward_email: [this.userData.forward_email, Validators.compose([Validators.pattern(EMAIL_REGEXP)])]\r\n });\r\n }\r\n \r\n this.form2.valueChanges.subscribe((v) => {\r\n if (!this.form2.valid) {\r\n this.isReadyToUpdateRef = false;\r\n } else {\r\n if (this.isMasterUser) {\r\n if (this.form2.controls.reply_to.value == \"2\" && (this.form2.controls.reply_to_email.value === \"\" || this.form2.controls.reply_to_email.value === null)) {\r\n this.isReadyToUpdateRef = false;\r\n } else {\r\n this.isReadyToUpdateRef = true;\r\n }\r\n } else {\r\n this.isReadyToUpdateRef = true;\r\n }\r\n }\r\n });\r\n \r\n //form3 to modify userType\r\n this.form3 = this.formBuilder.group({\r\n usertype_id: ['2']\r\n });\r\n \r\n this.form4 = this.formBuilder.group({\r\n name: [this.practiceName, Validators.required]\r\n });\r\n this.form4.valueChanges.subscribe((v) => {\r\n this.isReadyToUpdate = this.form4.valid;\r\n }); \r\n \r\n this.form5 = this.formBuilder.group({\r\n assessment_redirect_link: [this.assessment_redirect_link]\r\n });\r\n }\r\n\r\n }\r\n\r\n public trackById (index, user) {\r\n return user.id;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n for (let propName in changes) {\r\n if (propName === 'practice') {\r\n let practice = changes['practice'].currentValue;\r\n if (typeof practice === 'undefined') {\r\n //do nothing\r\n } else {\r\n var userId = this.userData.id;\r\n console.log('user' + userId);\r\n //this.users = this.practice.users.filter(function (el) { return el.usertype_id != '1' && el.id != userId; });\r\n console.log('watcher');\r\n //console.log(this.users);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n \r\n\r\n deactivateAccount() {\r\n let modal = this.modalCtrl.create('DeactivateAccountPage', null, {cssClass : 'deactivateModal'});\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n if (data.result == 'deactivate') {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 70000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n this.items.deactivateAccount().subscribe(res => {\r\n if(res){\r\n loading.dismissAll();\r\n const prompt = this.alertCtrl.create({\r\n message: \"Your account was successfully deactivated, you will redirected\",\r\n buttons: [\r\n {\r\n text: 'Ok',\r\n handler: data => {\r\n this.logout('website');\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n\r\n setTimeout(() => {\r\n this.logout('website');\r\n }, 5000);\r\n }\r\n },\r\n err => {\r\n // Log errors if any\r\n console.log(err);\r\n loading.dismissAll();\r\n });\r\n \r\n console.log('deactivate');\r\n\r\n } else if (data.result == 'unsubscribe') {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 70000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n this.items.unsubscribeAccount().subscribe(res => {\r\n if(res){\r\n loading.dismissAll();\r\n const prompt = this.alertCtrl.create({\r\n title: \"Your subscription has been cancelled\",\r\n message: \"You can still login and access data but withlimited functionality\",\r\n buttons: [\r\n {\r\n text: 'Ok',\r\n handler: data => {\r\n this.logout();\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n setTimeout(() => {\r\n this.logout();\r\n }, 5000);\r\n }\r\n },\r\n err => {\r\n // Log errors if any\r\n console.log(err);\r\n loading.dismissAll();\r\n });;\r\n console.log('unsubscribe');\r\n }\r\n }\r\n })\r\n modal.present();\r\n }\r\n\r\n logout(url = ''){\r\n var rememberMe = localStorage.getItem('rememberMe');\r\n var promoLastShown = localStorage.getItem('promoLastShown');\r\n localStorage.clear();\r\n localStorage.setItem('rememberMe',rememberMe);\r\n localStorage.setItem('promoLastShown',promoLastShown);\r\n setTimeout(() => this.backToWelcome(url), 1000);\r\n }\r\n\r\n backToWelcome(url = ''){\r\n if (url == '') {\r\n const root = this.app.getRootNav();\r\n root.popToRoot();\r\n } else {\r\n window.top.location.href = environment.websiteUrl;\r\n }\r\n }\r\n\r\n refreshRole() {\r\n this.userRole = new Array();\r\n if (this.users) {\r\n for (let i = 0; i < this.users.length; i++) {\r\n console.log(this.users[i].usertype_id);\r\n this.userRole.push(parseInt(this.users[i].usertype_id));\r\n }\r\n }\r\n }\r\n\r\n getPractice() {\r\n this.user.getPractices().subscribe(res => {\r\n if(res){\r\n localStorage.setItem('practiceData', JSON.stringify(res));\r\n }\r\n },\r\n err => {\r\n // Log errors if any\r\n console.log(err);\r\n });\r\n }\r\n\r\n togglePrivacy() {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.updatingPrivacy = true;\r\n var privacy = {\r\n 'privacy_1': this.privacy_1,\r\n 'privacy_2': this.privacy_2,\r\n 'privacy_3': this.privacy_3,\r\n };\r\n let seq = this.items.updatePracticePrivacy(privacy, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n loading.dismissAll();\r\n this.presentToast(\"Privacy information successfully saved\");\r\n this.getPractice()\r\n this.updatingPrivacy = false;\r\n }, err => {\r\n loading.dismissAll();\r\n this.presentToast(\"Fail to update privacy settings\");\r\n this.updatingPrivacy = false;\r\n });\r\n }\r\n\r\n toggleAllowUnassigned() {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.updatingToPref5 = true;\r\n var privacy = {\r\n 'allow_view_unassigned': this.allow_view_unassigned\r\n };\r\n let seq = this.items.updatePracticePrivacy(privacy, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n loading.dismissAll();\r\n this.presentToast(\"Practice setting successfully saved\");\r\n this.updatingToPref5 = false;\r\n }, err => {\r\n loading.dismissAll();\r\n this.presentToast(\"Fail to update practice settings\");\r\n this.updatingToPref5 = false;\r\n });\r\n }\r\n\r\n toggleShowDownload() {\r\n this.showDownload = !this.showDownload;\r\n }\r\n\r\n selectGroup(group, clients) {\r\n this.selectedGroup = group;\r\n this.groupClients = clients;\r\n this.showClient = true;\r\n }\r\n\r\n deselectGroup(group) {\r\n this.showClient = false;\r\n }\r\n\r\n getUsers() {\r\n this.items.getUsers().subscribe(res => {\r\n console.log(res);\r\n console.log('test');\r\n if (res) {\r\n this.users = res;\r\n this.filteredUsers = this.users;\r\n }\r\n },\r\n err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n filterUsers() {\r\n if (this.page_search && this.page_search.trim() !== '') {\r\n this.filteredUsers = this.users.filter((user) => \r\n user.name.toLowerCase().includes(this.page_search.toLowerCase()) || user.email.toLowerCase().includes(this.page_search.toLowerCase())\r\n );\r\n } else {\r\n this.filteredUsers = this.users;\r\n }\r\n }\r\n\r\n updateGrouping(id, value) {\r\n var data = {\r\n 'user_id': id,\r\n 'groups': value\r\n };\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.items.assignGrouping(data).subscribe((resp) => {\r\n if (resp) {\r\n loading.dismissAll();\r\n this.presentToast(\"Selected user's group setting updated\");\r\n }\r\n }, (err) => {\r\n loading.dismissAll();\r\n this.presentToast(\"Fail to update selected user's group setting\");\r\n })\r\n }\r\n\r\n getGroupings() {\r\n this.items.getGroupings().subscribe(res => {\r\n if (res) {\r\n this.groupings = res;\r\n\r\n if (this.groupings.length > 0) {\r\n this.showUserGroup = true;\r\n } else {\r\n this.showUserGroup = false;\r\n }\r\n }\r\n },\r\n err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n addGrouping() {\r\n let prompt = this.alertCtrl.create({\r\n title: 'Client Group',\r\n message: \"Create new client group\",\r\n inputs: [\r\n {\r\n name: 'groupName',\r\n placeholder: 'Enter group name'\r\n }\r\n ],\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n\r\n }\r\n },\r\n {\r\n text: 'OK',\r\n handler: data => {\r\n if (data.groupName.trim == '') {\r\n this.presentToast(\"Please insert the new client group name\")\r\n } else {\r\n let grouping = new Grouping(data.groupName);\r\n this.items.addGrouping(grouping).subscribe((resp) => {\r\n this.presentToast(\"Group successfully created\");\r\n this.getGroupings();\r\n }, (err) => {\r\n this.presentToast(\"Error creating group\");\r\n })\r\n }\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n editGrouping(group) {\r\n let prompt = this.alertCtrl.create({\r\n title: 'Client Group',\r\n message: \"Edit client group\",\r\n inputs: [\r\n {\r\n name: 'groupName',\r\n placeholder: 'Enter group name',\r\n value: group.name\r\n }\r\n ],\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n\r\n }\r\n },\r\n {\r\n text: 'OK',\r\n handler: data => {\r\n if (data.groupName.trim == '') {\r\n this.presentToast(\"Please insert the new group name\")\r\n } else {\r\n let grouping = new Grouping(data.groupName);\r\n this.items.editGrouping(grouping, group.id).subscribe((resp) => {\r\n this.presentToast(\"Group successfully created\");\r\n this.getGroupings();\r\n }, (err) => {\r\n this.presentToast(\"Error creating group\");\r\n })\r\n }\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n deleteGrouping(id) {\r\n let prompt = this.alertCtrl.create({\r\n message: \"Are you sure you want to delete this client group?\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n this.items.deleteGrouping(id).subscribe((resp) => {\r\n if (resp) {\r\n this.presentToast(\"Group successfully removed\");\r\n this.getGroupings();\r\n }\r\n }, (err) => {\r\n\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n deleteClientGrouping(id) {\r\n let prompt = this.alertCtrl.create({\r\n message: \"Are you sure you want to remove this client from group?\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n this.items.deleteClientGrouping(this.selectedGroup, id).subscribe((resp) => {\r\n if (resp) {\r\n console.log(resp.grouping);\r\n this.presentToast(\"Client successfully removed from group\");\r\n this.groupClients = resp.grouping.Client;\r\n this.getGroupings();\r\n }\r\n }, (err) => {\r\n\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n addClientGrouping(clients) {\r\n let modal = this.modalCtrl.create('ClientGroupingPage', { clients: clients, group: this.selectedGroup });\r\n modal.onDidDismiss(data => {\r\n console.log(data);\r\n this.groupClients = data;\r\n this.getGroupings();\r\n });\r\n modal.present();\r\n }\r\n\r\n exportUsers() {\r\n var download = {\r\n 'download_from': this.download_from,\r\n 'download_to': this.download_to\r\n };\r\n let prompt = this.alertCtrl.create({\r\n message: \"Generate email link to download responses in CSV? We will email you a link to download the files. Please note that the email can take up to 10 minutes to arrive\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.items.exportUsers(download).subscribe((resp) => {\r\n if (resp) {\r\n loading.dismissAll();\r\n this.presentToast(\"Export response request was successful. Link for the file will be sent through your email.\");\r\n }\r\n }, (err) => {\r\n loading.dismissAll();\r\n this.presentToast(\"There is no response associated with this practice, the export request was cancelled.\");\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n getSessionClientDetail(clientId) {\r\n this.items.getClientDetailSession(clientId).subscribe(res => {\r\n if (res) {\r\n this.selectedSession = res;\r\n this.clientSessions = res.Visit;\r\n } else {\r\n this.showSession = false;\r\n }\r\n },\r\n err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n getBetterAccessClients() {\r\n var toggleVisitHide = [];\r\n this.items.getBetterAccessClients().subscribe(res => {\r\n if (res) {\r\n this.betterAccessClients = res;\r\n console.log(res);\r\n\r\n this.betterAccessClients.forEach(client => {\r\n toggleVisitHide['id' + client.Client.id] = false;\r\n });\r\n\r\n this.toggleVisitHide = toggleVisitHide;\r\n console.log(this.toggleVisitHide);\r\n }\r\n },\r\n err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n showMore(id) {\r\n this.toggleVisitHide['id' + id] = true;\r\n }\r\n\r\n showLess(id) {\r\n this.toggleVisitHide['id' + id] = false;\r\n }\r\n\r\n selectSession(item) {\r\n this.selectedSession = item;\r\n this.clientSessions = item.Visit;\r\n this.showSession = true;\r\n console.log('in');\r\n }\r\n\r\n deselectSession(group) {\r\n this.showSession = false;\r\n }\r\n\r\n addSession(clientId){\r\n let createSession = this.modalCtrl.create('CreateSessionPage', { clientId: clientId, manage: true });\r\n createSession.onDidDismiss( data => {\r\n if (data) {\r\n if (data.dismiss === 'done') {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.items.addSession(data.form).subscribe(res => {\r\n if (res) {\r\n loading.dismissAll();\r\n this.getBetterAccessClients();\r\n this.getSessionClientDetail(clientId);\r\n }\r\n },\r\n err => {\r\n loading.dismissAll();\r\n console.log(err);\r\n });\r\n }\r\n }\r\n });\r\n createSession.present();\r\n }\r\n\r\n editSession(item, clientId){\r\n let createSession = this.modalCtrl.create('CreateSessionPage', { clientId: clientId, visit: item, manage: true });\r\n createSession.onDidDismiss( data => {\r\n if (data) {\r\n if (data.dismiss === 'done') {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n this.items.editSession(data.form, item.id).subscribe(res => {\r\n if (res) {\r\n loading.dismissAll();\r\n this.getBetterAccessClients();\r\n this.getSessionClientDetail(clientId);\r\n }\r\n },\r\n err => {\r\n loading.dismissAll();\r\n console.log(err);\r\n });\r\n }\r\n }\r\n });\r\n createSession.present();\r\n }\r\n\r\n deleteSession(id, clientId) {\r\n let prompt = this.alertCtrl.create({\r\n message: \"Are you sure you want to remove this visit from client?\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n this.items.deleteSession(id).subscribe((resp) => {\r\n if (resp) {\r\n this.getBetterAccessClients();\r\n this.getSessionClientDetail(clientId);\r\n }\r\n }, (err) => {\r\n\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n addUser() {\r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n this.accountData = res;\r\n if (this.accountData.is_practice || this.accountData.usertype_id == \"2\") {\r\n let addModal = this.modalCtrl.create(AddUserPage, null, { cssClass: \"add-user-modal\" });\r\n addModal.onDidDismiss(item => {\r\n if (item) {\r\n if (item.dismiss === 'done') {\r\n this.items.addUser(item.form).subscribe(res => {\r\n if (res) {\r\n let modal = this.modalCtrl.create('AlertPage', { text: this.createAlertText(item.form.email), screen: 'account' });\r\n modal.present();\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n\r\n }\r\n }\r\n })\r\n addModal.present();\r\n }\r\n else {\r\n this.presentAlert();\r\n }\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n\r\n }\r\n\r\n deleteUser(id) {\r\n let prompt = this.alertCtrl.create({\r\n message: \"Are you sure you want to delete this user? Clients of the user will still be available to other users within the practice.\",\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Yes',\r\n handler: data => {\r\n this.items.deleteUser(id).subscribe((resp) => {\r\n if (resp) {\r\n let index = this.users.findIndex(result => result.id === id);\r\n if (index > -1) {\r\n this.users.splice(index, 1);\r\n }\r\n \r\n this.user.getPractices().subscribe(res => {\r\n if(res){\r\n localStorage.setItem('practiceData', JSON.stringify(res));\r\n this.practiceData = JSON.parse(localStorage.getItem('practiceData'));\r\n var userId = this.userData.id;\r\n //this.users = this.practiceData.users.filter(function (el) { return el.usertype_id != '1' && el.id != userId; });\r\n this.refreshRole();\r\n this.getUsers();\r\n }\r\n this.presentToast(\"User removed from practice\");\r\n });\r\n }\r\n }, (err) => {\r\n\r\n })\r\n\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n userRoleChange(id: any, role: any) {\r\n //console.log(index);\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n let item = {\r\n usertype_id: role\r\n }\r\n let seq = this.items.updateUserRole(item, id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n if (res) {\r\n //this.userRole[index] = role;\r\n this.user.getPractices().subscribe(res => {\r\n if(res){\r\n localStorage.setItem('practiceData', JSON.stringify(res));\r\n this.practiceData = JSON.parse(JSON.stringify(res));\r\n var userId = this.userData.id;\r\n //this.users = this.practiceData.users.filter(function (el) { return el.usertype_id != '1' && el.id != userId; });\r\n //console.log(this.users);\r\n this.refreshRole();\r\n this.getUsers();\r\n }\r\n loading.dismissAll();\r\n this.presentToast(\"User information successfully saved\");\r\n },\r\n err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n }, err => {\r\n loading.dismissAll();\r\n this.presentToast(\"Fail to update user role\");\r\n console.error('ERROR', err);\r\n });\r\n\r\n // this.items.updateUserRole(item).subscribe(res =>{\r\n // if(res){\r\n // console.log(\"practice deleted\")\r\n // }\r\n // },\r\n // err => {\r\n // console.error('ERROR', err);\r\n // });\r\n }\r\n\r\n radioChecked(item1: any, item2: any) {\r\n console.log(this.userData);\r\n console.log(item1);\r\n console.log(item2);\r\n // this.items.updateUserRole(item).subscribe(res =>{\r\n // if(res){\r\n // console.log(\"practice deleted\")\r\n // }\r\n // },\r\n // err => {\r\n // console.error('ERROR', err);\r\n // });\r\n }\r\n\r\n\r\n createAlertText(email: string) {\r\n var string = \"An email invite has been sent to \"\r\n return string + email;\r\n }\r\n\r\n updateUser() {\r\n if (!this.form.valid) { return; }\r\n console.log(this.form.value);\r\n let seq = this.items.updateUser(this.form.value, this.userData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n if (res) {\r\n console.log('update userId' + res.user.email);\r\n localStorage.setItem('userData', JSON.stringify(res.user));\r\n localStorage.setItem('userId', res.user .email);\r\n this.presentToast(\"User information successfully saved\");\r\n }\r\n\r\n }, err => {\r\n this.presentToast(\"Cannot update, this email already exists\");\r\n this.form.get('email').setValue(localStorage.getItem('userId'));\r\n console.error('ERROR', err);\r\n });\r\n\r\n }\r\n\r\n updateSecurity() {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n this.updatingTwoFactor = true\r\n this.userData = JSON.parse(localStorage.getItem('userData'));\r\n let seq = this.user.changeSecurity(this.two_factor, this.userData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n localStorage.setItem('userData', JSON.stringify(res.user));\r\n this.presentToast(\"Your security preference is changed\");\r\n this.updatingTwoFactor = false;\r\n loading.dismiss()\r\n }, err => {\r\n console.error('ERROR', err);\r\n this.updatingTwoFactor = false;\r\n loading.dismiss()\r\n });\r\n }\r\n\r\n changePreference(isMasterUser) {\r\n this.updatingToPref = true;\r\n if (!this.form2.valid) {\r\n this.updatingToPref = false;\r\n return;\r\n }\r\n this.userData = JSON.parse(localStorage.getItem('userData'));\r\n let seq = this.user.changePreference(this.form2.value, this.userData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n localStorage.setItem('userData', JSON.stringify(res.user));\r\n if (isMasterUser) {\r\n let seq = this.items.updatPracticeName(this.form2.value, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n this.presentToast(\"Your email preference is changed\");\r\n this.getPractice()\r\n this.updatingToPref = false;\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n } else {\r\n this.presentToast(\"Your email preference is changed\");\r\n this.updatingToPref = false;\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n this.updatingToPref = false;\r\n });\r\n }\r\n\r\n changePracticeName() {\r\n if (!this.form4.valid) { return; }\r\n let seq = this.items.updatPracticeName(this.form4.value, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n this.presentToast(\"Practice name updated\");\r\n this.getPractice()\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n updatePractice() {\r\n const urlPattern = /^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$/;\r\n const valid = urlPattern.test(this.form5.value.assessment_redirect_link);\r\n\r\n if (!valid && this.form5.value.assessment_redirect_link != '') {\r\n this.presentToast(\"Please enter valid URL\");\r\n this.check_url_valid = false;\r\n return;\r\n } else {\r\n this.check_url_valid = true;\r\n }\r\n \r\n if (!this.form5.valid) { return; }\r\n let seq = this.items.updatePractice(this.form5.value, this.practiceData.id).share();\r\n seq\r\n .map(res => res.json().data)\r\n .subscribe(res => {\r\n this.presentToast(\"Redirect link updated\");\r\n this.getPractice()\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n\r\n sendFeedback() {\r\n this.sendingFeedback = true\r\n let feedback: any;\r\n if (!this.form1.valid) { return; }\r\n feedback = { body: this.form1.value.body, user_id: this.userData.id, feedback_type_id: this.form1.value.feedback_type_id };\r\n this.user.sendFeedback(feedback).subscribe((resp) => {\r\n this.presentToast(\"Thanks for sharing your feedback\");\r\n this.sendingFeedback = false\r\n }, (err) => {\r\n this.presentToast(\"There was a problem sending your feedback\");\r\n this.sendingFeedback = false\r\n })\r\n }\r\n\r\n sendEmail() {\r\n window.open(\"mailto:info@novopsych.com?Subject=Practice Plan\", '_system');\r\n }\r\n\r\n openPricing() {\r\n window.open(\"https://novopsych.com/pricing/\", \"_blank\", \"location=true\");\r\n }\r\n\r\n changePassword() {\r\n let modal = this.modalCtrl.create(PasswordChangePage, null, {cssClass: 'ask-for-password'});\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n let item = data.item;\r\n\r\n if (data.action == 'save') {\r\n if (item.new_password != item.confirm_password) {\r\n this.presentToast(\"The new password fields do not match, please try again\")\r\n }\r\n \r\n let password = localStorage.getItem('password');\r\n if (item.current_password != password) {\r\n this.presentToast(\"please check your current password and try again\")\r\n } else {\r\n this.user.changePassword(item.current_password, item.new_password, item.confirm_password).subscribe((resp) => {\r\n this.presentToast(\"Your password has been changed\");\r\n localStorage.setItem('password', item.new_password);\r\n }, (err) => {\r\n this.presentToast(\"The current password is not correct\");\r\n })\r\n }\r\n\r\n }\r\n }\r\n })\r\n \r\n modal.present();\r\n }\r\n\r\n changePasswordOld() {\r\n let prompt = this.alertCtrl.create({\r\n title: 'Change Password?',\r\n message: \"Please enter your current and new password\",\r\n inputs: [\r\n {\r\n name: 'currentPassword',\r\n placeholder: 'Current Password'\r\n },\r\n {\r\n name: 'newPassword',\r\n placeholder: 'New Password',\r\n type: 'password'\r\n },\r\n {\r\n name: 'confirmPassword',\r\n placeholder: 'Confirm Password',\r\n type: 'password'\r\n }\r\n ],\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n\r\n }\r\n },\r\n {\r\n text: 'OK',\r\n handler: data => {\r\n if (data.newPassword != data.confirmPassword) {\r\n this.presentToast(\"The new password fields do not match, please try again\")\r\n }\r\n let password = localStorage.getItem('password');\r\n if (data.currentPassword != password) {\r\n this.presentToast(\"please check your current password and try again\")\r\n } else {\r\n this.user.changePassword(data.currentPassword, data.newPassword, data.confirmPassword).subscribe((resp) => {\r\n this.presentToast(\"Your password has been changed\");\r\n localStorage.setItem('password', data.newPassword);\r\n }, (err) => {\r\n this.presentToast(\"The current password is not correct\");\r\n })\r\n }\r\n }\r\n }\r\n ]\r\n });\r\n prompt.present();\r\n }\r\n\r\n presentToast(msg, duration = 3000) {\r\n let toast = this.toastCtrl.create({\r\n message: msg,\r\n duration: duration,\r\n position: 'top'\r\n });\r\n toast.present();\r\n }\r\n\r\n makePayment() {\r\n let modal = this.modalCtrl.create('payment', null, { cssClass: \"my-modal\" });\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n\r\n if (data) {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n setTimeout(() => {\r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n console.log(res)\r\n this.accountData = res;\r\n localStorage.setItem('accountData', JSON.stringify(res));\r\n this.plan = this.accountData.chargebee_plan;\r\n this.maxClients = this.accountData.max_clients;\r\n this.maxAssessments = this.accountData.max_assessments;\r\n this.clientCount = this.accountData.client_count;\r\n this.monthlyAssessments = this.accountData.monthly_administered_assessments;\r\n loading.dismissAll();\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n loading.dismissAll();\r\n });\r\n }, 5000);\r\n }\r\n }\r\n })\r\n modal.present();\r\n // this.makeAccountPayment.emit(this.accountData);\r\n // this.items.getAccountDetails().subscribe(res => {\r\n // if (res) {\r\n // console.log(res)\r\n // this.accountData = res;\r\n // localStorage.setItem('accountData', JSON.stringify(res));\r\n // let modal = this.modalCtrl.create('payment', null, { cssClass: \"my-modal\" });\r\n \r\n // modal.onDidDismiss(data => {\r\n // if (data) {\r\n // let item = data.item;\r\n\r\n // if (data.action == 'save') {\r\n // let seq = this.items.addNote({ clientId: clientId, title: item.title, body: item.body }).share();\r\n // seq\r\n // .map(res => res.json().data.note)\r\n // .subscribe(res => {\r\n // this.clientNotes.push(res);\r\n // }, err => {\r\n // console.error('ERROR', err);\r\n // });\r\n // }\r\n // }\r\n // })\r\n // modal.present();\r\n // }\r\n // }, err => {\r\n // console.error('ERROR', err);\r\n // });\r\n\r\n }\r\n\r\n updatePayment() {\r\n // this.makeAccountPayment.emit(this.accountData);\r\n let modal = this.modalCtrl.create('payment', null, { cssClass: \"my-modal\" });\r\n modal.onDidDismiss(data => {\r\n if (data) {\r\n\r\n if (data) {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 5000, cssClass: 'activity-detail-loading', showBackdrop: false, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n setTimeout(() => {\r\n this.items.getAccountDetails().subscribe(res => {\r\n if (res) {\r\n console.log(res)\r\n this.accountData = res;\r\n localStorage.setItem('accountData', JSON.stringify(res));\r\n this.plan = this.accountData.chargebee_plan;\r\n this.maxClients = this.accountData.max_clients;\r\n this.maxAssessments = this.accountData.max_assessments;\r\n this.clientCount = this.accountData.client_count;\r\n this.monthlyAssessments = this.accountData.monthly_administered_assessments;\r\n loading.dismissAll();\r\n }\r\n }, err => {\r\n console.error('ERROR', err);\r\n loading.dismissAll();\r\n });\r\n }, 5000);\r\n }\r\n }\r\n })\r\n modal.present();\r\n }\r\n\r\n presentTemplateAlert() {\r\n let alert = this.alertCtrl.create({\r\n message: 'Only five templates can be saved, to create a new template please delete or edit an existing one',\r\n buttons: [\r\n {\r\n text: 'OK',\r\n handler: data => {\r\n }\r\n }\r\n ]\r\n });\r\n alert.present();\r\n }\r\n\r\n createTemplate() {\r\n if (this.filteredEmailTemplates.length > 4) {\r\n this.presentTemplateAlert()\r\n }\r\n else {\r\n let modal = this.modalCtrl.create('EmailTemplatePage');\r\n modal.onDidDismiss(item => {\r\n if (item) {\r\n if(item.template.default == true){\r\n for (let j = 0; j < this.emailTemplates.length; j++){\r\n if (this.emailTemplates[j].default == true){\r\n this.emailTemplates[j].default = false\r\n }\r\n }\r\n }\r\n for (let i = 0; i < this.emailTemplates.length; i++) {\r\n if (this.emailTemplates[i].title === \"\") {\r\n this.emailTemplates[i].title = item.template.title;\r\n this.emailTemplates[i].subject = item.template.subject;\r\n this.emailTemplates[i].body = item.template.body;\r\n this.emailTemplates[i].default = item.template.default;\r\n break\r\n }\r\n\r\n }\r\n\r\n let seq = this.items.createEmailTemplate(this.emailTemplates).share();\r\n seq\r\n .map(res => res.json().data.templates)\r\n .subscribe(res => {\r\n this.emailTemplates = res;\r\n this.filteredEmailTemplates = this.emailTemplates.filter(function (e) {\r\n return e.title != \"\";\r\n });\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n })\r\n modal.present();\r\n }\r\n }\r\n\r\n editTemplate(template, indexValue) {\r\n let modal = this.modalCtrl.create('EmailTemplatePage', { template: template });\r\n modal.onDidDismiss(item => {\r\n if (item) {\r\n if (item.dismiss === 'done') {\r\n if(item.template.default == true){\r\n for (let j = 0; j < this.emailTemplates.length; j++){\r\n if (this.emailTemplates[j].default == true){\r\n this.emailTemplates[j].default = false\r\n }\r\n }\r\n }\r\n this.emailTemplates[indexValue].title = item.template.title;\r\n this.emailTemplates[indexValue].subject = item.template.subject;\r\n this.emailTemplates[indexValue].body = item.template.body;\r\n this.emailTemplates[indexValue].default = item.template.default;\r\n\r\n let seq = this.items.createEmailTemplate(this.emailTemplates).share();\r\n seq\r\n .map(res => res.json().data.templates)\r\n .subscribe(res => {\r\n this.emailTemplates = res;\r\n this.filteredEmailTemplates = this.emailTemplates.filter(function (e) {\r\n return e.title != \"\";\r\n });\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n else {\r\n if (item.dismiss === 'delete') {\r\n this.emailTemplates[indexValue].title = \"\";\r\n this.emailTemplates[indexValue].subject = \"\";\r\n this.emailTemplates[indexValue].body = \"\";\r\n this.emailTemplates[indexValue].default = false;\r\n \r\n let seq = this.items.createEmailTemplate(this.emailTemplates).share();\r\n seq\r\n .map(res => res.json().data.templates)\r\n .subscribe(res => {\r\n this.emailTemplates = res;\r\n this.filteredEmailTemplates = this.emailTemplates.filter(function (e) {\r\n return e.title != \"\";\r\n });\r\n }, err => {\r\n console.error('ERROR', err);\r\n });\r\n }\r\n }\r\n }\r\n })\r\n modal.present();\r\n }\r\n\r\n onFileSelected(event: any) {\r\n const file = event.target.files[0];\r\n if (file) {\r\n if (this.isValidCsvFile(file)) {\r\n this.selectedFile = file;\r\n this.presentToast(\"CSV file selected successfully\");\r\n } else {\r\n this.presentToast(\"Please select a valid CSV file\");\r\n event.target.value = null; // Reset file input\r\n }\r\n }\r\n }\r\n\r\n isValidCsvFile(file: File): boolean {\r\n // Check file extension\r\n const validExtensions = ['csv'];\r\n const fileExtension = file.name.split('.').pop().toLowerCase();\r\n if (fileExtension && validExtensions.indexOf(fileExtension) === -1) {\r\n return false;\r\n }\r\n\r\n // Check MIME type\r\n const validMimeTypes = ['text/csv', 'application/csv', 'application/vnd.ms-excel'];\r\n if (validMimeTypes.indexOf(file.type) === -1) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n uploadCsv() {\r\n if (!this.selectedFile) {\r\n this.presentToast(\"Please select a CSV file first\");\r\n return;\r\n }\r\n\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n this.csvContent = e.target.result;\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 90000, cssClass: 'activity-detail-loading', showBackdrop: true, dismissOnPageChange: false });\r\n loading.present();\r\n \r\n let seq = this.items.importClientValidate({ csv_file: this.csvContent }).share();\r\n seq\r\n .map(res => res.json())\r\n .subscribe(res => {\r\n console.log(res);\r\n if (res.data.length > 0) {\r\n this.validatedData = res.data\r\n this.validateError = res.error_count\r\n this.validateSuccess = res.success_count\r\n } else {\r\n this.validatedData = []\r\n this.presentToast(\"No client data found in CSV file\");\r\n }\r\n loading.dismissAll()\r\n }, err => {\r\n console.error('ERROR', err);\r\n this.presentToast(\"Error verifying CSV file\");\r\n loading.dismissAll()\r\n });\r\n };\r\n reader.readAsText(this.selectedFile);\r\n }\r\n\r\n importClient() {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 90000, cssClass: 'activity-detail-loading', showBackdrop: true, dismissOnPageChange: false });\r\n loading.present();\r\n\r\n let seq = this.items.importClient({ csv_file: this.csvContent }).share();\r\n seq\r\n .map(res => res.json())\r\n .subscribe(res => {\r\n console.log(res);\r\n this.importError = res.error_count\r\n this.importSuccess = res.success_count\r\n this.resetImport();\r\n var message = this.importSuccess + ' client(s) succesfully imported.'\r\n\r\n if (this.importError > 0) {\r\n message += ' Skipped ' + this.importError + ' invalid records.'\r\n }\r\n this.presentToast(message, 5000);\r\n loading.dismissAll()\r\n }, err => {\r\n console.error('ERROR', err);\r\n this.presentToast(\"Error verifying CSV file\");\r\n loading.dismissAll()\r\n });\r\n }\r\n\r\n resetImport() {\r\n this.validatedData = []\r\n this.validateSuccess = 0\r\n this.validateError = 0\r\n this.selectedFile = null\r\n\r\n const fileInput = document.getElementById('fileImport') as HTMLInputElement;\r\n if (fileInput) {\r\n fileInput.value = '';\r\n }\r\n }\r\n\r\n presentAlert() {\r\n let alert = this.alertCtrl.create({\r\n message: 'To add users please upgrade to the Practice Plan',\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n handler: data => {\r\n }\r\n },\r\n {\r\n text: 'Change Plan',\r\n handler: data => {\r\n\r\n this.usersTabSelected.emit();\r\n }\r\n }\r\n ]\r\n });\r\n alert.present();\r\n }\r\n\r\n openUserGuide() {\r\n window.open(\"https://novopsych.com/user_guide/\", \"_blank\");\r\n }\r\n\r\n openFAQ() {\r\n window.open(\"https://novopsych.com/faq/\", \"_blank\");\r\n }\r\n\r\n openTerms() {\r\n window.open(\"https://novopsych.com/terms-conditions-privacy/\", \"_blank\");\r\n }\r\n\r\n openWebsite() {\r\n window.open(\"https://novopsych.com/\", \"_blank\")\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/upgrade-plan-old/upgrade-plan-old.ts"],"sourceRoot":""}