UNPKG

awaken-direct-democracy

Version:

This is the functional skeleton / working mock up of a disruptive app to increase voter turnout and participation driven at the start by just one person - Tom Atkinson in New Zealand - after watching in horror the signing of the TPPA in Auckland February

100 lines (86 loc) 2.73 kB
import { Component } from '@angular/core'; import { ActionSheet, ActionSheetController, Config, NavController } from 'ionic-angular'; // import { InAppBrowser } from 'ionic-native'; import { ConferenceData } from '../../providers/conference-data'; import { SessionDetailPage } from '../session-detail/session-detail'; import { SpeakerDetailPage } from '../speaker-detail/speaker-detail'; @Component({ selector: 'page-candidate-list', templateUrl: 'candidate-list.html' }) export class CandidateListPage { actionSheet: ActionSheet; speakers = []; constructor(public actionSheetCtrl: ActionSheetController, public navCtrl: NavController, public confData: ConferenceData, public config: Config) { confData.getSpeakers().then(speakers => { this.speakers = speakers; }); } goToSessionDetail(session) { this.navCtrl.push(SessionDetailPage, session); } goToSpeakerDetail(speakerName: string) { this.navCtrl.push(SpeakerDetailPage, speakerName); } goToSpeakerTwitter(speaker) { // TODO FIX // let app = new InAppBrowser(`https://twitter.com/${speaker.twitter}`, '_blank'); // app.on('loadstop').subscribe( // (ev) => { // console.log('InAppBrowser loaded!'); // }); } openSpeakerShare(speaker) { let actionSheet = this.actionSheetCtrl.create({ title: 'Share ' + speaker.name, buttons: [ { text: 'Copy Link', handler: () => { console.log('Copy link clicked on https://twitter.com/' + speaker.twitter); if (window['cordova'] && window['cordova'].plugins.clipboard) { window['cordova'].plugins.clipboard.copy('https://twitter.com/' + speaker.twitter); } } }, { text: 'Share via ...', handler: () => { console.log('Share via clicked'); } }, { text: 'Cancel', role: 'cancel', handler: () => { console.log('Cancel clicked'); } } ] }); actionSheet.present(); } openContact(speaker) { let mode = this.config.get('mode'); let actionSheet = this.actionSheetCtrl.create({ title: 'Contact with ' + speaker.name, buttons: [ { text: `Email ( ${speaker.email} )`, icon: mode !== 'ios' ? 'mail' : null, handler: () => { window.open('mailto:' + speaker.email); } }, { text: `Call ( ${speaker.phone} )`, icon: mode !== 'ios' ? 'call' : null, handler: () => { window.open('tel:' + speaker.phone); } } ] }); actionSheet.present(); } }