Skip to content

Instantly share code, notes, and snippets.

@methyl
Last active December 21, 2015 14:18
Show Gist options
  • Save methyl/6318665 to your computer and use it in GitHub Desktop.
Save methyl/6318665 to your computer and use it in GitHub Desktop.
diff --git a/app/assets/javascripts/new/controllers/home_page.coffee b/app/assets/javascripts/new/controllers/home_page.coffee
index a217063..ed53bc0 100644
--- a/app/assets/javascripts/new/controllers/home_page.coffee
+++ b/app/assets/javascripts/new/controllers/home_page.coffee
@@ -1,13 +1,17 @@
class SquerbWeb.controllers.HomePage
- constructor: (@router, @top, @contentRegion, @topicsController) ->
+ _.extend(@::, Backbone.Events)
+
+ constructor: (@router, @top, @contentRegion, @topicsController, @streamsController) ->
@router.on 'route:home', @show
@router.on 'route', (routeName) =>
@top.showSquerbButton() unless routeName == 'home'
show: =>
- view = new SquerbWeb.views.HomePage
+ @homePageView = new SquerbWeb.views.HomePage
@top.setTitle(new SquerbWeb.views.HomePage.Title)
@top.hideSquerbButton()
@topicsController.hide()
- @contentRegion.show(view)
- view.load()
+ @contentRegion.show(@homePageView)
+ @homePageView.load()
+
+ @listenTo @homePageView, 'click:stream', (stream) => @streamsController.show(stream)
diff --git a/app/assets/javascripts/new/injector.coffee b/app/assets/javascripts/new/injector.coffee
index 2ba9809..7967453 100644
--- a/app/assets/javascripts/new/injector.coffee
+++ b/app/assets/javascripts/new/injector.coffee
@@ -58,5 +58,5 @@ class SquerbWeb.Injector
getHomePageController: ->
@homePageController ?= new SquerbWeb.controllers.HomePage(
- @getRouter(), @getTopView(), @getContentView(), @getTopicsController())
+ @getRouter(), @getTopView(), @getContentView(), @getTopicsController(), @getStreamsController())
diff --git a/app/assets/javascripts/new/views/home_page.coffee b/app/assets/javascripts/new/views/home_page.coffee
index 789c1c0..78965d1 100644
--- a/app/assets/javascripts/new/views/home_page.coffee
+++ b/app/assets/javascripts/new/views/home_page.coffee
@@ -1,6 +1,8 @@
class SquerbWeb.views.HomePage extends Backbone.View
className: 'home-page'
template: HandlebarsTemplates['new/home_page']
+ events:
+ 'click [data-role=streams] a[data-id]': 'handleStreamClick'
constructor: (options) ->
super(options)
@@ -18,3 +20,11 @@ class SquerbWeb.views.HomePage extends Backbone.View
load: ->
@streams.load().done(@render)
+
+ # private
+
+ handleStreamClick: (e) ->
+ streamId = parseInt($(e.currentTarget).data('id'))
+ stream = @streams.get(streamId)
+ @trigger('click:stream', stream)
+ e.preventDefault()
diff --git a/app/assets/javascripts/templates/new/home_page.hbs b/app/assets/javascripts/templates/new/home_page.hbs
index 805d222..bf090a3 100644
--- a/app/assets/javascripts/templates/new/home_page.hbs
+++ b/app/assets/javascripts/templates/new/home_page.hbs
@@ -33,10 +33,10 @@
<div class="home-page-right triangle-right">
<h2>Explore</h2>
<div class="picture"></div>
- <ul class="home-page-bubbles-large">
+ <ul class="home-page-bubbles-large" data-role="streams">
{{#each streams}}
<li>
- <a href="/streams/{{id}}" data-route>
+ <a href="#" data-id="{{id}}">
<div class="picture">
<img src="{{picture.thumbUrl}}" />
</div>
@@ -44,10 +44,9 @@
</a>
</li>
{{/each}}
- <li>
- <a href="#">
+ <li class="trending">
+ <a href="/s/popular" data-route>
<div class="picture">
- <img src="/assets/new/home-page/trending.png" />
</div>
<span>Trending</span>
</a>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment