extract tab templates, split up repo views
This commit is contained in:
parent
f0103a64aa
commit
ce8daa6d73
|
@ -26,8 +26,8 @@ Travis.reopen
|
|||
|
||||
view
|
||||
|
||||
# TopController: Em.Controller.extend
|
||||
# userBinding: 'Travis.app.currentUser'
|
||||
TopController: Em.Controller.extend
|
||||
userBinding: 'Travis.currentUser'
|
||||
|
||||
require 'controllers/builds'
|
||||
require 'controllers/home'
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
Travis.RepositoriesController = Ember.ArrayController.extend
|
||||
defaultTab: 'recent'
|
||||
sortProperties: ['sortOrder']
|
||||
|
||||
init: ->
|
||||
@activate('recent')
|
||||
@activate(@defaultTab)
|
||||
Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes)
|
||||
|
||||
updateTimes: ->
|
||||
|
@ -18,8 +19,8 @@ Travis.RepositoriesController = Ember.ArrayController.extend
|
|||
viewRecent: ->
|
||||
@set('content', Travis.Repository.find())
|
||||
|
||||
viewOwned: (params) ->
|
||||
@set('content', Travis.Repository.owned_by(params.login))
|
||||
viewOwned: ->
|
||||
@set('content', Travis.Repository.ownedBy(Travis.get('currentUser.login')))
|
||||
|
||||
viewSearch: (params) ->
|
||||
@set('content', Travis.Repository.search(params.search))
|
||||
|
|
|
@ -66,8 +66,8 @@ require 'travis/model'
|
|||
recent: ->
|
||||
@find()
|
||||
|
||||
ownedBy: (owner) ->
|
||||
@find(owner: owner, orderBy: 'name')
|
||||
ownedBy: (login) ->
|
||||
@find(owner: login, orderBy: 'name')
|
||||
|
||||
search: (query) ->
|
||||
@find(search: query, orderBy: 'name')
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Travis.Pusher = ->
|
||||
@active_channels = []
|
||||
if Travis.Pusher.KEY
|
||||
@pusher = new Pusher(Travis.Pusher.KEY)
|
||||
@active_channels = []
|
||||
@subscribe(channel) for channel in Travis.Pusher.CHANNELS
|
||||
# @subscribe(channel) for channel in Travis.Pusher.CHANNELS
|
||||
this
|
||||
|
||||
$.extend Travis.Pusher,
|
||||
|
|
|
@ -18,8 +18,14 @@ $.extend Travis.Routes.prototype,
|
|||
Em.routes.set('location', event.target.href.replace("#{@base_uri}/", ''))
|
||||
|
||||
action: (name, action, params) ->
|
||||
@render(name, action, params) if @before(name, action, params)
|
||||
|
||||
render: (name, action, params) ->
|
||||
console.log [name, action, params]
|
||||
# this needs to be a global reference because Em.routes is global
|
||||
layout = Travis.app.connectLayout(name)
|
||||
layout.activate(action, params || {})
|
||||
$('body').attr('id', name)
|
||||
|
||||
before: (name, action, params) ->
|
||||
true
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{{view.logSubscriber}}
|
||||
|
||||
{{#if log.isLoaded}}
|
||||
<pre id="log">{{{formatLog log.body}}}</pre>
|
||||
|
||||
|
|
|
@ -2,17 +2,7 @@
|
|||
{{view Ember.TextField valueBinding="controller.search"}}
|
||||
</div>
|
||||
|
||||
<ul class="tabs">
|
||||
<li id="tab_recent" {{bindAttr class="view.classRecent"}}>
|
||||
<h5><a href="/" {{action route}}>{{t layouts.application.recent}}</a></h5>
|
||||
</li>
|
||||
<li id="tab_owned" {{bindAttr class="view.classOwned"}}>
|
||||
<h5><a href="/" {{action route}}>{{t layouts.application.my_repositories}}</a></h5>
|
||||
</li>
|
||||
<li id="tab_search" {{bindAttr class="view.classSearch"}}>
|
||||
<h5><a href="/" {{action route}}>{{t layouts.application.search}}</a></h5>
|
||||
</li>
|
||||
</ul>
|
||||
{{view Travis.ReposListTabsView}}
|
||||
|
||||
<div class="tab">
|
||||
{{#collection Travis.RepositoriesListView contentBinding="controller"}}
|
||||
|
|
12
assets/javascripts/app/templates/repos/list/tabs.hbs
Normal file
12
assets/javascripts/app/templates/repos/list/tabs.hbs
Normal file
|
@ -0,0 +1,12 @@
|
|||
<ul class="tabs">
|
||||
<li id="tab_recent" {{bindAttr class="view.classRecent"}}>
|
||||
<h5><a name="recent" {{action activate}}>{{t layouts.application.recent}}</a></h5>
|
||||
</li>
|
||||
<li id="tab_owned" {{bindAttr class="view.classOwned"}}>
|
||||
<h5><a name="owned" {{action activate}}>{{t layouts.application.my_repositories}}</a></h5>
|
||||
</li>
|
||||
<li id="tab_search" {{bindAttr class="view.classSearch"}}>
|
||||
<h5><a name="search" {{action activate}}>{{t layouts.application.search}}</a></h5>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
{{view Travis.TabsView}}
|
||||
{{view Travis.RepoShowTabsView}}
|
||||
{{/with}}
|
||||
|
||||
{{else}}
|
||||
|
|
|
@ -16,6 +16,5 @@ require 'views/repo'
|
|||
require 'views/profile'
|
||||
require 'views/sidebar'
|
||||
require 'views/stats'
|
||||
require 'views/tabs'
|
||||
require 'views/top'
|
||||
|
||||
|
|
20
assets/javascripts/app/views/left.coffee
Normal file
20
assets/javascripts/app/views/left.coffee
Normal file
|
@ -0,0 +1,20 @@
|
|||
@Travis.reopen
|
||||
ReposView: Travis.View.extend
|
||||
templateName: 'repos/list'
|
||||
tabBinding: 'controller.tab'
|
||||
|
||||
classRecent: (->
|
||||
'active' if @get('tab') == 'recent'
|
||||
).property('tab')
|
||||
|
||||
classOwned: (->
|
||||
classes = []
|
||||
classes.push('active') if @get('tab') == 'owned'
|
||||
classes.push('display') if Em.get('Travis.currentUser')
|
||||
classes.join(' ')
|
||||
).property('tab', 'Travis.currentUser')
|
||||
|
||||
classSearch: (->
|
||||
'active' if @get('tab') == 'search'
|
||||
).property('tab')
|
||||
|
|
@ -1,66 +1,7 @@
|
|||
@Travis.reopen
|
||||
RepositoriesView: Travis.View.extend
|
||||
templateName: 'repos/list'
|
||||
tabBinding: 'controller.tab'
|
||||
require 'views/repo/repos'
|
||||
|
||||
classRecent: (->
|
||||
'active' if @get('tab') == 'recent'
|
||||
).property('tab')
|
||||
require 'views/repo/list'
|
||||
require 'views/repo/list/tabs'
|
||||
require 'views/repo/show'
|
||||
require 'views/repo/show/tabs'
|
||||
|
||||
classOwned: (->
|
||||
classes = []
|
||||
classes.push('active') if @get('tab') == 'owned'
|
||||
classes.push('display') if Em.get('Travis.currentUser')
|
||||
classes.join(' ')
|
||||
).property('tab', 'Travis.currentUser')
|
||||
|
||||
classSearch: (->
|
||||
'active' if @get('tab') == 'search'
|
||||
).property('tab')
|
||||
|
||||
RepositoriesListView: Em.CollectionView.extend
|
||||
elementId: 'repositories'
|
||||
repositoryBinding: 'content'
|
||||
tagName: 'ul'
|
||||
|
||||
emptyView: Ember.View.extend
|
||||
template: Ember.Handlebars.compile('<div class="loading"><span>Loading</span></div>')
|
||||
|
||||
itemViewClass: Travis.View.extend
|
||||
repositoryBinding: 'content'
|
||||
classNames: ['repository']
|
||||
classNameBindings: ['color', 'selected']
|
||||
selectedBinding: 'repository.selected'
|
||||
|
||||
color: (->
|
||||
Travis.Helpers.colorForResult(@get('repository.lastBuildResult'))
|
||||
).property('repository.lastBuildResult')
|
||||
|
||||
urlRepository: (->
|
||||
Travis.Urls.repository(@get('repository.slug'))
|
||||
).property('repository.slug')
|
||||
|
||||
urlLastBuild: (->
|
||||
Travis.Urls.build(@get('repository.slug'), @get('repository.lastBuildId'))
|
||||
).property('repository.slug', 'repository.lastBuildId')
|
||||
|
||||
RepositoryView: Travis.View.extend
|
||||
templateName: 'repos/show'
|
||||
|
||||
repositoryBinding: 'controller.repository'
|
||||
|
||||
class: (->
|
||||
'loading' unless @get('repository.isLoaded')
|
||||
).property('repository.isLoaded')
|
||||
|
||||
urlGithub: (->
|
||||
Travis.Urls.githubRepository(@get('repository.slug'))
|
||||
).property('repository.slug'),
|
||||
|
||||
urlGithubWatchers: (->
|
||||
Travis.Urls.githubWatchers(@get('repository.slug'))
|
||||
).property('repository.slug'),
|
||||
|
||||
urlGithubNetwork: (->
|
||||
Travis.Urls.githubNetwork(@get('repository.slug'))
|
||||
).property('repository.slug'),
|
||||
|
|
26
assets/javascripts/app/views/repo/list.coffee
Normal file
26
assets/javascripts/app/views/repo/list.coffee
Normal file
|
@ -0,0 +1,26 @@
|
|||
@Travis.reopen
|
||||
RepositoriesListView: Em.CollectionView.extend
|
||||
elementId: 'repositories'
|
||||
repositoryBinding: 'content'
|
||||
tagName: 'ul'
|
||||
|
||||
emptyView: Ember.View.extend
|
||||
template: Ember.Handlebars.compile('<div class="loading"><span>Loading</span></div>')
|
||||
|
||||
itemViewClass: Travis.View.extend
|
||||
repositoryBinding: 'content'
|
||||
classNames: ['repository']
|
||||
classNameBindings: ['color', 'selected']
|
||||
selectedBinding: 'repository.selected'
|
||||
|
||||
color: (->
|
||||
Travis.Helpers.colorForResult(@get('repository.lastBuildResult'))
|
||||
).property('repository.lastBuildResult')
|
||||
|
||||
urlRepository: (->
|
||||
Travis.Urls.repository(@get('repository.slug'))
|
||||
).property('repository.slug')
|
||||
|
||||
urlLastBuild: (->
|
||||
Travis.Urls.build(@get('repository.slug'), @get('repository.lastBuildId'))
|
||||
).property('repository.slug', 'repository.lastBuildId')
|
24
assets/javascripts/app/views/repo/list/tabs.coffee
Normal file
24
assets/javascripts/app/views/repo/list/tabs.coffee
Normal file
|
@ -0,0 +1,24 @@
|
|||
@Travis.reopen
|
||||
ReposListTabsView: Travis.View.extend
|
||||
templateName: 'repos/list/tabs'
|
||||
tabBinding: 'controller.tab'
|
||||
|
||||
activate: (event) ->
|
||||
@get('controller').activate(event.target.name)
|
||||
|
||||
classRecent: (->
|
||||
'active' if @get('tab') == 'recent'
|
||||
).property('tab')
|
||||
|
||||
classOwned: (->
|
||||
classes = []
|
||||
classes.push('active') if @get('tab') == 'owned'
|
||||
classes.push('display') if Em.get('Travis.currentUser')
|
||||
classes.join(' ')
|
||||
).property('tab', 'Travis.currentUser')
|
||||
|
||||
classSearch: (->
|
||||
'active' if @get('tab') == 'search'
|
||||
).property('tab')
|
||||
|
||||
|
3
assets/javascripts/app/views/repo/repos.coffee
Normal file
3
assets/javascripts/app/views/repo/repos.coffee
Normal file
|
@ -0,0 +1,3 @@
|
|||
@Travis.reopen
|
||||
RepositoriesView: Travis.View.extend
|
||||
templateName: 'repos/list'
|
23
assets/javascripts/app/views/repo/show.coffee
Normal file
23
assets/javascripts/app/views/repo/show.coffee
Normal file
|
@ -0,0 +1,23 @@
|
|||
require 'views/repo/show/tabs'
|
||||
|
||||
@Travis.reopen
|
||||
RepositoryView: Travis.View.extend
|
||||
templateName: 'repos/show'
|
||||
|
||||
repositoryBinding: 'controller.repository'
|
||||
|
||||
class: (->
|
||||
'loading' unless @get('repository.isLoaded')
|
||||
).property('repository.isLoaded')
|
||||
|
||||
urlGithub: (->
|
||||
Travis.Urls.githubRepository(@get('repository.slug'))
|
||||
).property('repository.slug'),
|
||||
|
||||
urlGithubWatchers: (->
|
||||
Travis.Urls.githubWatchers(@get('repository.slug'))
|
||||
).property('repository.slug'),
|
||||
|
||||
urlGithubNetwork: (->
|
||||
Travis.Urls.githubNetwork(@get('repository.slug'))
|
||||
).property('repository.slug'),
|
|
@ -1,6 +1,6 @@
|
|||
@Travis.reopen
|
||||
TabsView: Travis.View.extend
|
||||
templateName: 'repos/tabs'
|
||||
RepoShowTabsView: Travis.View.extend
|
||||
templateName: 'repos/show/tabs'
|
||||
|
||||
repositoryBinding: 'controller.repository'
|
||||
buildBinding: 'controller.build'
|
||||
|
@ -79,8 +79,3 @@
|
|||
"{<img src=\"#{@get('urlStatusImage')}\" alt=\"Build Status\" />}[#{@get('urlRepository')}]"
|
||||
).property('urlStatusImage')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
2
assets/javascripts/vendor/ember.js
vendored
2
assets/javascripts/vendor/ember.js
vendored
|
@ -2102,6 +2102,8 @@ function flushPendingChains() {
|
|||
forEach.call(queue, function(q) { q[0].add(q[1]); });
|
||||
|
||||
Ember.warn('Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos', pendingQueue.length === 0);
|
||||
if(pendingQueue.length > 0)
|
||||
console.log(pendingQueue)
|
||||
}
|
||||
|
||||
/** @private */
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
Travis.Pusher.KEY = '23ed642e81512118260e'
|
||||
Travis.run()
|
||||
|
||||
// Travis.app.store.load(Travis.User, { id: 1, login: 'svenfuchs', name: 'Sven Fuchs', email: 'me@svenfuchs.com', token: '1234567890', gravatar: '402602a60e500e85f2f5dc1ff3648ecb' });
|
||||
// Travis.set('currentUser', Travis.User.find(1))
|
||||
Travis.app.store.load(Travis.User, { id: 1, login: 'svenfuchs', name: 'Sven Fuchs', email: 'me@svenfuchs.com', token: '1234567890', gravatar: '402602a60e500e85f2f5dc1ff3648ecb' });
|
||||
Travis.set('currentUser', Travis.User.find(1))
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -4056,6 +4056,8 @@ function flushPendingChains() {
|
|||
forEach.call(queue, function(q) { q[0].add(q[1]); });
|
||||
|
||||
Ember.warn('Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos', pendingQueue.length === 0);
|
||||
if(pendingQueue.length > 0)
|
||||
console.log(pendingQueue)
|
||||
}
|
||||
|
||||
/** @private */
|
||||
|
|
Loading…
Reference in New Issue
Block a user