Skip to content

Commit

Permalink
fixed accountbar extension for hoodie
Browse files Browse the repository at this point in the history
* * *

This commit was sponsored by The Hoodie Firm.
You can hire The Hoodie Firm:
http://go.hood.ie/thehoodiefirm
  • Loading branch information
gr2m committed Oct 30, 2013
1 parent ffbabf8 commit 94a6b95
Showing 1 changed file with 85 additions and 86 deletions.
171 changes: 85 additions & 86 deletions www/assets/vendor/hoodie.accountbar.bootstrap.js
@@ -1,52 +1,51 @@
// extend Hoodie with Hoodstrap module
Hoodie.extend('hoodstrap', (function() {

// Constructor
function Hoodstrap(hoodie) {

this.hoodie = hoodie

// all about authentication and stuff
this.hoodifyAccountBar()
}

Hoodstrap.prototype = {

//
hoodifyAccountBar: function() {
this.hoodie.account.authenticate().then(this.handleUserAuthenticated.bind(this), this.handleUserUnauthenticated.bind(this));
this.subscribeToHoodieEvents()
},

subscribeToHoodieEvents : function() {
this.hoodie.account.on('signin', this.handleUserAuthenticated.bind(this))
this.hoodie.account.on('signout', this.handleUserUnauthenticated.bind(this))
this.hoodie.on('account:error:unauthenticated remote:error:unauthenticated', this.handleUserAuthenticationError.bind(this))
},

//
handleUserAuthenticated: function(username) {
$('html').attr('data-hoodie-account-status', 'signedin')
$('.hoodie-accountbar').find('.hoodie-username').text(username)
},

//
handleUserUnauthenticated: function() {
$('html').attr('data-hoodie-account-status', 'signedout')
},
handleUserAuthenticationError: function() {
$('.hoodie-accountbar').find('.hoodie-username').text(this.hoodie.account.username)
$('html').attr('data-hoodie-account-status', 'error')
}
}
!function ($) {

return Hoodstrap
})() );
'use strict';

// extend Hoodie with Hoodstrap module
Hoodie.extend(function(hoodie) {

!function ($) {
// Constructor
function Hoodstrap(hoodie) {

"use strict"; // jshint ;_;
this.hoodie = hoodie;

// all about authentication and stuff
this.hoodifyAccountBar();
}

Hoodstrap.prototype = {

//
hoodifyAccountBar: function() {
this.subscribeToHoodieEvents();
this.hoodie.account.authenticate().then(this.handleUserAuthenticated.bind(this), this.handleUserUnauthenticated.bind(this));
},

subscribeToHoodieEvents : function() {
this.hoodie.account.on('signin reauthenticated', this.handleUserAuthenticated.bind(this));
this.hoodie.account.on('signout', this.handleUserUnauthenticated.bind(this));
this.hoodie.on('account:error:unauthenticated remote:error:unauthenticated', this.handleUserAuthenticationError.bind(this));
},

//
handleUserAuthenticated: function(username) {
$('html').attr('data-hoodie-account-status', 'signedin');
$('.hoodie-accountbar').find('.hoodie-username').text(username);
},

//
handleUserUnauthenticated: function() {
$('html').attr('data-hoodie-account-status', 'signedout');
},
handleUserAuthenticationError: function() {
$('.hoodie-accountbar').find('.hoodie-username').text(this.hoodie.account.username);
$('html').attr('data-hoodie-account-status', 'error');
}
};

new Hoodstrap(hoodie);
});

/* Hoodie DATA-API
* =============== */
Expand All @@ -58,89 +57,89 @@ Hoodie.extend('hoodstrap', (function() {
var $element = $(event.target),
action = $element.data('hoodie-action'),
$form;

switch(action) {
case 'signup':
$form = $.modalForm({
fields: [ 'username', 'password', 'password_confirmation' ],
submit: 'Sign Up'
})
break
});
break;
case 'signin':
$form = $.modalForm({
fields: [ 'username', 'password' ],
submit: 'Sign in'
})
break
});
break;
case 'resetpassword':
$form = $.modalForm({
fields: [ 'username' ],
submit: 'Reset Password'
})
break
});
break;
case 'changepassword':
$form = $.modalForm({
fields: [ 'current_password', 'new_password' ],
submit: 'Reset Password'
})
break
});
break;
case 'changeusername':
$form = $.modalForm({
fields: [ 'current_password', 'new_username' ],
submit: 'Reset Password'
})
break
});
break;
case 'signout':
window.hoodie.account.signOut()
break
window.hoodie.account.signOut();
break;
case 'destroy':
if( window.confirm("you sure?") ) {
window.hoodie.account.destroy()
if( window.confirm('you sure?') ) {
window.hoodie.account.destroy();
}
break
break;
}

if ($form) {
$form.on('submit', handleSubmit( action ))
$form.on('submit', handleSubmit( action ));
}
})
});

var handleSubmit = function(action) {
return function(event, inputs) {

var $modal = $(event.target)
var $modal = $(event.target);
var magic;

switch(action) {
case 'signin':
magic = window.hoodie.account.signIn(inputs.username, inputs.password)
break
magic = window.hoodie.account.signIn(inputs.username, inputs.password);
break;
case 'signup':
magic = window.hoodie.account.signUp(inputs.username, inputs.password)
break
magic = window.hoodie.account.signUp(inputs.username, inputs.password);
break;
case 'changepassword':
magic = window.hoodie.account.changePassword(null, inputs.new_password)
break
magic = window.hoodie.account.changePassword(null, inputs.new_password);
break;
case 'changeusername':
magic = window.hoodie.account.changeUsername(inputs.current_password, inputs.new_username)
break
magic = window.hoodie.account.changeUsername(inputs.current_password, inputs.new_username);
break;
case 'resetpassword':
magic = window.hoodie.account.resetPassword(inputs.email)
.done(function() {
alert("send new password to " + inputs.email);
})
break
window.alert('send new password to ' + inputs.email);
});
break;
}

magic.done(function() {
$modal.find('.alert').remove()
$modal.modal('hide')
})
magic.fail(function(error) {
$modal.find('.alert').remove()
$modal.trigger('error', error)
})
}
}
})
magic.done(function() {
$modal.find('.alert').remove();
$modal.modal('hide');
});
magic.fail(function(error) {
$modal.find('.alert').remove();
$modal.trigger('error', error);
});
};
};
});
}( window.jQuery )

0 comments on commit 94a6b95

Please sign in to comment.