Files
website/src/client/site/browse_page/browse_page_controller.coffee
T
Andrew Miner ebf3443e96 Update Adsense to place ads on all devices
The current adsense implementation only places ads on desktop-sized
screens.  This change allows ads of the appropriate size to be
displayed on any device.

fixes #224
2016-05-03 20:25:56 -07:00

65 lines
2.0 KiB
CoffeeScript

#
# Crafting Guide - browse_page_controller.coffee
#
# Copyright © 2014-2016 by Redwood Labs
# All rights reserved.
#
ModTileController = require './mod_tile/mod_tile_controller'
PageController = require '../page_controller'
########################################################################################################################
module.exports = class BrowsePageController extends PageController
constructor: (options={})->
if not options.modPack then throw new Error 'options.modPack is required'
options.templateName = 'browse_page'
super options
@_modPack = options.modPack
@_tileControllers = []
# PageController Overrides #####################################################################
getMetaDescription: ->
return c.text.browseDescription()
getTitle: ->
return "Browse"
# BaseController Overrides #####################################################################
onDidRender: ->
@$tileContainer = @$('.tile_container')
refresh: ->
@_refreshModTiles()
super
# Backbone.View Overrides ######################################################################
events: ->
return _.extend super,
'click a': 'routeLinkClick'
# Private Methods ##############################################################################
_refreshModTiles: ->
index = 0
mods = @_modPack.getAllMods()
for mod in mods
controller = @_tileControllers[index]
if not controller
controller = new ModTileController model:mod, router:@router
controller.render()
@$tileContainer.append controller.$el
@_tileControllers.push controller
else
controller.model = mod
index++
while @_tileControllers.length > mods.length
controller = @_tileControllers.pop()
controller.remove()