travis-web/app/controllers/account.js
2016-01-04 13:15:14 +01:00

86 lines
2.0 KiB
JavaScript

import Ember from 'ember';
export default Ember.Controller.extend({
allHooks: [],
userBinding: 'auth.currentUser',
init() {
var self;
this._super.apply(this, arguments);
self = this;
return Travis.on("user:synced", (function() {
return self.reloadHooks();
}));
},
actions: {
sync() {
return this.get('user').sync();
},
toggle(hook) {
return hook.toggle();
}
},
reloadHooks() {
var hooks, login;
if (login = this.get('model.login')) {
hooks = this.store.query('hook', {
all: true,
owner_name: login
});
hooks.then(function() {
return hooks.set('isLoaded', true);
});
return this.set('allHooks', hooks);
}
},
accountName: function() {
return this.get('model.name') || this.get('model.login');
}.property('model.name', 'model.login'),
hooks: function() {
var hooks;
if (!(hooks = this.get('allHooks'))) {
this.reloadHooks();
}
return this.get('allHooks').filter(function(hook) {
return hook.get('admin');
});
}.property('allHooks.length', 'allHooks'),
hooksWithoutAdmin: function() {
var hooks;
if (!(hooks = this.get('allHooks'))) {
this.reloadHooks();
}
return this.get('allHooks').filter(function(hook) {
return !hook.get('admin');
});
}.property('allHooks.length', 'allHooks'),
showPrivateReposHint: function() {
return this.config.show_repos_hint === 'private';
}.property(),
showPublicReposHint: function() {
return this.config.show_repos_hint === 'public';
}.property(),
billingUrl: function() {
var id;
id = this.get('model.type') === 'user' ? 'user' : this.get('model.login');
return this.config.billingEndpoint + "/subscriptions/" + id;
}.property('model.name', 'model.login'),
subscribeButtonInfo: function() {
return {
billingUrl: this.get('billingUrl'),
subscribed: this.get('model.subscribed'),
education: this.get('model.education')
};
}.property('model.login', 'model.type')
});