Vulcan/client/views/users/invites.js
Charlie DeTar ea7efc3550 Replace "throwError" with "flashMessage" and type
Currently, ``throwError`` is used for all manner of messages, including
errors, "success" messages, and "info" messages.  This makes appropriate
styling of the error message difficult.  In addition, the name
``throwError`` seems to create confusion, implying that an error will
actually be thrown (e.g. stopping execution when a user isn't logged in
[0][1]), when in fact it just displays a message.

Replace ``throwError`` with ``flashMessage``, and reliably include a
message "type" (e.g. "error", "success", "info") every time.  rename
``lib/errors.js`` to ``lib/messages.js`` to more accurately reflect its
function.

This commit doesn't rename the message collection (``Errors``), nor the
template responsible for rendering the messages (``error_item.html``) --
that should probably still be done, but has higher likelihood of
trouble for existing alternate themes and installations.

[0] 6ccf7d7d47/client/views/users/user_edit.js (L43)
[1] 083a4c4dc4/client/views/users/user_email.js (L13)
2014-11-05 13:12:09 -07:00

47 lines
1.1 KiB
JavaScript

Template[getTemplate('invites')].helpers({
canCurrentUserInvite: function(){
var currentUser = Meteor.user();
return currentUser && (currentUser.inviteCount > 0 && canInvite(currentUser));
},
invitesLeft: function(){
var currentUser = Meteor.user();
return currentUser ? currentUser.inviteCount : 0;
},
invitesSchema: function() {
// expose schema for Invites (used by AutoForm)
return InviteSchema;
}
});
var scrollUp = function(){
Deps.afterFlush(function() {
var element = $('.grid > .error');
$('html, body').animate({scrollTop: element.offset().top});
});
};
AutoForm.hooks({
inviteForm: {
onSuccess: function(operation, result, template) {
clearSeenMessages();
if(result && result.newUser){
flashMessage('An invite has been sent out. Thank you!', "success");
} else {
flashMessage('Thank you!', "info");
}
scrollUp();
},
onError: function(operation, error, template) {
clearSeenMessages();
if(error && error.reason){
throwError(error.reason);
scrollUp();
}
}
}
});