38 lines
996 B
JavaScript
38 lines
996 B
JavaScript
/**
|
|
A data model representing a list of Invites
|
|
|
|
@class InviteList
|
|
@extends Discourse.Model
|
|
@namespace Discourse
|
|
@module Discourse
|
|
**/
|
|
Discourse.InviteList = Discourse.Model.extend({
|
|
empty: (function() {
|
|
return this.blank('pending') && this.blank('redeemed');
|
|
}).property('pending.@each', 'redeemed.@each')
|
|
});
|
|
|
|
Discourse.InviteList.reopenClass({
|
|
|
|
findInvitedBy: function(user) {
|
|
return Discourse.ajax("/users/" + (user.get('username_lower')) + "/invited.json").then(function (result) {
|
|
var invitedList = result.invited_list;
|
|
if (invitedList.pending) {
|
|
invitedList.pending = invitedList.pending.map(function(i) {
|
|
return Discourse.Invite.create(i);
|
|
});
|
|
}
|
|
if (invitedList.redeemed) {
|
|
invitedList.redeemed = invitedList.redeemed.map(function(i) {
|
|
return Discourse.Invite.create(i);
|
|
});
|
|
}
|
|
invitedList.user = user;
|
|
return Discourse.InviteList.create(invitedList);
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
|