stuff
This commit is contained in:
parent
1150a5f703
commit
54b140d91b
|
@ -2,6 +2,17 @@ require 'helpers'
|
|||
require 'travis/ticker'
|
||||
|
||||
Travis.reopen
|
||||
Controller: Em.Controller.extend
|
||||
init: ->
|
||||
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)
|
||||
|
||||
connectTop: ->
|
||||
@connectOutlet(outletName: 'top', controller: @topController, viewClass: Travis.TopView)
|
||||
@topController.set('tab', @get('name'))
|
||||
|
||||
RepositoriesController: Ember.ArrayController.extend
|
||||
# sortProperties: ['sortOrder']
|
||||
# sortAscending: false
|
||||
|
@ -19,7 +30,6 @@ Travis.reopen
|
|||
# TopController: Em.Controller.extend
|
||||
# userBinding: 'Travis.app.currentUser'
|
||||
|
||||
require 'controllers/base'
|
||||
require 'controllers/home'
|
||||
require 'controllers/profile'
|
||||
require 'controllers/repository'
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
Travis.Controller = Em.Controller.extend
|
||||
init: ->
|
||||
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)
|
||||
|
||||
connectTop: ->
|
||||
@connectOutlet(outletName: 'top', controller: @topController, viewClass: Travis.TopView)
|
||||
@topController.set('tab', @get('name'))
|
||||
|
|
@ -1,43 +1,45 @@
|
|||
Travis.RepositoryController = Travis.Controller.extend
|
||||
bindings: []
|
||||
params: {}
|
||||
|
||||
init: ->
|
||||
@_super('builds', 'build', 'job')
|
||||
|
||||
activate: (action, params) ->
|
||||
@_unbind()
|
||||
@setParams(params)
|
||||
# console.log "view#{$.camelize(action)}"
|
||||
this["view#{$.camelize(action)}"]()
|
||||
@set('params', params)
|
||||
|
||||
viewIndex: ->
|
||||
@connectTab('current')
|
||||
@_bind('repository', 'controllers.repositoriesController.firstObject')
|
||||
@_bind('build', 'repository.lastBuild')
|
||||
@connectTab('current')
|
||||
|
||||
viewCurrent: ->
|
||||
@connectTab('current')
|
||||
@_bind('repository', 'repositoriesByParams.firstObject')
|
||||
@_bind('build', 'repository.lastBuild')
|
||||
@connectTab('current')
|
||||
|
||||
viewBuilds: ->
|
||||
@connectTab('builds')
|
||||
@_bind('repository', 'repositoriesByParams.firstObject')
|
||||
@_bind('builds', 'repository.builds')
|
||||
@connectTab('builds')
|
||||
|
||||
viewBuild: ->
|
||||
@connectTab('build')
|
||||
@_bind('repository', 'repositoriesByParams.firstObject')
|
||||
@_bind('build', 'buildById')
|
||||
@connectTab('build')
|
||||
|
||||
viewJob: ->
|
||||
@connectTab('job')
|
||||
@_bind('repository', 'repositoriesByParams.firstObject')
|
||||
@_bind('build', 'job.build')
|
||||
@_bind('job', 'jobById')
|
||||
@connectTab('job')
|
||||
|
||||
repositoriesByParams: (->
|
||||
Travis.Repository.bySlug("#{params.owner}/#{params.name}") if params = @get('params')
|
||||
).property('params')
|
||||
Travis.Repository.bySlug("#{@getPath('params.owner')}/#{@getPath('params.name')}")
|
||||
).property('params.owner', 'params.name')
|
||||
|
||||
buildById: (->
|
||||
Travis.Build.find(id) if id = @getPath('params.id')
|
||||
|
@ -48,9 +50,14 @@ Travis.RepositoryController = Travis.Controller.extend
|
|||
).property('params.id')
|
||||
|
||||
connectTab: (tab) ->
|
||||
@set('tab', tab)
|
||||
name = if tab == 'current' then 'build' else tab
|
||||
@connectOutlet(outletName: 'pane', controller: this, viewClass: Travis["#{$.camelize(name)}View"])
|
||||
unless tab == @get('tab')
|
||||
@set('tab', tab)
|
||||
name = if tab == 'current' then 'build' else tab
|
||||
@connectOutlet(outletName: 'pane', controller: this, viewClass: Travis["#{$.camelize(name)}View"])
|
||||
|
||||
setParams: (params) ->
|
||||
# TODO if we just @set('params', params) it will update the repositoriesByParams property
|
||||
@setPath("params.#{key}", params[key]) for key, value of params
|
||||
|
||||
_bind: (to, from) ->
|
||||
@bindings.push Ember.oneWay(this, to, from)
|
||||
|
|
|
@ -60,15 +60,13 @@ require 'travis/model'
|
|||
@find(search: query, orderBy: 'name')
|
||||
|
||||
bySlug: (slug) ->
|
||||
# TODO use filter?
|
||||
repo = $.detect(@find().toArray(), (repo) -> repo.get('slug') == slug)
|
||||
if repo then Ember.ArrayProxy.create(content: [repo]) else @find(slug: slug)
|
||||
@find(slug: slug)
|
||||
|
||||
select: (id) ->
|
||||
@find().forEach (repository) ->
|
||||
repository.set 'selected', repository.get('id') is id
|
||||
|
||||
buildURL: (slug) ->
|
||||
if slug then slug else 'repositories'
|
||||
# buildURL: (slug) ->
|
||||
# if slug then slug else 'repositories'
|
||||
|
||||
|
||||
|
|
|
@ -23,5 +23,5 @@ Travis.Router = Em.Object.extend
|
|||
action: (name, action, params) ->
|
||||
# this needs to be a global reference because Em.routes is global
|
||||
layout = Travis.app.connectLayout(name)
|
||||
layout.activate(action, params)
|
||||
layout.activate(action, params || {})
|
||||
$('body').attr('id', name)
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
<pre id="log">{{{formatLog log.body}}}</pre>
|
||||
{{#if log.isLoaded}}
|
||||
<pre id="log">{{{formatLog log.body}}}</pre>
|
||||
|
||||
{{#if sponsor.name}}
|
||||
<p class="sponsor">
|
||||
{{t builds.messages.sponsored_by}}
|
||||
<a {{bindAttr href="sponsor.url"}}>{{sponsor.name}}</a>
|
||||
</p>
|
||||
{{#if sponsor.name}}
|
||||
<p class="sponsor">
|
||||
{{t builds.messages.sponsored_by}}
|
||||
<a {{bindAttr href="sponsor.url"}}>{{sponsor.name}}</a>
|
||||
</p>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<div id="log" class="loading">
|
||||
<span>Loading</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
|
@ -36,5 +36,9 @@
|
|||
|
||||
{{view Travis.LogView contextBinding="job"}}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div id="job" class="loading">
|
||||
<span>Loading</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/with}}
|
||||
|
|
|
@ -20,5 +20,6 @@ require 'views/build'
|
|||
require 'views/job'
|
||||
require 'views/repo'
|
||||
require 'views/profile'
|
||||
require 'views/tabs'
|
||||
require 'views/top'
|
||||
|
||||
|
|
|
@ -41,75 +41,3 @@
|
|||
urlGithubNetwork: (->
|
||||
Travis.Urls.githubNetwork(@getPath('repository.slug'))
|
||||
).property('repository.slug'),
|
||||
|
||||
TabsView: Em.View.extend
|
||||
templateName: 'repositories/tabs'
|
||||
|
||||
repositoryBinding: 'controller.repository'
|
||||
buildBinding: 'controller.build'
|
||||
jobBinding: 'controller.job'
|
||||
tabBinding: 'controller.tab'
|
||||
|
||||
toggleTools: ->
|
||||
$('#tools .pane').toggle()
|
||||
|
||||
# hrm. how to parametrize bindAttr?
|
||||
classCurrent: (->
|
||||
'active' if @get('tab') == 'current'
|
||||
).property('tab')
|
||||
|
||||
classBuilds: (->
|
||||
'active' if @get('tab') == 'builds'
|
||||
).property('tab')
|
||||
|
||||
classBuild: (->
|
||||
tab = @get('tab')
|
||||
classes = []
|
||||
classes.push('active') if tab == 'build'
|
||||
classes.push('display') if tab == 'build' || tab == 'job'
|
||||
classes.join(' ')
|
||||
).property('tab')
|
||||
|
||||
classJob: (->
|
||||
'active display' if @get('tab') == 'job'
|
||||
).property('tab')
|
||||
|
||||
urlRepository: (->
|
||||
Travis.Urls.repository(@getPath('repository.slug'))
|
||||
).property('repository.slug')
|
||||
|
||||
urlBuilds: (->
|
||||
Travis.Urls.builds(@getPath('repository.slug'))
|
||||
).property('repository.slug')
|
||||
|
||||
urlBuild: (->
|
||||
Travis.Urls.build(@getPath('repository.slug'), @getPath('build.id'))
|
||||
).property('repository.slug', 'build.id')
|
||||
|
||||
urlJob: (->
|
||||
Travis.Urls.job(@getPath('repository.slug'), @getPath('job.id'))
|
||||
).property('repository.slug', 'job.id')
|
||||
|
||||
branches: (->
|
||||
@getPath('repository.branches')
|
||||
).property('repository.id')
|
||||
|
||||
urlStatusImage: (->
|
||||
Travis.Urls.statusImage(@getPath('repository.slug'), @getPath('branch.commit.branch'))
|
||||
).property('repository.slug', 'branch')
|
||||
|
||||
markdownStatusImage: (->
|
||||
"[})](#{@get('urlRepository')})"
|
||||
).property('urlStatusImage')
|
||||
|
||||
textileStatusImage: (->
|
||||
"!#{@get('urlStatusImage')}!:#{@get('urlRepository')}"
|
||||
).property('urlStatusImage')
|
||||
|
||||
rdocStatusImage: (->
|
||||
"{<img src=\"#{@get('urlStatusImage')}\" alt=\"Build Status\" />}[#{@get('urlRepository')}]"
|
||||
).property('urlStatusImage')
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
74
assets/javascripts/app/views/tabs.coffee
Normal file
74
assets/javascripts/app/views/tabs.coffee
Normal file
|
@ -0,0 +1,74 @@
|
|||
@Travis.reopen
|
||||
TabsView: Em.View.extend
|
||||
templateName: 'repositories/tabs'
|
||||
|
||||
repositoryBinding: 'controller.repository'
|
||||
buildBinding: 'controller.build'
|
||||
jobBinding: 'controller.job'
|
||||
tabBinding: 'controller.tab'
|
||||
|
||||
toggleTools: ->
|
||||
$('#tools .pane').toggle()
|
||||
|
||||
# hrm. how to parametrize bindAttr?
|
||||
classCurrent: (->
|
||||
'active' if @get('tab') == 'current'
|
||||
).property('tab')
|
||||
|
||||
classBuilds: (->
|
||||
'active' if @get('tab') == 'builds'
|
||||
).property('tab')
|
||||
|
||||
classBuild: (->
|
||||
tab = @get('tab')
|
||||
classes = []
|
||||
classes.push('active') if tab == 'build'
|
||||
classes.push('display') if tab == 'build' || tab == 'job'
|
||||
classes.join(' ')
|
||||
).property('tab')
|
||||
|
||||
classJob: (->
|
||||
'active display' if @get('tab') == 'job'
|
||||
).property('tab')
|
||||
|
||||
urlRepository: (->
|
||||
Travis.Urls.repository(@getPath('repository.slug'))
|
||||
).property('repository.slug')
|
||||
|
||||
urlBuilds: (->
|
||||
Travis.Urls.builds(@getPath('repository.slug'))
|
||||
).property('repository.slug')
|
||||
|
||||
urlBuild: (->
|
||||
Travis.Urls.build(@getPath('repository.slug'), @getPath('build.id'))
|
||||
).property('repository.slug', 'build.id')
|
||||
|
||||
urlJob: (->
|
||||
Travis.Urls.job(@getPath('repository.slug'), @getPath('job.id'))
|
||||
).property('repository.slug', 'job.id')
|
||||
|
||||
branches: (->
|
||||
@getPath('repository.branches')
|
||||
).property('repository.id')
|
||||
|
||||
urlStatusImage: (->
|
||||
Travis.Urls.statusImage(@getPath('repository.slug'), @getPath('branch.commit.branch'))
|
||||
).property('repository.slug', 'branch')
|
||||
|
||||
markdownStatusImage: (->
|
||||
"[})](#{@get('urlRepository')})"
|
||||
).property('urlStatusImage')
|
||||
|
||||
textileStatusImage: (->
|
||||
"!#{@get('urlStatusImage')}!:#{@get('urlRepository')}"
|
||||
).property('urlStatusImage')
|
||||
|
||||
rdocStatusImage: (->
|
||||
"{<img src=\"#{@get('urlStatusImage')}\" alt=\"Build Status\" />}[#{@get('urlRepository')}]"
|
||||
).property('urlStatusImage')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -60,6 +60,7 @@ hooks = [
|
|||
|
||||
$.mockjax
|
||||
url: '/repositories'
|
||||
data: {}
|
||||
responseTime: responseTime
|
||||
responseText: { repositories: repositories }
|
||||
|
||||
|
@ -69,6 +70,12 @@ for repository in repositories
|
|||
responseTime: responseTime
|
||||
responseText: { repository: repository }
|
||||
|
||||
$.mockjax
|
||||
url: '/repositories'
|
||||
data: { slug: repository.slug }
|
||||
responseTime: responseTime
|
||||
responseText: { repositories: [repository] }
|
||||
|
||||
for build in builds
|
||||
$.mockjax
|
||||
url: '/builds/' + build.id
|
||||
|
|
122
assets/javascripts/vendor/ember.js
vendored
122
assets/javascripts/vendor/ember.js
vendored
|
@ -136,8 +136,8 @@ window.ember_deprecateFunc = Ember.deprecateFunc("ember_deprecateFunc is deprec
|
|||
|
||||
})();
|
||||
|
||||
// Version: v0.9.8.1-468-g3097ea8
|
||||
// Last commit: 3097ea8 (2012-07-04 14:42:40 -0700)
|
||||
// Version: v0.9.8.1-484-g73ac0a4
|
||||
// Last commit: 73ac0a4 (2012-07-06 11:52:32 -0700)
|
||||
|
||||
|
||||
(function() {
|
||||
|
@ -9292,6 +9292,8 @@ Ember.ArrayProxy = Ember.Object.extend(Ember.MutableArray,
|
|||
var content = get(this, 'content'),
|
||||
len = content ? get(content, 'length') : 0;
|
||||
|
||||
Ember.assert("Can't set ArrayProxy's content to itself", content !== this);
|
||||
|
||||
if (content) {
|
||||
content.addArrayObserver(this, {
|
||||
willChange: 'contentArrayWillChange',
|
||||
|
@ -9318,6 +9320,8 @@ Ember.ArrayProxy = Ember.Object.extend(Ember.MutableArray,
|
|||
var arrangedContent = get(this, 'arrangedContent'),
|
||||
len = arrangedContent ? get(arrangedContent, 'length') : 0;
|
||||
|
||||
Ember.assert("Can't set ArrayProxy's content to itself", arrangedContent !== this);
|
||||
|
||||
if (arrangedContent) {
|
||||
arrangedContent.addArrayObserver(this, {
|
||||
willChange: 'arrangedContentArrayWillChange',
|
||||
|
@ -9516,6 +9520,10 @@ Ember.ObjectProxy = Ember.Object.extend(
|
|||
*/
|
||||
content: null,
|
||||
/** @private */
|
||||
_contentDidChange: Ember.observer(function() {
|
||||
Ember.assert("Can't set ObjectProxy's content to itself", this.get('content') !== this);
|
||||
}, 'content'),
|
||||
/** @private */
|
||||
delegateGet: function (key) {
|
||||
var content = get(this, 'content');
|
||||
if (content) {
|
||||
|
@ -10540,7 +10548,6 @@ var get = Ember.get, set = Ember.set;
|
|||
Ember.HashLocation = Ember.Object.extend({
|
||||
init: function() {
|
||||
set(this, 'location', get(this, 'location') || window.location);
|
||||
set(this, 'callbacks', Ember.A());
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -10573,22 +10580,16 @@ Ember.HashLocation = Ember.Object.extend({
|
|||
*/
|
||||
onUpdateURL: function(callback) {
|
||||
var self = this;
|
||||
var guid = Ember.guidFor(this);
|
||||
|
||||
var hashchange = function() {
|
||||
Ember.$(window).bind('hashchange.ember-location-'+guid, function() {
|
||||
var path = location.hash.substr(1);
|
||||
if (get(self, 'lastSetURL') === path) { return; }
|
||||
|
||||
set(self, 'lastSetURL', null);
|
||||
|
||||
callback(location.hash.substr(1));
|
||||
};
|
||||
|
||||
get(this, 'callbacks').pushObject(hashchange);
|
||||
|
||||
// This won't work on old browsers anyway, but this check prevents errors
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener('hashchange', hashchange, false);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -10605,10 +10606,9 @@ Ember.HashLocation = Ember.Object.extend({
|
|||
},
|
||||
|
||||
willDestroy: function() {
|
||||
get(this, 'callbacks').forEach(function(callback) {
|
||||
window.removeEventListener('hashchange', callback, false);
|
||||
});
|
||||
set(this, 'callbacks', null);
|
||||
var guid = Ember.guidFor(this);
|
||||
|
||||
Ember.$(window).unbind('hashchange.ember-location-'+guid);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -10629,7 +10629,6 @@ Ember.HistoryLocation = Ember.Object.extend({
|
|||
init: function() {
|
||||
set(this, 'location', get(this, 'location') || window.location);
|
||||
set(this, '_initialURL', get(this, 'location').pathname);
|
||||
set(this, 'callbacks', Ember.A());
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -10672,18 +10671,11 @@ Ember.HistoryLocation = Ember.Object.extend({
|
|||
history changes, including using forward and back buttons.
|
||||
*/
|
||||
onUpdateURL: function(callback) {
|
||||
var self = this;
|
||||
var guid = Ember.guidFor(this);
|
||||
|
||||
var popstate = function(e) {
|
||||
Ember.$(window).bind('popstate.ember-location-'+guid, function(e) {
|
||||
callback(location.pathname);
|
||||
};
|
||||
|
||||
get(this, 'callbacks').pushObject(popstate);
|
||||
|
||||
// This won't work on old browsers anyway, but this check prevents errors
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener('popstate', popstate, false);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -10697,10 +10689,9 @@ Ember.HistoryLocation = Ember.Object.extend({
|
|||
},
|
||||
|
||||
willDestroy: function() {
|
||||
get(this, 'callbacks').forEach(function(callback) {
|
||||
window.removeEventListener('popstate', callback, false);
|
||||
});
|
||||
set(this, 'callbacks', null);
|
||||
var guid = Ember.guidFor(this);
|
||||
|
||||
Ember.$(window).unbind('popstate.ember-location-'+guid);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -11520,6 +11511,8 @@ Ember.ControllerMixin.reopen({
|
|||
|
||||
var viewClassName = name.charAt(0).toUpperCase() + name.substr(1) + "View";
|
||||
viewClass = get(namespace, viewClassName);
|
||||
controller = get(controllers, name + 'Controller');
|
||||
|
||||
Ember.assert("The name you supplied " + name + " did not resolve to a view " + viewClassName, !!viewClass);
|
||||
Ember.assert("The name you supplied " + name + " did not resolve to a controller " + name + 'Controller', (!!controller && !!context) || !context);
|
||||
}
|
||||
|
@ -11578,17 +11571,6 @@ var childViewsProperty = Ember.computed(function() {
|
|||
return ret;
|
||||
}).property().cacheable();
|
||||
|
||||
var controllerProperty = Ember.computed(function(key, value) {
|
||||
var parentView;
|
||||
|
||||
if (arguments.length === 2) {
|
||||
return value;
|
||||
} else {
|
||||
parentView = get(this, 'parentView');
|
||||
return parentView ? get(parentView, 'controller') : null;
|
||||
}
|
||||
}).property().cacheable();
|
||||
|
||||
var VIEW_PRESERVES_CONTEXT = Ember.VIEW_PRESERVES_CONTEXT;
|
||||
Ember.warn("The way that the {{view}} helper affects templates is about to change. Previously, templates inside child views would use the new view as the context. Soon, views will preserve their parent context when rendering their template. You can opt-in early to the new behavior by setting `ENV.VIEW_PRESERVES_CONTEXT = true`. For more information, see https://gist.github.com/2494968. You should update your templates as soon as possible; this default will change soon, and the option will be eliminated entirely before the 1.0 release.", VIEW_PRESERVES_CONTEXT);
|
||||
|
||||
|
@ -12057,7 +12039,17 @@ Ember.View = Ember.Object.extend(Ember.Evented,
|
|||
|
||||
@type Object
|
||||
*/
|
||||
controller: controllerProperty,
|
||||
controller: Ember.computed(function(key, value) {
|
||||
var parentView;
|
||||
|
||||
if (arguments.length === 2) {
|
||||
return value;
|
||||
} else {
|
||||
parentView = get(this, 'parentView');
|
||||
return parentView ? get(parentView, 'controller') : null;
|
||||
}
|
||||
}).property().cacheable(),
|
||||
|
||||
/**
|
||||
A view may contain a layout. A layout is a regular template but
|
||||
supersedes the `template` property during rendering. It is the
|
||||
|
@ -12122,22 +12114,20 @@ Ember.View = Ember.Object.extend(Ember.Evented,
|
|||
to be re-rendered.
|
||||
*/
|
||||
_context: Ember.computed(function(key, value) {
|
||||
var parentView, context;
|
||||
var parentView, controller;
|
||||
|
||||
if (arguments.length === 2) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (VIEW_PRESERVES_CONTEXT) {
|
||||
if (Ember.meta(this).descs.controller !== controllerProperty) {
|
||||
if (context = get(this, 'controller')) {
|
||||
return context;
|
||||
}
|
||||
if (controller = get(this, 'controller')) {
|
||||
return controller;
|
||||
}
|
||||
|
||||
parentView = get(this, '_parentView');
|
||||
if (parentView && (context = get(parentView, '_context'))) {
|
||||
return context;
|
||||
if (parentView) {
|
||||
return get(parentView, '_context');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16539,6 +16529,7 @@ Ember.StateManager.reopen(
|
|||
view;
|
||||
|
||||
while (currentState) {
|
||||
// TODO: Remove this when view state is removed
|
||||
if (get(currentState, 'isViewState')) {
|
||||
view = get(currentState, 'view');
|
||||
if (view) { return view; }
|
||||
|
@ -18950,6 +18941,7 @@ ActionHelper.registerAction = function(actionName, eventName, target, view, cont
|
|||
if (target.isState && typeof target.send === 'function') {
|
||||
return target.send(actionName, event);
|
||||
} else {
|
||||
Ember.assert(Ember.String.fmt('Target %@ does not have action %@', [target, actionName]), target[actionName]);
|
||||
return target[actionName].call(target, event);
|
||||
}
|
||||
}
|
||||
|
@ -19618,7 +19610,12 @@ Ember.TextArea = Ember.View.extend(Ember.TextSupport,
|
|||
|
||||
|
||||
(function() {
|
||||
Ember.TabContainerView = Ember.View.extend();
|
||||
Ember.TabContainerView = Ember.View.extend({
|
||||
init: function() {
|
||||
Ember.deprecate("Ember.TabContainerView is deprecated and will be removed from future releases.");
|
||||
this._super();
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
|
@ -19634,7 +19631,12 @@ Ember.TabPaneView = Ember.View.extend({
|
|||
|
||||
isVisible: Ember.computed(function() {
|
||||
return get(this, 'viewName') === getPath(this, 'tabsContainer.currentView');
|
||||
}).property('tabsContainer.currentView').volatile()
|
||||
}).property('tabsContainer.currentView').volatile(),
|
||||
|
||||
init: function() {
|
||||
Ember.deprecate("Ember.TabPaneView is deprecated and will be removed from future releases.");
|
||||
this._super();
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
|
@ -19651,6 +19653,11 @@ Ember.TabView = Ember.View.extend({
|
|||
|
||||
mouseUp: function() {
|
||||
setPath(this, 'tabsContainer.currentView', get(this, 'value'));
|
||||
},
|
||||
|
||||
init: function() {
|
||||
Ember.deprecate("Ember.TabView is deprecated and will be removed from future releases.");
|
||||
this._super();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -20057,7 +20064,7 @@ Ember.Handlebars.bootstrap = function(ctx) {
|
|||
// id if no name is found.
|
||||
templateName = script.attr('data-template-name') || script.attr('id'),
|
||||
template = compile(script.html()),
|
||||
view, viewPath, elementId, tagName, options;
|
||||
view, viewPath, elementId, options;
|
||||
|
||||
if (templateName) {
|
||||
// For templates which have a name, we save them and then remove them from the DOM
|
||||
|
@ -20086,13 +20093,8 @@ Ember.Handlebars.bootstrap = function(ctx) {
|
|||
// Look for data-element-id attribute.
|
||||
elementId = script.attr('data-element-id');
|
||||
|
||||
// Users can optionally specify a custom tag name to use by setting the
|
||||
// data-tag-name attribute on the script tag.
|
||||
tagName = script.attr('data-tag-name');
|
||||
|
||||
options = { template: template };
|
||||
if (elementId) { options.elementId = elementId; }
|
||||
if (tagName) { options.tagName = tagName; }
|
||||
|
||||
view = view.create(options);
|
||||
|
||||
|
@ -20125,8 +20127,8 @@ Ember.$(document).ready(
|
|||
|
||||
})();
|
||||
|
||||
// Version: v0.9.8.1-468-g3097ea8
|
||||
// Last commit: 3097ea8 (2012-07-04 14:42:40 -0700)
|
||||
// Version: v0.9.8.1-484-g73ac0a4
|
||||
// Last commit: 73ac0a4 (2012-07-06 11:52:32 -0700)
|
||||
|
||||
|
||||
(function() {
|
||||
|
|
8
assets/javascripts/vendor/jquery.mockjax.js
vendored
8
assets/javascripts/vendor/jquery.mockjax.js
vendored
|
@ -130,7 +130,13 @@
|
|||
function logMock( mockHandler, requestSettings ) {
|
||||
var c = $.extend({}, $.mockjaxSettings, mockHandler);
|
||||
if ( c.log && $.isFunction(c.log) ) {
|
||||
c.log('MOCK ' + requestSettings.type.toUpperCase() + ': ' + requestSettings.url, $.extend({}, requestSettings));
|
||||
var url = requestSettings.url
|
||||
if(requestSettings.data) {
|
||||
params = []
|
||||
for(key in requestSettings.data) params.push(key + '=' + requestSettings.data[key])
|
||||
url = url + '?' + params.join('&')
|
||||
}
|
||||
c.log('MOCK ' + requestSettings.type.toUpperCase() + ': ' + url, $.extend({}, requestSettings));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
font-size: 13px
|
||||
color: #999
|
||||
|
||||
#log
|
||||
pre#log
|
||||
clear: left
|
||||
white-space: pre-wrap
|
||||
word-wrap: break-word
|
||||
|
@ -82,6 +82,7 @@
|
|||
.bg-white
|
||||
background-color: white
|
||||
|
||||
|
||||
#log.loading
|
||||
padding: 25px 0 0 10px
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2090,8 +2090,8 @@ window.ember_deprecateFunc = Ember.deprecateFunc("ember_deprecateFunc is deprec
|
|||
|
||||
})();
|
||||
|
||||
// Version: v0.9.8.1-468-g3097ea8
|
||||
// Last commit: 3097ea8 (2012-07-04 14:42:40 -0700)
|
||||
// Version: v0.9.8.1-484-g73ac0a4
|
||||
// Last commit: 73ac0a4 (2012-07-06 11:52:32 -0700)
|
||||
|
||||
|
||||
(function() {
|
||||
|
@ -11246,6 +11246,8 @@ Ember.ArrayProxy = Ember.Object.extend(Ember.MutableArray,
|
|||
var content = get(this, 'content'),
|
||||
len = content ? get(content, 'length') : 0;
|
||||
|
||||
Ember.assert("Can't set ArrayProxy's content to itself", content !== this);
|
||||
|
||||
if (content) {
|
||||
content.addArrayObserver(this, {
|
||||
willChange: 'contentArrayWillChange',
|
||||
|
@ -11272,6 +11274,8 @@ Ember.ArrayProxy = Ember.Object.extend(Ember.MutableArray,
|
|||
var arrangedContent = get(this, 'arrangedContent'),
|
||||
len = arrangedContent ? get(arrangedContent, 'length') : 0;
|
||||
|
||||
Ember.assert("Can't set ArrayProxy's content to itself", arrangedContent !== this);
|
||||
|
||||
if (arrangedContent) {
|
||||
arrangedContent.addArrayObserver(this, {
|
||||
willChange: 'arrangedContentArrayWillChange',
|
||||
|
@ -11470,6 +11474,10 @@ Ember.ObjectProxy = Ember.Object.extend(
|
|||
*/
|
||||
content: null,
|
||||
/** @private */
|
||||
_contentDidChange: Ember.observer(function() {
|
||||
Ember.assert("Can't set ObjectProxy's content to itself", this.get('content') !== this);
|
||||
}, 'content'),
|
||||
/** @private */
|
||||
delegateGet: function (key) {
|
||||
var content = get(this, 'content');
|
||||
if (content) {
|
||||
|
@ -12494,7 +12502,6 @@ var get = Ember.get, set = Ember.set;
|
|||
Ember.HashLocation = Ember.Object.extend({
|
||||
init: function() {
|
||||
set(this, 'location', get(this, 'location') || window.location);
|
||||
set(this, 'callbacks', Ember.A());
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -12527,22 +12534,16 @@ Ember.HashLocation = Ember.Object.extend({
|
|||
*/
|
||||
onUpdateURL: function(callback) {
|
||||
var self = this;
|
||||
var guid = Ember.guidFor(this);
|
||||
|
||||
var hashchange = function() {
|
||||
Ember.$(window).bind('hashchange.ember-location-'+guid, function() {
|
||||
var path = location.hash.substr(1);
|
||||
if (get(self, 'lastSetURL') === path) { return; }
|
||||
|
||||
set(self, 'lastSetURL', null);
|
||||
|
||||
callback(location.hash.substr(1));
|
||||
};
|
||||
|
||||
get(this, 'callbacks').pushObject(hashchange);
|
||||
|
||||
// This won't work on old browsers anyway, but this check prevents errors
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener('hashchange', hashchange, false);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -12559,10 +12560,9 @@ Ember.HashLocation = Ember.Object.extend({
|
|||
},
|
||||
|
||||
willDestroy: function() {
|
||||
get(this, 'callbacks').forEach(function(callback) {
|
||||
window.removeEventListener('hashchange', callback, false);
|
||||
});
|
||||
set(this, 'callbacks', null);
|
||||
var guid = Ember.guidFor(this);
|
||||
|
||||
Ember.$(window).unbind('hashchange.ember-location-'+guid);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -12583,7 +12583,6 @@ Ember.HistoryLocation = Ember.Object.extend({
|
|||
init: function() {
|
||||
set(this, 'location', get(this, 'location') || window.location);
|
||||
set(this, '_initialURL', get(this, 'location').pathname);
|
||||
set(this, 'callbacks', Ember.A());
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -12626,18 +12625,11 @@ Ember.HistoryLocation = Ember.Object.extend({
|
|||
history changes, including using forward and back buttons.
|
||||
*/
|
||||
onUpdateURL: function(callback) {
|
||||
var self = this;
|
||||
var guid = Ember.guidFor(this);
|
||||
|
||||
var popstate = function(e) {
|
||||
Ember.$(window).bind('popstate.ember-location-'+guid, function(e) {
|
||||
callback(location.pathname);
|
||||
};
|
||||
|
||||
get(this, 'callbacks').pushObject(popstate);
|
||||
|
||||
// This won't work on old browsers anyway, but this check prevents errors
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener('popstate', popstate, false);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -12651,10 +12643,9 @@ Ember.HistoryLocation = Ember.Object.extend({
|
|||
},
|
||||
|
||||
willDestroy: function() {
|
||||
get(this, 'callbacks').forEach(function(callback) {
|
||||
window.removeEventListener('popstate', callback, false);
|
||||
});
|
||||
set(this, 'callbacks', null);
|
||||
var guid = Ember.guidFor(this);
|
||||
|
||||
Ember.$(window).unbind('popstate.ember-location-'+guid);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -13474,6 +13465,8 @@ Ember.ControllerMixin.reopen({
|
|||
|
||||
var viewClassName = name.charAt(0).toUpperCase() + name.substr(1) + "View";
|
||||
viewClass = get(namespace, viewClassName);
|
||||
controller = get(controllers, name + 'Controller');
|
||||
|
||||
Ember.assert("The name you supplied " + name + " did not resolve to a view " + viewClassName, !!viewClass);
|
||||
Ember.assert("The name you supplied " + name + " did not resolve to a controller " + name + 'Controller', (!!controller && !!context) || !context);
|
||||
}
|
||||
|
@ -13532,17 +13525,6 @@ var childViewsProperty = Ember.computed(function() {
|
|||
return ret;
|
||||
}).property().cacheable();
|
||||
|
||||
var controllerProperty = Ember.computed(function(key, value) {
|
||||
var parentView;
|
||||
|
||||
if (arguments.length === 2) {
|
||||
return value;
|
||||
} else {
|
||||
parentView = get(this, 'parentView');
|
||||
return parentView ? get(parentView, 'controller') : null;
|
||||
}
|
||||
}).property().cacheable();
|
||||
|
||||
var VIEW_PRESERVES_CONTEXT = Ember.VIEW_PRESERVES_CONTEXT;
|
||||
Ember.warn("The way that the {{view}} helper affects templates is about to change. Previously, templates inside child views would use the new view as the context. Soon, views will preserve their parent context when rendering their template. You can opt-in early to the new behavior by setting `ENV.VIEW_PRESERVES_CONTEXT = true`. For more information, see https://gist.github.com/2494968. You should update your templates as soon as possible; this default will change soon, and the option will be eliminated entirely before the 1.0 release.", VIEW_PRESERVES_CONTEXT);
|
||||
|
||||
|
@ -14011,7 +13993,17 @@ Ember.View = Ember.Object.extend(Ember.Evented,
|
|||
|
||||
@type Object
|
||||
*/
|
||||
controller: controllerProperty,
|
||||
controller: Ember.computed(function(key, value) {
|
||||
var parentView;
|
||||
|
||||
if (arguments.length === 2) {
|
||||
return value;
|
||||
} else {
|
||||
parentView = get(this, 'parentView');
|
||||
return parentView ? get(parentView, 'controller') : null;
|
||||
}
|
||||
}).property().cacheable(),
|
||||
|
||||
/**
|
||||
A view may contain a layout. A layout is a regular template but
|
||||
supersedes the `template` property during rendering. It is the
|
||||
|
@ -14076,22 +14068,20 @@ Ember.View = Ember.Object.extend(Ember.Evented,
|
|||
to be re-rendered.
|
||||
*/
|
||||
_context: Ember.computed(function(key, value) {
|
||||
var parentView, context;
|
||||
var parentView, controller;
|
||||
|
||||
if (arguments.length === 2) {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (VIEW_PRESERVES_CONTEXT) {
|
||||
if (Ember.meta(this).descs.controller !== controllerProperty) {
|
||||
if (context = get(this, 'controller')) {
|
||||
return context;
|
||||
}
|
||||
if (controller = get(this, 'controller')) {
|
||||
return controller;
|
||||
}
|
||||
|
||||
parentView = get(this, '_parentView');
|
||||
if (parentView && (context = get(parentView, '_context'))) {
|
||||
return context;
|
||||
if (parentView) {
|
||||
return get(parentView, '_context');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18493,6 +18483,7 @@ Ember.StateManager.reopen(
|
|||
view;
|
||||
|
||||
while (currentState) {
|
||||
// TODO: Remove this when view state is removed
|
||||
if (get(currentState, 'isViewState')) {
|
||||
view = get(currentState, 'view');
|
||||
if (view) { return view; }
|
||||
|
@ -20904,6 +20895,7 @@ ActionHelper.registerAction = function(actionName, eventName, target, view, cont
|
|||
if (target.isState && typeof target.send === 'function') {
|
||||
return target.send(actionName, event);
|
||||
} else {
|
||||
Ember.assert(Ember.String.fmt('Target %@ does not have action %@', [target, actionName]), target[actionName]);
|
||||
return target[actionName].call(target, event);
|
||||
}
|
||||
}
|
||||
|
@ -21572,7 +21564,12 @@ Ember.TextArea = Ember.View.extend(Ember.TextSupport,
|
|||
|
||||
|
||||
(function() {
|
||||
Ember.TabContainerView = Ember.View.extend();
|
||||
Ember.TabContainerView = Ember.View.extend({
|
||||
init: function() {
|
||||
Ember.deprecate("Ember.TabContainerView is deprecated and will be removed from future releases.");
|
||||
this._super();
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
|
@ -21588,7 +21585,12 @@ Ember.TabPaneView = Ember.View.extend({
|
|||
|
||||
isVisible: Ember.computed(function() {
|
||||
return get(this, 'viewName') === getPath(this, 'tabsContainer.currentView');
|
||||
}).property('tabsContainer.currentView').volatile()
|
||||
}).property('tabsContainer.currentView').volatile(),
|
||||
|
||||
init: function() {
|
||||
Ember.deprecate("Ember.TabPaneView is deprecated and will be removed from future releases.");
|
||||
this._super();
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
|
@ -21605,6 +21607,11 @@ Ember.TabView = Ember.View.extend({
|
|||
|
||||
mouseUp: function() {
|
||||
setPath(this, 'tabsContainer.currentView', get(this, 'value'));
|
||||
},
|
||||
|
||||
init: function() {
|
||||
Ember.deprecate("Ember.TabView is deprecated and will be removed from future releases.");
|
||||
this._super();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -22011,7 +22018,7 @@ Ember.Handlebars.bootstrap = function(ctx) {
|
|||
// id if no name is found.
|
||||
templateName = script.attr('data-template-name') || script.attr('id'),
|
||||
template = compile(script.html()),
|
||||
view, viewPath, elementId, tagName, options;
|
||||
view, viewPath, elementId, options;
|
||||
|
||||
if (templateName) {
|
||||
// For templates which have a name, we save them and then remove them from the DOM
|
||||
|
@ -22040,13 +22047,8 @@ Ember.Handlebars.bootstrap = function(ctx) {
|
|||
// Look for data-element-id attribute.
|
||||
elementId = script.attr('data-element-id');
|
||||
|
||||
// Users can optionally specify a custom tag name to use by setting the
|
||||
// data-tag-name attribute on the script tag.
|
||||
tagName = script.attr('data-tag-name');
|
||||
|
||||
options = { template: template };
|
||||
if (elementId) { options.elementId = elementId; }
|
||||
if (tagName) { options.tagName = tagName; }
|
||||
|
||||
view = view.create(options);
|
||||
|
||||
|
@ -22079,8 +22081,8 @@ Ember.$(document).ready(
|
|||
|
||||
})();
|
||||
|
||||
// Version: v0.9.8.1-468-g3097ea8
|
||||
// Last commit: 3097ea8 (2012-07-04 14:42:40 -0700)
|
||||
// Version: v0.9.8.1-484-g73ac0a4
|
||||
// Last commit: 73ac0a4 (2012-07-06 11:52:32 -0700)
|
||||
|
||||
|
||||
(function() {
|
||||
|
@ -27982,7 +27984,13 @@ function popState(event) {
|
|||
function logMock( mockHandler, requestSettings ) {
|
||||
var c = $.extend({}, $.mockjaxSettings, mockHandler);
|
||||
if ( c.log && $.isFunction(c.log) ) {
|
||||
c.log('MOCK ' + requestSettings.type.toUpperCase() + ': ' + requestSettings.url, $.extend({}, requestSettings));
|
||||
var url = requestSettings.url
|
||||
if(requestSettings.data) {
|
||||
params = []
|
||||
for(key in requestSettings.data) params.push(key + '=' + requestSettings.data[key])
|
||||
url = url + '?' + params.join('&')
|
||||
}
|
||||
c.log('MOCK ' + requestSettings.type.toUpperCase() + ': ' + url, $.extend({}, requestSettings));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -343,7 +343,7 @@ table.list td:last-child {
|
|||
}
|
||||
|
||||
/* line 8, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log {
|
||||
pre#log {
|
||||
clear: left;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
|
@ -360,116 +360,121 @@ table.list td:last-child {
|
|||
border-radius: 4px;
|
||||
}
|
||||
/* line 21, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log p {
|
||||
pre#log p {
|
||||
position: relative;
|
||||
padding: 0 15px 0 50px;
|
||||
margin: 0;
|
||||
min-height: 16px;
|
||||
}
|
||||
/* line 26, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log p:hover {
|
||||
pre#log p:hover {
|
||||
background-color: rgba(255, 255, 255, 0.05);
|
||||
}
|
||||
/* line 28, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log p.highlight {
|
||||
pre#log p.highlight {
|
||||
background-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
/* line 30, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log p a {
|
||||
pre#log p a {
|
||||
position: absolute;
|
||||
margin-left: -40px;
|
||||
cursor: pointer;
|
||||
}
|
||||
/* line 35, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .fold {
|
||||
pre#log .fold {
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
}
|
||||
/* line 39, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .fold.open {
|
||||
pre#log .fold.open {
|
||||
height: auto;
|
||||
}
|
||||
/* line 42, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .bold {
|
||||
pre#log .bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
/* line 44, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .italic {
|
||||
pre#log .italic {
|
||||
font-style: italic;
|
||||
}
|
||||
/* line 46, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .underscore {
|
||||
pre#log .underscore {
|
||||
/* monochrome displays only according to http://ascii-table.com/ansi-escape-sequences.php */
|
||||
}
|
||||
/* line 49, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .black {
|
||||
pre#log .black {
|
||||
color: black;
|
||||
}
|
||||
/* line 51, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .red {
|
||||
pre#log .red {
|
||||
color: red;
|
||||
}
|
||||
/* line 53, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .green {
|
||||
pre#log .green {
|
||||
color: lime;
|
||||
}
|
||||
/* line 55, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .yellow {
|
||||
pre#log .yellow {
|
||||
color: yellow;
|
||||
}
|
||||
/* line 57, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .blue {
|
||||
pre#log .blue {
|
||||
color: blue;
|
||||
}
|
||||
/* line 59, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .magenta {
|
||||
pre#log .magenta {
|
||||
color: magenta;
|
||||
}
|
||||
/* line 61, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .cyan {
|
||||
pre#log .cyan {
|
||||
color: cyan;
|
||||
}
|
||||
/* line 63, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .white {
|
||||
pre#log .white {
|
||||
color: white;
|
||||
}
|
||||
/* line 65, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .black.bright {
|
||||
pre#log .black.bright {
|
||||
color: #999999;
|
||||
}
|
||||
/* line 68, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .bg-black {
|
||||
pre#log .bg-black {
|
||||
background-color: black;
|
||||
}
|
||||
/* line 70, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .bg-red {
|
||||
pre#log .bg-red {
|
||||
background-color: red;
|
||||
}
|
||||
/* line 72, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .bg-green {
|
||||
pre#log .bg-green {
|
||||
background-color: lime;
|
||||
}
|
||||
/* line 74, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .bg-yellow {
|
||||
pre#log .bg-yellow {
|
||||
background-color: yellow;
|
||||
}
|
||||
/* line 76, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .bg-blue {
|
||||
pre#log .bg-blue {
|
||||
background-color: blue;
|
||||
}
|
||||
/* line 78, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .bg-magenta {
|
||||
pre#log .bg-magenta {
|
||||
background-color: magenta;
|
||||
}
|
||||
/* line 80, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .bg-cyan {
|
||||
pre#log .bg-cyan {
|
||||
background-color: cyan;
|
||||
}
|
||||
/* line 82, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log .bg-white {
|
||||
pre#log .bg-white {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
/* line 85, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/log.sass */
|
||||
#log.loading {
|
||||
padding: 25px 0 0 10px;
|
||||
}
|
||||
/* line 3, /Volumes/Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/main/repository.sass */
|
||||
#repository {
|
||||
position: relative;
|
||||
|
|
Loading…
Reference in New Issue
Block a user