From 05bc1a271dcaf5c38d37a974150c7068573ba202 Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Sat, 7 May 2016 13:36:49 -0700 Subject: [PATCH] Add support for Google Sitelinks fixes #187 --- src/client/includes/_google_sitelinks.jade | 18 ++++++++++++++++++ .../item_selector_controller.coffee | 4 ++++ .../site/header/header_controller.coffee | 13 +++++++++++-- src/client/site/index.jade | 1 + .../site/item_page/item_page_controller.coffee | 2 -- 5 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 src/client/includes/_google_sitelinks.jade diff --git a/src/client/includes/_google_sitelinks.jade b/src/client/includes/_google_sitelinks.jade new file mode 100644 index 000000000..dfd41d517 --- /dev/null +++ b/src/client/includes/_google_sitelinks.jade @@ -0,0 +1,18 @@ +//- +//- Crafting Guide - _google_sitelinks.jade +//- +//- Copyright © 2014-2016 by Redwood Labs +//- All rights reserved. +//- + +script(type="application/ld+json"). + { + "@context": "http://schema.org", + "@type": "WebSite", + "url": "http://crafting-guide.com/", + "potentialAction": { + "@type": "SearchAction", + "target": "http://crafting-guide.com?search={search_term}", + "query-input": "required name=search_term" + } + } diff --git a/src/client/site/common/item_selector/item_selector_controller.coffee b/src/client/site/common/item_selector/item_selector_controller.coffee index af0b1fcb6..c3f03ccd4 100644 --- a/src/client/site/common/item_selector/item_selector_controller.coffee +++ b/src/client/site/common/item_selector/item_selector_controller.coffee @@ -82,6 +82,7 @@ module.exports = class ItemSelectorController extends BaseController @model.hint = @$hintField.val() @tryRefresh() @onResultSelected @_elementControllers[0] + return false onPopupClicked: (event)-> return false @@ -90,6 +91,7 @@ module.exports = class ItemSelectorController extends BaseController @_session.resolve controller.model.slug @_session = null @_close() + return false onResultSelected: (controller)-> for c in @_elementControllers @@ -98,6 +100,8 @@ module.exports = class ItemSelectorController extends BaseController if controller? controller.selected = true + return false + onScreenClicked: (event)-> @_close() return false diff --git a/src/client/site/header/header_controller.coffee b/src/client/site/header/header_controller.coffee index b8f8780b5..8404b1e67 100644 --- a/src/client/site/header/header_controller.coffee +++ b/src/client/site/header/header_controller.coffee @@ -7,6 +7,7 @@ BaseController = require '../base_controller' ItemSelectorController = require '../common/item_selector/item_selector_controller' +UrlParams = require '../url_params' ######################################################################################################################## @@ -43,8 +44,8 @@ module.exports = class HeaderController extends BaseController @router.navigate '/news', trigger:true return false - onSearch: -> - @_selector.launch() + onSearch: (event, hint='')-> + @_selector.launch hint .then (itemSlug)=> return unless itemSlug? @@ -67,6 +68,8 @@ module.exports = class HeaderController extends BaseController @$extraNav = @$('.extra-nav') @$loginButtonLabel = @$('.button.login p') @$title = $('title') + + @_checkForSearchRequest() super onWillChangeModel: (oldModel, newModel)-> @@ -96,6 +99,12 @@ module.exports = class HeaderController extends BaseController # Private Methods ############################################################################## + _checkForSearchRequest: -> + params = new UrlParams search:{type:'string'} + return unless params.search? + + _.delay (=> @onSearch {}, params.search), c.duration.slow + _refreshBreadcrumbs: -> breadcrumbs = @model?.controller?.getBreadcrumbs() breadcrumbs ?= [] diff --git a/src/client/site/index.jade b/src/client/site/index.jade index 9d2ca638f..078db6860 100644 --- a/src/client/site/index.jade +++ b/src/client/site/index.jade @@ -32,4 +32,5 @@ html include ../includes/_google_adsense.jade include ../includes/_google_analytics.jade + include ../includes/_google_sitelinks.jade diff --git a/src/client/site/item_page/item_page_controller.coffee b/src/client/site/item_page/item_page_controller.coffee index 9fb5ee978..ab3114551 100644 --- a/src/client/site/item_page/item_page_controller.coffee +++ b/src/client/site/item_page/item_page_controller.coffee @@ -69,9 +69,7 @@ module.exports = class ItemPageController extends PageController ] getExtraNav: -> - console.warn "getExtraNav()" itemSlug = @_modPack.chooseRandomItem() - console.warn " itemSlug: #{itemSlug}" return null unless itemSlug? itemDisplay = @_modPack.findItemDisplay itemSlug