History

Make disabled docs list foldable

Thibaut committed 12 years ago

Commit be51ff41 parent 25efa553 files · +37 −5Browse files

Unified · Split

3 files
  1. assets/javascripts/templates/sidebar_tmpl.coffee +4 −1
  2. assets/javascripts/views/sidebar/doc_list.coffee +28 −2
  3. assets/stylesheets/components/_sidebar.scss +5 −2
assets/javascripts/templates/sidebar_tmpl.coffee+4−1
@@ -27,7 +27,10 @@ templates.sidebarLabel = (doc, options = {}) -> · 26 unmodified lines
27 label += 'checked' if options.checked27 label += 'checked' if options.checked
28 label + ">#{doc.name}</label>"28 label + ">#{doc.name}</label>"
29 29
30templates.sidebarDisabled = '<h6 class="_list-title">Disabled</h6>'30templates.sidebarDisabledList = (options) ->
31 """<div class="_disabled-list">#{templates.render 'sidebarDoc', options.docs, disabled: true}</div>"""
32
33templates.sidebarDisabled = '<h6 class="_list-title"><span class="_list-arrow"></span>Disabled</h6>'
31 34
32templates.sidebarVote = '<a href="https://trello.com/b/6BmTulfx/devdocs-documentation" class="_list-link" target="_blank">Vote for new documentation</a>'35templates.sidebarVote = '<a href="https://trello.com/b/6BmTulfx/devdocs-documentation" class="_list-link" target="_blank">Vote for new documentation</a>'
33 36
assets/javascripts/views/sidebar/doc_list.coffee+28−2
@@ -4,10 +4,15 @@ class app.views.DocList extends app.View · 3 unmodified lines
4 @events:4 @events:
5 open: 'onOpen'5 open: 'onOpen'
6 close: 'onClose'6 close: 'onClose'
7 click: 'onClick'
7 8
8 @routes:9 @routes:
9 after: 'afterRoute'10 after: 'afterRoute'
10 11
12 @elements:
13 disabledTitle: '._list-title'
14 disabledList: '._disabled-list'
15
11 init: ->16 init: ->
12 @lists = {}17 @lists = {}
13 18
@@ -32,11 +37,23 @@ class app.views.DocList extends app.View · 18 unmodified lines
32 render: =>37 render: =>
33 @html @tmpl('sidebarDoc', app.docs.all())38 @html @tmpl('sidebarDoc', app.docs.all())
34 @renderDisabled() unless app.isSingleDoc() or app.settings.hasDocs()39 @renderDisabled() unless app.isSingleDoc() or app.settings.hasDocs()
40 @refreshElements()
35 return41 return
36 42
37 renderDisabled: ->43 renderDisabled: ->
38 @append @tmpl('sidebarDisabled') +44 @append @tmpl('sidebarDisabled')
39 @tmpl('sidebarDoc', app.disabledDocs.all(), disabled: true)45 @renderDisabledList()
46 return
47
48 renderDisabledList: ->
49 @append @tmpl('sidebarDisabledList', docs: app.disabledDocs.all())
50 @refreshElements()
51 @disabledTitle.classList.add('open-title')
52 return
53
54 removeDisabledList: ->
55 @disabledList.remove()
56 @disabledTitle.classList.remove('open-title')
40 return57 return
41 58
42 reset: ->59 reset: ->
@@ -97,6 +114,15 @@ class app.views.DocList extends app.View · 54 unmodified lines
97 $.scrollTo @find("a[href='#{model.fullPath()}']"), null, 'top', margin: 0114 $.scrollTo @find("a[href='#{model.fullPath()}']"), null, 'top', margin: 0
98 return115 return
99 116
117 onClick: (event) =>
118 return unless @disabledTitle and $.hasChild @disabledTitle, event.target
119 $.stopEvent(event)
120 if @disabledTitle.classList.contains('open-title')
121 @removeDisabledList()
122 else
123 @renderDisabledList()
124
125
100 afterRoute: (route, context) =>126 afterRoute: (route, context) =>
101 if context.init127 if context.init
102 @reset()128 @reset()
assets/stylesheets/components/_sidebar.scss+5−2
@@ -59,7 +59,10 @@ · 58 unmodified lines
59}59}
60 60
61._list-title {61._list-title {
62 margin: 1rem 0 .5rem 2.25rem;62 position: relative;
63 margin: .5rem 0 0;
64 padding-left: 2.25rem;
65 line-height: 2rem;
63 font-size: .75rem;66 font-size: .75rem;
64 color: $textColorLight;67 color: $textColorLight;
65 text-transform: uppercase;68 text-transform: uppercase;
@@ -158,7 +161,7 @@ · 92 unmodified lines
158 &:before {161 &:before {
159 @extend %icon, %icon-dir;162 @extend %icon, %icon-dir;
160 163
161 .open > & {164 .open, .open-title > & {
162 -webkit-transform: rotate(90deg);165 -webkit-transform: rotate(90deg);
163 transform: rotate(90deg);166 transform: rotate(90deg);
164 }167 }