59 lines
1.7 KiB
CoffeeScript
59 lines
1.7 KiB
CoffeeScript
#
|
|
# Crafting Guide - page_controller.coffee
|
|
#
|
|
# Copyright © 2014-2017 by Redwood Labs
|
|
# All rights reserved.
|
|
#
|
|
|
|
BaseController = require './base_controller'
|
|
|
|
########################################################################################################################
|
|
|
|
module.exports = class PageController extends BaseController
|
|
|
|
constructor: (options={})->
|
|
super options
|
|
|
|
# Public Methods ###############################################################################
|
|
|
|
getBreadcrumbs: ->
|
|
return []
|
|
|
|
getExtraNav: ->
|
|
# subclasses may override this to provide extra content in the right-hand side of the breadcrumb bar
|
|
return null
|
|
|
|
getMetaDescription: ->
|
|
# subclasses should override this to return the page-specific text for the meta description tag
|
|
return null
|
|
|
|
getTitle: ->
|
|
# subclasses should override this to return the page-specific portion of the title
|
|
return null
|
|
|
|
# BaseController Overrides #####################################################################
|
|
|
|
refresh: ->
|
|
@_refreshMetaDescription()
|
|
@_refreshTitle()
|
|
super
|
|
|
|
# Private Methods ##############################################################################
|
|
|
|
_refreshMetaDescription: ->
|
|
description = @getMetaDescription()
|
|
description ?= ''
|
|
|
|
if description.length > 0
|
|
$('meta[name="description"]').remove()
|
|
$('head').append "<meta name=\"description\" content=\"#{description}\">"
|
|
|
|
_refreshTitle: ->
|
|
title = @getTitle()
|
|
title = if title? then title.trim() else ''
|
|
|
|
if title.length > 0
|
|
$('title').html c.text.titleWithText text:title
|
|
else
|
|
$('title').html c.text.title()
|