path.js 839 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. class app.views.Path extends app.View
  2. @className: '_path'
  3. @attributes:
  4. role: 'complementary'
  5. @events:
  6. click: 'onClick'
  7. @routes:
  8. after: 'afterRoute'
  9. render: (args...) ->
  10. @html @tmpl 'path', args...
  11. @show()
  12. return
  13. show: ->
  14. @prependTo app.el unless @el.parentNode
  15. return
  16. hide: ->
  17. $.remove @el if @el.parentNode
  18. return
  19. onClick: (event) =>
  20. @clicked = true if link = $.closestLink event.target, @el
  21. return
  22. afterRoute: (route, context) =>
  23. if context.type
  24. @render context.doc, context.type
  25. else if context.entry
  26. if context.entry.isIndex()
  27. @render context.doc
  28. else
  29. @render context.doc, context.entry.getType(), context.entry
  30. else
  31. @hide()
  32. if @clicked
  33. @clicked = null
  34. app.document.sidebar.reset()
  35. return