extract tab templates, split up repo views
This commit is contained in:
parent
f0103a64aa
commit
ce8daa6d73
assets/javascripts
public
|
@ -26,8 +26,8 @@ Travis.reopen
|
||||||
|
|
||||||
view
|
view
|
||||||
|
|
||||||
# TopController: Em.Controller.extend
|
TopController: Em.Controller.extend
|
||||||
# userBinding: 'Travis.app.currentUser'
|
userBinding: 'Travis.currentUser'
|
||||||
|
|
||||||
require 'controllers/builds'
|
require 'controllers/builds'
|
||||||
require 'controllers/home'
|
require 'controllers/home'
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
Travis.RepositoriesController = Ember.ArrayController.extend
|
Travis.RepositoriesController = Ember.ArrayController.extend
|
||||||
|
defaultTab: 'recent'
|
||||||
sortProperties: ['sortOrder']
|
sortProperties: ['sortOrder']
|
||||||
|
|
||||||
init: ->
|
init: ->
|
||||||
@activate('recent')
|
@activate(@defaultTab)
|
||||||
Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes)
|
Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes)
|
||||||
|
|
||||||
updateTimes: ->
|
updateTimes: ->
|
||||||
|
@ -18,8 +19,8 @@ Travis.RepositoriesController = Ember.ArrayController.extend
|
||||||
viewRecent: ->
|
viewRecent: ->
|
||||||
@set('content', Travis.Repository.find())
|
@set('content', Travis.Repository.find())
|
||||||
|
|
||||||
viewOwned: (params) ->
|
viewOwned: ->
|
||||||
@set('content', Travis.Repository.owned_by(params.login))
|
@set('content', Travis.Repository.ownedBy(Travis.get('currentUser.login')))
|
||||||
|
|
||||||
viewSearch: (params) ->
|
viewSearch: (params) ->
|
||||||
@set('content', Travis.Repository.search(params.search))
|
@set('content', Travis.Repository.search(params.search))
|
||||||
|
|
|
@ -66,8 +66,8 @@ require 'travis/model'
|
||||||
recent: ->
|
recent: ->
|
||||||
@find()
|
@find()
|
||||||
|
|
||||||
ownedBy: (owner) ->
|
ownedBy: (login) ->
|
||||||
@find(owner: owner, orderBy: 'name')
|
@find(owner: login, orderBy: 'name')
|
||||||
|
|
||||||
search: (query) ->
|
search: (query) ->
|
||||||
@find(search: query, orderBy: 'name')
|
@find(search: query, orderBy: 'name')
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
Travis.Pusher = ->
|
Travis.Pusher = ->
|
||||||
|
@active_channels = []
|
||||||
if Travis.Pusher.KEY
|
if Travis.Pusher.KEY
|
||||||
@pusher = new Pusher(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
|
this
|
||||||
|
|
||||||
$.extend Travis.Pusher,
|
$.extend Travis.Pusher,
|
||||||
|
|
|
@ -18,8 +18,14 @@ $.extend Travis.Routes.prototype,
|
||||||
Em.routes.set('location', event.target.href.replace("#{@base_uri}/", ''))
|
Em.routes.set('location', event.target.href.replace("#{@base_uri}/", ''))
|
||||||
|
|
||||||
action: (name, action, params) ->
|
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
|
# this needs to be a global reference because Em.routes is global
|
||||||
layout = Travis.app.connectLayout(name)
|
layout = Travis.app.connectLayout(name)
|
||||||
layout.activate(action, params || {})
|
layout.activate(action, params || {})
|
||||||
$('body').attr('id', name)
|
$('body').attr('id', name)
|
||||||
|
|
||||||
|
before: (name, action, params) ->
|
||||||
|
true
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{{view.logSubscriber}}
|
{{view.logSubscriber}}
|
||||||
|
|
||||||
{{#if log.isLoaded}}
|
{{#if log.isLoaded}}
|
||||||
<pre id="log">{{{formatLog log.body}}}</pre>
|
<pre id="log">{{{formatLog log.body}}}</pre>
|
||||||
|
|
||||||
|
|
|
@ -2,17 +2,7 @@
|
||||||
{{view Ember.TextField valueBinding="controller.search"}}
|
{{view Ember.TextField valueBinding="controller.search"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul class="tabs">
|
{{view Travis.ReposListTabsView}}
|
||||||
<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>
|
|
||||||
|
|
||||||
<div class="tab">
|
<div class="tab">
|
||||||
{{#collection Travis.RepositoriesListView contentBinding="controller"}}
|
{{#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>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{{view Travis.TabsView}}
|
{{view Travis.RepoShowTabsView}}
|
||||||
{{/with}}
|
{{/with}}
|
||||||
|
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
|
@ -16,6 +16,5 @@ require 'views/repo'
|
||||||
require 'views/profile'
|
require 'views/profile'
|
||||||
require 'views/sidebar'
|
require 'views/sidebar'
|
||||||
require 'views/stats'
|
require 'views/stats'
|
||||||
require 'views/tabs'
|
|
||||||
require 'views/top'
|
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
|
require 'views/repo/repos'
|
||||||
RepositoriesView: Travis.View.extend
|
|
||||||
templateName: 'repos/list'
|
|
||||||
tabBinding: 'controller.tab'
|
|
||||||
|
|
||||||
classRecent: (->
|
require 'views/repo/list'
|
||||||
'active' if @get('tab') == 'recent'
|
require 'views/repo/list/tabs'
|
||||||
).property('tab')
|
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
|
@Travis.reopen
|
||||||
TabsView: Travis.View.extend
|
RepoShowTabsView: Travis.View.extend
|
||||||
templateName: 'repos/tabs'
|
templateName: 'repos/show/tabs'
|
||||||
|
|
||||||
repositoryBinding: 'controller.repository'
|
repositoryBinding: 'controller.repository'
|
||||||
buildBinding: 'controller.build'
|
buildBinding: 'controller.build'
|
||||||
|
@ -79,8 +79,3 @@
|
||||||
"{<img src=\"#{@get('urlStatusImage')}\" alt=\"Build Status\" />}[#{@get('urlRepository')}]"
|
"{<img src=\"#{@get('urlStatusImage')}\" alt=\"Build Status\" />}[#{@get('urlRepository')}]"
|
||||||
).property('urlStatusImage')
|
).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]); });
|
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);
|
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 */
|
/** @private */
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
Travis.Pusher.KEY = '23ed642e81512118260e'
|
Travis.Pusher.KEY = '23ed642e81512118260e'
|
||||||
Travis.run()
|
Travis.run()
|
||||||
|
|
||||||
// Travis.app.store.load(Travis.User, { id: 1, login: 'svenfuchs', name: 'Sven Fuchs', email: 'me@svenfuchs.com', token: '1234567890', gravatar: '402602a60e500e85f2f5dc1ff3648ecb' });
|
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.set('currentUser', Travis.User.find(1))
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<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]); });
|
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);
|
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 */
|
/** @private */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user