Convert login/username to js

pull/6292/head
Martin Schoeler 9 years ago
parent 24e2b81f58
commit 61b138f94c
  1. 54
      packages/rocketchat-ui-login/client/username/username.coffee
  2. 67
      packages/rocketchat-ui-login/client/username/username.js

@ -1,54 +0,0 @@
Template.username.onCreated ->
self = this
self.username = new ReactiveVar
Meteor.call 'getUsernameSuggestion', (error, username) ->
self.username.set
ready: true
username: username
Meteor.defer ->
self.find('input').focus()
Template.username.helpers
username: ->
return Template.instance().username.get()
Template.username.events
'focus .input-text input': (event) ->
$(event.currentTarget).parents('.input-text').addClass('focus')
'blur .input-text input': (event) ->
if event.currentTarget.value is ''
$(event.currentTarget).parents('.input-text').removeClass('focus')
'submit #login-card': (event, instance) ->
event.preventDefault()
username = instance.username.get()
username.empty = false
username.error = false
username.invalid = false
instance.username.set(username)
button = $(event.target).find('button.login')
RocketChat.Button.loading(button)
value = $("#username").val().trim()
if value is ''
username.empty = true
instance.username.set(username)
RocketChat.Button.reset(button)
return
Meteor.call 'setUsername', value, (err, result) ->
if err?
console.log err
if err.error is 'username-invalid'
username.invalid = true
else
username.error = true
username.username = value
RocketChat.Button.reset(button)
instance.username.set(username)
RocketChat.callbacks.run('usernameSet')

@ -0,0 +1,67 @@
Template.username.onCreated(function() {
const self = this;
self.username = new ReactiveVar;
return Meteor.call('getUsernameSuggestion', function(error, username) {
self.username.set({
ready: true,
username
});
return Meteor.defer(() => self.find('input').focus());
});
});
Template.username.helpers({
username() {
return Template.instance().username.get();
}
});
Template.username.events({
'focus .input-text input'(event) {
return $(event.currentTarget).parents('.input-text').addClass('focus');
},
'blur .input-text input'(event) {
if (event.currentTarget.value === '') {
return $(event.currentTarget).parents('.input-text').removeClass('focus');
}
},
'submit #login-card'(event, instance) {
event.preventDefault();
const username = instance.username.get();
username.empty = false;
username.error = false;
username.invalid = false;
instance.username.set(username);
const button = $(event.target).find('button.login');
RocketChat.Button.loading(button);
const value = $('#username').val().trim();
if (value === '') {
username.empty = true;
instance.username.set(username);
RocketChat.Button.reset(button);
return;
}
return Meteor.call('setUsername', value, function(err) {
if (err != null) {
console.log(err);
if (err.error === 'username-invalid') {
username.invalid = true;
} else {
username.error = true;
}
username.username = value;
}
RocketChat.Button.reset(button);
instance.username.set(username);
return RocketChat.callbacks.run('usernameSet');
});
}
});
Loading…
Cancel
Save