· 8 years ago · Jan 10, 2018, 06:50 AM
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 $rootScope.restore=function(){
300 $rootScope.mySubscriptions=[];
301 inAppPurchase
302 .restorePurchases()
303 .then(function (purchases) {
304 for (i = 0; i <= purchases.length; i++) {
305 //alert("subs---"+purchases[i]["productId"]);
306 $rootScope.mySubscriptions.push(purchases[i]["productId"]);
307 }
308
309 $ionicPopup.alert({
310 title: 'Restore was successful!',
311 template: 'Check your console log for the restored purchases data'
312 });
313 })
314 .catch(function (err) {
315 });
316 } //restore
317 $rootScope.restore();
318 });
319 $ionicPlatform.on('resume', function(){
320 //alert("resume");
321 branchInit();
322 });
323
324 function branchInit() {
325 console.log(" ----------------------------= branch initiated here no data "+clevertapId);
326
327 Branch.setDebug(true);
328
329 // Branch initialization
330 Branch.initSession(function(data) {
331 //console.log("data in init :"+JSON.stringify(data));
332 if (data['+clicked_branch_link']) {
333 // read deep link data on click
334 //console.log('Deep Link Data: ' + JSON.stringify(data));
335 //$state.go('app.videodetail',{videoURL : data.video_url});
336 //$state.go('app.videodetailinplayer',{videoURL : data.video_url, videoImage : "http://static.cardiovisual.com/images/Treatment/Cardiac/proc.cardiac.cor-angiogram.jpg", copyrightMessage : "", type : 'old'});
337 //$state.go('app.playsharedvideoinplayer',{subtopicId : data.custom_id});
338 if(data.hasOwnProperty('sub_topic_ids')){
339 //console.log("called from playlist"+JSON.stringify(data.sub_topic_ids));
340 redirect_flag = true;
341 $state.go('app.video',{playlistTitle : data.playlists_name, subTopicIds : data.sub_topic_ids });
342 }
343 else{
344 $state.go('app.playsharedvideoinplayer',{subtopicId : data.custom_id});
345 }
346
347
348 }
349
350 }).then(function(res) {
351 //alert('Response in branch then: ' + JSON.stringify(res))
352 }).catch(function(err) {
353 //alert('Error: ' + JSON.stringify(err))
354 });
355
356
357 Branch.setIdentity("cardio_"+clevertapId).then(function (res) {
358
359 // only canonicalIdentifier is required
360 var properties = {
361 "title" : "CV",
362 };
363
364 console.log("isLinkSet >> "+localStorage.getItem('isLinkSet'));
365 if(localStorage.getItem('isLinkSet') == null){
366 // create a branchUniversalObj variable to reference with other Branch methods
367 Branch.createBranchUniversalObject(properties).then(function(res) {
368 branchUniversalObj = res;
369 }).catch(function(err) {
370 // alert('Error: ' + JSON.stringify(err));
371 });
372 }
373 });
374
375 }
376
377
378 // When button is clicked, the popup will be shown...
379 $rootScope.showPopup = function(playstoreAppUrl) {
380 $rootScope.data = {}
381
382 // Custom popup
383 var myPopup = $ionicPopup.show({
384 //template: '<input type = "text" ng-model = "data.model">',
385 title: '<h4>Update required</h4>',
386 subTitle: '<h5>An update to cardio visual is required to continue</h5>',
387 scope: $rootScope,
388
389 buttons: [
390 {
391 text: '<b>Update</b>',
392 type: 'button-positive',
393 onTap: function(e) {
394
395 if (!$rootScope.data.model) {
396 cordova.InAppBrowser.open(playstoreAppUrl, '_blank', 'location=no');
397 //don't allow the user to close unless he enters model...
398 e.preventDefault();
399 } else {
400 return $rootScope.data.model;
401 }
402 }
403 }
404 ]
405 });
406
407 myPopup.then(function(res) {
408 console.log('Tapped!', res);
409 });
410 };
411
412
413
414 $rootScope.recordClevertapEvents = function(key,params){
415 /*console.log(key);
416 console.dir(params);*/
417 CleverTap.recordEventWithNameAndProps(key, params);
418 /*if(key == "PopOverClick"){
419 // Record the event with the parameters in clevertap, with key & params.
420 }else{
421 console.log(key);
422 console.dir(params);
423 }*/
424 }
425
426
427 // check the network connection state of app.
428 //online = $cordovaNetwork.isOnline();
429
430 isTablet = window.isTablet;
431
432 // listen for Online event
433 /*$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
434 // user was offline jsut came online.
435 online = true;
436 // sync the db again.
437 sqlitedatabaseService.getTopicsAPIData();
438 sqlitedatabaseService.getCategoriesAPIData();
439 sqlitedatabaseService.insertPlaylistsAPIData(); //insert playlist data from api
440
441 });
442
443 // listen for Offline event
444 $rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
445 // user went offline or flight mode.
446 online = false;
447 });
448 */
449 window.addEventListener('native.keyboardshow', keyboardShowHandler);
450 function keyboardShowHandler(keyboardParameters){
451 $rootScope.$broadcast("keyboardOpenEvent");
452 };
453 window.addEventListener('native.keyboardhide', keyboardHideHandler);
454 function keyboardHideHandler(keyboardParameters){
455 $rootScope.$broadcast("keyboardCloseEvent");
456 };
457
458 // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard for form inputs)
459 if (window.cordova && window.cordova.plugins.Keyboard) {
460 cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
461 cordova.plugins.Keyboard.disableScroll(false);
462 }
463 if (window.StatusBar) {
464 // org.apache.cordova.statusbar required
465 // future used for ios to style the ststusBar of iOS.
466 StatusBar.styleDefault();
467 }
468
469 window.onerror = function (errorMsg, url, lineNumber) {
470 // any error in app can be seen here using console.log
471 // console.log(errorMsg+"\n"+url+"\n"+lineNumber);
472 };
473
474 // Resolve the promise.
475 platformRdy.resolve(device);
476
477
478
479
480 /*------------------------------------- Android hardware Back ---------------------------*/
481 $ionicPlatform.registerBackButtonAction(function(event) {
482 event.preventDefault();
483 if ($state.current.name == "app.dashboard" || $state.current.name == "app.onBoardingScreen" || $state.current.name == "app.banner") {
484 if ($ionicSideMenuDelegate.isOpenLeft()) {
485 $ionicSideMenuDelegate.toggleLeft();
486 } else {
487 navigator.app.exitApp();
488 }
489 }
490 else if($state.current.name == "app.subtopics")
491 {
492 // check if popup opened, if yes then close popup, else go level back.
493 if(!emailPopupOpen){
494 $ionicHistory.goBack(-1);
495 }
496 }
497 else{
498 $ionicHistory.goBack(-1);
499 }
500 }, 1000);
501 /*---------------------------------------------------------------------------------------*/
502
503
504
505
506
507
508
509 /*------------------------------ apptentive ------------------------------*/
510 var app = {
511 // Application Constructor
512 initialize : function() {
513 document.addEventListener('deviceready', app.onDeviceReady, false);
514 },
515 onDeviceReady : function() {
516 document.addEventListener('resume', app.onResume, false);
517 document.addEventListener('pause', app.onPause, false);
518 Apptentive.deviceReady(app.successLogger, app.errorAlert);
519 },
520 onResume : function() {
521 Apptentive.resume(app.successLogger, app.errorAlert);
522 },
523 onPause : function() {
524 Apptentive.pause(app.successLogger, app.errorAlert);
525 }
526 };
527 app.initialize();
528 /*-------------------------------------------------------------------------*/
529
530
531 /*------------------------------------- clevertap -------------------------------------*/
532 var app = {
533 // Application Constructor
534 initialize: function() {
535 // Bind Event Listeners
536 this.bindEvents();
537 },
538
539 // Bind any events that are required on startup. Common events are: 'load', 'deviceready', 'offline', and 'online'.
540 bindEvents: function() {
541 document.addEventListener('deviceready', this.onDeviceReady, false);
542 document.addEventListener('onCleverTapProfileSync', this.onCleverTapProfileSync, false);
543 document.addEventListener('onCleverTapProfileDidInitialize', this.onCleverTapProfileDidInitialize, false);
544 document.addEventListener('onCleverTapInAppNotificationDismissed', this.onCleverTapInAppNotificationDismissed, false);
545 //deeplink handling
546 document.addEventListener('onDeepLink', this.onDeepLink, false);
547 //push notification payload handling
548 document.addEventListener('onPushNotification', this.onPushNotification, false);
549 },
550 // deviceready Event Handler
551 //
552 // The scope of 'this' is the event. In order to call the 'receivedEvent' function, we must explicitly call 'app.receivedEvent(...);'
553 onDeviceReady: function() {
554 app.receivedEvent('deviceready');
555 CleverTap.registerPush();
556
557 $rootScope.$on('emailUpdate', function(event, data){
558 // If user enters email from the popup.
559 //CleverTap.onUserLogin({"Identity":1452875, "Email":userEmail});
560 //alert("clicked");
561
562 });
563 //CleverTap.onUserLogin({"Identity":"android098768", "DOB":"1950-10-16", "custom":122211});
564 //CleverTap.onUserLogin({"Identity":"android098768", "DOB":"1950-10-16", "Email":"aniruddha.mahamuni@oneleap.in"});
565 //CleverTap.profileGetProperty("Identity", function(val) {alert("Identity profile value is "+val);});
566
567 CleverTap.profileGetCleverTapID(function(val){
568 /*console.log(localStorage.getItem('isFirstRun'));
569 console.log(localStorage.getItem('isFirstRun') == "");
570 console.log(localStorage.getItem('isFirstRun') != true);
571 console.log(localStorage.getItem('isFirstRun') != "true");
572 localStorage.setItem('isFirstRun',true);*/
573 //alert("1 CleverTapID is "+val);
574 });
575
576 },
577
578 onCleverTapProfileSync: function(e) {
579 //alert("2 "+e.updates);
580 },
581
582 onCleverTapProfileDidInitialize: function(e) {
583 //alert("3 clevertap did initialize "+e.CleverTapID);
584 },
585
586 onCleverTapInAppNotificationDismissed: function(e) {
587 // alert("4 "+e.extras);
588 //alert("5 "+e.actionExtras);
589 },
590
591 // deep link handling
592 onDeepLink: function(e) {
593 //alert("6 "+e.deeplink);
594 },
595
596 // push notification data handling
597 onPushNotification: function(e) {
598 //alert("7 "+JSON.stringify(e.notification));
599 },
600
601 // Update DOM on a Received Event
602 receivedEvent: function(id) {
603 //alert("8 "+'Received Event: ' + id);
604 }
605 };
606
607 app.initialize();
608 /*---------------------------------------------------------------------------------------------*/
609
610 });
611})
612
613.config(function($stateProvider, $urlRouterProvider) {
614 $stateProvider
615
616 .state('app', {
617 url: '/app',
618 abstract: true,
619 templateUrl: 'templates/menu.html',
620 cache: false,
621 controller: 'MenuCtrl'
622 })
623 .state('app.playlist', {
624 url : '/playlist',
625 views : {
626 'menuContent' : {
627 templateUrl : 'templates/playlist.html',
628 controller : 'PlaylistCtrl'
629 }
630 }
631 })
632 .state('app.video', {
633 url : '/video/:playlistTitle/:subTopicIds',
634 views : {
635 'menuContent' : {
636 templateUrl : 'templates/video.html',
637 controller : 'VideoCtrl'
638 }
639 }
640 })
641 .state('app.dashboard', {
642 url : '/dashboard',
643 views : {
644 'menuContent' : {
645 templateUrl : 'templates/dashboard.html',
646 controller : 'DashboardCtrl'
647 }
648 }
649 })
650 .state('app.subtopics', {
651 url : '/subtopics/:topic',
652 views : {
653 'menuContent' : {
654 templateUrl : 'templates/subtopics.html',
655 controller : 'SubtopicsCtrl'
656 }
657 }
658 })
659 .state('app.drawon', {
660 url : '/drawon',
661 views : {
662 'menuContent' : {
663 templateUrl : 'templates/drawon.html',
664 controller : 'DrawonCtrl'
665 }
666 }
667 })
668 .state('app.favourites', {
669 url : '/favourites/:fav',
670 views : {
671 'menuContent' : {
672 templateUrl : 'templates/favourites.html',
673 controller : 'FavoritesCtrl'
674 }
675 }
676 })
677 .state('app.favoritetab', {
678 url : '/favoritetab/:fav',
679 views : {
680 'menuContent' : {
681 templateUrl : 'templates/favoritetab.html',
682 controller : 'FavoritetabCtrl'
683 }
684 }
685 })
686 .state('app.search', {
687 url : '/search/:searchText',
688 views : {
689 'menuContent' : {
690 templateUrl : 'templates/search.html',
691 controller : 'SearchCtrl'
692 }
693 }
694 })
695 .state('app.onBoardingScreen', {
696 url : '/onBoardingScreen',
697 views : {
698 'menuContent' : {
699 templateUrl : 'templates/onBoardingScreen.html',
700 controller : 'onBoardingCtrl'
701 }
702 }
703 })
704 .state('app.banner', {
705 url : '/banner/:options/:fileName',
706 views : {
707 'menuContent' : {
708 templateUrl : 'templates/banner.html',
709 controller : 'BannerCtrl'
710 }
711 }
712 })
713 .state('app.howtouseapp', {
714 url : "/howtouseapp",
715 views : {
716 'menuContent' : {
717 templateUrl : 'templates/howtouseapp.html',
718 controller : 'MenuCtrl'
719 }
720 }
721 })
722 .state('app.forgotpassword', {
723 url : "/forgotpassword",
724 views : {
725 'menuContent' : {
726 templateUrl : 'templates/forgotpassword.html',
727 controller : 'ForgotPasswordCtrl'
728 }
729 }
730 })
731 .state('app.register', {
732 url : "/register",
733 views : {
734 'menuContent' : {
735 //templateUrl : 'templates/thankyou-signup.html',
736 //controller : 'ThankyouSignup'
737 //templateUrl : 'templates/cardioplans.html',
738 //controller : 'CardioPlansCtrl'
739 templateUrl : 'templates/register.html',
740 controller : 'RegisterCtrl'
741 }
742 }
743 })
744 .state('app.login', {
745 url : "/login",
746 views : {
747 'menuContent' : {
748 templateUrl : 'templates/login.html',
749 controller : 'LoginCtrl'
750 }
751 }
752 })
753 .state('app.signupwithfacebook', {
754 url : "/signupwithfacebook",
755 views : {
756 'menuContent' : {
757 templateUrl : 'templates/signupwithfacebook.html',
758 controller : 'SignupWithFacebookCtrl'
759 }
760 }
761 })
762 .state('app.interestedhcp', {
763 url : "/interested-hcp",
764 views : {
765 'menuContent' : {
766 templateUrl : 'templates/interested-hcp.html',
767 controller : 'InterestedHcpCtrl'
768 }
769 }
770 })
771 .state('app.interestednonhcp', {
772 url : "/interested-nonhcp",
773 views : {
774 'menuContent' : {
775 templateUrl : 'templates/interested-nonhcp.html',
776 controller : 'InterestedNonhcpCtrl'
777 }
778 }
779 })
780 .state('app.thankyousignup', {
781 url : "/thankyou-signup",
782 views : {
783 'menuContent' : {
784 templateUrl : 'templates/thankyou-signup.html',
785 controller : 'ThankyouSignupCtrl'
786 }
787 }
788 })
789 .state('app.cardioplanspremium', {
790 url : "/cardioplanspremium",
791 views : {
792 'menuContent' : {
793 templateUrl : 'templates/cardioplans-premium.html',
794 controller : 'CardioPlansPremiumCtrl'
795 }
796 }
797 })
798 .state('app.cardioplanspro', {
799 url : "/cardioplanspro",
800 views : {
801 'menuContent' : {
802 templateUrl : 'templates/cardioplans-pro.html',
803 controller : 'CardioPlansProCtrl'
804 }
805 }
806 })
807 .state('app.planslist', {
808 url : "/planslist",
809 views : {
810 'menuContent' : {
811 templateUrl : 'templates/planslist.html',
812 controller : 'PlansListCtrl'
813 }
814 }
815 })
816 .state('app.changepassword', {
817 url : "/changepassword/:email",
818 views : {
819 'menuContent' : {
820 templateUrl : 'templates/changepassword.html',
821 controller : 'ChangePasswordCtrl'
822 }
823 }
824 })
825 .state('app.videodetail', {
826 url : "/videodetail/:videoURL",
827 views : {
828 'menuContent' : {
829 templateUrl : 'templates/videodetail.html',
830 controller : 'VideoDetailCtrl'
831 }
832 }
833 })
834 .state('app.videodetailinplayer', {
835 url : "/videodetailinplayer/:videoURL/:videoImage/:copyrightMessage/:type/:shareUrl/:videoName/:categoryId/:subTopicType/:id/:tag",
836 views : {
837 'menuContent' : {
838 templateUrl : 'templates/videodetailinplayer.html',
839 controller : 'VideoDetailInPlayerCtrl'
840 }
841 }
842 })
843 .state('app.playsharedvideoinplayer', {
844 //url : "/videodetailinplayer/:videoURL/:videoImage/:copyrightMessage/:type/:shareUrl/:videoName/:categoryId/:subTopicType/:id/:tag",
845 url : "/playsharedvideoinplayer/:subtopicId",
846 views : {
847 'menuContent' : {
848 templateUrl : 'templates/playsharedvideoinplayer.html',
849 controller : 'PlaySharedVideoInPlayerCtrl'
850 }
851 }
852 })
853 .state('app.forgotpasswordverify', {
854 url : "/forgotpasswordverify/:email",
855 views : {
856 'menuContent' : {
857 templateUrl : 'templates/forgotpasswordverify.html',
858 controller : 'ForgotPasswordVerifyCtrl'
859 }
860 }
861 })
862 .state('app.inapppurchase', {
863 url : "/products",
864 views : {
865 'menuContent' : {
866 templateUrl : 'templates/products.html',
867 controller : 'ProductsCtrl'
868 }
869 }
870 })
871 .state('app.mydownloads', {
872 url : '/mydownloads/:fav',
873 views : {
874 'menuContent' : {
875 templateUrl : 'templates/mydownloads.html',
876 controller : 'MyDownloadsCtrl'
877 }
878 }
879 })
880 .state('app.emailverification', {
881 url : '/emailverification',
882 views : {
883 'menuContent' : {
884 templateUrl : 'templates/emailverification.html',
885 controller : 'EmailVerificationCtrl'
886 }
887 }
888 })
889 .state('app.playlistProduct', {
890 url : "/playlistProduct",
891 views : {
892 'menuContent' : {
893 templateUrl : 'templates/playlistProduct.html',
894 controller : 'PlaylistProductCtrl'
895 }
896 }
897 });
898 // if none of the above states are matched, use this as the fallback
899 // $urlRouterProvider.otherwise('app/onBoardingScreen');
900});