implement search box

This commit is contained in:
Sven Fuchs 2012-07-07 19:55:06 +02:00
parent 54b140d91b
commit 5b56895d44
8 changed files with 34 additions and 13 deletions

View File

@ -7,7 +7,7 @@ Travis.reopen
for name in Array.prototype.slice.apply(arguments)
name = "#{$.camelize(name, false)}Controller"
klass = Travis[$.camelize(name)] || Em.Controller
this[name] = klass.create(parent: this, namespace: Travis, controllers: this)
this[name] = klass.create(parent: this, namespace: Travis, controllers: this)
connectTop: ->
@connectOutlet(outletName: 'top', controller: @topController, viewClass: Travis.TopView)
@ -16,8 +16,29 @@ Travis.reopen
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
repositoryBinding: 'parent.repository'

View File

@ -1,5 +1,3 @@
require 'controllers/base'
Travis.HomeController = Travis.Controller.extend
name: 'home'
bindings: []

View File

@ -1,5 +1,3 @@
require 'controllers/base'
Travis.ProfileController = Travis.Controller.extend
name: 'profile'

View File

@ -1,5 +1,3 @@
require 'controllers/base'
Travis.StatsController = Travis.Controller.extend
name: 'stats'

View File

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

View File

@ -3,9 +3,7 @@
</div>
<div id="left">
<div id="search_box">
<input type="text">
</div>
<div id="search_box"></div>
<ul class="tabs">
<li id="tab_recent" class="active">

View File

@ -60,9 +60,16 @@ hooks = [
$.mockjax
url: '/repositories'
data: {}
responseTime: responseTime
responseText: { repositories: repositories }
response: (settings) ->
if !settings.data
this.responseText = { repositories: repositories }
else if slug = settings.data.slug
this.responseText = { repositories: [$.detect(repositories, (repository) -> repository.slug == slug)] }
else if search = settings.data.search
this.responseText = { repositories: $.select(repositories, (repository) -> repository.slug.indexOf(search) > -1).toArray() }
else
raise "don't know this ditty"
for repository in repositories
$.mockjax

File diff suppressed because one or more lines are too long