Commit a0fcfc32 authored by Bon Lemuel Dela Cruz's avatar Bon Lemuel Dela Cruz

Working Version Dec 2016

parent 66930d2e
// Type definitions for Cordova Keyboard plugin
// Project: https://github.com/driftyco/ionic-plugins-keyboard
// Definitions by: Hendrik Maus <https://github.com/hendrikmaus>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module Ionic {
interface Keyboard {
/**
* Hide the keyboard accessory bar with the next, previous and done buttons.
*
* @param hide
*/
hideKeyboardAccessoryBar(hide:boolean): void;
/**
* Close the keyboard if it is open.
*/
close(): void;
/**
* Force keyboard to be shown on Android.
* This typically helps if autofocus on a text element does not pop up the keyboard automatically
*
* Supported Platforms: Android, Blackberry 10
*/
show(): void;
/**
* Disable native scrolling, useful if you are using JavaScript to scroll
*
* @param disbale
*/
disableScroll(disbale:boolean): void;
/**
* Whether or not the keyboard is currently visible.
*/
isVisible: boolean;
}
}
// Type definitions for Apache Cordova
// Project: http://cordova.apache.org
// Definitions by: Microsoft Open Technologies Inc. <http://msopentech.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
//
// Copyright (c) Microsoft Open Technologies, Inc.
// Licensed under the MIT license.
interface Cordova {
/** Invokes native functionality by specifying corresponding service name, action and optional parameters.
* @param success A success callback function.
* @param fail An error callback function.
* @param service The service name to call on the native side (corresponds to a native class).
* @param action The action name to call on the native side (generally corresponds to the native class method).
* @param args An array of arguments to pass into the native environment.
*/
exec(success: () => any, fail: () => any, service: string, action: string, args?: string[]): void;
/** Gets the operating system name. */
platformId: string;
/** Gets Cordova framework version */
version: string;
/** Defines custom logic as a Cordova module. Other modules can later access it using module name provided. */
define(moduleName: string, factory: (require: any, exports: any, module: any) => any): void;
/** Access a Cordova module by name. */
require(moduleName: string): any;
/** Namespace for Cordova plugin functionality */
plugins:CordovaPlugins;
}
interface CordovaPlugins {}
interface Document {
addEventListener(type: "deviceready", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: "resume", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: "backbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: "menubutton", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: "searchbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: "startcallbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: "endcallbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: "volumedownbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: "volumeupbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "deviceready", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "resume", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "backbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "menubutton", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "searchbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "startcallbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "endcallbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "volumedownbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: "volumeupbutton", listener: (ev: Event) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: (ev: Event) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: (ev: Event) => any, useCapture?: boolean): void;
}
interface Window {
cordova:Cordova;
}
// cordova/argscheck module
interface ArgsCheck {
checkArgs(argsSpec: string, functionName: string, args: any[], callee?: any): void;
getValue(value?: any, defaultValue?: any): any;
enableChecks: boolean;
}
// cordova/urlutil module
interface UrlUtil {
makeAbsolute(url: string): string
}
/** Apache Cordova instance */
declare var cordova: Cordova;
declare module 'cordova' {
export = cordova;
}
// Type definitions for Apache Cordova Device plugin.
// Project: https://github.com/apache/cordova-plugin-device
// Definitions by: Microsoft Open Technologies, Inc. <http://msopentech.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
//
// Copyright (c) Microsoft Open Technologies, Inc.
// Licensed under the MIT license.
/**
* This plugin defines a global device object, which describes the device's hardware and software.
* Although the object is in the global scope, it is not available until after the deviceready event.
*/
interface Device {
/** Get the version of Cordova running on the device. */
cordova: string;
/**
* The device.model returns the name of the device's model or product. The value is set
* by the device manufacturer and may be different across versions of the same product.
*/
model: string;
/** Get the device's operating system name. */
platform: string;
/** Get the device's Universally Unique Identifier (UUID). */
uuid: string;
/** Get the operating system version. */
version: string;
/** Get the device's manufacturer. */
manufacturer: string;
/** Whether the device is running on a simulator. */
isVirtual: boolean;
/** Get the device hardware serial number. */
serial: string;}
declare var device: Device;
\ No newline at end of file
// Type definitions for Apache Cordova Dialogs plugin.
// Project: https://github.com/apache/cordova-plugin-dialogs
// Definitions by: Microsoft Open Technologies, Inc. <http://msopentech.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
//
// Copyright (c) Microsoft Open Technologies, Inc.
// Licensed under the MIT license.
interface Navigator {
/** This plugin provides access to some native dialog UI elements. */
notification: Notification
}
/** This plugin provides access to some native dialog UI elements. */
interface Notification {
/**
* Shows a custom alert or dialog box. Most Cordova implementations use a native dialog box for this feature,
* but some platforms use the browser's alert function, which is typically less customizable.
* @param message Dialog message.
* @param alertCallback Callback to invoke when alert dialog is dismissed.
* @param title Dialog title, defaults to 'Alert'.
* @param buttonName Button name, defaults to OK.
*/
alert(message: string,
alertCallback: () => void,
title?: string,
buttonName?: string): void;
/**
* The device plays a beep sound.
* @param times The number of times to repeat the beep.
*/
beep(times: number): void;
/**
* Displays a customizable confirmation dialog box.
* @param message Dialog message.
* @param confirmCallback Callback to invoke with index of button pressed (1, 2, or 3)
* or when the dialog is dismissed without a button press (0).
* @param title Dialog title, defaults to Confirm.
* @param buttonLabels Array of strings specifying button labels, defaults to [OK,Cancel].
*/
confirm(message: string,
confirmCallback: (choice: number) => void,
title?: string,
buttonLabels?: string[]): void;
/**
* Displays a native dialog box that is more customizable than the browser's prompt function.
* @param message Dialog message.
* @param promptCallback Callback to invoke when a button is pressed.
* @param title Dialog title, defaults to "Prompt".
* @param buttonLabels Array of strings specifying button labels, defaults to ["OK","Cancel"].
* @param defaultText Default textbox input value, default: "".
*/
prompt(message: string,
promptCallback: (result: NotificationPromptResult) => void,
title?: string,
buttonLabels?: string[],
defaultText?: string): void;
}
/** Object, passed to promptCallback */
interface NotificationPromptResult {
/**
* The index of the pressed button. Note that the index uses one-based indexing, so the value is 1, 2, 3, etc.
* 0 is the result when the dialog is dismissed without a button press.
*/
buttonIndex: number;
/** The text entered in the prompt dialog box. */
input1: string;
}
\ No newline at end of file
// Type definitions for Apache Cordova InAppBrowser plugin 1.4.0
// Project: https://github.com/apache/cordova-plugin-inappbrowser
// Definitions by: Microsoft Open Technologies, Inc. <http://msopentech.com>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
//
// Copyright (c) Microsoft Open Technologies, Inc.
// Licensed under the MIT license.
interface Window {
/**
* Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.
* @param url The URL to load.
* @param target The target in which to load the URL, an optional parameter that defaults to _self.
* @param options Options for the InAppBrowser. Optional, defaulting to: location=yes.
* The options string must not contain any blank space, and each feature's
* name/value pairs must be separated by a comma. Feature names are case insensitive.
*/
open(url: string, target?: "_self", options?: string): InAppBrowser;
/**
* Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.
* @param url The URL to load.
* @param target The target in which to load the URL, an optional parameter that defaults to _self.
* @param options Options for the InAppBrowser. Optional, defaulting to: location=yes.
* The options string must not contain any blank space, and each feature's
* name/value pairs must be separated by a comma. Feature names are case insensitive.
*/
open(url: string, target?: "_blank", options?: string): InAppBrowser;
/**
* Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.
* @param url The URL to load.
* @param target The target in which to load the URL, an optional parameter that defaults to _self.
* @param options Options for the InAppBrowser. Optional, defaulting to: location=yes.
* The options string must not contain any blank space, and each feature's
* name/value pairs must be separated by a comma. Feature names are case insensitive.
*/
open(url: string, target?: "_system", options?: string): InAppBrowser;
/**
* Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.
* @param url The URL to load.
* @param target The target in which to load the URL, an optional parameter that defaults to _self.
* @param options Options for the InAppBrowser. Optional, defaulting to: location=yes.
* The options string must not contain any blank space, and each feature's
* name/value pairs must be separated by a comma. Feature names are case insensitive.
*/
open(url: string, target?: string, options?: string, replace?: boolean): InAppBrowser;
}
/**
* The object returned from a call to window.open.
* NOTE: The InAppBrowser window behaves like a standard web browser, and can't access Cordova APIs.
*/
interface InAppBrowser extends Window {
onloadstart: (type: InAppBrowserEvent) => void;
onloadstop: (type: InAppBrowserEvent) => void;
onloaderror: (type: InAppBrowserEvent) => void;
onexit: (type: InAppBrowserEvent) => void;
// addEventListener overloads
/**
* Adds a listener for an event from the InAppBrowser.
* @param type the event to listen for
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an InAppBrowserEvent object as a parameter.
*/
addEventListener(type: "loadstart", callback: (event: InAppBrowserEvent) => void): void;
/**
* Adds a listener for an event from the InAppBrowser.
* @param type the event to listen for
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an InAppBrowserEvent object as a parameter.
*/
addEventListener(type: "loadstop", callback: (event: InAppBrowserEvent) => void): void;
/**
* Adds a listener for an event from the InAppBrowser.
* @param type the event to listen for
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an InAppBrowserEvent object as a parameter.
*/
addEventListener(type: "loaderror", callback: (event: InAppBrowserEvent) => void): void;
/**
* Adds a listener for an event from the InAppBrowser.
* @param type the event to listen for
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an InAppBrowserEvent object as a parameter.
*/
addEventListener(type: "exit", callback: (event: InAppBrowserEvent) => void): void;
/**
* Adds a listener for an event from the InAppBrowser.
* @param type the event to listen for
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an Event object as a parameter.
*/
addEventListener(type: string, callback: (event: Event) => void): void;
// removeEventListener overloads
/**
* Removes a listener for an event from the InAppBrowser.
* @param type The event to stop listening for.
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an InAppBrowserEvent object as a parameter.
*/
removeEventListener(type: "loadstart", callback: (event: InAppBrowserEvent) => void): void;
/**
* Removes a listener for an event from the InAppBrowser.
* @param type The event to stop listening for.
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an InAppBrowserEvent object as a parameter.
*/
removeEventListener(type: "loadstop", callback: (event: InAppBrowserEvent) => void): void;
/**
* Removes a listener for an event from the InAppBrowser.
* @param type The event to stop listening for.
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an InAppBrowserEvent object as a parameter.
*/
removeEventListener(type: "loaderror", callback: (event: InAppBrowserEvent) => void): void;
/**
* Removes a listener for an event from the InAppBrowser.
* @param type The event to stop listening for.
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an InAppBrowserEvent object as a parameter.
*/
removeEventListener(type: "exit", callback: (event: InAppBrowserEvent) => void): void;
/**
* Removes a listener for an event from the InAppBrowser.
* @param type The event to stop listening for.
* loadstart: event fires when the InAppBrowser starts to load a URL.
* loadstop: event fires when the InAppBrowser finishes loading a URL.
* loaderror: event fires when the InAppBrowser encounters an error when loading a URL.
* exit: event fires when the InAppBrowser window is closed.
* @param callback the function that executes when the event fires. The function is
* passed an Event object as a parameter.
*/
removeEventListener(type: string, callback: (event: Event) => void): void;
/** Closes the InAppBrowser window. */
close(): void;
/**
* Displays an InAppBrowser window that was opened hidden. Calling this has no effect
* if the InAppBrowser was already visible.
*/
show(): void;
/**
* Injects JavaScript code into the InAppBrowser window.
* @param script Details of the script to run, specifying either a file or code key.
* @param callback The function that executes after the JavaScript code is injected.
* If the injected script is of type code, the callback executes with
* a single parameter, which is the return value of the script, wrapped in an Array.
* For multi-line scripts, this is the return value of the last statement,
* or the last expression evaluated.
*/
executeScript(script: { code: string }, callback: (result: any) => void): void;
/**
* Injects JavaScript code into the InAppBrowser window.
* @param script Details of the script to run, specifying either a file or code key.
* @param callback The function that executes after the JavaScript code is injected.
* If the injected script is of type code, the callback executes with
* a single parameter, which is the return value of the script, wrapped in an Array.
* For multi-line scripts, this is the return value of the last statement,
* or the last expression evaluated.
*/
executeScript(script: { file: string }, callback: (result: any) => void): void;
/**
* Injects CSS into the InAppBrowser window.
* @param css Details of the script to run, specifying either a file or code key.
* @param callback The function that executes after the CSS is injected.
*/
insertCSS(css: { code: string }, callback: () => void): void;
/**
* Injects CSS into the InAppBrowser window.
* @param css Details of the script to run, specifying either a file or code key.
* @param callback The function that executes after the CSS is injected.
*/
insertCSS(css: { file: string }, callback: () => void): void;
}
interface InAppBrowserEvent extends Event {
/** the eventname, either loadstart, loadstop, loaderror, or exit. */
type: string;
/** the URL that was loaded. */
url: string;
/** the error code, only in the case of loaderror. */
code: number;
/** the error message, only in the case of loaderror. */
message: string;
}
interface Cordova {
InAppBrowser: InAppBrowser;
}
// Type definitions for Apache Cordova Network Information plugin.
// Project: https://github.com/apache/cordova-plugin-network-information
// Definitions by: Microsoft Open Technologies, Inc. <http://msopentech.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
//
// Copyright (c) Microsoft Open Technologies, Inc.
// Licensed under the MIT license.
interface Navigator {
/**
* This plugin provides an implementation of an old version of the Network Information API.
* It provides information about the device's cellular and wifi connection, and whether the device has an internet connection.
*/
connection: Connection;
// see https://github.com/apache/cordova-plugin-network-information/blob/dev/doc/index.md#api-change
// for
network: {
/**
* This plugin provides an implementation of an old version of the Network Information API.
* It provides information about the device's cellular and wifi connection, and whether the device has an internet connection.
*/
connection: Connection
}
}
interface Document {
addEventListener(type: "online", connectionStateCallback: () => any, useCapture?: boolean): void;
addEventListener(type: "offline", connectionStateCallback: () => any, useCapture?: boolean): void;
}
/**
* The connection object, exposed via navigator.connection, provides information
* about the device's cellular and wifi connection.
*/
interface Connection {
/**
* This property offers a fast way to determine the device's network connection state, and type of connection.
* One of:
* Connection.UNKNOWN
* Connection.ETHERNET
* Connection.WIFI
* Connection.CELL_2G
* Connection.CELL_3G
* Connection.CELL_4G
* Connection.CELL
* Connection.NONE
*/
type: string
}
declare var Connection: {
UNKNOWN: string;
ETHERNET: string;
WIFI: string;
CELL_2G: string;
CELL_3G: string;
CELL_4G: string;
CELL: string;
NONE: string;
}
// Type definitions for Apache Cordova Splashscreen plugin.
// Project: https://github.com/apache/cordova-plugin-splashscreen
// Definitions by: Microsoft Open Technologies, Inc. <http://msopentech.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
//
// Copyright (c) Microsoft Open Technologies, Inc.
// Licensed under the MIT license.
interface Navigator {
/** This plugin displays and hides a splash screen during application launch. */
splashscreen: {
/** Dismiss the splash screen. */
hide(): void;
/** Displays the splash screen. */
show(): void;
}
}
\ No newline at end of file
// Type definitions for Apache Cordova StatusBar plugin.
// Project: https://github.com/apache/cordova-plugin-statusbar
// Definitions by: Xinkai Chen <https://github.com/Xinkai>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/**
* Global object StatusBar.
*/
interface Window {
StatusBar: StatusBar;
}
/**
* The StatusBar object provides some functions to customize the iOS and Android StatusBar.
*/
interface StatusBar {
/**
* On iOS 7, make the statusbar overlay or not overlay the WebView.
* @param isOverlay On iOS 7, set to false to make the statusbar appear like iOS 6.
* Set the style and background color to suit using the other functions.
*/
overlaysWebView: (isOverlay: boolean) => void;
/**
* Use the default statusbar (dark text, for light backgrounds).
*/
styleDefault: () => void;
/**
* Use the lightContent statusbar (light text, for dark backgrounds).
*/
styleLightContent: () => void;
/**
* Use the blackTranslucent statusbar (light text, for dark backgrounds).
*/
styleBlackTranslucent: () => void;
/**
* Use the blackOpaque statusbar (light text, for dark backgrounds).
*/
styleBlackOpaque: () => void;
/**
* On iOS 7, when you set StatusBar.statusBarOverlaysWebView to false,
* you can set the background color of the statusbar by color name.
* @param color Supported color names are:
* black, darkGray, lightGray, white, gray, red, green, blue, cyan, yellow, magenta, orange, purple, brown
*/
backgroundColorByName: (color: string) => void;
/**
* Sets the background color of the statusbar by a hex string.
* @param color CSS shorthand properties are also supported.
* On iOS 7, when you set StatusBar.statusBarOverlaysWebView to false, you can set the background color of the statusbar by a hex string (#RRGGBB).
* On WP7 and WP8 you can also specify values as #AARRGGBB, where AA is an alpha value
*/
backgroundColorByHexString: (color: string) => void;
/**
* Hide the statusbar.
*/
hide: () => void;
/**
* Show the statusbar.
*/
show: () => void;
/**
* Read this property to see if the statusbar is visible or not.
*/
isVisible: boolean;
}
declare var StatusBar: StatusBar;
This source diff could not be displayed because it is too large. You can view the blob instead.
{}
\ No newline at end of file
...@@ -7,7 +7,7 @@ angular.module('blazer.mapcontrollers', []) ...@@ -7,7 +7,7 @@ angular.module('blazer.mapcontrollers', [])
/* SIDE MENU TRIGGER */ /* SIDE MENU TRIGGER */
$ionicSideMenuDelegate.canDragContent(false); // SET SIDE MENU DRAG FALSE $ionicSideMenuDelegate.canDragContent(false); // SET SIDE MENU DRAG FALSE
$scope.openMenu = function(){ $scope.openMenu = function() {
$ionicSideMenuDelegate.toggleLeft(); $ionicSideMenuDelegate.toggleLeft();
} }
...@@ -24,19 +24,19 @@ angular.module('blazer.mapcontrollers', []) ...@@ -24,19 +24,19 @@ angular.module('blazer.mapcontrollers', [])
/* MAP COMPONENTS */ /* MAP COMPONENTS */
var markers, circles, line; var markers, circles, line;
$scope.drawMarkers = function(lat, lon, message){ $scope.drawMarkers = function(lat, lon, message) {
markers = new L.marker([lat, lon]).addTo(map); markers = new L.marker([lat, lon]).addTo(map);
markers.bindPopup(message).openPopup(); markers.bindPopup(message).openPopup();
} }
/* Draw Trip Marker */ /* Draw Trip Marker */
$scope.drawTripMarkers = function(lat, lon){ $scope.drawTripMarkers = function(lat, lon) {
markers = new L.marker([lat, lon]).addTo(map); markers = new L.marker([lat, lon]).addTo(map);
markers.bindPopup('On Trip').openPopup(); markers.bindPopup('On Trip').openPopup();
} }
/* Draw Radius */ /* Draw Radius */
$scope.drawCircle = function(lat, lon){ $scope.drawCircle = function(lat, lon) {
circle = L.circle([lat, lon], 500, { circle = L.circle([lat, lon], 500, {
color: '', color: '',
fillColor: '#165c5b', fillColor: '#165c5b',
...@@ -48,7 +48,7 @@ angular.module('blazer.mapcontrollers', []) ...@@ -48,7 +48,7 @@ angular.module('blazer.mapcontrollers', [])
var logCoordinates = []; // FOR LOGGING TRIP var logCoordinates = []; // FOR LOGGING TRIP
var setLatLng; var setLatLng;
var coords; var coords;
$scope.drawLineTrack = function(lat, lon){ $scope.drawLineTrack = function(lat, lon) {
var polylineOptions = { var polylineOptions = {
color: '#185c82', color: '#185c82',
weight: 6, weight: 6,
...@@ -73,10 +73,12 @@ angular.module('blazer.mapcontrollers', []) ...@@ -73,10 +73,12 @@ angular.module('blazer.mapcontrollers', [])
/* EVENT LISTENERS */ /* EVENT LISTENERS */
$scope.mapButton = true; $scope.mapButton = true;
function onMapDrag(e) { function onMapDrag(e) {
$scope.mapButton = false; $scope.mapButton = false;
console.log("Map Drag ", $scope.mapButton); console.log("Map Drag ", $scope.mapButton);
} }
function onMapDragEnd(e) { function onMapDragEnd(e) {
$scope.mapButton = true; $scope.mapButton = true;
console.log("Map Drag ", $scope.mapButton); console.log("Map Drag ", $scope.mapButton);
...@@ -84,11 +86,11 @@ angular.module('blazer.mapcontrollers', []) ...@@ -84,11 +86,11 @@ angular.module('blazer.mapcontrollers', [])
map.on('move', onMapDrag); // FIRE MAPDRAG map.on('move', onMapDrag); // FIRE MAPDRAG
map.on('moveend', onMapDragEnd); // FIRE MAPDRAG END map.on('moveend', onMapDragEnd); // FIRE MAPDRAG END
$scope.clearPolylines = function(){ $scope.clearPolylines = function() {
console.debug("********** Clear Polylines **********"); console.debug("********** Clear Polylines **********");
for(var i = 0; i < coordinates.length; i ++){ for (var i = 0; i < coordinates.length; i++) {
map.removeLayer(line._latlngs[i]); map.removeLayer(line._latlngs[i]);
console.error("[ CHECK LOOP ]", i +" "+coordinates.length); console.error("[ CHECK LOOP ]", i + " " + coordinates.length);
console.log("[ DELETE LINES ]", line._latlngs[i]); console.log("[ DELETE LINES ]", line._latlngs[i]);
// coordinates.splice(i, 1); // REMOVE AN ITEM ON AN ARRAY // coordinates.splice(i, 1); // REMOVE AN ITEM ON AN ARRAY
} }
...@@ -96,17 +98,16 @@ angular.module('blazer.mapcontrollers', []) ...@@ -96,17 +98,16 @@ angular.module('blazer.mapcontrollers', [])
/* LOAD USER ON MAP WITH RADIUS */ /* LOAD USER ON MAP WITH RADIUS */
var userLocated = false; var userLocated = false;
$scope.initializedLocateUser = function(){ $scope.initializedLocateUser = function() {
console.debug("********** Initialized Location **********"); console.debug("********** Initialized Location **********");
var posOptions = {enableHighAccuracy: true}; var posOptions = { enableHighAccuracy: true };
$cordovaGeolocation.getCurrentPosition(posOptions).then(function (position) { $cordovaGeolocation.getCurrentPosition(posOptions).then(function(position) {
map.setView(new L.LatLng(position.coords.latitude, position.coords.longitude), 15); // SET MAP VIEW map.setView(new L.LatLng(position.coords.latitude, position.coords.longitude), 15); // SET MAP VIEW
if(userLocated == false){ if (userLocated == false) {
$scope.drawMarkers(position.coords.latitude, position.coords.longitude, 'Your current location'); // DRAW MARKERS $scope.drawMarkers(position.coords.latitude, position.coords.longitude, 'Your current location'); // DRAW MARKERS
$scope.drawCircle(position.coords.latitude, position.coords.longitude); // DRAW CIRCLE RADIUS $scope.drawCircle(position.coords.latitude, position.coords.longitude); // DRAW CIRCLE RADIUS
userLocated = true; userLocated = true;
} } else {
else {
console.log("USER ALREADY LOCATED"); console.log("USER ALREADY LOCATED");
userLocated = true; userLocated = true;
} }
...@@ -116,29 +117,29 @@ angular.module('blazer.mapcontrollers', []) ...@@ -116,29 +117,29 @@ angular.module('blazer.mapcontrollers', [])
} }
/* Calculate Distance between points */ /* Calculate Distance between points */
$scope.getDistanceFromLatLonInKm = function(lat1,lon1,lat2,lon2) { $scope.getDistanceFromLatLonInKm = function(lat1, lon1, lat2, lon2) {
var R = 6371; // Radius of the earth in km var R = 6371; // Radius of the earth in km
var dLat = deg2rad(lat2-lat1); // deg2rad function var dLat = deg2rad(lat2 - lat1); // deg2rad function
var dLon = deg2rad(lon2-lon1); var dLon = deg2rad(lon2 - lon1);
var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLon/2) * Math.sin(dLon/2); var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c; // Distance in km var d = R * c; // Distance in km
console.log("[ DISTANCE BETWEEN COORDINDATES ]", d); console.log("[ DISTANCE BETWEEN COORDINDATES ]", d);
return d; return d;
} }
function deg2rad(deg) { function deg2rad(deg) {
return deg * (Math.PI/180) return deg * (Math.PI / 180)
} }
/* MAIN ALGORITHM */ /* MAIN ALGORITHM */
var tripStatusRef = false; var tripStatusRef = false;
$scope.getUserLocation = function(){ $scope.getUserLocation = function() {
console.debug("********** Trip Location **********"); console.debug("********** Trip Location **********");
var posOptions = {enableHighAccuracy: true}; var posOptions = { enableHighAccuracy: true };
$cordovaGeolocation.getCurrentPosition(posOptions).then(function (position) { $cordovaGeolocation.getCurrentPosition(posOptions).then(function(position) {
console.log("[ CURRENT LOCATION ]", position.coords); console.log("[ CURRENT LOCATION ]", position.coords);
if(!tripStatusRef){ if (!tripStatusRef) {
$scope.drawLineTrack(position.coords.latitude, position.coords.longitude); // INITIAL LINE ON TRIP $scope.drawLineTrack(position.coords.latitude, position.coords.longitude); // INITIAL LINE ON TRIP
tripStatusRef = true; tripStatusRef = true;
} }
...@@ -149,21 +150,16 @@ angular.module('blazer.mapcontrollers', []) ...@@ -149,21 +150,16 @@ angular.module('blazer.mapcontrollers', [])
lng: position.coords.longitude lng: position.coords.longitude
} }
if(logCoordinates.length > 0) // CHECK IF ARAY IS EMPTY if (logCoordinates.length > 0) // CHECK IF ARAY IS EMPTY
{
if($scope.getDistanceFromLatLonInKm(locationData.lat, locationData.lng, logCoordinates[0].lat, logCoordinates[0].lng) > 0.03)
{ {
if ($scope.getDistanceFromLatLonInKm(locationData.lat, locationData.lng, logCoordinates[0].lat, logCoordinates[0].lng) > 0.03) {
logCoordinates.splice(0, 0, locationData); logCoordinates.splice(0, 0, locationData);
console.log("[ LOCATION ARRAY ]", logCoordinates); console.log("[ LOCATION ARRAY ]", logCoordinates);
$scope.drawLineTrack(position.coords.latitude, position.coords.longitude); // DRAW LINE ON TRIP $scope.drawLineTrack(position.coords.latitude, position.coords.longitude); // DRAW LINE ON TRIP
} } else {
else
{
console.error("[ You need to be 500 meters away from your current position ]", logCoordinates); console.error("[ You need to be 500 meters away from your current position ]", logCoordinates);
} }
} } else {
else
{
logCoordinates.splice(0, 0, locationData); logCoordinates.splice(0, 0, locationData);
console.log("[ INITIAL LOCATION ARRAY ]", logCoordinates); console.log("[ INITIAL LOCATION ARRAY ]", logCoordinates);
} }
...@@ -173,9 +169,9 @@ angular.module('blazer.mapcontrollers', []) ...@@ -173,9 +169,9 @@ angular.module('blazer.mapcontrollers', [])
}); });
} }
$scope.refreshMap = function(){ $scope.refreshMap = function() {
console.debug("********** Refresh Map **********"); console.debug("********** Refresh Map **********");
if(userLocated == true){ if (userLocated == true) {
map.removeLayer(markers); map.removeLayer(markers);
map.removeLayer(circle); map.removeLayer(circle);
map.removeLayer(geojsonLayer); map.removeLayer(geojsonLayer);
...@@ -188,13 +184,12 @@ angular.module('blazer.mapcontrollers', []) ...@@ -188,13 +184,12 @@ angular.module('blazer.mapcontrollers', [])
} }
/* CONFIRM TRIP DESTINATION */ /* CONFIRM TRIP DESTINATION */
$scope.confirmTripDestination = function(){ $scope.confirmTripDestination = function() {
var tripPopup = $ionicPopup.show({ var tripPopup = $ionicPopup.show({
title: 'Trip Destination', title: 'Trip Destination',
subTitle: 'Select your destination', subTitle: 'Select your destination',
scope: $scope, scope: $scope,
buttons: [ buttons: [{
{
text: 'School', text: 'School',
type: 'button-dark button-outline', type: 'button-dark button-outline',
onTap: function() { onTap: function() {
...@@ -218,9 +213,9 @@ angular.module('blazer.mapcontrollers', []) ...@@ -218,9 +213,9 @@ angular.module('blazer.mapcontrollers', [])
/* SET SEARCH BARANGAY */ /* SET SEARCH BARANGAY */
$scope.BarangayList = {}; $scope.BarangayList = {};
$scope.getAllBarangay = function(){ $scope.getAllBarangay = function() {
console.debug("******* GET ALL BARANGAY ******"); console.debug("******* GET ALL BARANGAY ******");
getBlazer.getAllBarangay().then(function(data){ getBlazer.getAllBarangay().then(function(data) {
$scope.BarangayList = data; $scope.BarangayList = data;
console.log("[ Barangay Data ]", JSON.stringify($scope.BarangayList)); console.log("[ Barangay Data ]", JSON.stringify($scope.BarangayList));
}); });
...@@ -229,7 +224,7 @@ angular.module('blazer.mapcontrollers', []) ...@@ -229,7 +224,7 @@ angular.module('blazer.mapcontrollers', [])
$scope.selectedBarangayData = ''; $scope.selectedBarangayData = '';
$scope.currentBarangay = ''; $scope.currentBarangay = '';
$scope.currentBarangayTime = ''; $scope.currentBarangayTime = '';
$scope.onLoadSelection = function(){ $scope.onLoadSelection = function() {
$scope.data = {}; $scope.data = {};
// An elaborate, custom popup // An elaborate, custom popup
var myPopup = $ionicPopup.show({ var myPopup = $ionicPopup.show({
...@@ -237,14 +232,13 @@ angular.module('blazer.mapcontrollers', []) ...@@ -237,14 +232,13 @@ angular.module('blazer.mapcontrollers', [])
title: 'Select your Barangay', title: 'Select your Barangay',
subTitle: 'To view the most COMMON MODE of transportation in your barangay.', subTitle: 'To view the most COMMON MODE of transportation in your barangay.',
scope: $scope, scope: $scope,
buttons: [ buttons: [{
{
text: 'Select', text: 'Select',
type: 'button-dark button-outline', type: 'button-dark button-outline',
onTap: function(e) { onTap: function(e) {
console.log("[ SELECT DATA ]", $scope.data.selectedBarangay +" "+ $scope.data.selectedBarangayTime); console.log("[ SELECT DATA ]", $scope.data.selectedBarangay + " " + $scope.data.selectedBarangayTime);
// LOAD MAP FUNCTIONS // LOAD MAP FUNCTIONS
$scope.selectedBarangayData = $scope.data.selectedBarangay +" "+ $scope.data.selectedBarangayTime; $scope.selectedBarangayData = $scope.data.selectedBarangay + " " + $scope.data.selectedBarangayTime;
$scope.currentBarangay = $scope.data.selectedBarangay; $scope.currentBarangay = $scope.data.selectedBarangay;
$scope.currentBarangayTime = $scope.data.selectedBarangayTime; $scope.currentBarangayTime = $scope.data.selectedBarangayTime;
$scope.data = {}; $scope.data = {};
...@@ -263,7 +257,7 @@ angular.module('blazer.mapcontrollers', []) ...@@ -263,7 +257,7 @@ angular.module('blazer.mapcontrollers', [])
/* CHART JS DATA */ /* CHART JS DATA */
$scope.BarangayData = {}; $scope.BarangayData = {};
$scope.loadBarangayData = function(){ $scope.loadBarangayData = function() {
console.debug("********** Get Barangay Data **********"); console.debug("********** Get Barangay Data **********");
var barangayinfo = { var barangayinfo = {
"barangay": $scope.currentBarangay, "barangay": $scope.currentBarangay,
...@@ -292,7 +286,7 @@ angular.module('blazer.mapcontrollers', []) ...@@ -292,7 +286,7 @@ angular.module('blazer.mapcontrollers', [])
]; ];
$scope.value = ''; $scope.value = '';
$scope.loadValue = function(val){ $scope.loadValue = function(val) {
$scope.value = val; $scope.value = val;
} }
...@@ -330,7 +324,7 @@ angular.module('blazer.mapcontrollers', []) ...@@ -330,7 +324,7 @@ angular.module('blazer.mapcontrollers', [])
var intervalTrigger; var intervalTrigger;
userLocated = false; userLocated = false;
$scope.tripStart = function(){ $scope.tripStart = function() {
map.removeLayer(markers); map.removeLayer(markers);
map.removeLayer(circle); map.removeLayer(circle);
map.removeLayer(geojsonLayer); map.removeLayer(geojsonLayer);
...@@ -347,10 +341,10 @@ angular.module('blazer.mapcontrollers', []) ...@@ -347,10 +341,10 @@ angular.module('blazer.mapcontrollers', [])
} }
/* END TRIP */ /* END TRIP */
$scope.tripEnd = function(){ $scope.tripEnd = function() {
/* CHECK IF MOBILE IS ONLINE */ /* CHECK IF MOBILE IS ONLINE */
console.log("[ NETWORK STATUS ]", $cordovaNetwork.getNetwork()); console.log("[ NETWORK STATUS ]", $cordovaNetwork.getNetwork());
if($cordovaNetwork.getNetwork() == Connection.WIFI || $cordovaNetwork.getNetwork() == Connection.CELL_2G || $cordovaNetwork.getNetwork() == Connection.CELL_3G ||$cordovaNetwork.getNetwork() == Connection.CELL_4G){ if ($cordovaNetwork.getNetwork() == Connection.WIFI || $cordovaNetwork.getNetwork() == Connection.CELL_2G || $cordovaNetwork.getNetwork() == Connection.CELL_3G || $cordovaNetwork.getNetwork() == Connection.CELL_4G) {
$scope.tripStatus = false; $scope.tripStatus = false;
tripStatusRef = false; tripStatusRef = false;
...@@ -369,14 +363,13 @@ angular.module('blazer.mapcontrollers', []) ...@@ -369,14 +363,13 @@ angular.module('blazer.mapcontrollers', [])
$scope.sendTrackingLocation(); // SEND LOCATION DATA $scope.sendTrackingLocation(); // SEND LOCATION DATA
$scope.openEndTripSurvey(); // OPEN END TRIP SURVEY $scope.openEndTripSurvey(); // OPEN END TRIP SURVEY
} } else {
else {
$cordovaDialogs.alert('You need to be ONLINE before ending this trip. Thank you.', 'Ooops', "OKAY"); $cordovaDialogs.alert('You need to be ONLINE before ending this trip. Thank you.', 'Ooops', "OKAY");
} }
} }
/* SEND LOCATION DATA */ /* SEND LOCATION DATA */
$scope.sendTrackingLocation = function(){ $scope.sendTrackingLocation = function() {
var username = localStorage.getItem("username"); var username = localStorage.getItem("username");
console.debug("********** Send Tracking Location **********"); console.debug("********** Send Tracking Location **********");
postBlazer.LogTrip(logCoordinates, username) postBlazer.LogTrip(logCoordinates, username)
...@@ -391,14 +384,14 @@ angular.module('blazer.mapcontrollers', []) ...@@ -391,14 +384,14 @@ angular.module('blazer.mapcontrollers', [])
} }
/* LOAD HEATMAP */ /* LOAD HEATMAP */
$scope.loadHeatMap = function(){ $scope.loadHeatMap = function() {
console.debug("********** Load Heat Map **********"); console.debug("********** Load Heat Map **********");
} }
/* Show Blazers Data */ /* Show Blazers Data */
$scope.blazersData = {}; $scope.blazersData = {};
$scope.getBlazersData = function(){ $scope.getBlazersData = function() {
getBlazer.getBlazerDataInfo().then(function(data){ getBlazer.getBlazerDataInfo().then(function(data) {
$scope.blazersData = data; $scope.blazersData = data;
console.log("[ Blazer Data ]", JSON.stringify($scope.blazersData)); console.log("[ Blazer Data ]", JSON.stringify($scope.blazersData));
$scope.plotBlazers(); $scope.plotBlazers();
...@@ -408,7 +401,7 @@ angular.module('blazer.mapcontrollers', []) ...@@ -408,7 +401,7 @@ angular.module('blazer.mapcontrollers', [])
/* Plot Blazers Data on Map */ /* Plot Blazers Data on Map */
var parsedData = []; var parsedData = [];
var geojsonLayer = []; var geojsonLayer = [];
$scope.plotBlazers = function(){ $scope.plotBlazers = function() {
console.debug("********** Plot Blazers on Map **********"); console.debug("********** Plot Blazers on Map **********");
...@@ -448,16 +441,14 @@ angular.module('blazer.mapcontrollers', []) ...@@ -448,16 +441,14 @@ angular.module('blazer.mapcontrollers', [])
}; };
// PLOT DATA // PLOT DATA
function onEachFeature(feature, layer) function onEachFeature(feature, layer) {
{ if (feature.properties && feature.properties.username) {
if (feature.properties && feature.properties.username) layer.bindPopup('<div class="pop-up-containter">Blazer</h4><div style="font-size: 15px">' + feature.properties.username + '</div></div>');
{
layer.bindPopup('<div class="pop-up-containter">Blazer</h4><div style="font-size: 15px">'+feature.properties.username+'</div></div>');
} }
} }
geojsonLayer = L.geoJson(parsedData, { geojsonLayer = L.geoJson(parsedData, {
onEachFeature: onEachFeature, onEachFeature: onEachFeature,
pointToLayer: function (feature, latlng) { pointToLayer: function(feature, latlng) {
return L.circleMarker(latlng, iconOptions); return L.circleMarker(latlng, iconOptions);
} }
}).addTo(map); }).addTo(map);
...@@ -465,21 +456,20 @@ angular.module('blazer.mapcontrollers', []) ...@@ -465,21 +456,20 @@ angular.module('blazer.mapcontrollers', [])
} }
/* Weekly Survey Call */ /* Weekly Survey Call */
$scope.loadWeeklySurvey = function(){ $scope.loadWeeklySurvey = function() {
console.debug("********** Open Weekly Survey **********"); console.debug("********** Open Weekly Survey **********");
var newDate = new Date(); var newDate = new Date();
var currentDate = $filter('date')(newDate, 'yyyyMMww'); var currentDate = $filter('date')(newDate, 'yyyyMMww');
var dayToday = $filter('date')(newDate, 'EEEE'); var dayToday = $filter('date')(newDate, 'EEEE');
console.log("[ Date Today ]" , currentDate); console.log("[ Date Today ]", currentDate);
if(dayToday == 'Friday' || dayToday == 'Saturday'){ if (dayToday == 'Friday' || dayToday == 'Saturday') {
if(localStorage.getItem(currentDate) === null){ if (localStorage.getItem(currentDate) === null) {
var tripPopup = $ionicPopup.show({ var tripPopup = $ionicPopup.show({
title: 'Hey it\'s '+dayToday+'!', title: 'Hey it\'s ' + dayToday + '!',
subTitle: 'Take the weekly survey. You are awesome!', subTitle: 'Take the weekly survey. You are awesome!',
scope: $scope, scope: $scope,
buttons: [ buttons: [{
{
text: 'Let\s go!', text: 'Let\s go!',
type: 'button-dark button-outline', type: 'button-dark button-outline',
onTap: function(e) { onTap: function(e) {
...@@ -500,20 +490,19 @@ angular.module('blazer.mapcontrollers', []) ...@@ -500,20 +490,19 @@ angular.module('blazer.mapcontrollers', [])
} }
} }
$scope.triggerWeeklySurvey = function(){ $scope.triggerWeeklySurvey = function() {
console.debug("********** Trigger Weekly Survey **********"); console.debug("********** Trigger Weekly Survey **********");
var newDate = new Date(); var newDate = new Date();
var currentDate = $filter('date')(newDate, 'yyyyMMww'); var currentDate = $filter('date')(newDate, 'yyyyMMww');
var dayToday = $filter('date')(newDate, 'EEEE'); var dayToday = $filter('date')(newDate, 'EEEE');
console.log("[ Date Today ]" , currentDate); console.log("[ Date Today ]", currentDate);
if(localStorage.getItem(currentDate) === null){ if (localStorage.getItem(currentDate) === null) {
var tripPopup = $ionicPopup.show({ var tripPopup = $ionicPopup.show({
title: 'Hey it\'s '+dayToday+'!', title: 'Hey it\'s ' + dayToday + '!',
subTitle: 'Take the weekly survey. You are awesome!', subTitle: 'Take the weekly survey. You are awesome!',
scope: $scope, scope: $scope,
buttons: [ buttons: [{
{
text: 'Let\s go!', text: 'Let\s go!',
type: 'button-dark button-outline', type: 'button-dark button-outline',
onTap: function(e) { onTap: function(e) {
...@@ -530,8 +519,7 @@ angular.module('blazer.mapcontrollers', []) ...@@ -530,8 +519,7 @@ angular.module('blazer.mapcontrollers', [])
} }
] ]
}); });
} } else {
else {
$cordovaDialogs.alert('You\'ve already taken this weeks\' weekly survey. Thank you.', 'Weekly Survey', "OKAY"); $cordovaDialogs.alert('You\'ve already taken this weeks\' weekly survey. Thank you.', 'Weekly Survey', "OKAY");
} }
} }
......
...@@ -11,12 +11,20 @@ ...@@ -11,12 +11,20 @@
</ion-side-menu-content> </ion-side-menu-content>
<ion-side-menu side="left" width="220"> <ion-side-menu side="left" width="220">
<ion-content class="darkSide"> <ion-content class="darkSide">
<h3 class="text-light"><center>BLAZE</center></h3> <h3 class="text-light">
<ion-item nav-clear menu-close href="#/app/profile" class="item-avatar"><ionic-letter-avatar data="{{ user.username }}" shape="round" charcount="2"></ionic-letter-avatar><h4 class="text-light">{{ user.username }}</h4><h5 class="text-light">Blazer User</h5></ion-item> <center>BLAZE</center>
</h3>
<ion-item nav-clear menu-close href="#/app/profile" class="item-avatar">
<ionic-letter-avatar data="{{ user.username }}" shape="round" charcount="2"></ionic-letter-avatar>
<h4 class="text-light">{{ user.username }}</h4>
<h5 class="text-light">Blazer User</h5>
</ion-item>
<ion-item nav-clear menu-close href="#/app/map" class="item-icon item-icon-left"><i class="icon ion-android-compass"></i>Blaze Network</ion-item> <ion-item nav-clear menu-close href="#/app/map" class="item-icon item-icon-left"><i class="icon ion-android-compass"></i>Blaze Network</ion-item>
<!-- <ion-item nav-clear menu-close href="#/app/offerride" class="item-icon item-icon-left"><i class="icon ion-android-car"></i>Offer a Ride</ion-item> --> <!-- <ion-item nav-clear menu-close href="#/app/offerride" class="item-icon item-icon-left"><i class="icon ion-android-car"></i>Offer a Ride</ion-item> -->
<ion-item nav-clear menu-close href="#/app/sharedride" class="item-icon item-icon-left"><i class="icon ion-android-contacts"></i>Shared Ride</ion-item> <ion-item nav-clear menu-close href="#/app/sharedride" class="item-icon item-icon-left"><i class="icon ion-android-contacts"></i>Shared Ride</ion-item>
<ion-item nav-clear menu-close href="#/app/status" class="item-icon item-icon-left"><i class="icon ion-android-wifi"></i>My Travel Stats</ion-item> <ion-item nav-clear menu-close href="#/app/status" class="item-icon item-icon-left"><i class="icon ion-android-wifi"></i>My Travel Stats</ion-item>
<ion-item nav-clear menu-close href="#/app/status" class="item-icon item-icon-left"><i class="icon ion-android-wifi"></i>My Diary</ion-item>
<ion-item nav-clear menu-close href="#/app/status" class="item-icon item-icon-left"><i class="icon ion-android-wifi"></i>Trip Logging</ion-item>
<ion-item nav-clear menu-close href="#/app/about" class="item-icon item-icon-left"><i class="icon ion-android-bulb"></i>About</ion-item> <ion-item nav-clear menu-close href="#/app/about" class="item-icon item-icon-left"><i class="icon ion-android-bulb"></i>About</ion-item>
<ion-item nav-clear menu-close href="#/app/settings" class="item-icon item-icon-left"><i class="icon ion-android-settings"></i>Settings</ion-item> <ion-item nav-clear menu-close href="#/app/settings" class="item-icon item-icon-left"><i class="icon ion-android-settings"></i>Settings</ion-item>
</ion-content> </ion-content>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment