Guest User

Untitled

a guest
Oct 8th, 2017
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.20 KB | None | 0 0
  1. import { Component, OnInit, OnDestroy } from '@angular/core';
  2. import * as html2canvas from 'html2canvas';
  3. import { Observable } from 'rxjs/Observable';
  4. import { Router } from '@angular/router';
  5. import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2/database';
  6. import * as firebase from 'firebase/app';
  7. import { AngularFireAuth } from 'angularfire2/auth';
  8. import { FormsModule } from '@angular/forms';
  9. import { ProfilService } from '../../../services/profil/profil.service';
  10. import { ActivatedRoute } from '@angular/router';
  11. import { User } from '../../../../models/User';
  12. import { Parrain } from '../../../../models/Parrain';
  13. import { Commercant } from '../../../../models/Commercant';
  14. import { FireImg } from '../../../../models/FireImg';
  15. import { OperationCommerciale } from '../../../../models/OperationCommerciale';
  16. import { CarteParrainage } from '../../../../models/CarteParrainage';
  17. import { OpCommercialService } from '../../../services/opCommercial/op-commercial.service';
  18. import { Subject } from 'rxjs/Subject';
  19. import { Subscription } from 'rxjs/Subscription';
  20. import {forEach} from '@angular/router/src/utils/collection';
  21. import { AuthService } from '../../../services/auth/auth.service';
  22. import { ToastrService } from '../../../typescripts/angular-bootstrap-md/pro';
  23. import * as _ from 'lodash';
  24.  
  25. @Component({
  26. selector: 'app-envoyer-carte',
  27. templateUrl: './envoyer-carte.component.html',
  28. styleUrls: ['./envoyer-carte.component.scss'],
  29. providers: [AuthService, OpCommercialService]
  30. })
  31. export class EnvoyerCarteComponent implements OnInit, OnDestroy {
  32.  
  33. radioParrain: string;
  34.  
  35. user: Observable<firebase.User>;
  36. localUser: any;
  37. parrain: Parrain;
  38. commercant: Commercant;
  39. opComm: OperationCommerciale;
  40. cartePar: CarteParrainage;
  41. birthdayTemp: Date;
  42. commList: FirebaseListObservable<any[]>;
  43. opCommList: FirebaseListObservable<any[]>;
  44. parrainExistList: FirebaseListObservable<any[]>;
  45. parrainSelected: FirebaseListObservable<any[]>;
  46. parrainAffList: FirebaseListObservable<any[]>;
  47. carteParList: FirebaseListObservable<any[]>;
  48. carteParExistList: FirebaseListObservable<any[]>;
  49. parSelect: string;
  50. selectPar: boolean;
  51. parrainAffListTemp = [];
  52. databaseRef: any;
  53.  
  54. /////
  55. parrainsTest: Parrain[];
  56. filteredParrainsTest: any[];
  57. subscription: Subscription;
  58.  
  59. validC: string;
  60. // startAt = new Subject();
  61. // endAt = new Subject();
  62. /////
  63.  
  64. yearTest: number;
  65.  
  66. minDateTimeTest: Date;
  67. maxDateTimeTest: Date;
  68. parrainDateTimeTest: Date;
  69.  
  70. carteExitDeja: boolean;
  71. carteEnvoieOK: boolean;
  72.  
  73. cartePars: any;
  74. filteredCartePars: any;
  75.  
  76. filters = {};
  77. secondaryApp: any;
  78. constructor(public afAuth: AngularFireAuth, public afDb: AngularFireDatabase,
  79. private router: Router, private route: ActivatedRoute,
  80. private authService: AuthService, private opComService: OpCommercialService, private toastrService: ToastrService) {
  81. this.user = afAuth.authState;
  82. this.carteExitDeja = false;
  83. this.carteEnvoieOK = false;
  84. this.filteredCartePars = {};
  85. this.radioParrain = '';
  86. this.validC = '';
  87. this.localUser = new User();
  88. this.parrain = new Parrain();
  89. this.commercant = new Commercant();
  90. this.cartePar = new CarteParrainage();
  91. this.cartePar.uid = firebase.database().ref().child('CarteParrainage').push().key;
  92. this.cartePar.historique = new Array();
  93. this.parrainAffList = null;
  94. this.minDateTimeTest = new Date('1917-01-01');
  95. this.maxDateTimeTest = new Date('2117-01-01');
  96. this.parrainDateTimeTest = new Date(this.parrain.birthday);
  97. this.yearTest = this.parrain.birthday.getFullYear();
  98. this.databaseRef = firebase.database().ref();
  99.  
  100. const config = {apiKey: 'AIzaSyD2O5MxwZ4BRWvVc77FZliBvtj0pmcdzos',
  101. authDomain: 'webappparrain.firebaseapp.com',
  102. databaseURL: 'https://webappparrain.firebaseio.com'};
  103. this.secondaryApp = null;
  104. this.secondaryApp = firebase.apps.length <= 1 ? firebase.initializeApp(config, 'Secondary') : firebase.app('Secondary');
  105.  
  106.  
  107. this.user.subscribe(
  108. (auth) => {
  109. if (auth) {
  110. this.commList = this.afDb.list('/Commercant/', {
  111. query: {
  112. orderByChild: 'uid',
  113. equalTo: auth.uid.toString()
  114. }
  115. }
  116. );
  117.  
  118. this.commList.forEach(commerc => {
  119. commerc.forEach(elementCommerc => {
  120. this.commercant = elementCommerc;
  121. });
  122. });
  123. // initialisation carte
  124. this.route.params.subscribe(params => {
  125. // this.test = params['idOp'];
  126. this.opCommList = this.afDb.list('/OperationCommercial/', {
  127. query: {
  128. orderByChild: 'uid',
  129. equalTo: params['idOp']
  130. }
  131. }
  132. );
  133. this.opCommList.forEach(op => {
  134. op.forEach(element => {
  135. this.opComm = element;
  136.  
  137. this.cartePar.name = this.opComm.name;
  138. this.cartePar.commercantCarte = this.opComm.commercantOpCom;
  139. this.cartePar.operationCommercialCarte = this.opComm;
  140. this.cartePar.dateDebut = this.opComm.dateDebut;
  141. this.cartePar.dateFin = this.opComm.dateFin;
  142.  
  143. console.log('bla' + this.minDateTimeTest);
  144. console.log('bla' + this.maxDateTimeTest);
  145. console.log('bla' + this.minDateTimeTest.getTime());
  146. console.log('bla' + this.maxDateTimeTest.getTime());
  147.  
  148. console.log('bla' + this.parrainDateTimeTest);
  149. console.log('bla' + this.parrainDateTimeTest.getTime());
  150.  
  151. const todayTemp = new Date(Date.now());
  152. const debutTemp = new Date(this.opComm.dateDebut);
  153. const finTemp = new Date(this.opComm.dateFin);
  154.  
  155. if (todayTemp.getTime() >= debutTemp.getTime() && todayTemp.getTime() <= finTemp.getTime()) {
  156. this.cartePar.status = 'Active';
  157. } else {
  158. this.cartePar.status = 'Inactive';
  159. }
  160. /*
  161. var dateTest = this.opComm.dateFin.toString().split(/[- :]/);
  162. this.cartePar.dateFin = new Date(Number(dateTest[0]), Number(dateTest[1]) - 1,
  163. Number(dateTest[2]), Number(dateTest[3]), Number(dateTest[4]), Number(dateTest[5]));
  164. */
  165. this.cartePar.carteTemplate = this.opComm.carteTemplate;
  166. });
  167. });
  168. // fin initialisation carte
  169. // si parrain affilié
  170. this.carteParList = this.afDb.list('/CarteParrainage/', {
  171. query: {
  172. orderByChild: 'operationCommercialCarte/uid',
  173. equalTo: params['idOp']
  174. }
  175. }
  176. );
  177. this.carteParList.forEach(carte => {
  178. carte.forEach(elementCarte => {
  179. console.log('elementCarte..parrainCarte.uid : ' + elementCarte.parrainCarte.uid);
  180. this.parrainAffList = this.afDb.list('/Parrain/', {
  181. query: {
  182. orderByChild: 'uid',
  183. equalTo: elementCarte.parrainCarte.uid
  184. }
  185. }
  186. );
  187. this.parrainAffList.forEach(parAf => {
  188. parAf.forEach(elementparAf => {
  189. this.parrainAffListTemp.push(
  190. {
  191. uid : elementparAf.uid,
  192. firstname : elementparAf.firstname,
  193. familyname: elementparAf.familyname
  194. });
  195. console.log('elementparAf.firstname' + elementparAf.firstname);
  196. });
  197. });
  198. });
  199. });
  200. });
  201. // fin si parrain affilié
  202. // si parrain exist non affilié
  203. this.parrainExistList = this.afDb.list('/Parrain/', {
  204. query: {
  205. orderByChild: 'uid'
  206. }
  207. }
  208. );
  209. // fin si parrain exist non affilié
  210. }
  211. }
  212. );
  213. }
  214.  
  215.  
  216. //////
  217. filter(query: string) {
  218. this.filteredParrainsTest = (query) ?
  219. this.parrainsTest.filter(p => (p.firstname.toLowerCase() + p.familyname.toLowerCase()).includes(query.toLowerCase())) :
  220. [];
  221. }
  222. //////
  223.  
  224. validationBirthday(){
  225. this.parrainDateTimeTest = new Date(this.parrain.birthday);
  226. if (this.parrainDateTimeTest.getTime() <= this.minDateTimeTest.getTime()
  227. || this.parrainDateTimeTest.getTime() >= this.maxDateTimeTest.getTime()) {
  228. return true;
  229. } else {
  230. return false;
  231. }
  232. }
  233.  
  234.  
  235. regiPar(){
  236. /*const config = {apiKey: 'AIzaSyD2O5MxwZ4BRWvVc77FZliBvtj0pmcdzos',
  237. authDomain: 'webappparrain.firebaseapp.com',
  238. databaseURL: 'https://webappparrain.firebaseio.com'};
  239. let secondaryApp = null;
  240. secondaryApp = firebase.initializeApp(config, 'Secondary');*/
  241.  
  242. let parrainTemp = new Parrain();
  243. this.carteEnvoieOK = false;
  244. this.parrain.status = 'Parrain';
  245. // this.parrain.birthday = this.parrainDateTimeTest;
  246. this.parrain.secretCode = this.getRandomArbitrary(1111, 9999).toString();
  247. this.parrain.password = this.getRandomArbitrary(111111, 999999).toString();
  248. // this.authService.signUp(this.parrain);
  249. parrainTemp = this.parrain;
  250. this.secondaryApp.auth().createUserWithEmailAndPassword(parrainTemp.email, parrainTemp.password).then(function(userCreate) {
  251. console.log('User ' + userCreate.uid + ' created successfully!');
  252. // I don't know if the next statement is necessary
  253. const imagePath = 'profilImage/' + userCreate.uid + '/userPic.jpg';
  254. const dbRef = firebase.database().ref();
  255. const userRef = dbRef.child('Parrain').child(userCreate.uid);
  256. userCreate.updateProfile({
  257. displayName: parrainTemp.status,
  258. photoURL: imagePath,
  259. emailVerified: true
  260. });
  261. try {
  262. parrainTemp.uid = userCreate.uid;
  263. parrainTemp.emailVerified = userCreate.emailVerified;
  264. userRef.set(parrainTemp);
  265. console.log('crer par: ' + parrainTemp.firstname);
  266. // this.cartePar.parrainCarte = parrainTemp;
  267.  
  268.  
  269.  
  270. this.secondaryApp.auth().sendPasswordResetEmail(userCreate.email);
  271. userCreate.sendEmailVerification();
  272.  
  273. console.log('avant logout firebase.auth().currentUser.uid: ');
  274. this.secondaryApp.auth().signOut();
  275. console.log('avant logout firebase.auth().currentUser.uid: ');
  276.  
  277. } catch (e) {
  278. // No content response..
  279. console.log('error dans envoyer carte !');
  280. console.log(e);
  281. // this.goToOpComm();
  282. // this.router.navigate(['/']);
  283. }
  284. //fin
  285. // this.secondaryApp.auth().signOut();
  286. });
  287.  
  288.  
  289. const parNewlistTemp = this.afDb.list('/Parrain/', {
  290. query: {
  291. orderByChild: 'email',
  292. equalTo: parrainTemp.email
  293. }
  294. }
  295. );
  296.  
  297. parNewlistTemp.forEach(par => {
  298. par.forEach(elementParTemp => {
  299. if (elementParTemp !== undefined) {
  300. if (elementParTemp.uid !== '') {
  301. this.getIdParrain(elementParTemp.uid);
  302. this.creerCartePar();
  303. this.carteEnvoieOK = true;
  304. setTimeout(() => {
  305. this.goToOpComm();
  306. this.toastrService.success('Envoie de la carte à ' + elementParTemp.familyname
  307. + ' ' + elementParTemp.firstname);
  308. },
  309. 3000);
  310. }
  311. }
  312. });
  313. });
  314. }
  315.  
  316. registerNewParrain() {
  317. this.carteEnvoieOK = false;
  318. this.parrain.status = 'Parrain';
  319. // this.parrain.birthday = this.parrainDateTimeTest;
  320. this.parrain.secretCode = this.getRandomArbitrary(1111, 9999).toString();
  321. this.parrain.password = this.getRandomArbitrary(111111, 999999).toString();
  322. // this.authService.signUp(this.parrain);
  323.  
  324. firebase.auth().createUserWithEmailAndPassword(this.parrain.email, this.parrain.password).then(userCreate => {
  325. const imagePath = 'profilImage/' + userCreate.uid + '/userPic.jpg';
  326. const userRef = this.databaseRef.child('Parrain').child(userCreate.uid);
  327.  
  328.  
  329. userCreate.updateProfile({
  330. displayName: this.parrain.status,
  331. photoURL: imagePath,
  332. emailVerified: true
  333. });
  334.  
  335. try {
  336. this.parrain.uid = userCreate.uid;
  337. this.parrain.emailVerified = userCreate.emailVerified;
  338.  
  339.  
  340.  
  341. userRef.set(this.parrain);
  342. console.log('crer par: ' + this.parrain.firstname);
  343. // this.cartePar.parrainCarte = this.parrain;
  344.  
  345. this.getIdParrain(userCreate.uid);
  346. console.log('creer par userCreate.uid: ' + userCreate.uid);
  347.  
  348. this.creerCartePar();
  349. console.log('creer par creerCartePar: ' + this.cartePar.uid);
  350.  
  351. firebase.auth().sendPasswordResetEmail(this.parrain.email);
  352. userCreate.sendEmailVerification();
  353.  
  354. console.log('avant logout firebase.auth().currentUser.uid: ' + firebase.auth().currentUser.uid);
  355. firebase.auth().signOut();
  356. firebase.auth().signInWithEmailAndPassword(this.commercant.email, this.commercant.password);
  357. console.log('avant logout firebase.auth().currentUser.uid: ' + firebase.auth().currentUser.uid);
  358. this.carteEnvoieOK = true;
  359. } catch (e) {
  360. // No content response..
  361. console.log('error dans envoyer carte !');
  362. console.log(e);
  363. // this.goToOpComm();
  364. // this.router.navigate(['/']);
  365. }
  366.  
  367.  
  368.  
  369. });
  370.  
  371. }
  372. getRandomArbitrary(min, max) {
  373. return Math.trunc(Math.random() * (max - min) + min);
  374. }
  375. initParSelect(){
  376. this.parSelect = '';
  377. }
  378.  
  379. getIdParrain(parUid) {
  380. this.carteEnvoieOK = false;
  381. this.carteExitDeja = false;
  382. console.log('parUid getidpar: ' + parUid);
  383.  
  384. const parlistTemp = this.afDb.list('/Parrain/', {
  385. query: {
  386. orderByChild: 'uid',
  387. equalTo: parUid
  388. }
  389. }
  390. );
  391.  
  392. parlistTemp.forEach(par => {
  393. par.forEach(elementParTemp => {
  394. this.parrain = elementParTemp;
  395. this.cartePar.parrainCarte = elementParTemp;
  396. console.log('ttthis.cartePar.parrainCarte.uid: ' + this.cartePar.parrainCarte.uid + this.cartePar.parrainCarte.firstname);
  397. });
  398. });
  399.  
  400. this.selectPar = true;
  401. console.log('this.cartePar.parrainCarte.uid: ' + this.cartePar.parrainCarte.uid + this.cartePar.parrainCarte.firstname);
  402.  
  403. if (this.radioParrain === 'Newparrain') {
  404. this.parSelect = ' à : '
  405. + this.cartePar.parrainCarte.familyname + ' '
  406. + this.cartePar.parrainCarte.firstname;
  407. } else if (this.radioParrain === 'ParrainExist'){
  408. this.parrainExistList.forEach(parEx => {
  409. parEx.forEach(elementparEx => {
  410. if (elementparEx.uid === parUid){
  411. this.parSelect = ' à : '
  412. + elementparEx.familyname + ' '
  413. + elementparEx.firstname;
  414. }
  415. });
  416. });
  417. }
  418.  
  419. // console.log('this.birthday parrain : ' + this.parrain.birthday);
  420. console.log('this.cartePar.commercantCarte.uid : ' + this.cartePar.commercantCarte.uid);
  421. console.log('this.cartePar..parrainCarte.uid : ' + this.cartePar.parrainCarte.uid);
  422. console.log('this.cartePar.operationCommercial.uid : ' + this.cartePar.operationCommercialCarte.uid);
  423. console.log('this.cartePar.dateDebut : ' + this.cartePar.dateDebut);
  424. console.log('this.cartePar.dateFin : ' + this.cartePar.dateFin);
  425.  
  426. }
  427.  
  428. applyFilters(listFiltrer: any, listAFiltrer: any) {
  429. this.filteredCartePars = _.filter(this.cartePars, _.conforms(this.filters));
  430. }
  431.  
  432. filterEgual(property: string, query: string) {
  433. this.filters[property] = val => val === query;
  434. }
  435.  
  436. filterDifferentDe(property: string, query: string) {
  437. this.filters[property] = val => val !== query;
  438. }
  439.  
  440. carteExist(parUid) {
  441. if (this.parSelect !== '' && this.carteExitDeja === false){
  442. this.afDb.list('/CarteParrainage/', {
  443. query: {
  444. orderByChild: 'operationCommercialCarte/uid',
  445. equalTo: this.opComm.uid
  446. }}).subscribe(cartes => {
  447. this.cartePars = cartes;
  448. for (let i = 0; i < cartes.length; i++){
  449. if (cartes[i].parrainCarte.uid === parUid){
  450. this.carteExitDeja = true;
  451. }
  452. }
  453. if (this.carteExitDeja === false) {
  454. console.log('cestBon !!');
  455. this.creerCartePar();
  456. this.carteEnvoieOK = true;
  457. setTimeout(() => {
  458. this.goToOpComm();
  459. this.toastrService.success('Envoie de la carte à ' + this.cartePar.parrainCarte.familyname
  460. + ' ' + this.cartePar.parrainCarte.firstname);
  461. },
  462. 3000);
  463. } else {
  464. console.log('cest pas bon ');
  465. // this.carteEnvoieOK = false;
  466. }
  467. /*
  468. this.applyFilters(this.filteredCartePars, this.cartePars);
  469. this.filterEgual('operationCommercialCarte/uid', this.opComm.uid);
  470. this.applyFilters(this.filteredCartePars, this.cartePars);
  471. console.log(this.filteredCartePars);
  472.  
  473.  
  474. this.filterEgual('parrainCarte/uid', parUid);
  475. this.applyFilters(this.filteredCartePars, this.cartePars);
  476. console.log(this.filteredCartePars);
  477. */
  478.  
  479.  
  480. //console.log(parUid);
  481. //console.log(this.opComm.uid);
  482. console.log(cartes);
  483. // console.log(this.cartePars);
  484. //console.log(this.filteredCartePars);
  485. /*if(this.filteredCartePars.length > 0){
  486. this.carteExitDeja = true;
  487. console.log(this.carteExitDeja);
  488. }else {
  489. this.carteExitDeja = false;
  490. console.log(this.carteExitDeja);
  491. }*/
  492. });
  493. /* this.carteParExistList = this.afDb.list('/CarteParrainage/', {
  494. query: {
  495. orderByChild: 'operationCommercialCarte/uid',
  496. equalTo: this.opComm.uid
  497. }
  498. }
  499. );*/
  500. // console.log('this.filteredCartePars.length: ' + this.filteredCartePars.length);
  501.  
  502.  
  503. /*
  504. this.carteParList.forEach(carte => {
  505. carte.forEach(elementCarte => {
  506. if (elementCarte.parrainCarte.uid === parUid) {
  507. this.carteExitDeja = true;
  508. // console.log('eeeeeeeeeeeeeeeeeeeeee');
  509. return true;
  510. } else {
  511. this.carteExitDeja = false;
  512. }
  513. });
  514. });
  515. if (this.carteExitDeja === false) {
  516. return false;
  517. } else if (this.carteExitDeja === true) {
  518. return true;
  519. }*/
  520. }
  521.  
  522. }
  523.  
  524. envoyerCartePar(){
  525. this.carteExist(this.cartePar.parrainCarte.uid);
  526.  
  527. // this.goToOpComm();
  528. }
  529. creerCartePar() {
  530. // this.opComService.creerCartePar(this.cartePar); inutile
  531. this.sectionToImage(this.cartePar);
  532. console.log('this.opComm.nbEnvoie: ' + this.opComm.nbEnvoie);
  533. this.opComm.nbEnvoie = ((+this.opComm.nbEnvoie) + 1).toString();
  534. console.log('this.opComm.nbEnvoie: ' + this.opComm.nbEnvoie);
  535.  
  536. const opEnvRef = this.databaseRef.child('OperationCommercial').child(this.opComm.uid.toString()).child('nbEnvoie');
  537. opEnvRef.set(this.opComm.nbEnvoie);
  538.  
  539. this.validC = 'ok';
  540.  
  541. }
  542. sectionToImage(maCarteP: CarteParrainage) {
  543. html2canvas(document.getElementById('subCard1'), {
  544. // allowTaint: true,
  545. useCORS: true,
  546. logging: true,
  547. onrendered: function (canvas) {
  548. const context = canvas.getContext('2d');
  549. const img = new Image();
  550.  
  551. const offsets = document.getElementById('subCard1').getBoundingClientRect();
  552. const imgTop = offsets.top;
  553. const imgLeft = offsets.left;
  554. //canvas.width = document.getElementById('subCard1').offsetWidth;
  555. //canvas.height = document.getElementById('subCard1').offsetHeight;
  556. img.onload = function () {
  557. context.drawImage(img, imgLeft, imgTop, 1920, 1200);
  558. };
  559. img.crossOrigin = 'Anonymous';
  560. canvas.crossOrigin = 'Anonymous';
  561.  
  562. canvas.id = 'canvas';
  563. // document.body.appendChild(canvas);
  564. console.log('avant blob');
  565. canvas.toBlob(blob => {
  566.  
  567. const nouvelleImg = new Image();
  568. const storageRef = firebase.storage().ref();
  569. nouvelleImg.setAttribute('crossOrigin', 'anonymous');
  570. nouvelleImg.src = blob;
  571. console.log('blob : ' + blob);
  572. console.log('maCarteP.uid: ' + maCarteP.uid);
  573.  
  574. storageRef.child('CarteParrainage/' + maCarteP.uid + '/carteTemplate.jpg').put(blob).then((snapshot) => {
  575. const updates = {};
  576. maCarteP.carteTemplate.path = 'CarteParrainage/' + maCarteP.uid + '/carteTemplate.jpg';
  577. maCarteP.carteTemplate.filename = maCarteP.name;
  578. maCarteP.carteTemplate.downloadURL = snapshot.downloadURL;
  579. console.log('maCarteP.carteTemplate.filename : ' + maCarteP.carteTemplate.filename);
  580. console.log('maCarteP.uid: ' + maCarteP.uid);
  581. updates['CarteParrainage/' + maCarteP.uid] = maCarteP;
  582. console.log('updates[\'CarteParrainage/\' + maCarteP.uid].name ' + updates['CarteParrainage/' + maCarteP.uid].name);
  583. firebase.database().ref().update(updates);
  584. console.log('fin du blob');
  585. });
  586. }, 'image/jpeg', 20);
  587. }
  588. });
  589. }
  590.  
  591. sectionToImage2(maCarteP: CarteParrainage) {
  592. html2canvas(document.getElementById('subCard1'), {
  593. // allowTaint: true,
  594. useCORS: true,
  595. logging: true,
  596. width: 750,
  597. height: 1050,
  598. onrendered: function (canvas) {
  599.  
  600.  
  601. const context = canvas.getContext('2d');
  602. context.scale(2, 2);
  603. const img = new Image();
  604.  
  605. const offsets = document.getElementById('subCard1').getBoundingClientRect();
  606.  
  607.  
  608. const imgTop = offsets.top;
  609. const imgLeft = offsets.left;
  610. const w = offsets.width;
  611. const h = offsets.height;
  612.  
  613. // var w = 1000;
  614. // var h = 1000;
  615. //canvas.width = w * 2;
  616. //canvas.height = h * 2;
  617. // canvas.style.width = offsets.width + 'px';
  618. // canvas.style.height = offsets.height + 'px';
  619.  
  620.  
  621. img.onload = function () {
  622. context.drawImage(img, imgLeft, imgTop);
  623. };
  624. img.crossOrigin = 'Anonymous';
  625. canvas.crossOrigin = 'Anonymous';
  626.  
  627. canvas.id = 'canvas';
  628. var imgg = canvas.toDataURLHD('image/png', 1);
  629. window.open(imgg);
  630. document.body.appendChild(canvas);
  631. console.log('avant blob');
  632. /*canvas.toBlob(blob => {
  633.  
  634. const nouvelleImg = new Image();
  635. const storageRef = firebase.storage().ref();
  636. nouvelleImg.setAttribute('crossOrigin', 'anonymous');
  637. nouvelleImg.src = blob;
  638. console.log('blob : ' + blob);
  639. console.log('maCarteP.uid: ' + maCarteP.uid);
  640.  
  641. storageRef.child('CarteParrainage/' + maCarteP.uid + '/carteTemplate.jpg').put(blob).then((snapshot) => {
  642. const updates = {};
  643. maCarteP.carteTemplate.path = 'CarteParrainage/' + maCarteP.uid + '/carteTemplate.jpg';
  644. maCarteP.carteTemplate.filename = maCarteP.name;
  645. maCarteP.carteTemplate.downloadURL = snapshot.downloadURL;
  646. console.log('maCarteP.carteTemplate.filename : ' + maCarteP.carteTemplate.filename);
  647. console.log('maCarteP.uid: ' + maCarteP.uid);
  648. updates['CarteParrainage/' + maCarteP.uid] = maCarteP;
  649. console.log('updates[\'CarteParrainage/\' + maCarteP.uid].name ' + updates['CarteParrainage/' + maCarteP.uid].name);
  650. firebase.database().ref().update(updates);
  651. console.log('fin du blob');
  652. });
  653. }, 'image/jpeg', 20);*/
  654. }
  655. });
  656. }
  657. goToOpComm() {
  658. this.router.navigate(['/opCommercial']);
  659. }
  660. //////
  661. ngOnInit() {
  662. this.subscription = this.opComService.getParrains()
  663. .subscribe(parrains => this.parrainsTest = parrains);
  664. }
  665. //////
  666.  
  667. ngOnDestroy() {
  668. this.validC = '';
  669. if (this.subscription){
  670. this.subscription.unsubscribe();
  671. }
  672.  
  673. this.radioParrain = '';
  674. this.cartePar = {
  675. uid: '',
  676. name: '',
  677. parrainCarte: new Parrain(),
  678. commercantCarte: new Commercant(),
  679. operationCommercialCarte: new OperationCommerciale(),
  680. dateDebut: new Date(),
  681. dateFin: new Date(),
  682. avantageCumule: '',
  683. avantageRecuperer: '',
  684. carteTemplate: new FireImg(),
  685. status: '',
  686. historique: []
  687. };
  688. this.localUser = {
  689. uid: '',
  690. image: new FireImg(),
  691. email: '',
  692. emailVerified: false,
  693. password: '',
  694. status: ''
  695. };
  696. this.parrain = {
  697. uid: '',
  698. image: new FireImg(),
  699. email: '',
  700. emailVerified: false,
  701. password: '',
  702. familyname: '',
  703. firstname: '',
  704. sex: '',
  705. birthday: new Date(),
  706. telephone: '',
  707. idCard: '',
  708. secretCode: '',
  709. status: ''
  710. };
  711. }
  712. }
Add Comment
Please, Sign In to add comment