import { SiteService } from './../../../../../core/services/site/site.service'; import { SITES } from './../../../../../core/mocks/data'; import { Site } from 'src/app/core/interfaces/site/site'; import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core'; import { OwlOptions } from 'ngx-owl-carousel-o'; import { environment } from 'src/environments/environment'; @Component({ selector: 'app-list-sites', templateUrl: './list-sites.component.html', styleUrls: ['./list-sites.component.scss'], }) export class ListSitesComponent implements OnInit { //@Input() sites!: Site[]; @Output() emitAllyId = new EventEmitter(); url = environment.BASE_URL_API; sites: Site[] = SITES; nextPage: string | null = null; previousPage: string | null = null; actualPage = environment.BASE_URL_API+'/allys/'; numberPages = [1, 2, 3, 4, 5, 6]; pageSelect = 0; pageMax = 0; pageMaxInSlide = 0; constructor(private siteService: SiteService) {} ngOnInit() { this.getSites(); } getSites(){ this.siteService.getSitesWithPagination(this.pageSelect+1).subscribe( (data) => { this.sites = data.results; this.pageMaxInSlide = Math.ceil(data.count/2) < 6 ? Math.ceil(data.count/2) : 6; this.pageMax = Math.ceil(data.count/2) ; this.numberPages = []; for(let i=1; i <= this.pageMaxInSlide; i++ ){ this.numberPages.push(i); } }, (error) => { console.log(error); } ) } handlePatternAllyId($event: number) { this.emitAllyId.emit($event); } avanzar() { if (this.pageSelect == this.pageMaxInSlide && this.numberPages[5] == this.pageMax) { return; } else { if (this.pageSelect == this.pageMaxInSlide) { this.numberPages = this.numberPages.map(function (val) { return ++val; }); } else { this.pageSelect += 1; } } this.getSites(); } retroceder() { if (this.pageSelect == 0 && this.numberPages[0] == 1) { return; } else { if (this.pageSelect == 0) { this.numberPages = this.numberPages.map(function (val) { return --val; }); } else { this.pageSelect -= 1; } } this.getSites(); } newPage(index: number) { this.pageSelect = index; this.getSites(); } }