Add videos section to tutorial page

This commit is contained in:
Andrew Miner
2015-03-20 14:05:21 -07:00
parent e58cc28815
commit 2faf4bfe7f
6 changed files with 65 additions and 16 deletions
@@ -8,6 +8,8 @@ All rights reserved.
AdsenseController = require './adsense_controller'
BaseController = require './base_controller'
MarkdownSectionController = require './markdown_section_controller'
VideoController = require './video_controller'
{Duration} = require '../constants'
{Event} = require '../constants'
{Url} = require '../constants'
@@ -37,13 +39,16 @@ module.exports = class TutorialPageController extends BaseController
onDidRender: ->
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
@$byline = @$('.byline')
@$bylineLink = @$('.byline a')
@$name = @$('.name')
@$officialLink = @$('a.officialPage')
@$sectionsContainer = @$('.sections')
@$title = @$('h1.name')
@$titleImage = @$('.titleImage img')
@$byline = @$('.byline')
@$bylineLink = @$('.byline a')
@$name = @$('.name')
@$officialLink = @$('a.officialPage')
@$sectionsContainer = @$('.sections')
@$title = @$('h1.name')
@$titleImage = @$('.titleImage img')
@$videosSection = @$('.videos')
@$videosSectionTitle = @$('.videos h2')
@$videosSectionPanel = @$('.videos .panel')
super
refresh: ->
@@ -56,6 +61,7 @@ module.exports = class TutorialPageController extends BaseController
@_refreshOfficialUrl()
@_refreshSections()
@_refreshTitle()
@_refreshVideos()
super
# Private Methods ##############################################################################
@@ -106,6 +112,32 @@ module.exports = class TutorialPageController extends BaseController
controller = @_sectionController.pop()
controller.$el.fadeOut duration:Duration.normal, complete:-> @remove()
_refreshVideos: ->
@_videoControllers ?= []
index = 0
videos = @model?.videos or []
if videos? and videos.length > 0
@$videosSection.slideDown duration:Duration.normal
@$videosSectionTitle.html if videos.length is 1 then 'Video' else 'Videos'
for video in videos
controller = @_videoControllers[index]
if not controller?
controller = new VideoController model:video
@_videoControllers.push controller
controller.render()
@$videosSectionPanel.append controller.$el
else
controller.model = video
index++
else
@$videosSection.slideUp duration:Duration.normal
while @_videoControllers.length > index
controller = @_videoControllers.pop()
controller.$el.slideUp duration:Duration.normal, complete:-> controller.$el.remove()
_resolveTutorial: ->
return if @model?
+1 -1
View File
@@ -15,7 +15,7 @@ _.mixin
result = text.toLowerCase()
result = result.replace /[^a-zA-Z0-9_]/g, '_'
result = result.replace /__+/, '_'
result = result.replace /__+/g, '_'
result = result.replace /^_/, ''
result = result.replace /_$/, ''
return result