Lungo.Router.Section.coffee 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. ###
  2. Initialize the <articles> layout of a certain <section>
  3. @namespace Lungo.View
  4. @class Section
  5. @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
  6. ###
  7. Lungo.Section = do(lng = Lungo) ->
  8. C = lng.Constants
  9. show = (current, target) ->
  10. if lng.DEVICE is C.DEVICE.PHONE then _phone target else _tablet current, target
  11. lng.Element.Cache.section = target
  12. active_article = target.find "#{C.ELEMENT.ARTICLE}.#{C.CLASS.ACTIVE}"
  13. if active_article.length is 0
  14. active_article = target.find(C.ELEMENT.ARTICLE).first().addClass(C.CLASS.ACTIVE)
  15. lng.Element.Cache.article = active_article
  16. lng.Element.Cache.aside = lng.Aside.active target
  17. if target.hasClass "aside" then lng.Aside.show()
  18. current.trigger C.TRIGGER.UNLOAD if current
  19. target.trigger C.TRIGGER.LOAD
  20. defineTransition = (target, current) ->
  21. target_transition = target.data C.ATTRIBUTE.TRANSITION
  22. if target_transition
  23. _assignTransitionOrigin current
  24. assignTransition current, target_transition
  25. assignTransition = (section, transitionName) ->
  26. section.data C.ATTRIBUTE.TRANSITION, transitionName
  27. ###
  28. Private methods
  29. ###
  30. _phone = (target) ->
  31. target.removeClass(C.CLASS.HIDE).addClass(C.CLASS.SHOW)
  32. _tablet = (current, target) ->
  33. children = current.data C.ATTRIBUTE.CHILDREN if current
  34. if current and (not children or children.indexOf(target.attr(C.ATTRIBUTE.ID)) is -1)
  35. current.addClass C.CLASS.HIDE
  36. setTimeout (->current.removeClass(C.CLASS.SHOW).removeClass(C.CLASS.HIDE)), C.TRANSITION.DURATION
  37. setTimeout (-> target.addClass(C.CLASS.SHOW)), C.TRANSITION.DURATION
  38. _assignTransitionOrigin = (section) ->
  39. section.data C.TRANSITION.ORIGIN, section.data(C.TRANSITION.ATTR)
  40. show: show
  41. defineTransition: defineTransition
  42. assignTransition: assignTransition