implement search box
This commit is contained in:
parent
54b140d91b
commit
5b56895d44
|
@ -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'
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
require 'controllers/base'
|
||||
|
||||
Travis.HomeController = Travis.Controller.extend
|
||||
name: 'home'
|
||||
bindings: []
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
require 'controllers/base'
|
||||
|
||||
Travis.ProfileController = Travis.Controller.extend
|
||||
name: 'profile'
|
||||
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
require 'controllers/base'
|
||||
|
||||
Travis.StatsController = Travis.Controller.extend
|
||||
name: 'stats'
|
||||
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue
Block a user