summaryrefslogtreecommitdiffstats
path: root/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-04-custom-filters.html
blob: f39991d96f8dc1dcd0fd41004c4bcffbd5cdf74f (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
<!DOCTYPE html>
<html>
<head>
    <title>Custom Filters in Action</title>
    <script src="../../tp/angular.js"></script>
</head>
<body ng-app="filtersApp">

    <div ng-controller="FilterCtrl as ctrl">
        <div>
            Start time (Timestamp): {{ctrl.startTime}}
        </div>
        <div>
            Start time (Time): {{ctrl.startTime | date:'h:m a'}}
        </div>
        <div>
            Start time (Our filter): {{ctrl.startTime | timeAgo}}
        </div>
        <div>
            Start time (Our filter 2): {{ctrl.startTime | timeAgo:true}}
        </div>
        <div>
            Some time ago (Computed): {{ctrl.someTimeAgo | date:'h:m a'}}
        </div>
        <div>
            Some time ago (Our filter): {{ctrl.someTimeAgo | timeAgo}}
        </div>
    </div>

    <script type="text/javascript">
        angular.module('filtersApp', [])
                .controller('FilterCtrl', [function () {
                    var self = this;
                    self.startTime = new Date().getTime();
                    self.someTimeAgo = self.startTime - (1000*3600*4);
                }])
                .filter('timeAgo', [function () {
                    var _m = 1000 * 60,
                        _h = _m * 60,
                        _d = _h * 24,
                        _mon = _d * 30;

                    return function (ts, ignoreSecs) {
                        var now = new Date().getTime(),
                                diff = now - ts;
                        if (diff < _m && !ignoreSecs) {
                            return 'seconds ago';
                        } else if (diff < _h) {
                            return 'minutes ago';
                        } else if (diff < _d) {
                            return 'hours ago';
                        } else if (diff < _mon) {
                            return 'days ago';
                        } else {
                            return 'months ago';
                        }
                    }
                }]);
    </script>
</body>
</html>