1
+ Template .settingsUsers .helpers
2
+ isAdmin : ->
3
+ return Meteor .user ().admin is true
4
+ isReady : ->
5
+ return Template .instance ().ready ? .get ()
6
+ users : ->
7
+ filter = _ .trim Template .instance ().filter ? .get ()
8
+ if filter
9
+ filterReg = new RegExp filter, " i"
10
+ query = { $or : [ { username : filterReg }, { name : filterReg }, { " emails.address" : filterReg } ] }
11
+ else
12
+ query = {}
13
+ return Meteor .users .find (query, { limit : Template .instance ().limit ? .get (), sort : { username : 1 } }).fetch ()
14
+ name : ->
15
+ return if @name then @name else TAPi18next .t ' project:Unnamed'
16
+ email : ->
17
+ return @emails ? [0 ]? .address
18
+ flexOpened : ->
19
+ return ' opened' if Session .equals (' flexOpened' , true )
20
+ arrowPosition : ->
21
+ return ' left' unless Session .equals (' flexOpened' , true )
22
+ userData : ->
23
+ return Meteor .users .findOne Session .get ' settingsUsersSelected'
24
+ phoneNumber : ->
25
+ return ' ' unless @phoneNumber
26
+ if @phoneNumber .length > 10
27
+ return " (#{ @phoneNumber .substr (0 ,2 )} ) #{ @phoneNumber .substr (2 ,5 )} -#{ @phoneNumber .substr (7 )} "
28
+ else
29
+ return " (#{ @phoneNumber .substr (0 ,2 )} ) #{ @phoneNumber .substr (2 ,4 )} -#{ @phoneNumber .substr (6 )} "
30
+ lastLogin : ->
31
+ if @lastLogin
32
+ return moment (@lastLogin ).format (' LLL' )
33
+ utcOffset : ->
34
+ if @utcOffset ?
35
+ if @utcOffset > 0
36
+ @utcOffset = " +#{ @utcOffset } "
37
+
38
+ return " UTC #{ @utcOffset } "
39
+
40
+ Template .settingsUsers .onCreated ->
41
+ instance = @
42
+ @limit = new ReactiveVar 50
43
+ @filter = new ReactiveVar ' '
44
+ @ready = new ReactiveVar true
45
+
46
+ @ autorun ->
47
+ filter = instance .filter .get ()
48
+ limit = instance .limit .get ()
49
+ subscription = instance .subscribe ' fullUsers' , filter, limit
50
+ instance .ready .set subscription .ready ()
51
+
52
+ Template .settingsUsers .onRendered ->
53
+ Tracker .afterFlush ->
54
+ SideNav .setFlex " settingsFlex"
55
+ SideNav .openFlex ()
56
+
57
+ Template .settingsUsers .events
58
+ ' keydown #users-filter ' : (e ) ->
59
+ if e .which is 13
60
+ e .stopPropagation ()
61
+ e .preventDefault ()
62
+
63
+ ' keyup #users-filter ' : (e , t ) ->
64
+ e .stopPropagation ()
65
+ e .preventDefault ()
66
+ t .filter .set e .currentTarget .value
67
+
68
+ ' click .flex-tab .more ' : ->
69
+ if (Session .get (' flexOpened' ))
70
+ Session .set (' flexOpened' ,false )
71
+ else
72
+ Session .set (' flexOpened' , true )
73
+
74
+ ' click .user-info ' : (e ) ->
75
+ e .preventDefault ()
76
+ Session .set ' settingsUsersSelected' , $ (e .currentTarget ).data (' id' )
77
+ Session .set ' flexOpened' , true
78
+
79
+ ' click .deactivate ' : ->
80
+ Meteor .call ' setUserActiveStatus' , Session .get (' settingsUsersSelected' ), false , (error , result ) ->
81
+ if result
82
+ toastr .success t (' User_has_been_deactivated' )
83
+ if error
84
+ toastr .error error .reason
85
+
86
+ ' click .activate ' : ->
87
+ Meteor .call ' setUserActiveStatus' , Session .get (' settingsUsersSelected' ), true , (error , result ) ->
88
+ if result
89
+ toastr .success t (' User_has_been_activated' )
90
+ if error
91
+ toastr .error error .reason
92
+
93
+ ' click .delete ' : ->
94
+ swal {
95
+ title : t (' Are_you_sure' )
96
+ text : t (' Delete_User_Warning' )
97
+ type : ' warning'
98
+ showCancelButton : true
99
+ confirmButtonColor : ' #DD6B55'
100
+ confirmButtonText : t (' Yes_delete_it' )
101
+ cancelButtonText : t (' Cancel' )
102
+ closeOnConfirm : false
103
+ html : false
104
+ }, ->
105
+ swal
106
+ title : t (' Deleted' )
107
+ text : t (' User_has_been_deleted' )
108
+ type : ' success'
109
+ timer : 2000
110
+ showConfirmButton : false
111
+
112
+ Meteor .call ' deleteUser' , Session .get (' settingsUsersSelected' ), (error , result ) ->
113
+ if error
114
+ toastr .error error .reason
0 commit comments