Files
website/src/coffee/controllers/header_controller.coffee
T

61 lines
1.9 KiB
CoffeeScript

###
Crafting Guide - header_controller.coffee
Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
BaseController = require './base_controller'
########################################################################################################################
module.exports = class HeaderController extends BaseController
constructor: (options={})->
super options
# Event Methods ################################################################################
onLogoClicked: ->
router.navigate '/', trigger:true
return false
onNavItemClicked: (event)->
return true unless $(event.currentTarget).attr('href')?
router.navigate $(event.currentTarget).attr('href'), trigger:true
return false
# BaseController Overrides #####################################################################
render: ->
# Overriding render because the header is already part of the stock page layout, and we
# don't need to replace it here.
@_rendered = true
@$navLinks = ($(el) for el in @$('.navBar a'))
zIndex = @$navLinks.length + 100
for $navLink in @$navLinks
$navLink.css 'z-index', zIndex--
refresh: ->
for $navLink in @$navLinks
linkPage = $navLink.data('page')
if @model is linkPage
$navLink.addClass 'selected'
else
$navLink.removeClass 'selected'
if @model.indexOf(linkPage) isnt -1
$navLink.find('.dot').css 'opacity': 1;
else
$navLink.find('.dot').css 'opacity': 0;
# Backbone.View Overrides ######################################################################
events: ->
return _.extend super,
'click a.logo': 'onLogoClicked'
'click .navBar a': 'onNavItemClicked'