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
2727 label += 'checked' if options.checked
2828 label + ">#{doc.name}</label>"
2929
30−templates.sidebarDisabled = '<h6 class="_list-title">Disabled</h6>'
30+templates.sidebarDisabledList = (options) ->
31+ """<div class="_disabled-list">#{templates.render 'sidebarDoc', options.docs, disabled: true}</div>"""
32+
33+templates.sidebarDisabled = '<h6 class="_list-title"><span class="_list-arrow"></span>Disabled</h6>'
3134
3235 templates.sidebarVote = '<a href="https://trello.com/b/6BmTulfx/devdocs-documentation" class="_list-link" target="_blank">Vote for new documentation</a>'
3336
assets/javascripts/views/sidebar/doc_list.coffee+28−2
@@ -4,10 +4,15 @@ class app.views.DocList extends app.View · 3 unmodified lines
44 @events:
55 open: 'onOpen'
66 close: 'onClose'
7+ click: 'onClick'
78
89 @routes:
910 after: 'afterRoute'
1011
12+ @elements:
13+ disabledTitle: '._list-title'
14+ disabledList: '._disabled-list'
15+
1116 init: ->
1217 @lists = {}
1318
@@ -32,11 +37,23 @@ class app.views.DocList extends app.View · 18 unmodified lines
3237 render: =>
3338 @html @tmpl('sidebarDoc', app.docs.all())
3439 @renderDisabled() unless app.isSingleDoc() or app.settings.hasDocs()
40+ @refreshElements()
3541 return
3642
3743 renderDisabled: ->
38− @append @tmpl('sidebarDisabled') +
39− @tmpl('sidebarDoc', app.disabledDocs.all(), disabled: true)
44+ @append @tmpl('sidebarDisabled')
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')
4057 return
4158
4259 reset: ->
@@ -97,6 +114,15 @@ class app.views.DocList extends app.View · 54 unmodified lines
97114 $.scrollTo @find("a[href='#{model.fullPath()}']"), null, 'top', margin: 0
98115 return
99116
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+
100126 afterRoute: (route, context) =>
101127 if context.init
102128 @reset()
assets/stylesheets/components/_sidebar.scss+5−2
@@ -59,7 +59,10 @@ · 58 unmodified lines
5959 }
6060
6161 ._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;
6366 font-size: .75rem;
6467 color: $textColorLight;
6568 text-transform: uppercase;
@@ -158,7 +161,7 @@ · 92 unmodified lines
158161 &:before {
159162 @extend %icon, %icon-dir;
160163
161− .open > & {
164+ .open, .open-title > & {
162165 -webkit-transform: rotate(90deg);
163166 transform: rotate(90deg);
164167 }