|  | @@ -20,18 +20,47 @@ Template.memberMenuPopup.events({
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +Template.editProfilePopup.helpers({
 | 
	
		
			
				|  |  | +  allowEmailChange() {
 | 
	
		
			
				|  |  | +    return AccountSettings.findOne('accounts-allowEmailChange').booleanValue;
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  Template.editProfilePopup.events({
 | 
	
		
			
				|  |  |    submit(evt, tpl) {
 | 
	
		
			
				|  |  |      evt.preventDefault();
 | 
	
		
			
				|  |  |      const fullname = tpl.find('.js-profile-fullname').value.trim();
 | 
	
		
			
				|  |  |      const username = tpl.find('.js-profile-username').value.trim();
 | 
	
		
			
				|  |  |      const initials = tpl.find('.js-profile-initials').value.trim();
 | 
	
		
			
				|  |  | +    const email = tpl.find('.js-profile-email').value.trim();
 | 
	
		
			
				|  |  | +    let isChangeUserName = false;
 | 
	
		
			
				|  |  | +    let isChangeEmail = false;
 | 
	
		
			
				|  |  |      Users.update(Meteor.userId(), {$set: {
 | 
	
		
			
				|  |  |        'profile.fullname': fullname,
 | 
	
		
			
				|  |  |        'profile.initials': initials,
 | 
	
		
			
				|  |  |      }});
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    if (username !== Meteor.user().username) {
 | 
	
		
			
				|  |  | +    isChangeUserName = username !== Meteor.user().username;
 | 
	
		
			
				|  |  | +    isChangeEmail = email.toLowerCase() !== Meteor.user().emails[0].address.toLowerCase();
 | 
	
		
			
				|  |  | +    if (isChangeUserName && isChangeEmail) {
 | 
	
		
			
				|  |  | +      Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), function(error) {
 | 
	
		
			
				|  |  | +        const usernameMessageElement = tpl.$('.username-taken');
 | 
	
		
			
				|  |  | +        const emailMessageElement = tpl.$('.email-taken');
 | 
	
		
			
				|  |  | +        if (error) {
 | 
	
		
			
				|  |  | +          const errorElement = error.error;
 | 
	
		
			
				|  |  | +          if (errorElement === 'username-already-taken') {
 | 
	
		
			
				|  |  | +            usernameMessageElement.show();
 | 
	
		
			
				|  |  | +            emailMessageElement.hide();
 | 
	
		
			
				|  |  | +          } else if (errorElement === 'email-already-taken') {
 | 
	
		
			
				|  |  | +            usernameMessageElement.hide();
 | 
	
		
			
				|  |  | +            emailMessageElement.show();
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          usernameMessageElement.hide();
 | 
	
		
			
				|  |  | +          emailMessageElement.hide();
 | 
	
		
			
				|  |  | +          Popup.back();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    } else if (isChangeUserName) {
 | 
	
		
			
				|  |  |        Meteor.call('setUsername', username, function(error) {
 | 
	
		
			
				|  |  |          const messageElement = tpl.$('.username-taken');
 | 
	
		
			
				|  |  |          if (error) {
 | 
	
	
		
			
				|  | @@ -41,6 +70,16 @@ Template.editProfilePopup.events({
 | 
	
		
			
				|  |  |            Popup.back();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  | +    } else if (isChangeEmail) {
 | 
	
		
			
				|  |  | +      Meteor.call('setEmail', email.toLowerCase(), function(error) {
 | 
	
		
			
				|  |  | +        const messageElement = tpl.$('.email-taken');
 | 
	
		
			
				|  |  | +        if (error) {
 | 
	
		
			
				|  |  | +          messageElement.show();
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          messageElement.hide();
 | 
	
		
			
				|  |  | +          Popup.back();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  |      } else Popup.back();
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  });
 |