61 lines
1.9 KiB
CoffeeScript
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'
|