aboutsummaryrefslogtreecommitdiffstats
path: root/alias-angular/app/js/filters.js
blob: 70bd0749d947be8d681e9f6616ed105feb4003e1 (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
'use strict';
/* http://docs-next.angularjs.org/api/angular.module.ng.$filter */

angular.module('Alias.filters', []).
    filter('rosterFilter', function (){
        return function(contacts, query) {
            if(!query) {
                return contacts;
            } else {
                return _.filter(contacts, function(contact) {
                    return (contact.hasOwnProperty('name') &&
                            contact.name.indexOf(query) > -1) ||
                        (contact.jid.indexOf(query) > -1 ||
                         contact.jid.indexOf(query) > -1);
                });
            }
        };
    }).filter('showoffline', function() {
        return function(contacts, checkoffline) {
            if(checkoffline) {
                return contacts;
            } else {
                return _.filter(contacts, function(contact) {
                    return contact.status != "offline";
                });
            };
        };
    }).filter('formatStatus',function() {
        return function(status) {
            switch(status) {
            case "chat":
                return "Online";
            case "away":
                return "Away";
            case "xa":
                return "Extended Away";
            case "dnd":
                return "Do Not Disturb";
            case "offline":
                return "Offline";
            }
        };
    });