1 _kiwi
.model
.Member
= Backbone
.Model
.extend({
2 sortModes: function (modes
) {
3 return modes
.sort(function (a
, b
) {
5 var user_prefixes
= _kiwi
.gateway
.get('user_prefixes');
7 for (i
= 0; i
< user_prefixes
.length
; i
++) {
8 if (user_prefixes
[i
].mode
=== a
) {
12 for (i
= 0; i
< user_prefixes
.length
; i
++) {
13 if (user_prefixes
[i
].mode
=== b
) {
19 } else if (a_idx
> b_idx
) {
26 initialize: function (attributes
) {
27 var nick
, modes
, prefix
;
28 nick
= this.stripPrefix(this.get("nick"));
30 modes
= this.get("modes");
32 this.sortModes(modes
);
33 this.set({"nick": nick
, "modes": modes
, "prefix": this.getPrefix(modes
)}, {silent
: true});
35 addMode: function (mode
) {
36 var modes_to_add
= mode
.split(''),
39 modes
= this.get("modes");
40 $.each(modes_to_add
, function (index
, item
) {
44 modes
= this.sortModes(modes
);
45 this.set({"prefix": this.getPrefix(modes
), "modes": modes
});
47 removeMode: function (mode
) {
48 var modes_to_remove
= mode
.split(''),
51 modes
= this.get("modes");
52 modes
= _
.reject(modes
, function (m
) {
53 return (_
.indexOf(modes_to_remove
, m
) !== -1);
56 this.set({"prefix": this.getPrefix(modes
), "modes": modes
});
58 getPrefix: function (modes
) {
60 var user_prefixes
= _kiwi
.gateway
.get('user_prefixes');
62 if (typeof modes
[0] !== 'undefined') {
63 prefix
= _
.detect(user_prefixes
, function (prefix
) {
64 return prefix
.mode
=== modes
[0];
66 prefix
= (prefix
) ? prefix
.symbol
: '';
70 stripPrefix: function (nick
) {
71 var tmp
= nick
, i
, j
, k
;
72 var user_prefixes
= _kiwi
.gateway
.get('user_prefixes');
75 for (j
= 0; j
< nick
.length
; j
++) {
76 for (k
= 0; k
< user_prefixes
.length
; k
++) {
77 if (nick
.charAt(j
) === user_prefixes
[k
].symbol
) {
86 displayNick: function (full
) {
87 var display
= this.get('nick');
90 if (this.get("ident")) {
91 display
+= ' [' + this.get("ident") + '@' + this.get("hostname") + ']';