History

Improve doc list for versioned docs

Ref #25.

Thibaut Courouble committed 10 years ago

Commit 2ece8d11 parent 26858606 files · +37 −11Browse files

Unified · Split

6 files
  1. assets/javascripts/templates/sidebar_tmpl.coffee +10 −5
  2. assets/javascripts/views/list/list_focus.coffee +8 −2
  3. assets/javascripts/views/list/list_fold.coffee +2 −2
  4. assets/javascripts/views/sidebar/doc_list.coffee +15 −1
  5. assets/javascripts/views/sidebar/doc_picker.coffee +1 −1
  6. assets/stylesheets/components/_sidebar.scss +1 −0
assets/javascripts/templates/sidebar_tmpl.coffee+10−5
@@ -3,13 +3,15 @@ templates = app.templates · 2 unmodified lines
33 templates.sidebarDoc = (doc, options = {}) ->
44 link = """<a href="#{doc.fullPath()}" class="_list-item _icon-#{doc.icon} """
55 link += if options.disabled then '_list-disabled' else '_list-dir'
6− link += """" data-slug="#{doc.slug}" title="#{doc.name}">"""
6+ link += """" data-slug="#{doc.slug}" title="#{doc.name} #{doc.version || ''}">"""
77 if options.disabled
88 link += """<span class="_list-enable" data-enable="#{doc.slug}">Enable</span>"""
99 else
1010 link += """<span class="_list-arrow"></span>"""
1111 link += """<span class="_list-count">#{doc.release}</span>""" if doc.release
12− link + "#{doc.name}</a>"
12+ link += "#{doc.name}"
13+ link += " #{doc.version}" if options.disabled and doc.version
14+ link + "</a>"
1315
1416 templates.sidebarType = (type) ->
1517 """<a href="#{type.fullPath()}" class="_list-item _list-dir" data-slug="#{type.slug}"><span class="_list-arrow"></span><span class="_list-count">#{type.count}</span>#{type.name}</a>"""
@@ -48,12 +50,15 @@ templates.sidebarVersionedDoc = (doc, versions, options = {}) -> · 32 unmodified lines
4850 html += " open" if options.open
4951 html + """"><span class="_list-arrow"></span>#{doc.name}</div><div class="_list _list-sub">#{versions}</div>"""
5052
51−templates.sidebarDisabledList = (options) ->
52− """<div class="_disabled-list">#{templates.render 'sidebarDoc', options.docs, disabled: true}</div>"""
53−
5453 templates.sidebarDisabled = (options) ->
5554 """<h6 class="_list-title"><span class="_list-arrow"></span>Disabled (#{options.count})</h6>"""
5655
56+templates.sidebarDisabledList = (html) ->
57+ """<div class="_disabled-list">#{html}</div>"""
58+
59+templates.sidebarDisabledVersionedDoc = (doc, versions) ->
60+ """<a class="_list-item _list-dir _icon-#{doc.icon} _list-disabled"><span class="_list-arrow"></span>#{doc.name}</a><div class="_list _list-sub">#{versions}</div>"""
61+
5762 templates.sidebarPickerNote = """
5863 <div class="_list-note">Tip: for faster and better search results, select only the docs you need.</div>
5964 <a href="https://trello.com/b/6BmTulfx/devdocs-documentation" class="_list-link" target="_blank">Vote for new documentation</a>
assets/javascripts/views/list/list_focus.coffee+8−2
@@ -38,7 +38,10 @@ class app.views.ListFocus extends app.View · 37 unmodified lines
3838 $.click(next)
3939 @findNext cursor
4040 else if next.tagName is 'DIV' # sub-list
41− @findFirst(next) or @findNext(next)
41+ if cursor.className.indexOf('open') >= 0
42+ @findFirst(next) or @findNext(next)
43+ else
44+ @findNext(next)
4245 else if next.tagName is 'H6' # title
4346 @findNext(next)
4447 else if cursor.parentElement isnt @el
@@ -61,7 +64,10 @@ class app.views.ListFocus extends app.View · 16 unmodified lines
6164 $.click(prev)
6265 @findPrev cursor
6366 else if prev.tagName is 'DIV' # sub-list
64− @findLast(prev) or @findPrev(prev)
67+ if prev.previousSibling.className.indexOf('open') >= 0
68+ @findLast(prev) or @findPrev(prev)
69+ else
70+ @findPrev(prev)
6571 else if prev.tagName is 'H6' # title
6672 @findPrev(prev)
6773 else if cursor.parentElement isnt @el
assets/javascripts/views/list/list_fold.coffee+2−2
@@ -10,7 +10,7 @@ class app.views.ListFold extends app.View · 9 unmodified lines
1010 left: 'onLeft'
1111 right: 'onRight'
1212
13− constructor: (@el, @options = {}) -> super
13+ constructor: (@el) -> super
1414
1515 open: (el) ->
1616 if el and not el.classList.contains @constructor.activeClass
@@ -60,5 +60,5 @@ class app.views.ListFold extends app.View · 43 unmodified lines
6060 $.stopEvent(event)
6161 @toggle el.parentElement
6262 else if el.classList.contains @constructor.targetClass
63− if @options.toggleOnclick then @toggle(el) else @open(el)
63+ if el.hasAttribute('href') then @open(el) else @toggle(el)
6464 return
assets/javascripts/views/sidebar/doc_list.coffee+15−1
@@ -54,7 +54,21 @@ class app.views.DocList extends app.View · 53 unmodified lines
5454 return
5555
5656 appendDisabledList: ->
57− @append @tmpl('sidebarDisabledList', docs: app.disabledDocs.all())
57+ html = ''
58+ docs = [].concat(app.disabledDocs.all()...)
59+
60+ while doc = docs.shift()
61+ if doc.version
62+ versions = ''
63+ loop
64+ versions += @tmpl('sidebarDoc', doc, disabled: true)
65+ break if docs[0].name isnt doc.name
66+ doc = docs.shift()
67+ html += @tmpl('sidebarDisabledVersionedDoc', doc, versions)
68+ else
69+ html += @tmpl('sidebarDoc', doc, disabled: true)
70+
71+ @append @tmpl('sidebarDisabledList', html)
5872 @disabledTitle.classList.add('open-title')
5973 @refreshElements()
6074 return
assets/javascripts/views/sidebar/doc_picker.coffee+1−1
@@ -11,7 +11,7 @@ class app.views.DocPicker extends app.View · 10 unmodified lines
1111 enter: 'onEnter'
1212
1313 init: ->
14− @addSubview @listFold = new app.views.ListFold(@el, toggleOnclick: true)
14+ @addSubview @listFold = new app.views.ListFold(@el)
1515 return
1616
1717 activate: ->
assets/stylesheets/components/_sidebar.scss+1−0
@@ -197,6 +197,7 @@ · 196 unmodified lines
197197 .open + & { display: block; }
198198 > ._list-item { padding-left: 2.375rem; }
199199 > ._list-dir, > ._list-sub > ._list-item { padding-left: 2.75rem; }
200+ > ._list-disabled { padding-left: 3.875rem; }
200201 > ._list-item:before { content: none; }
201202 > ._list-dir { line-height: 1.375rem; }
202203