Skip to content

Commit

Permalink
Added CF9 docs, added a Railo frame to look at it side by side
Browse files Browse the repository at this point in the history
Signed-off-by: Anuj Gakhar <anuj.gakhar@gmail.com>
  • Loading branch information
anujgakhar committed Jan 17, 2012
1 parent edf0c6b commit 64e3895
Show file tree
Hide file tree
Showing 8 changed files with 166 additions and 68 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Expand Up @@ -8,4 +8,5 @@ html-template
bin-debug


*.tmproj
*.tmproj
data/cfml
18 changes: 18 additions & 0 deletions assets/css/application.css
Expand Up @@ -12,8 +12,19 @@ iframe {
width:100%;
border:none;
height:100%;
display:block;
}
#footer{margin:auto;text-align:center;padding-top:10px;}
ul#docItems li{
padding:3px 5px 3px 10px;
}
ul#docItems li.selected{
background:#404040;
color:#fff;
}
ul#docItems li.selected a{
color:#fff;
}
#docsContainer{
bottom:50;
top:40;
Expand All @@ -25,6 +36,12 @@ iframe {
min-height:90%;
background:#fff;
}
#acfContainer, #railoContainer{
height:50%;
}
#acfContainer{
border-bottom:5px solid #404040;
}
#searchBox{
background:#404040;
border:none;
Expand All @@ -47,6 +64,7 @@ iframe {
}
.container-fluid > .content{
min-height:100%;
height:100%;
position:absolute;
right:0;
left:245px;
Expand Down
3 changes: 1 addition & 2 deletions assets/js/app.coffee
Expand Up @@ -2,6 +2,5 @@ $(document).ready( ->
docs_controller = new DocsController({
container: $("#docsContainer")
})

docs_controller.loadConfig("data/cfmldoc.xml")
docs_controller.loadConfig("data/cfml/toc.xml")
)
2 changes: 1 addition & 1 deletion assets/js/app.js
Expand Up @@ -5,7 +5,7 @@
docs_controller = new DocsController({
container: $("#docsContainer")
});
return docs_controller.loadConfig("data/cfmldoc.xml");
return docs_controller.loadConfig("data/cfml/toc.xml");
});

}).call(this);
81 changes: 54 additions & 27 deletions assets/js/docs_controller.coffee
Expand Up @@ -11,8 +11,9 @@ class @DocsController
# Content Container
@docItems = params.docItems || @container.find("#docItems")
@selectedItemDetails = params.selectedItemDetails || @container.find("#selectedItemDetails")
@externalFrame = params.externalFrame || @container.find('#externalFrame')
@sideBarContentArea = params.sideBarContentArea || @container.find('#sideBarMiddle')
@externalFrameACF = params.externalFrameACF || @container.find('#externalFrameACF')
@externalFrameRailo = params.externalFrameRailo || @container.find('#externalFrameRailo')
@sideBarContentArea = params.sideBarContentArea || @container.find('#sideBarMiddle')
@searchInput = params.searchInput || @container.find('#searchInput')

# Configurable CSS Classes
Expand All @@ -28,8 +29,25 @@ class @DocsController
@acfConfigLoaded = false
@railoConfigLoaded = false
@acfConfigXML = ""
@acfBasePath = "http://assets.coldfusiondocs.com/html/cfml/"
@acfBasePath = "/data/cfml/docs/"
@railoBasePath = "http://assets.coldfusiondocs.com/html/railo/"

@fixHeight()
@showSpinner()

@searchInput.bind 'keyup change', ( =>
@filterResults() if @acfConfigLoaded && @searchInput.val().length > 2
false
)

$(window).resize( =>
@fixHeight()
)

fixHeight: ->
@sideBarContentArea.css('height', $(document).height() - 200)

showSpinner: ->
# Configure and position spinner.
@spinner = new Spinner(
lines: 12 # The number of lines to draw
Expand All @@ -47,19 +65,18 @@ class @DocsController
spinnerElement.css("margin-left", "#{-@spinnerRadius}px")
spinnerElement.css("position", "absolute")
@loadingPanel.append(@spinner.el)
@sideBarContentArea.css('height', $(document).height() - 199)

@searchInput.bind 'keyup mouseup change', ( =>
@filterResults() if @acfConfigLoaded
false
)
removeSpinner: ->
@container.removeClass(@loadingClass)
$(@spinner.el).remove()

filterResults: ->
@parseXML(@searchInput.val())
@searchImput.focus()
false

# Loads XML data for a supplied URL.
loadConfig: (url) ->
loadConfig: (url, docset = 'acf') ->
@container.addClass(@loadingClass)
@url = url
$.ajax({
Expand All @@ -81,33 +98,43 @@ class @DocsController

parseXML: (criteria = "") ->
@config_xml = $(@acfConfigXML)
@objects = @config_xml.find("object")
@topics = @config_xml.find("topic")

@docItems.find('li').remove()
@docItems.find("a").unbind('click')

index = 0
for obj in @objects
current = $(obj)
objName = current.attr("name")
docUrl = current.find("docURL").text()
if criteria == "" || objName.indexOf(criteria) != -1
for topic in @topics
current = $(topic)
topicLabel = current.attr("label")
topicUrl = current.attr("href")
if criteria == "" || topicLabel.indexOf(criteria) != -1
listItem = $('<li/>')
listItem.attr("data-index", index)
listItem.attr("data-name", objName)
listItem.attr("data-url", docUrl)
listItem.attr("data-name", topicLabel)
listItem.attr("data-url", topicUrl)
href = $('<a/>')
href.attr('class', 'docItem').attr('href','#')
href.bind 'click', @listItemClick
href.append(objName)
href.append(topicLabel)
listItem.append(href)
@docItems.append(listItem)
index += 1

@docItems.find("a").click( (event) =>
clickedListItem = $(event.target).parent()
objectUrl = clickedListItem.attr("data-url").split("/")
fileName = objectUrl[objectUrl.length - 1]
@externalFrame.attr("src", @acfBasePath + fileName)
@handleItemClick($(event.target).parent())
)

removeSpinner: ->
@container.removeClass(@loadingClass)
$(@spinner.el).remove()

#force select first item
@handleItemClick(@docItems.find('li:first')) if criteria == ""

handleItemClick: (obj = null) ->
@showSpinner()
@docItems.find('li').removeClass("selected")
clickedListItem = $(obj)
objectUrl = clickedListItem.attr("data-url").split("/")
objectLabel = clickedListItem.attr("data-name")
fileName = objectUrl[objectUrl.length - 1]
@externalFrameACF.attr("src", @acfBasePath + fileName)
@externalFrameRailo.attr("src", @railoBasePath + 'tag_' + objectLabel + '.html')
clickedListItem.addClass("selected")
@removeSpinner()
97 changes: 64 additions & 33 deletions assets/js/docs_controller.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions humans.txt
@@ -0,0 +1,17 @@
/* the humans responsible & colophon */
/* humanstxt.org */


/* TEAM */
Author: Anuj Gakhar
Site: http://www.anujgakhar.com
Twitter: @anujgakhar
Location: UK

/* THANKS */
Names (& URL):

/* SITE */
Standards: HTML5, CSS3
Components: Modernizr, jQuery
Software:

0 comments on commit 64e3895

Please sign in to comment.