summaryrefslogtreecommitdiff
path: root/www/js/NewsCtrl.js
blob: a0ab856503ca0fd8ef7939f70c3a74a17f4c96c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/* jshint -W041 */
/* jslint browser: true*/
/* global cordova,StatusBar,angular,console,moment*/

angular.module('zmApp.controllers').controller('zmApp.NewsCtrl', ['$scope', '$rootScope', '$ionicModal', 'ZMDataModel','$ionicSideMenuDelegate', '$ionicHistory', '$state', '$http', 'zm', '$localstorage', function ($scope, $rootScope, $ionicModal, ZMDataModel,$ionicSideMenuDelegate, $ionicHistory, $state, $http, zm, $localstorage) {
$scope.openMenu = function () {
    $ionicSideMenuDelegate.toggleLeft();
  };


    //----------------------------------------------------------------
    // Alarm notification handling
    //----------------------------------------------------------------
    $scope.handleAlarms = function()
    {
        $rootScope.isAlarm=!$rootScope.isAlarm;
        if (!$rootScope.isAlarm)
        {
            $rootScope.alarmCount="0";
            $ionicHistory.nextViewOptions({disableBack: true});		
            $state.go("events", {"id": 0}, { reload: true });
        }
    };


     //-------------------------------------------------------------------------
    // Lets make sure we set screen dim properly as we enter
    // The problem is we enter other states before we leave previous states
    // from a callback perspective in ionic, so we really can't predictably
    // reset power state on exit as if it is called after we enter another
    // state, that effectively overwrites current view power management needs
    //------------------------------------------------------------------------
    $scope.$on('$ionicView.enter', function () {
       // console.log("**VIEW ** News Ctrl Entered");
        ZMDataModel.setAwake(false);
        
        
    });
    
    $scope.isUnread = function(itemdate)
    {
        var lastDate = $localstorage.get("latestBlogPostChecked");
        if (!lastDate) return true;
        var mLastDate = moment(lastDate);
        var mItemDate = moment(itemdate);
        //var unread = mItemDate.diff(mLastDate) >0) ? true:false;
        //console.log (unread);
        return (mItemDate.diff(mLastDate) >0) ? true:false;
        
        
    };
    
    $scope.loadPost = function (item, itemdate)
    {
        var lastDate = $localstorage.get("latestBlogPostChecked");
        
        
        if (!lastDate)
        {
            ZMDataModel.zmDebug ("First time checking blog posts, I see");
            $localstorage.set("latestBlogPostChecked", itemdate);
        }
        
        else
        {
            ZMDataModel.zmDebug ("last  post checked is " + lastDate);
            ZMDataModel.zmDebug ("current post dated is " + itemdate);
            
            var mLastDate = moment(lastDate);
            var mItemDate = moment(itemdate);
            if (mItemDate.diff(mLastDate) >0)
            {
                ZMDataModel.zmDebug ("Updating lastDate to this post");
                $localstorage.set("latestBlogPostChecked", itemdate);
                
                if (itemdate == $scope.newsItems[0].date)
                {
                    // we are reading the latest post
                    $rootScope.newBlogPost="";
                }
            }
            
        }
        window.open(item, '_blank', 'location=yes'); 
        return false;
    };
    
    $scope.newsItems=[];
      
        $http.get (zm.blogUrl)
        .success (function(data)
        {
            //console.log ("Here2");
           // console.log (JSON.stringify(data));
            for (var i=0; i<data.length; i++)
            {
                $scope.newsItems.push({title:data[i].title, url:data[i].url, date:data[i].date});
            }
            
        });

}]);