UNPKG

1.65 kBJavaScriptView Raw
1import Ember from 'ember';
2
3const { get, set } = Ember;
4
5export default Ember.Controller.extend({
6 firstError: Ember.computed('model.errors.firstObject', function() {
7 var model = get(this, 'model');
8 var errorMessage = get(model, 'errors.firstObject');
9
10 if (errorMessage) {
11 var readableAttribute = errorMessage.attribute.dasherize().replace('-', ' ');
12 return readableAttribute.capitalize() + ": " + errorMessage.message;
13 }
14 else {
15 return null;
16 }
17 }),
18
19 loginNewUser: function(username, password) {
20 var previousTransition = get(this, 'previousTransition');
21 var authenticationParams = {
22 username: username,
23 password: password
24 };
25
26 this.get('session').open('traditional-authentication', authenticationParams).then(() => {
27 if (previousTransition) {
28 set(this, 'previousTransition', null);
29 previousTransition.retry();
30 }
31 else {
32 this.transitionToRoute('/');
33 }
34 }, (error) => {
35 console.log('Error authenticating new user: ', error);
36
37 // Transitioning to home will redirect to login
38 this.transitionTo('/');
39 });
40 },
41
42 actions: {
43 signup: function() {
44 var model = get(this, 'model');
45
46 var username = get(model, 'username');
47 var password = get(model, 'password');
48
49 model.get('errors').clear();
50 model.save().then((/* user */) => {
51 set(model, 'password', null);
52 set(model, 'passwordConfirmation', null);
53
54 this.loginNewUser(username, password);
55
56 }, function(error) {
57 console.log('Error creating new user: ', error);
58 });
59 }
60 }
61});