@@ -30,7 +30,7 @@ export class TestPage {
}

answerSelect(index, subindex, answer) {
this.tracker.trackEvent('test page', this.tracker.CLICK_ACTION, this.testQuestions[index][subindex].question, answer)
// this.tracker.trackEvent('test page', this.tracker.CLICK_ACTION, this.testQuestions[index][subindex].question, answer)
this.updateTest(index, subindex, answer);
}

@@ -87,7 +87,7 @@ export class TestPage {

ionViewDidLoad() {
console.log('ionViewDidLoad TestPage');
this.tracker.trackView('test page')
this.tracker.trackView('vista del test')
}

}
@@ -9,9 +9,18 @@
<ion-icon name="md-close" showWhen="android, windows"></ion-icon>
</button>
</ion-buttons>
<ion-buttons end addtofavoriteheader [favoriteItem]="navParams.data.universidadData"></ion-buttons>
</ion-toolbar>
</ion-header>

<ion-content padding>
<h2 text-center color="light" [innerHTML]="navParams.data.universidadData"></h2>
<h2 text-center color="light" [innerHTML]="navParams.data.universidadData.universidad"></h2>
<div *ngIf="navParams.data.universidadData.carreras.length">
<h4 text-center color="light">Carreras de esta universidad:</h4>
<ion-list>
<ion-item *ngFor="let carrera of navParams.data.universidadData.carreras;">
{{ carrera }}
</ion-item>
</ion-list>
</div>
</ion-content>
@@ -6,6 +6,18 @@ page-universidad {
background-size: cover;
.scroll-content {
background-color: rgba(0,0,0,0.45);
ion-list {
ion-item {
background: rgba(255,255,255,0.4);
border: 0;
.item-inner {
border-bottom: 0;
ion-label {
color: white;
}
}
}
}
}
}

@@ -1,17 +1,19 @@
import { Component } from '@angular/core';
import { NavController, NavParams, ViewController } from 'ionic-angular';
import { AnalyticsProvider } from '../../providers/analytics/analytics';

@Component({
selector: 'page-universidad',
templateUrl: 'universidad.html',
})
export class UniversidadPage {

constructor(public navCtrl: NavController, public navParams: NavParams, public viewCtrl: ViewController) {
constructor(public navCtrl: NavController, public tracker: AnalyticsProvider, public navParams: NavParams, public viewCtrl: ViewController) {
}

ionViewDidLoad() {
console.log('ionViewDidLoad UniversidadPage');
this.tracker.trackView('vista de universidad');
}

dismiss() {
@@ -4,12 +4,12 @@
<ion-list>
<ion-item>
<ion-label color="danger" stacked>Buscar</ion-label>
<ion-input type="text" (ionChange)="getUniversidades($event)" placeholder="busca entre todos los grados"></ion-input>
<ion-input type="text" (ionChange)="getUniversidades($event)" placeholder="busca entre todas las universidades"></ion-input>
</ion-item>
</ion-list>
<ion-list>
<ion-item *ngFor="let universidad of universidades; let i = index;" (click)="goToUniversidad(universidad)">
{{ universidad }}
{{ universidad.universidad }}
</ion-item>
</ion-list>
</ion-content>
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
import { NavController, NavParams, LoadingController, ModalController } from 'ionic-angular';
import { UniversidadesProvider } from '../../providers/universidades/universidades';
import { UniversidadPage } from '../universidad/universidad';
import { AnalyticsProvider } from '../../providers/analytics/analytics';

@Component({
selector: 'page-universidades',
@@ -12,11 +13,12 @@ export class UniversidadesPage {
universidades: Array<string>
universidadesCached: Array<string>

constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl: ModalController, public universidadesService: UniversidadesProvider, public loadingCtrl: LoadingController) {
constructor(public navCtrl: NavController, public tracker: AnalyticsProvider, public navParams: NavParams, public modalCtrl: ModalController, public universidadesService: UniversidadesProvider, public loadingCtrl: LoadingController) {
}

ionViewDidLoad() {
console.log('ionViewDidLoad UniversidadesPage');
this.tracker.trackView('vista de universidades');

let loading = this.loadingCtrl.create({
spinner: 'crescent'
@@ -0,0 +1,10 @@
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
name: 'noSnakeCase',
})
export class NoSnakeCasePipe implements PipeTransform {
transform(value: string, ...args) {
return value.toString().toLowerCase().replace(/_/g, " ");
}
}
@@ -0,0 +1,8 @@
import { NgModule } from '@angular/core';
import { NoSnakeCasePipe } from './no-snake-case/no-snake-case';
@NgModule({
declarations: [NoSnakeCasePipe],
imports: [],
exports: [NoSnakeCasePipe]
})
export class PipesModule {}
@@ -13,107 +13,143 @@ export class ColegiosMayoresProvider {
setTimeout(() => {
resolve([
{
videoUrl: 'https://player.vimeo.com/video/250951635?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/250951635',
"hasVideo": true,
career: "Colegio mayor ingenieria de software",
"index": 0,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/252883728?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/252883728',
"hasVideo": true,
career: "Colegio mayor filosofia",
"index": 1,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/251032750?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/251032750',
"hasVideo": true,
career: "Colegio mayor diseño de videojuegos y Productos Interactivos",
"index": 2,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/250951635?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/250951635',
"hasVideo": true,
career: "Colegio mayor ingenieria de software",
"index": 3,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/252883728?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/252883728',
"hasVideo": true,
career: "Colegio mayor filosofia",
"index": 4,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/251032750?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/251032750',
"hasVideo": true,
career: "Colegio mayor diseño de videojuegos y Productos Interactivos",
"index": 5,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/250951635?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/250951635',
"hasVideo": true,
career: "Colegio mayor ingenieria de software",
"index": 6,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/252883728?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/252883728',
"hasVideo": true,
career: "Colegio mayor filosofia",
"index": 7,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/251032750?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/251032750',
"hasVideo": true,
career: "Colegio mayor diseño de videojuegos y Productos Interactivos",
"index": 8,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/250951635?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/250951635',
"hasVideo": true,
career: "Colegio mayor ingenieria de software",
"index": 9,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/252883728?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/252883728',
"hasVideo": true,
career: "Colegio mayor filosofia",
"index": 10,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
long: 0,
}
},
{
videoUrl: 'https://player.vimeo.com/video/251032750?autoplay=1',
videoUrl: 'https://player.vimeo.com/video/251032750',
"hasVideo": true,
career: "Colegio mayor diseño de videojuegos y Productos Interactivos",
"index": 11,
"type": "colegio_mayor",
description: "una descripcion del colegio mayor",
location: {
lat: 0,
@@ -0,0 +1,40 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

@Injectable()
export class FavoritesProvider {

favorites: Array<{[key: string]: any}>

constructor(public http: HttpClient) {
console.log('Hello FavoritesProvider Provider');
this.favorites = [];
}

getFavorites() {
return this.favorites.sort((prev, next) => next.type);
}

addFavorite(item) {
if (!this.exists(item)) {
this.favorites.push(item);
}
console.warn(this.favorites, " --> add");
}

removeFavorite(item) {
this.removeFromFavorites(item);
console.warn(this.favorites, " --> remove");
}

exists(item) {
return this.favorites.filter(favorite => favorite.index === item.index && favorite.type === item.type).length > 0
}

removeFromFavorites(item) {
const index = this.favorites.findIndex(favorite => favorite.index === item.index && favorite.type === item.type)
// console.warn(index, this.favorites[index], item);
this.favorites.splice(index, 1);
}

}

Large diffs are not rendered by default.

Large diffs are not rendered by default.