use a handlebars helper for setting up the search box

This commit is contained in:
Sven Fuchs 2012-07-07 22:45:01 +02:00
parent 5b56895d44
commit e2678d0e8e
6 changed files with 58 additions and 72 deletions

View File

@ -13,33 +13,6 @@ Travis.reopen
@connectOutlet(outletName: 'top', controller: @topController, viewClass: Travis.TopView) @connectOutlet(outletName: 'top', controller: @topController, viewClass: Travis.TopView)
@topController.set('tab', @get('name')) @topController.set('tab', @get('name'))
RepositoriesController: Ember.ArrayController.extend
# sortProperties: ['sortOrder']
# sortAscending: false
searchBox: Ember.TextField.create()
init: ->
@set('content', Travis.Repository.find())
@searchBox.appendTo('#search_box')
recent: ->
@set('content', Travis.Repository.find())
# @tabs.activate('recent')
owned_by: (githubId) ->
@set('content', Travis.Repository.owned_by(githubId))
# @tabs.activate('my_repositories')
search: ->
@set('content', Travis.Repository.search(@searchBox.value))
# @tabs.activate('search')
searchObserver: (->
this[if @searchBox.value then 'search' else 'recent']()
# @tabs.setDisplay('search', @searchBox.value)
).observes('searchBox.value'),
BuildsController: Em.ArrayController.extend BuildsController: Em.ArrayController.extend
repositoryBinding: 'parent.repository' repositoryBinding: 'parent.repository'
contentBinding: 'parent.builds' contentBinding: 'parent.builds'
@ -54,6 +27,7 @@ Travis.reopen
require 'controllers/home' require 'controllers/home'
require 'controllers/profile' require 'controllers/profile'
require 'controllers/repository' require 'controllers/repository'
require 'controllers/repositories'
require 'controllers/sidebar' require 'controllers/sidebar'
require 'controllers/sponsors' require 'controllers/sponsors'
require 'controllers/stats' require 'controllers/stats'

View File

@ -60,7 +60,6 @@ require 'models'
success: (json) -> success: (json) ->
root = type.pluralName() root = type.pluralName()
@sideload(store, type, json, root) @sideload(store, type, json, root)
console.log json, root
recordArray.load(json[root]) recordArray.load(json[root])
accepts: accepts:
json: 'application/vnd.travis-ci.2+json' json: 'application/vnd.travis-ci.2+json'

View File

@ -3,26 +3,8 @@
</div> </div>
<div id="left"> <div id="left">
<div id="search_box"></div>
<ul class="tabs">
<li id="tab_recent" class="active">
<h5><a href="#">{{t layouts.application.recent}}</a></h5>
</li>
{{#if currentUser}}
<li id="tab_my_repos">
<h5><a href="#">{{t layouts.application.my_repositories}}</a></h5>
</li>
{{/if}}
<li id="tab_search">
<h5><a href="#">{{t layouts.application.search}}</a></h5>
</li>
</ul>
<div class="tab">
{{outlet left}} {{outlet left}}
</div> </div>
</div>
<div id="main"> <div id="main">
{{outlet main}} {{outlet main}}

View File

@ -1,3 +1,20 @@
<div id="search_box">
{{view Ember.TextField valueBinding="controller.search"}}
</div>
<ul class="tabs">
<li id="tab_recent" {{bindAttr class="view.classRecent"}}>
<h5><a href="#">{{t layouts.application.recent}}</a></h5>
</li>
<li id="tab_owned" {{bindAttr class="view.classOwned"}}>
<h5><a href="#">{{t layouts.application.my_repositories}}</a></h5>
</li>
<li id="tab_search" {{bindAttr class="view.classSearch"}}>
<h5><a href="#">{{t layouts.application.search}}</a></h5>
</li>
</ul>
<div class="tab">
<ul id="repositories"> <ul id="repositories">
{{#each repository in controller.arrangedContent}} {{#each repository in controller.arrangedContent}}
{{#view Travis.RepositoriesItemView contextBinding="repository"}} {{#view Travis.RepositoriesItemView contextBinding="repository"}}
@ -23,3 +40,4 @@
</div> </div>
{{/each}} {{/each}}
<ul> <ul>
</div>

View File

@ -1,6 +1,19 @@
@Travis.reopen @Travis.reopen
RepositoriesView: Em.View.extend RepositoriesView: Em.View.extend
templateName: 'repositories/list' templateName: 'repositories/list'
tabBinding: 'controller.tab'
classRecent: (->
'active' if @get('tab') == 'recent'
).property('tab')
classOwned: (->
'active' if @get('tab') == 'owned'
).property('tab')
classSearch: (->
'active' if @get('tab') == 'search'
).property('tab')
RepositoriesItemView: Em.View.extend RepositoriesItemView: Em.View.extend
repositoryBinding: 'context' repositoryBinding: 'context'

File diff suppressed because one or more lines are too long