import { Component, OnInit, OnDestroy } from "@angular/core"; import { Injectable } from "@angular/core"; import { VALID_EMAIL_PATTERN, VALID_NAMES_PATTERN } from '../../constants'; import {Router} from "@angular/router"; import { BehaviorSubject, Subscription, Observable } from 'rxjs/Rx'; import { HelperDataService } from '../../services/helper-data-service'; import { ILoginInfo, ILoginInfoToken } from "../../store/logininfo/logininfo.types"; import { LOGININFO_INITIAL_STATE } from "../../store/logininfo/logininfo.initial-state"; import { NgRedux, select } from "ng2-redux"; import { IAppState } from "../../store/store"; import { FormBuilder, FormGroup, FormControl, FormArray, Validators, } from '@angular/forms'; @Component({ selector: 'helpdesk', template: `

Ηλεκτρονικές δηλώσεις προτίμησης ΕΠΑΛ για το νέο σχολικό έτος

Σε περίπτωση που αντιμετωπίζετε οποιοδήποτε πρόβλημα με την καταχώριση της αίτησής σας, παρακαλούμε να συμπληρώσετε την παρακάτω φόρμα.

Φόρμα Επικοινωνίας

Το πεδίο δεν μπορεί να αφεθεί κενό!
Πληκτρολογήστε ένα σωστό συντακτικά email!
Το πεδίο δεν μπορεί να αφεθεί κενό!
Πληκτρολογήστε το όνομά σας!
Το πεδίο δεν μπορεί να αφεθεί κενό!
Πληκτρολογήστε το επώνυμό σας!
Το πεδίο δεν μπορεί να αφεθεί κενό!
Πληκτρολογήστε ενα μήνυμα!


Τηλ. Επικοινωνίας: 2103443014, 2103442231, 2103443359, 2103442034, 2103443309 (ώρες: 8:00 - 16:00)

` }) @Injectable() export default class HelpDesk implements OnInit, OnDestroy { public formGroup: FormGroup; private emailSent: BehaviorSubject; private loginInfo$: BehaviorSubject; private showLoader: BehaviorSubject; constructor(private fb: FormBuilder, private hds: HelperDataService, private _ngRedux: NgRedux) { this.loginInfo$ = new BehaviorSubject(LOGININFO_INITIAL_STATE); this.showLoader = new BehaviorSubject(false); this.formGroup = fb.group({ userEmail: ['', [Validators.pattern(VALID_EMAIL_PATTERN),Validators.required]], userName: ['', [Validators.pattern(VALID_NAMES_PATTERN),Validators.required]], userSurname: ['', [Validators.pattern(VALID_NAMES_PATTERN),Validators.required]], userMessage: ['', [Validators.required]], }) this.emailSent = new BehaviorSubject(false); } public showModal(popupMsgId): void { ($(popupMsgId)).modal('show'); } public hideModal(popupMsgId): void { ($(popupMsgId)).modal('hide'); } public onHidden(popupMsgId): void { } ngOnDestroy() { if (this.loginInfo$) this.loginInfo$.unsubscribe(); } ngOnInit() { ($('#mailsent')).appendTo("body"); ($('#dangermodal')).appendTo("body"); ($('#fillfields')).appendTo("body"); this._ngRedux.select(state => { if (state.loginInfo.size > 0) { state.loginInfo.reduce(({}, loginInfoToken) => { this.formGroup.controls['userEmail'].setValue(loginInfoToken.cu_email); this.formGroup.controls['userName'].setValue(loginInfoToken.cu_name); this.formGroup.controls['userSurname'].setValue(loginInfoToken.cu_surname); return loginInfoToken; }, {}); } return state.loginInfo; }).subscribe(this.loginInfo$); } sendmail() { if (this.formGroup.invalid){ this.showModal("#fillfields"); } else { this.showLoader.next(true); this.hds.sendmail(this.formGroup.value.userEmail, this.formGroup.value.userName, this.formGroup.value.userSurname,this.formGroup.value.userMessage) .then(res => { this.emailSent.next(true); this.showLoader.next(false); this.showModal("#mailsent"); }) .catch(err => { console.log(err); this.showLoader.next(false); this.showModal("#dangermodal"); }); } } }