Advertisement
Guest User

Untitled

a guest
Jan 21st, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. Swap.Views.UserSessions ||= {}
  2.  
  3. class Swap.Views.UserSessions.LoginView extends Backbone.View
  4. template: JST["backbone/templates/user_sessions/login"]
  5.  
  6. className: 'modal fade hide'
  7. id: 'login'
  8. attributes:
  9. tabindex: '-1'
  10. role: 'dialog'
  11.  
  12. events:
  13. 'submit form': 'login'
  14. 'click .eyes': 'togglePassword'
  15. 'focusin input': 'clearError'
  16.  
  17. bindings:
  18. "input#user_email" : "email"
  19. "input#user_password" : "password"
  20. "input[type='email'], input[type='password'], input[type='text']":
  21. attributes: [
  22. {
  23. name: 'class'
  24. observe: 'error'
  25. onGet: (val)->
  26. 'error' if val && !_.isEmpty(val)
  27. }
  28. ]
  29. '.error_message':
  30. observe: 'error'
  31. onGet: (val)->
  32. val if val && !_.isEmpty(val)
  33.  
  34. #model: new Swap.Models.UserSession()
  35.  
  36.  
  37. render: ->
  38. @model = new Swap.Models.UserSession()
  39. $('.modal').modal 'hide'
  40.  
  41. @$el.html @template()
  42.  
  43. @$el.on 'shown.bs.modal', @onShow
  44. @$el.on 'hidden.bs.modal', @onClose
  45.  
  46. @stickit()
  47. @$el.modal
  48. keyboard: false
  49. backdrop: true
  50.  
  51.  
  52.  
  53. return @
  54.  
  55. onShow: (e) =>
  56. @$el.find('a, span, i, div').tooltip()
  57.  
  58. login: (e) ->
  59. e.preventDefault() if e
  60.  
  61. @model.save @model.attributes,
  62. success: (userSession, response) =>
  63. csrf = _.pick(response, 'csrf_token', 'csrf_param')
  64. if _.has(csrf, 'csrf_token')
  65. $('meta[name="csrf-token"]').attr('content', response.csrf_token)
  66.  
  67. Swap.currentUser = new (Swap.Models.User)(_.omit(response, 'csrf_token', 'csrf_param'))
  68. Swap.vent.trigger 'authentication:logged_in'
  69. @$el.modal('hide')
  70. return
  71. error: (userSession, response) =>
  72. result = $.parseJSON(response.responseText)
  73. @model.set result
  74. return
  75.  
  76. onClose: (e) =>
  77. view = @
  78. setTimeout (->
  79. view.$el.modal 'hide'
  80. view.remove()
  81. return
  82. ), 25
  83.  
  84. togglePassword: (e)->
  85. if $('input#user_password').prop('type') == 'password'
  86. $('input#user_password').prop('type', 'text')
  87. else
  88. $('input#user_password').prop('type', 'password')
  89.  
  90. clearError: (e)->
  91. input = $(e.target)
  92. if input.hasClass('error')
  93. block = input.closest('form')
  94. message = block.find('.error_message') if block.length > 0
  95. if message
  96. message.fadeOut 'slow', =>
  97. message.html()
  98. message.show()
  99. @model.set
  100. error: {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement