Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Swap.Views.UserSessions ||= {}
- class Swap.Views.UserSessions.LoginView extends Backbone.View
- template: JST["backbone/templates/user_sessions/login"]
- className: 'modal fade hide'
- id: 'login'
- attributes:
- tabindex: '-1'
- role: 'dialog'
- events:
- 'submit form': 'login'
- 'click .eyes': 'togglePassword'
- 'focusin input': 'clearError'
- bindings:
- "input#user_email" : "email"
- "input#user_password" : "password"
- "input[type='email'], input[type='password'], input[type='text']":
- attributes: [
- {
- name: 'class'
- observe: 'error'
- onGet: (val)->
- 'error' if val && !_.isEmpty(val)
- }
- ]
- '.error_message':
- observe: 'error'
- onGet: (val)->
- val if val && !_.isEmpty(val)
- #model: new Swap.Models.UserSession()
- render: ->
- @model = new Swap.Models.UserSession()
- $('.modal').modal 'hide'
- @$el.html @template()
- @$el.on 'shown.bs.modal', @onShow
- @$el.on 'hidden.bs.modal', @onClose
- @stickit()
- @$el.modal
- keyboard: false
- backdrop: true
- return @
- onShow: (e) =>
- @$el.find('a, span, i, div').tooltip()
- login: (e) ->
- e.preventDefault() if e
- @model.save @model.attributes,
- success: (userSession, response) =>
- csrf = _.pick(response, 'csrf_token', 'csrf_param')
- if _.has(csrf, 'csrf_token')
- $('meta[name="csrf-token"]').attr('content', response.csrf_token)
- Swap.currentUser = new (Swap.Models.User)(_.omit(response, 'csrf_token', 'csrf_param'))
- Swap.vent.trigger 'authentication:logged_in'
- @$el.modal('hide')
- return
- error: (userSession, response) =>
- result = $.parseJSON(response.responseText)
- @model.set result
- return
- onClose: (e) =>
- view = @
- setTimeout (->
- view.$el.modal 'hide'
- view.remove()
- return
- ), 25
- togglePassword: (e)->
- if $('input#user_password').prop('type') == 'password'
- $('input#user_password').prop('type', 'text')
- else
- $('input#user_password').prop('type', 'password')
- clearError: (e)->
- input = $(e.target)
- if input.hasClass('error')
- block = input.closest('form')
- message = block.find('.error_message') if block.length > 0
- if message
- message.fadeOut 'slow', =>
- message.html()
- message.show()
- @model.set
- error: {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement