151:0178573216e3
Anton Shestakov <av6@dwimlabs.net>, Thu, 14 Apr 2016 02:05:24 +0800
index: remove offline contacts only when they change to being offline Since new contacts are currently added while they still have the default presence of 'unavailable', add event sees them as offline and throws them away immediately, before their presence could change to something else.

next change 232:0fe8137e0f76
previous change 54:bb83c44ae4ac

js/rivets.js

Permissions: -rw-r--r--

Other formats: Feeds:
// Generated by CoffeeScript 1.10.0
(function() {
var slice = [].slice,
indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
rivets.adapters[':'] = {
observe: function(obj, keypath, callback) {
return obj.on('change:' + keypath, callback);
},
unobserve: function(obj, keypath, callback) {
return obj.off('change:' + keypath, callback);
},
get: function(obj, keypath) {
return obj.get(keypath);
},
set: function(obj, keypath, value) {
return obj.set(keypath, value);
}
};
rivets.formatters['first-letter'] = function(value) {
var ref;
return (ref = value != null ? typeof value.charAt === "function" ? value.charAt(0) : void 0 : void 0) != null ? ref : ' ';
};
rivets.formatters['dumb-hash'] = function(value) {
var i, j, ref, result;
result = 0;
if (value != null ? value.length : void 0) {
for (i = j = 0, ref = value.length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {
result += value.charCodeAt(i);
}
}
return result;
};
rivets.formatters['fn'] = function(value, fn) {
return fn(value);
};
rivets.formatters['only'] = function() {
var allowed, value;
value = arguments[0], allowed = 2 <= arguments.length ? slice.call(arguments, 1) : [];
if (indexOf.call(allowed, value) >= 0) {
return value;
} else {
return '';
}
};
rivets.formatters['eq'] = function(a, b) {
return a === b;
};
rivets.formatters['has'] = function(a, b) {
return (a != null) && indexOf.call(a, b) >= 0;
};
rivets.formatters['format-date'] = function(value, format) {
if (value != null) {
return value.format(format);
} else {
return '';
}
};
rivets.formatters['iso-date'] = function(value) {
if (value != null) {
return value.toISOString();
} else {
return '';
}
};
rivets.formatters['from-now'] = function(value) {
if (value != null) {
return value.fromNow();
} else {
return '';
}
};
}).call(this);
//# sourceMappingURL=rivets.js.map