@@ -6,6 +6,26 @@ |
||
6 | 6 |
<meta name="description" content=""> |
7 | 7 |
<meta name="viewport" content="width=device-width"> |
8 | 8 |
<!-- Place favicon.ico and apple-touch-icon.png in the root directory --> |
9 |
+ <link rel="apple-touch-icon-precomposed" sizes="57x57" href="http://jamesperet.com/apple-touch-icon-57x57.png" /> |
|
10 |
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="http://jamesperet.com/apple-touch-icon-114x114.png" /> |
|
11 |
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="http://jamesperet.com/apple-touch-icon-72x72.png" /> |
|
12 |
+ <link rel="apple-touch-icon-precomposed" sizes="144x144" href="http://jamesperet.com/apple-touch-icon-144x144.png" /> |
|
13 |
+ <link rel="apple-touch-icon-precomposed" sizes="60x60" href="http://jamesperet.com/apple-touch-icon-60x60.png" /> |
|
14 |
+ <link rel="apple-touch-icon-precomposed" sizes="120x120" href="http://jamesperet.com/apple-touch-icon-120x120.png" /> |
|
15 |
+ <link rel="apple-touch-icon-precomposed" sizes="76x76" href="http://jamesperet.com/apple-touch-icon-76x76.png" /> |
|
16 |
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="http://jamesperet.com/apple-touch-icon-152x152.png" /> |
|
17 |
+ <link rel="icon" type="image/png" href="http://jamesperet.com/favicon-196x196.png" sizes="196x196" /> |
|
18 |
+ <link rel="icon" type="image/png" href="http://jamesperet.com/favicon-96x96.png" sizes="96x96" /> |
|
19 |
+ <link rel="icon" type="image/png" href="http://jamesperet.com/favicon-32x32.png" sizes="32x32" /> |
|
20 |
+ <link rel="icon" type="image/png" href="http://jamesperet.com/favicon-16x16.png" sizes="16x16" /> |
|
21 |
+ <link rel="icon" type="image/png" href="http://jamesperet.com/favicon-128.png" sizes="128x128" /> |
|
22 |
+ <meta name="application-name" content="James Peret Landing Page"/> |
|
23 |
+ <meta name="msapplication-TileColor" content="#FFFFFF" /> |
|
24 |
+ <meta name="msapplication-TileImage" content="http://jamesperet.commstile-144x144.png" /> |
|
25 |
+ <meta name="msapplication-square70x70logo" content="http://jamesperet.commstile-70x70.png" /> |
|
26 |
+ <meta name="msapplication-square150x150logo" content="http://jamesperet.commstile-150x150.png" /> |
|
27 |
+ <meta name="msapplication-wide310x150logo" content="http://jamesperet.commstile-310x150.png" /> |
|
28 |
+ <meta name="msapplication-square310x310logo" content="http://jamesperet.commstile-310x310.png" /> |
|
9 | 29 |
<!-- build:css(.) styles/vendor.css --> |
10 | 30 |
<!-- bower:css --> |
11 | 31 |
<!-- endbower --> |
@@ -32,9 +52,9 @@ |
||
32 | 52 |
<div class="container-fluid link-list"> |
33 | 53 |
<div class="row-fluid"> |
34 | 54 |
<div class="col-sm-12 fx-fade-down fx-easing-sine fx-speed-800" ng-show="menuAnimationStart"> |
35 |
- <a href="http://blog.j1x.co" class="btn btn-link btn-lg">Blog</a> | |
|
55 |
+ <a href="http://blog.j1x.co" class="btn btn-link btn-lg" ng-click="track('Blog view')" target="_blank">Blog</a> | |
|
36 | 56 |
<a ui-sref="now" class="btn btn-link btn-lg" ui-sref-active="active">Now</a> | |
37 |
- <a href="http://registry.jsonresume.org/jamesperet" class="btn btn-link btn-lg">Resume</a> |
|
57 |
+ <a href="http://registry.jsonresume.org/jamesperet" class="btn btn-link btn-lg" ng-click="track('Resume view')" target="_blank">Resume</a> |
|
38 | 58 |
</div> |
39 | 59 |
</div> |
40 | 60 |
</div> |
@@ -50,7 +70,7 @@ |
||
50 | 70 |
r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r) |
51 | 71 |
}(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); |
52 | 72 |
|
53 |
- ga('create', 'UA-XXXXX-X'); |
|
73 |
+ ga('create', 'UA-4959543-2'); |
|
54 | 74 |
ga('send', 'pageview'); |
55 | 75 |
</script> |
56 | 76 |
|
@@ -65,6 +85,8 @@ |
||
65 | 85 |
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script> |
66 | 86 |
<script src="bower_components/gsap/src/uncompressed/TweenMax.js"></script> |
67 | 87 |
<script src="bower_components/ngFx/dist/ngFx.js"></script> |
88 |
+ <script src="bower_components/mixpanel/mixpanel-jslib-snippet.js"></script> |
|
89 |
+ <script src="bower_components/angular-mixpanel/src/angular-mixpanel.js"></script> |
|
68 | 90 |
<!-- endbower --> |
69 | 91 |
<!-- endbuild --> |
70 | 92 |
|
@@ -14,7 +14,8 @@ angular |
||
14 | 14 |
'ngSanitize', |
15 | 15 |
'ngTouch', |
16 | 16 |
'ui.router', |
17 |
- 'ngFx' |
|
17 |
+ 'ngFx', |
|
18 |
+ 'analytics.mixpanel' |
|
18 | 19 |
]) |
19 | 20 |
|
20 | 21 |
.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', function($stateProvider, $urlRouterProvider, $httpProvider) { |
@@ -42,4 +43,8 @@ angular |
||
42 | 43 |
$urlRouterProvider.otherwise("/"); |
43 | 44 |
|
44 | 45 |
|
46 |
+ }]) |
|
47 |
+ |
|
48 |
+ .config(['$mixpanelProvider', function($mixpanelProvider) { |
|
49 |
+ $mixpanelProvider.apiKey('118b90241623134a3468019b0917b85b'); // your token is different than your API key |
|
45 | 50 |
}]); |
@@ -9,11 +9,5 @@ |
||
9 | 9 |
*/ |
10 | 10 |
angular.module('landingPageApp') |
11 | 11 |
.controller('MainCtrl', ['$window', '$scope', '$timeout', function ($window, $scope, $timeout) { |
12 |
- var lang = $window.navigator.language || $window.navigator.userLanguage; |
|
13 |
- console.log(lang); |
|
14 |
- if (lang === 'pt-BR') { |
|
15 |
- console.log("language is portuguese"); |
|
16 |
- } else { |
|
17 |
- console.log("language is english"); |
|
18 |
- } |
|
12 |
+ |
|
19 | 13 |
}]); |
@@ -8,13 +8,22 @@ |
||
8 | 8 |
* Controller of the landingPageApp |
9 | 9 |
*/ |
10 | 10 |
angular.module('landingPageApp') |
11 |
- .controller('NavCtrl', ['$window', '$scope', '$timeout', "$rootScope", "$state", function ($window, $scope, $timeout, $rootScope, $state) { |
|
11 |
+ .controller('NavCtrl', ['$window', '$scope', '$timeout', "$rootScope", "$state", '$mixpanel', function ($window, $scope, $timeout, $rootScope, $state, $mixpanel) { |
|
12 |
+ |
|
13 |
+ // Mixpanel Analytics Tracking |
|
14 |
+ $mixpanel.track('Site Loaded'); |
|
15 |
+ |
|
16 |
+ $scope.track = function(action){ |
|
17 |
+ $mixpanel.track(action); |
|
18 |
+ //console.log("Tracking action with Mixpanel: " + action) |
|
19 |
+ } |
|
20 |
+ |
|
21 |
+ // Get Language |
|
12 | 22 |
var lang = $window.navigator.language || $window.navigator.userLanguage; |
13 |
- console.log(lang); |
|
14 | 23 |
if (lang === 'pt-BR') { |
15 |
- console.log("language is portuguese"); |
|
24 |
+ //console.log("language is portuguese"); |
|
16 | 25 |
} else { |
17 |
- console.log("language is english"); |
|
26 |
+ //console.log("language is english"); |
|
18 | 27 |
} |
19 | 28 |
|
20 | 29 |
$scope.logoAnimationStart = false; |
@@ -8,14 +8,10 @@ |
||
8 | 8 |
* Controller of the landingPageApp |
9 | 9 |
*/ |
10 | 10 |
angular.module('landingPageApp') |
11 |
- .controller('NowCtrl', ['$window', '$scope', '$timeout', function ($window, $scope, $timeout) { |
|
12 |
- var lang = $window.navigator.language || $window.navigator.userLanguage; |
|
13 |
- console.log(lang); |
|
14 |
- if (lang === 'pt-BR') { |
|
15 |
- console.log("language is portuguese"); |
|
16 |
- } else { |
|
17 |
- console.log("language is english"); |
|
18 |
- } |
|
11 |
+ .controller('NowCtrl', ['$window', '$scope', '$timeout', '$mixpanel', function ($window, $scope, $timeout, $mixpanel) { |
|
12 |
+ |
|
13 |
+ // Mixpanel Analytics Tracking |
|
14 |
+ $mixpanel.track('Now view'); |
|
19 | 15 |
|
20 | 16 |
$scope.textAnimationStart = false; |
21 | 17 |
$timeout(function(){ |
@@ -8,7 +8,9 @@ |
||
8 | 8 |
"angular-sanitize": "^1.3.0", |
9 | 9 |
"angular-touch": "^1.3.0", |
10 | 10 |
"angular-ui-router": "~0.2.15", |
11 |
- "ngFx": "~1.1.0" |
|
11 |
+ "ngFx": "~1.1.0", |
|
12 |
+ "mixpanel": "~2.5.1", |
|
13 |
+ "angular-mixpanel": "~1.1.2" |
|
12 | 14 |
}, |
13 | 15 |
"devDependencies": { |
14 | 16 |
"angular-mocks": "^1.3.0" |
@@ -31,6 +31,8 @@ module.exports = function(config) { |
||
31 | 31 |
'bower_components/angular-ui-router/release/angular-ui-router.js', |
32 | 32 |
'bower_components/gsap/src/uncompressed/TweenMax.js', |
33 | 33 |
'bower_components/ngFx/dist/ngFx.js', |
34 |
+ 'bower_components/mixpanel/mixpanel-jslib-snippet.js', |
|
35 |
+ 'bower_components/angular-mixpanel/src/angular-mixpanel.js', |
|
34 | 36 |
'bower_components/angular-mocks/angular-mocks.js', |
35 | 37 |
// endbower |
36 | 38 |
"app/scripts/**/*.js", |