· 8 years ago · Jan 08, 2018, 03:10 PM
1// Ionic Starter App
2
3angular.module('moduleCardio', ['ionic', 'moduleCardio.controllers', 'moduleCardio.filters','ngCordova',"ngSanitize",
4 "com.2fdevs.videogular",
5 "com.2fdevs.videogular.plugins.controls",
6 "com.2fdevs.videogular.plugins.overlayplay",
7 "com.2fdevs.videogular.plugins.poster",
8 "com.2fdevs.videogular.plugins.buffering"])
9.run(function($ionicPlatform, $q, $rootScope,$state, sqlitedatabaseService, $cordovaNetwork, $cordovaFile, $cordovaFileTransfer, $ionicSideMenuDelegate, $ionicHistory,$ionicPopup,$cordovaGoogleAnalytics) {
10
11 // create promise object
12 var platformRdy = $q.defer();
13 // set the object of promise to rootScope.
14 $rootScope.deviceReady = platformRdy.promise;
15
16
17 $ionicPlatform.ready(function() {
18 sqlitedatabaseService.initDB();
19
20 //google analytics---
21 //$cordovaGoogleAnalytics.startTrackerWithId('UA-110323272-1');
22 window.ga.startTrackerWithId('UA-110323272-1', 30)
23
24 //google analytics @ends--
25
26 // keep the app locked to portrait for splash & onboarding screens.
27 screen.orientation.lock('portrait');
28
29 // Remove this in next successfull Playstore launches
30 var oldStorage = "CardioMedia";
31
32 // future check if app is on android or not.
33 var isAndroid = ionic.Platform.isAndroid();
34
35 if (isAndroid) {
36 // Set storage location of app.
37 fileDirectory = cordova.file.dataDirectory;
38 externalFileDirectory = cordova.file.externalDataDirectory;
39 } else {
40 fileDirectory = cordova.file.applicationDirectory;
41 externalFileDirectory = cordova.file.documentsDirectory;
42
43 // fileDirectory = cordova.file.DataDirectory;
44 // externalFileDirectory = cordova.file.DataDirectory;
45 }
46
47 // Check if old folder used by previous app exists
48 $cordovaFile.checkDir(fileDirectory, oldStorage)
49 .then(function (success) {
50 // If exists then delete it.
51 $cordovaFile.removeDir(fileDirectory, oldStorage);
52 }, function (error) {
53 });
54
55 // create internal Storage folders
56 $cordovaFile.createDir(fileDirectory, storageFolder);
57 $cordovaFile.createDir(fileDirectory, storageFolder+"/icons/");
58
59
60 // create external Storage folder for PDF files.
61 $cordovaFile.createDir(externalFileDirectory, externalStorageFolder);
62
63//----------code to forced user to update app-------
64 var osType=ionic.Platform.device().platform.toLowerCase();
65
66 sqlitedatabaseService.getAppDetailsAPIData().then(function(data){
67 var appDetails=data.data;
68 var osTypeDetails=_.findWhere(appDetails,{platform: osType});
69
70 cordova.getAppVersion(function(version) { //if true means app is nt updated,download latest app
71 if(sqlitedatabaseService.gteVersion(osTypeDetails['latest'],version))
72 {
73 //$rootScope.showPopup(osTypeDetails['url']);
74 }
75 });
76 });
77//----------code to forced user to update app @ends-------
78
79
80 // Get the user detail from userInfo table.
81 /*sqlitedatabaseService.getUserInfo().then(function(results) {*/
82 /*if(results.rows.length > 0){
83 // save userType & userEmail for future use in app
84 userType = results.rows.item(0).user_type;
85 userEmail = results.rows.item(0).email;
86
87 // set the user identity in clevertap.
88 CleverTap.profileGetCleverTapID(function(val){
89 // console.log("CleverTapID is "+val);
90 });
91
92
93 var params = {
94 "record_time" : dtStr,
95 "record_date" : clevertapDate,
96 "os" : ionic.Platform.device().platform,
97 "userRoleId" : (userType == "doctor") ? 1 : 5,
98 "userType": userType,
99 "userEmail" : userEmail
100 };
101
102 // Set clevertap Custom AppLaunch event.
103 CleverTap.recordEventWithNameAndProps("myAppLaunch", params);
104 }else{
105 $state.go('app.onBoardingScreen');
106 }*/
107
108
109 sqlitedatabaseService.getUserInfo().then(function(results) {
110 CleverTap.profileGetCleverTapID(function(val){
111 //alert("9 "+"from database CleverTapID is "+val);
112 clevertapId = val;
113 //console.log("clevertap id is "+clevertapId);
114 branchInit();
115 });
116 if(results.rows.length > 0){
117 //alert("results.rows.item(0).verified--"+results.rows.item(0).verified);
118 if(results.rows.item(0).verified != 0 && results.rows.item(0).verified != null) {
119 // unlock orientation before moving to dashboard as app can work in landscape mode too.
120 screen.orientation.unlock();
121 // save userType & userEmail for future use in app
122 userType = results.rows.item(0).user_type;
123 userEmail = results.rows.item(0).email;
124 liveId = results.rows.item(0).liveId;
125
126 // set the user identity in clevertap.
127 //CleverTap.onUserLogin({"Identity":1452875, "Email":userEmail});
128 //CleverTap.onUserLogin({"Identity":"android098768", "DOB":"1950-10-16", "Email":"aniruddha.mahamuni@oneleap.in"});
129 //CleverTap.onUserLogin({"Identity": liveId, "Email":"'"+userEmail+"'", "Name":"John doe", "Photo":"https://randomuser.me/api/portraits/thumb/lego/2.jpg"});
130 //alert(JSON.stringify(ionic.Platform.device().platform));
131
132 var params = {
133 "record_time" : dtStr,
134 "record_date" : clevertapDate,
135 "os" : ionic.Platform.device().platform,
136 "userRoleId" : (userType == "doctor") ? 1 : 5,
137 "userType": userType,
138 "userEmail" : userEmail
139 };
140
141 //console.log(JSON.stringify(params));
142
143 // Set clevertap Custom AppLaunch event.
144 CleverTap.recordEventWithNameAndProps("myAppLaunch", params);
145
146 //$state.go('app.dashboard');
147 splashesData = sqlitedatabaseService.listCardioSplashes();
148 splashesData.then(function(result){
149 if(result.rows.length > 0){
150 // DB not empty then splashes is to be shown.
151 var splash_details = [];
152 _.times(result.rows.length,function(i){
153 splash_details.push(result.rows.item(i));
154 });
155
156 var splashes = _.where(splash_details, {"isSplash": 0});
157 var static_splashes = _.first(_.where(splash_details, {"isSplash": 1}));
158 if(_.size(splashes) > 0){
159 cur_index = _.indexOf(splashes, _.findWhere(splashes, {"shown": 1}));
160 content_data = (cur_index == (_.size(splashes) -1)) ? _.first(splashes) : splashes[cur_index+1];
161
162 // set the id of the data to be last opened.
163 sqlitedatabaseService.synclastOpen(content_data.id);
164
165 var params = {
166 "record_time" : dtStr,
167 "record_date" : clevertapDate,
168 "os" : ionic.Platform.device().platform,
169 "userRoleId" : (userType == "doctor") ? 1 : 5,
170 "userType": userType,
171 "userEmail" : userEmail,
172 "sponsor_type" : "sponsorContent",
173 "popOverId" : content_data.id,
174 "sponsoredName" : content_data.sponsoredName,
175 "contentType" : content_data.contentType
176 };
177
178 // Set clevertap Custom AppLaunch event.
179 CleverTap.recordEventWithNameAndProps("sponsorShown", params);
180
181 // Goto banner page with the current splash data object.
182
183 //----show splash only once @starts
184 var splashEntry=window.localStorage.getItem( 'issplashShown');
185 if(splashEntry==null){ //for 1st time after app installation
186 $state.go('app.banner',{options: true, fileName : JSON.stringify(content_data)});
187
188 var dt = new Date();
189 dt=dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/" + dt.getDate();
190 var splashData={
191 showed:true,
192 date:dt
193 };
194 window.localStorage.setItem( 'issplashShown', JSON.stringify(splashData));
195 } //null
196 if(splashEntry!=null){ //every time during app launch
197
198 var dt2 = new Date();
199 var dt2=dt2.getFullYear() + "/" + (dt2.getMonth() + 1) + "/" + dt2.getDate();
200
201 var splashData2 = JSON.parse(window.localStorage.getItem( 'issplashShown' ));
202
203 var splashDate = splashData2['date'];
204 if(splashData2.showed && (splashDate!=dt2)){ //true and date not same, show splash
205 var splashData={
206 showed:true,
207 date:dt2
208 };
209 $state.go('app.banner',{options: true, fileName : JSON.stringify(content_data)});
210 window.localStorage.setItem( 'issplashShown', JSON.stringify(splashData));
211 } else { //date same, show dashboard
212 $state.go('app.dashboard');
213 }
214 }
215
216 //----show splash only once @ends
217
218 }else{
219 // For future reference
220 /*var params = {
221 "record_time" : dtStr,
222 "record_date" : clevertapDate,
223 "os" : ionic.Platform.device().platform,
224 "userRoleId" : (userType == "doctor") ? 1 : 5,
225 "userType": userType,
226 "userEmail" : userEmail,
227 "sponsor_type" : "staticSplash",
228 "popOverId" : content_data.id,
229 "sponsoredName" : content_data.sponsoredName,
230 "contentType" : content_data.contentType
231 };
232 console.dir(params);
233
234 // Set clevertap Custom AppLaunch event. // For future reference
235 // CleverTap.recordEventWithNameAndProps("sponsorShown", params);*/
236 content_data = static_splashes;
237 $state.go('app.banner',{options: false, fileName : JSON.stringify(content_data)});
238 }
239 }else{
240 $state.go('app.dashboard');
241 }
242 }, function(error) {
243 $state.go('app.dashboard');
244 });
245 } else {
246 $state.go('app.register');
247 }
248 }else{
249 //$state.go('app.register');
250 $state.go('app.login');
251 }
252 }, function(error) {
253 });
254
255
256
257
258 $ionicPlatform.on('deviceready', function(){
259
260
261//-----------------Permission code working--------------------------------------
262if(ionic.Platform.isAndroid()) {
263 var permissions = cordova.plugins.permissions;
264
265 var list_permissions = [
266 //permissions.READ_PHONE_STATE,
267 permissions.GET_ACCOUNTS,
268 permissions.WRITE_EXTERNAL_STORAGE
269 ];
270
271 permissions.requestPermissions(list_permissions, requestSuccess, requestError);
272
273 var num_permissions = list_permissions.length;
274 function requestSuccess(){}
275 function successCallback1(status){}
276 function requestError(){}
277 function errorCallback1(error){}
278
279 //get phone sim details
280 // permissions.hasPermission(permissions.READ_PHONE_STATE, function( status ){
281 // if ( status.hasPermission ) { //if no permission then go inside
282 // window.plugins.sim.getSimInfo(successCallback, errorCallback);
283 // function successCallback(result) {}
284 // function errorCallback(error) {}
285 // }
286 // });
287}
288//-------------------------------------------------------------------------------
289}); //device ready
290
291
292
293 //Branch.setDebug(true);
294 // Branch
295 $ionicPlatform.on('deviceready', function(){
296 //alert("ready");
297 branchInit();
298
299 /*
300 $rootScope.restore=function(){
301 $rootScope.mySubscriptions=[];
302 inAppPurchase
303 .restorePurchases()
304 .then(function (purchases) {
305 for (i = 0; i <= purchases.length; i++) {
306 $rootScope.mySubscriptions.push(purchases[i]["productId"]);
307 }
308 $ionicPopup.alert({
309 title: 'Restore was successful!',
310 template: 'Check your console log for the restored purchases data'
311 });
312 })
313 .catch(function (err) {
314 });
315 } //restore
316
317 $rootScope.restore();
318 */
319
320 }); //device ready
321 $ionicPlatform.on('resume', function(){
322 //alert("resume");
323 branchInit();
324 });
325
326 function branchInit() {
327 console.log(" ----------------------------= branch initiated here no data "+clevertapId);
328
329 Branch.setDebug(true);
330
331 // Branch initialization
332 Branch.initSession(function(data) {
333 //console.log("data in init :"+JSON.stringify(data));
334 if (data['+clicked_branch_link']) {
335 // read deep link data on click
336 //console.log('Deep Link Data: ' + JSON.stringify(data));
337 //$state.go('app.videodetail',{videoURL : data.video_url});
338 //$state.go('app.videodetailinplayer',{videoURL : data.video_url, videoImage : "http://static.cardiovisual.com/images/Treatment/Cardiac/proc.cardiac.cor-angiogram.jpg", copyrightMessage : "", type : 'old'});
339 $state.go('app.playsharedvideoinplayer',{subtopicId : data.custom_id});
340
341 }
342 }).then(function(res) {
343 //alert('Response in branch then: ' + JSON.stringify(res))
344 }).catch(function(err) {
345 //alert('Error: ' + JSON.stringify(err))
346 });
347
348
349 Branch.setIdentity("cardio_"+clevertapId).then(function (res) {
350
351 // only canonicalIdentifier is required
352 var properties = {
353 "title" : "CV",
354 };
355
356 console.log("isLinkSet >> "+localStorage.getItem('isLinkSet'));
357 if(localStorage.getItem('isLinkSet') == null){
358 // create a branchUniversalObj variable to reference with other Branch methods
359 Branch.createBranchUniversalObject(properties).then(function(res) {
360 branchUniversalObj = res;
361 }).catch(function(err) {
362 // alert('Error: ' + JSON.stringify(err));
363 });
364 }
365 });
366
367 }
368
369
370 // When button is clicked, the popup will be shown...
371 $rootScope.showPopup = function(playstoreAppUrl) {
372 $rootScope.data = {}
373
374 // Custom popup
375 var myPopup = $ionicPopup.show({
376 //template: '<input type = "text" ng-model = "data.model">',
377 title: '<h4>Update required</h4>',
378 subTitle: '<h5>An update to cardio visual is required to continue</h5>',
379 scope: $rootScope,
380
381 buttons: [
382 {
383 text: '<b>Update</b>',
384 type: 'button-positive',
385 onTap: function(e) {
386
387 if (!$rootScope.data.model) {
388 cordova.InAppBrowser.open(playstoreAppUrl, '_blank', 'location=no');
389 //don't allow the user to close unless he enters model...
390 e.preventDefault();
391 } else {
392 return $rootScope.data.model;
393 }
394 }
395 }
396 ]
397 });
398
399 myPopup.then(function(res) {
400 console.log('Tapped!', res);
401 });
402 };
403
404
405
406 $rootScope.recordClevertapEvents = function(key,params){
407 /*console.log(key);
408 console.dir(params);*/
409 CleverTap.recordEventWithNameAndProps(key, params);
410 /*if(key == "PopOverClick"){
411 // Record the event with the parameters in clevertap, with key & params.
412 }else{
413 console.log(key);
414 console.dir(params);
415 }*/
416 }
417
418
419 // check the network connection state of app.
420 //online = $cordovaNetwork.isOnline();
421
422 isTablet = window.isTablet;
423
424 // listen for Online event
425 /*$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
426 // user was offline jsut came online.
427 online = true;
428 // sync the db again.
429 sqlitedatabaseService.getTopicsAPIData();
430 sqlitedatabaseService.getCategoriesAPIData();
431 sqlitedatabaseService.insertPlaylistsAPIData(); //insert playlist data from api
432
433 });
434
435 // listen for Offline event
436 $rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
437 // user went offline or flight mode.
438 online = false;
439 });
440 */
441 window.addEventListener('native.keyboardshow', keyboardShowHandler);
442 function keyboardShowHandler(keyboardParameters){
443 $rootScope.$broadcast("keyboardOpenEvent");
444 };
445 window.addEventListener('native.keyboardhide', keyboardHideHandler);
446 function keyboardHideHandler(keyboardParameters){
447 $rootScope.$broadcast("keyboardCloseEvent");
448 };
449
450 // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard for form inputs)
451 if (window.cordova && window.cordova.plugins.Keyboard) {
452 cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
453 cordova.plugins.Keyboard.disableScroll(false);
454 }
455 if (window.StatusBar) {
456 // org.apache.cordova.statusbar required
457 // future used for ios to style the ststusBar of iOS.
458 StatusBar.styleDefault();
459 }
460
461 window.onerror = function (errorMsg, url, lineNumber) {
462 // any error in app can be seen here using console.log
463 // console.log(errorMsg+"\n"+url+"\n"+lineNumber);
464 };
465
466 // Resolve the promise.
467 platformRdy.resolve(device);
468
469
470
471
472 /*------------------------------------- Android hardware Back ---------------------------*/
473 $ionicPlatform.registerBackButtonAction(function(event) {
474 event.preventDefault();
475 if ($state.current.name == "app.dashboard" || $state.current.name == "app.onBoardingScreen" || $state.current.name == "app.banner") {
476 if ($ionicSideMenuDelegate.isOpenLeft()) {
477 $ionicSideMenuDelegate.toggleLeft();
478 } else {
479 navigator.app.exitApp();
480 }
481 }
482 else if($state.current.name == "app.subtopics")
483 {
484 // check if popup opened, if yes then close popup, else go level back.
485 if(!emailPopupOpen){
486 $ionicHistory.goBack(-1);
487 }
488 }
489 else{
490 $ionicHistory.goBack(-1);
491 }
492 }, 1000);
493 /*---------------------------------------------------------------------------------------*/
494
495
496
497
498
499
500
501 /*------------------------------ apptentive ------------------------------*/
502 var app = {
503 // Application Constructor
504 initialize : function() {
505 document.addEventListener('deviceready', app.onDeviceReady, false);
506 },
507 onDeviceReady : function() {
508 document.addEventListener('resume', app.onResume, false);
509 document.addEventListener('pause', app.onPause, false);
510 Apptentive.deviceReady(app.successLogger, app.errorAlert);
511 },
512 onResume : function() {
513 Apptentive.resume(app.successLogger, app.errorAlert);
514 },
515 onPause : function() {
516 Apptentive.pause(app.successLogger, app.errorAlert);
517 }
518 };
519 app.initialize();
520 /*-------------------------------------------------------------------------*/
521
522
523 /*------------------------------------- clevertap -------------------------------------*/
524 var app = {
525 // Application Constructor
526 initialize: function() {
527 // Bind Event Listeners
528 this.bindEvents();
529 },
530
531 // Bind any events that are required on startup. Common events are: 'load', 'deviceready', 'offline', and 'online'.
532 bindEvents: function() {
533 document.addEventListener('deviceready', this.onDeviceReady, false);
534 document.addEventListener('onCleverTapProfileSync', this.onCleverTapProfileSync, false);
535 document.addEventListener('onCleverTapProfileDidInitialize', this.onCleverTapProfileDidInitialize, false);
536 document.addEventListener('onCleverTapInAppNotificationDismissed', this.onCleverTapInAppNotificationDismissed, false);
537 //deeplink handling
538 document.addEventListener('onDeepLink', this.onDeepLink, false);
539 //push notification payload handling
540 document.addEventListener('onPushNotification', this.onPushNotification, false);
541 },
542 // deviceready Event Handler
543 //
544 // The scope of 'this' is the event. In order to call the 'receivedEvent' function, we must explicitly call 'app.receivedEvent(...);'
545 onDeviceReady: function() {
546 app.receivedEvent('deviceready');
547 CleverTap.registerPush();
548
549 $rootScope.$on('emailUpdate', function(event, data){
550 // If user enters email from the popup.
551 //CleverTap.onUserLogin({"Identity":1452875, "Email":userEmail});
552 //alert("clicked");
553
554 });
555 //CleverTap.onUserLogin({"Identity":"android098768", "DOB":"1950-10-16", "custom":122211});
556 //CleverTap.onUserLogin({"Identity":"android098768", "DOB":"1950-10-16", "Email":"aniruddha.mahamuni@oneleap.in"});
557 //CleverTap.profileGetProperty("Identity", function(val) {alert("Identity profile value is "+val);});
558
559 CleverTap.profileGetCleverTapID(function(val){
560 /*console.log(localStorage.getItem('isFirstRun'));
561 console.log(localStorage.getItem('isFirstRun') == "");
562 console.log(localStorage.getItem('isFirstRun') != true);
563 console.log(localStorage.getItem('isFirstRun') != "true");
564 localStorage.setItem('isFirstRun',true);*/
565 //alert("1 CleverTapID is "+val);
566 });
567
568 },
569
570 onCleverTapProfileSync: function(e) {
571 //alert("2 "+e.updates);
572 },
573
574 onCleverTapProfileDidInitialize: function(e) {
575 //alert("3 clevertap did initialize "+e.CleverTapID);
576 },
577
578 onCleverTapInAppNotificationDismissed: function(e) {
579 // alert("4 "+e.extras);
580 //alert("5 "+e.actionExtras);
581 },
582
583 // deep link handling
584 onDeepLink: function(e) {
585 //alert("6 "+e.deeplink);
586 },
587
588 // push notification data handling
589 onPushNotification: function(e) {
590 //alert("7 "+JSON.stringify(e.notification));
591 },
592
593 // Update DOM on a Received Event
594 receivedEvent: function(id) {
595 //alert("8 "+'Received Event: ' + id);
596 }
597 };
598
599 app.initialize();
600 /*---------------------------------------------------------------------------------------------*/
601
602 });
603})
604
605.config(function($stateProvider, $urlRouterProvider) {
606 $stateProvider
607
608 .state('app', {
609 url: '/app',
610 abstract: true,
611 templateUrl: 'templates/menu.html',
612 cache: false,
613 controller: 'MenuCtrl'
614 })
615 .state('app.playlist', {
616 url : '/playlist',
617 views : {
618 'menuContent' : {
619 templateUrl : 'templates/playlist.html',
620 controller : 'PlaylistCtrl'
621 }
622 }
623 })
624 .state('app.video', {
625 url : '/video/:playlistTitle/:subTopicIds',
626 views : {
627 'menuContent' : {
628 templateUrl : 'templates/video.html',
629 controller : 'VideoCtrl'
630 }
631 }
632 })
633 .state('app.dashboard', {
634 url : '/dashboard',
635 views : {
636 'menuContent' : {
637 templateUrl : 'templates/dashboard.html',
638 controller : 'DashboardCtrl'
639 }
640 }
641 })
642 .state('app.subtopics', {
643 url : '/subtopics/:topic',
644 views : {
645 'menuContent' : {
646 templateUrl : 'templates/subtopics.html',
647 controller : 'SubtopicsCtrl'
648 }
649 }
650 })
651 .state('app.drawon', {
652 url : '/drawon',
653 views : {
654 'menuContent' : {
655 templateUrl : 'templates/drawon.html',
656 controller : 'DrawonCtrl'
657 }
658 }
659 })
660 .state('app.favourites', {
661 url : '/favourites/:fav',
662 views : {
663 'menuContent' : {
664 templateUrl : 'templates/favourites.html',
665 controller : 'FavoritesCtrl'
666 }
667 }
668 })
669 .state('app.favoritetab', {
670 url : '/favoritetab/:fav',
671 views : {
672 'menuContent' : {
673 templateUrl : 'templates/favoritetab.html',
674 controller : 'FavoritetabCtrl'
675 }
676 }
677 })
678 .state('app.search', {
679 url : '/search/:searchText',
680 views : {
681 'menuContent' : {
682 templateUrl : 'templates/search.html',
683 controller : 'SearchCtrl'
684 }
685 }
686 })
687 .state('app.onBoardingScreen', {
688 url : '/onBoardingScreen',
689 views : {
690 'menuContent' : {
691 templateUrl : 'templates/onBoardingScreen.html',
692 controller : 'onBoardingCtrl'
693 }
694 }
695 })
696 .state('app.banner', {
697 url : '/banner/:options/:fileName',
698 views : {
699 'menuContent' : {
700 templateUrl : 'templates/banner.html',
701 controller : 'BannerCtrl'
702 }
703 }
704 })
705 .state('app.howtouseapp', {
706 url : "/howtouseapp",
707 views : {
708 'menuContent' : {
709 templateUrl : 'templates/howtouseapp.html',
710 controller : 'MenuCtrl'
711 }
712 }
713 })
714 .state('app.forgotpassword', {
715 url : "/forgotpassword",
716 views : {
717 'menuContent' : {
718 templateUrl : 'templates/forgotpassword.html',
719 controller : 'ForgotPasswordCtrl'
720 }
721 }
722 })
723 .state('app.register', {
724 url : "/register",
725 views : {
726 'menuContent' : {
727 //templateUrl : 'templates/thankyou-signup.html',
728 //controller : 'ThankyouSignup'
729 //templateUrl : 'templates/cardioplans.html',
730 //controller : 'CardioPlansCtrl'
731 templateUrl : 'templates/register.html',
732 controller : 'RegisterCtrl'
733 }
734 }
735 })
736 .state('app.login', {
737 url : "/login",
738 views : {
739 'menuContent' : {
740 templateUrl : 'templates/login.html',
741 controller : 'LoginCtrl'
742 }
743 }
744 })
745 .state('app.signupwithfacebook', {
746 url : "/signupwithfacebook",
747 views : {
748 'menuContent' : {
749 templateUrl : 'templates/signupwithfacebook.html',
750 controller : 'SignupWithFacebookCtrl'
751 }
752 }
753 })
754 .state('app.interestedhcp', {
755 url : "/interested-hcp",
756 views : {
757 'menuContent' : {
758 templateUrl : 'templates/interested-hcp.html',
759 controller : 'InterestedHcpCtrl'
760 }
761 }
762 })
763 .state('app.interestednonhcp', {
764 url : "/interested-nonhcp",
765 views : {
766 'menuContent' : {
767 templateUrl : 'templates/interested-nonhcp.html',
768 controller : 'InterestedNonhcpCtrl'
769 }
770 }
771 })
772 .state('app.thankyousignup', {
773 url : "/thankyou-signup",
774 views : {
775 'menuContent' : {
776 templateUrl : 'templates/thankyou-signup.html',
777 controller : 'ThankyouSignupCtrl'
778 }
779 }
780 })
781 .state('app.cardioplanspremium', {
782 url : "/cardioplanspremium",
783 views : {
784 'menuContent' : {
785 templateUrl : 'templates/cardioplans-premium.html',
786 controller : 'CardioPlansPremiumCtrl'
787 }
788 }
789 })
790 .state('app.cardioplanspro', {
791 url : "/cardioplanspro",
792 views : {
793 'menuContent' : {
794 templateUrl : 'templates/cardioplans-pro.html',
795 controller : 'CardioPlansProCtrl'
796 }
797 }
798 })
799 .state('app.planslist', {
800 url : "/planslist",
801 views : {
802 'menuContent' : {
803 templateUrl : 'templates/planslist.html',
804 controller : 'PlansListCtrl'
805 }
806 }
807 })
808 .state('app.changepassword', {
809 url : "/changepassword/:email",
810 views : {
811 'menuContent' : {
812 templateUrl : 'templates/changepassword.html',
813 controller : 'ChangePasswordCtrl'
814 }
815 }
816 })
817 .state('app.videodetail', {
818 url : "/videodetail/:videoURL",
819 views : {
820 'menuContent' : {
821 templateUrl : 'templates/videodetail.html',
822 controller : 'VideoDetailCtrl'
823 }
824 }
825 })
826 .state('app.videodetailinplayer', {
827 url : "/videodetailinplayer/:videoURL/:videoImage/:copyrightMessage/:type/:shareUrl/:videoName/:categoryId/:subTopicType/:id/:tag",
828 views : {
829 'menuContent' : {
830 templateUrl : 'templates/videodetailinplayer.html',
831 controller : 'VideoDetailInPlayerCtrl'
832 }
833 }
834 })
835 .state('app.playsharedvideoinplayer', {
836 //url : "/videodetailinplayer/:videoURL/:videoImage/:copyrightMessage/:type/:shareUrl/:videoName/:categoryId/:subTopicType/:id/:tag",
837 url : "/playsharedvideoinplayer/:subtopicId",
838 views : {
839 'menuContent' : {
840 templateUrl : 'templates/playsharedvideoinplayer.html',
841 controller : 'PlaySharedVideoInPlayerCtrl'
842 }
843 }
844 })
845 .state('app.forgotpasswordverify', {
846 url : "/forgotpasswordverify/:email",
847 views : {
848 'menuContent' : {
849 templateUrl : 'templates/forgotpasswordverify.html',
850 controller : 'ForgotPasswordVerifyCtrl'
851 }
852 }
853 })
854 .state('app.inapppurchase', {
855 url : "/products",
856 views : {
857 'menuContent' : {
858 templateUrl : 'templates/products.html',
859 controller : 'ProductsCtrl'
860 }
861 }
862 })
863 .state('app.mydownloads', {
864 url : '/mydownloads/:fav',
865 views : {
866 'menuContent' : {
867 templateUrl : 'templates/mydownloads.html',
868 controller : 'MyDownloadsCtrl'
869 }
870 }
871 })
872 .state('app.emailverification', {
873 url : '/emailverification',
874 views : {
875 'menuContent' : {
876 templateUrl : 'templates/emailverification.html',
877 controller : 'EmailVerificationCtrl'
878 }
879 }
880 })
881 .state('app.playlistProduct', {
882 url : "/playlistProduct",
883 views : {
884 'menuContent' : {
885 templateUrl : 'templates/playlistProduct.html',
886 controller : 'PlaylistProductCtrl'
887 }
888 }
889 });
890 // if none of the above states are matched, use this as the fallback
891 // $urlRouterProvider.otherwise('app/onBoardingScreen');
892});