Compare commits
88 Commits
ps-add-act
...
master
Author | SHA1 | Date | |
---|---|---|---|
![]() |
1f5eb7f525 | ||
![]() |
812bf1a4f5 | ||
![]() |
b9688352f4 | ||
![]() |
2701581c12 | ||
![]() |
1ff47c63c4 | ||
![]() |
dbedf34be1 | ||
![]() |
5733d14ae4 | ||
![]() |
4cb225d578 | ||
![]() |
249deb0eff | ||
![]() |
446a9bc9b1 | ||
![]() |
ee4b26a7d7 | ||
![]() |
7601173aaa | ||
![]() |
e74b29c313 | ||
![]() |
eb7a746549 | ||
![]() |
d85469c98e | ||
![]() |
fe8a5a13e1 | ||
![]() |
f8d05dea78 | ||
![]() |
dc34ab38e7 | ||
![]() |
5c3d905424 | ||
![]() |
f00a899e74 | ||
![]() |
1c49615a2d | ||
![]() |
d6c4f1beea | ||
![]() |
f459fed279 | ||
![]() |
8de13d1949 | ||
![]() |
35f9d00a7d | ||
![]() |
17f200081a | ||
![]() |
a17556baf6 | ||
![]() |
575d78e38d | ||
![]() |
d6d1b7c738 | ||
![]() |
3fa2fcea93 | ||
![]() |
67104fc1f1 | ||
![]() |
ebb451d70c | ||
![]() |
e14003eb53 | ||
![]() |
bc8efb758f | ||
![]() |
8cd14b8952 | ||
![]() |
f62143217e | ||
![]() |
2c56238de0 | ||
![]() |
286b59c8ed | ||
![]() |
c5f3cc4873 | ||
![]() |
36e1f9b30e | ||
![]() |
7035b3f763 | ||
![]() |
862b14bad3 | ||
![]() |
38e45810e9 | ||
![]() |
bf636b05f2 | ||
![]() |
fa000b80c9 | ||
![]() |
ae57f3903e | ||
![]() |
6505a058d6 | ||
![]() |
e3efe7d7fc | ||
![]() |
703cdbd598 | ||
![]() |
217618ea71 | ||
![]() |
919857dfad | ||
![]() |
c74fa87016 | ||
![]() |
1cfb9d37be | ||
![]() |
cbd0c46e37 | ||
![]() |
e66efc1cbc | ||
![]() |
71c55779a1 | ||
![]() |
fa62539a40 | ||
![]() |
26ca2875ae | ||
![]() |
65cf81169b | ||
![]() |
2220334265 | ||
![]() |
3618488151 | ||
![]() |
ae8092ddc0 | ||
![]() |
d9c7ada46d | ||
![]() |
e1500d76a1 | ||
![]() |
a940e176e7 | ||
![]() |
381bdc98b5 | ||
![]() |
2c1c1a000e | ||
![]() |
935092c8d7 | ||
![]() |
fdd07e83b4 | ||
![]() |
f482c8be36 | ||
![]() |
b859386fda | ||
![]() |
07d241bdc2 | ||
![]() |
e35e01747a | ||
![]() |
8c374cde93 | ||
![]() |
8fb479c3e0 | ||
![]() |
c65a88a23a | ||
![]() |
521fb30b42 | ||
![]() |
38398588bb | ||
![]() |
79b456e511 | ||
![]() |
c6ec02429d | ||
![]() |
fa7c275eaa | ||
![]() |
bfb1b69374 | ||
![]() |
5dc64c4937 | ||
![]() |
ab0a2af471 | ||
![]() |
7292d6f53e | ||
![]() |
de26ed2091 | ||
![]() |
0dc7e0e045 | ||
![]() |
725d3b00da |
|
@ -39,9 +39,6 @@ install:
|
|||
- npm install
|
||||
- bower install
|
||||
|
||||
before_script:
|
||||
- ruby ci/prepare_testem.rb
|
||||
|
||||
script:
|
||||
- ember try $EMBER_VERSION
|
||||
|
||||
|
|
|
@ -65,3 +65,6 @@ DEPENDENCIES
|
|||
sinatra
|
||||
sinatra-contrib
|
||||
travis-web!
|
||||
|
||||
BUNDLED WITH
|
||||
1.10.1
|
||||
|
|
|
@ -47,5 +47,11 @@ export default ActiveModelAdapter.extend({
|
|||
}
|
||||
|
||||
return this._super(...arguments);
|
||||
},
|
||||
|
||||
// this can be removed once this PR is merged and live:
|
||||
// https://github.com/emberjs/data/pull/4204
|
||||
findRecord(store, type, id, snapshot) {
|
||||
return this.ajax(this.buildURL(type.modelName, id, snapshot, 'findRecord'), 'GET');
|
||||
}
|
||||
});
|
||||
|
|
|
@ -54,5 +54,11 @@ export default RESTAdapter.extend({
|
|||
pathForType: function(modelName, id) {
|
||||
var underscored = Ember.String.underscore(modelName);
|
||||
return id ? underscored : Ember.String.pluralize(underscored);
|
||||
},
|
||||
|
||||
// this can be removed once this PR is merged and live:
|
||||
// https://github.com/emberjs/data/pull/4204
|
||||
findRecord(store, type, id, snapshot) {
|
||||
return this.ajax(this.buildURL(type.modelName, id, snapshot, 'findRecord'), 'GET');
|
||||
}
|
||||
});
|
||||
|
|
|
@ -19,12 +19,8 @@ var App = Ember.Application.extend(Ember.Evented, {
|
|||
podModulePrefix: config.podModulePrefix,
|
||||
Resolver: Resolver,
|
||||
|
||||
lookup() {
|
||||
return this.__container__.lookup.apply(this.__container__, arguments);
|
||||
},
|
||||
|
||||
flash(options) {
|
||||
return Travis.lookup('controller:flash').loadFlashes([options]);
|
||||
return Ember.getOwner(Travis).lookup('controller:flash').loadFlashes([options]);
|
||||
},
|
||||
|
||||
toggleSidebar() {
|
||||
|
|
|
@ -1,23 +1,36 @@
|
|||
import Ember from 'ember';
|
||||
import { githubCommit as githubCommitUrl } from 'travis/utils/urls';
|
||||
import config from 'travis/config/environment';
|
||||
import { hasAdminPermission, hasPushPermission } from 'travis/utils/permission';
|
||||
|
||||
export default Ember.Component.extend({
|
||||
tagName: 'li',
|
||||
classNameBindings: ['repo.default_branch.last_build.state'],
|
||||
classNames: ['dashboard-row', 'row-li'],
|
||||
classNames: ['rows', 'rows--dashboard'],
|
||||
isLoading: false,
|
||||
isTriggering: false,
|
||||
hasTriggered: false,
|
||||
dropupIsOpen: false,
|
||||
|
||||
urlGithubCommit: function() {
|
||||
return githubCommitUrl(this.get('repo.slug'), this.get('repo.default_branch.last_build.commit.sha'));
|
||||
}.property('repo'),
|
||||
|
||||
displayMenuTofu: function() {
|
||||
return hasPushPermission(this.get('currentUser'), this.get('repo.id'));
|
||||
},
|
||||
|
||||
displayActivateLink: function() {
|
||||
return hasAdminPermission(this.get('currentUser'), this.get('repo.id'));
|
||||
},
|
||||
|
||||
actions: {
|
||||
tiggerBuild(branch) {
|
||||
this.set('isTriggering', true);
|
||||
return this.triggerBuild();
|
||||
},
|
||||
openDropup() {
|
||||
this.toggleProperty('dropupIsOpen');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -2,6 +2,7 @@ import Ember from 'ember';
|
|||
|
||||
export default Ember.Component.extend({
|
||||
logBinding: 'job.log',
|
||||
classNames: ['job-log'],
|
||||
|
||||
didReceiveAttrs: function(options) {
|
||||
this._super(...arguments);
|
||||
|
@ -25,7 +26,10 @@ export default Ember.Component.extend({
|
|||
},
|
||||
|
||||
setupLog(job) {
|
||||
job.get('log').fetch();
|
||||
this.set('error', false);
|
||||
job.get('log').fetch().then(function() { }, () => {
|
||||
this.set('error', true);
|
||||
});
|
||||
job.subscribe();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
import Ember from 'ember';
|
||||
import { githubCommit as githubCommitUrl } from 'travis/utils/urls';
|
||||
import TravisRoute from 'travis/routes/basic';
|
||||
import config from 'travis/config/environment';
|
||||
|
||||
export default Ember.Component.extend({
|
||||
tagName: 'li',
|
||||
classNameBindings: ['repo.lastBuildState'],
|
||||
classNames: ['landing-row', 'row-li']
|
||||
});
|
8
app/components/lastbuild-tile.js
Normal file
8
app/components/lastbuild-tile.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
import Ember from 'ember';
|
||||
|
||||
export default Ember.Component.extend({
|
||||
|
||||
tagName: 'li',
|
||||
classNameBindings: ['build.state']
|
||||
|
||||
});
|
|
@ -1,46 +1,3 @@
|
|||
import Ember from 'ember';
|
||||
import config from 'travis/config/environment';
|
||||
|
||||
export default Ember.Component.extend({
|
||||
flashes: Ember.inject.service(),
|
||||
|
||||
canActivate: function() {
|
||||
let user = this.get('user');
|
||||
if(user) {
|
||||
let permissions = user.get('pushPermissions'),
|
||||
repoId = parseInt(this.get('repo.id'));
|
||||
|
||||
return permissions.contains(repoId);
|
||||
}
|
||||
}.property('user.pushPermissions.[]', 'repo'),
|
||||
|
||||
actions: {
|
||||
activate: function() {
|
||||
let apiEndpoint = config.apiEndpoint,
|
||||
repoId = this.get('repo.id');
|
||||
|
||||
this.set('isActivating', true);
|
||||
$.ajax(apiEndpoint + '/v3/repo/' + repoId + '/enable', {
|
||||
headers: {
|
||||
Authorization: 'token ' + this.get('auth').token()
|
||||
},
|
||||
method: 'POST'
|
||||
}).then((response) => {
|
||||
if(response.active) {
|
||||
let pusher = this.get('pusher'),
|
||||
repoId = this.get('repo.id');
|
||||
|
||||
pusher.subscribe('repo-' + repoId);
|
||||
|
||||
this.get('repo').set('active', true);
|
||||
|
||||
this.get('flashes').add('success', 'Repository has been successfully activated.');
|
||||
}
|
||||
this.set('isActivating', false);
|
||||
}, () => {
|
||||
this.set('isActivating', false);
|
||||
this.get('flashes').add('error', 'There was an error while trying to activate the repository.');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
export default Ember.Component.extend();
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import Ember from 'ember';
|
||||
import config from 'travis/config/environment';
|
||||
import { hasPermission, hasPushPermission } from 'travis/utils/permission';
|
||||
|
||||
export default Ember.Component.extend({
|
||||
popup: Ember.inject.service(),
|
||||
|
@ -22,37 +23,16 @@ export default Ember.Component.extend({
|
|||
return this.toggleProperty('isOpen');
|
||||
}
|
||||
},
|
||||
|
||||
hasPermission: function() {
|
||||
var permissions;
|
||||
if (permissions = this.get('currentUser.permissions')) {
|
||||
return permissions.contains(parseInt(this.get('repo.id')));
|
||||
}
|
||||
}.property('currentUser.permissions.length', 'repo.id'),
|
||||
|
||||
hasPushPermission: function() {
|
||||
var permissions;
|
||||
if (permissions = this.get('currentUser.pushPermissions')) {
|
||||
return permissions.contains(parseInt(this.get('repo.id')));
|
||||
}
|
||||
}.property('currentUser.pushPermissions.length', 'repo.id'),
|
||||
|
||||
hasAdminPermission: function() {
|
||||
var permissions;
|
||||
if (permissions = this.get('currentUser.adminPermissions')) {
|
||||
return permissions.contains(parseInt(this.get('repo.id')));
|
||||
}
|
||||
}.property('currentUser.adminPermissions.length', 'repo.id'),
|
||||
|
||||
displaySettingsLink: function() {
|
||||
return this.get('hasPushPermission');
|
||||
}.property('hasPushPermission'),
|
||||
return hasPushPermission(this.get('currentUser'), this.get('repo.id'));
|
||||
}.property('currentUser.pushPermissions.length', 'repo'),
|
||||
|
||||
displayCachesLink: function() {
|
||||
return this.get('hasPushPermission') && config.endpoints.caches;
|
||||
}.property('hasPushPermission'),
|
||||
return hasPushPermission(this.get('currentUser'), this.get('repo.id')) && config.endpoints.caches;
|
||||
}.property('currentUser.pushPermissions.length', 'repo'),
|
||||
|
||||
displayStatusImages: function() {
|
||||
return this.get('hasPermission');
|
||||
}.property('hasPermission')
|
||||
return hasPermission(this.get('currentUser'), this.get('repo.id'));
|
||||
}.property('currentUser.permissions.length', 'repo.id')
|
||||
|
||||
});
|
||||
|
|
|
@ -2,7 +2,7 @@ import Ember from 'ember';
|
|||
|
||||
export default Ember.Component.extend({
|
||||
tagName: 'span',
|
||||
classNames: ['status-icon', 'icon'],
|
||||
classNames: ['request-icon', 'icon'],
|
||||
classNameBindings: ['event', 'state'],
|
||||
|
||||
isPush: function() {
|
||||
|
|
|
@ -3,7 +3,7 @@ import Ember from 'ember';
|
|||
export default Ember.Component.extend({
|
||||
|
||||
tagName: 'span',
|
||||
classNames: ['avatar'],
|
||||
classNameBindings: ['small:avatar--small:avatar'],
|
||||
|
||||
userInitials: function() {
|
||||
var name = this.get('name');
|
||||
|
|
|
@ -11,7 +11,7 @@ export default Ember.Controller.extend({
|
|||
var user;
|
||||
if ((user = this.get('model')) && user.get('isSyncing') && !user.get('syncedAt')) {
|
||||
return Ember.run.scheduleOnce('routerTransitions', this, function() {
|
||||
return this.container.lookup('router:main').send('renderFirstSync');
|
||||
return Ember.getOwner(this).lookup('router:main').send('renderFirstSync');
|
||||
});
|
||||
}
|
||||
}.observes('isSyncing', 'auth.currentUser')
|
||||
|
|
|
@ -76,7 +76,7 @@ var Controller = Ember.Controller.extend({
|
|||
possiblyRedirectToGettingStartedPage() {
|
||||
return Ember.run.scheduleOnce('routerTransitions', this, function() {
|
||||
if (this.get('tab') === 'owned' && this.get('isLoaded') && this.get('repos.length') === 0) {
|
||||
return this.container.lookup('router:main').send('redirectToGettingStarted');
|
||||
return Ember.getOwner(this).lookup('router:main').send('redirectToGettingStarted');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
@ -2,5 +2,6 @@ import { timeAgoInWords, safe } from 'travis/utils/helpers';
|
|||
import Ember from "ember";
|
||||
|
||||
export default Ember.Helper.helper(function(params) {
|
||||
return safe(moment(params[0]).format('MMMM D, YYYY H:mm:ss') || '-');
|
||||
let date = new Date(params[0]);
|
||||
return safe(moment(date).format('MMMM D, YYYY H:mm:ss') || '-');
|
||||
});
|
||||
|
|
|
@ -2,17 +2,15 @@ import config from 'travis/config/environment';
|
|||
import TravisPusher from 'travis/utils/pusher';
|
||||
var PusherInitializer, initialize;
|
||||
|
||||
initialize = function(data) {
|
||||
var application;
|
||||
application = data.application;
|
||||
initialize = function(applicationInstance) {
|
||||
const app = applicationInstance.application;
|
||||
if (config.pusher.key) {
|
||||
application.pusher = new TravisPusher(config.pusher, data.container.lookup('service:ajax'));
|
||||
application.register('pusher:main', application.pusher, {
|
||||
app.pusher = new TravisPusher(config.pusher, applicationInstance.lookup('service:ajax'));
|
||||
app.register('pusher:main', app.pusher, {
|
||||
instantiate: false
|
||||
});
|
||||
application.inject('route', 'pusher', 'pusher:main');
|
||||
application.inject('component', 'pusher', 'pusher:main');
|
||||
return application.pusher.store = data.container.lookup('service:store');
|
||||
app.inject('route', 'pusher', 'pusher:main');
|
||||
return app.pusher.store = applicationInstance.lookup('service:store');
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ var Broadcast = Model.extend({
|
|||
Broadcast.reopenClass({
|
||||
seen: function() {
|
||||
var seenBroadcasts;
|
||||
seenBroadcasts = Travis.lookup('service:storage').getItem('travis.seen_broadcasts');
|
||||
seenBroadcasts = Ember.getOwner(Travis).lookup('service:storage').getItem('travis.seen_broadcasts');
|
||||
if (seenBroadcasts != null) {
|
||||
seenBroadcasts = JSON.parse(seenBroadcasts);
|
||||
}
|
||||
|
|
|
@ -28,12 +28,14 @@ var Request = Ember.Object.extend({
|
|||
return $.ajax({
|
||||
url: this.redirectTo(xhr),
|
||||
type: 'GET',
|
||||
success: this.handlers.text
|
||||
success: (body) => {
|
||||
Ember.run(this, function() { this.handlers.text(body); });
|
||||
}
|
||||
});
|
||||
} else if (this.isJson(xhr, body)) {
|
||||
return this.handlers.json(body);
|
||||
return Ember.run(this, function() { this.handlers.json(body); });
|
||||
} else {
|
||||
return this.handlers.text(body);
|
||||
return Ember.run(this, function() { this.handlers.text(body); });
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -44,6 +46,7 @@ var Request = Ember.Object.extend({
|
|||
},
|
||||
|
||||
isJson(xhr, body) {
|
||||
|
||||
// Firefox can't see the Content-Type header on the xhr response due to the wrong
|
||||
// status code 204. Should be some redirect code but that doesn't work with CORS.
|
||||
var type = xhr.getResponseHeader('Content-Type') || '';
|
||||
|
|
|
@ -14,7 +14,7 @@ var Router = Ember.Router.extend({
|
|||
// we should probably think about a more general way to
|
||||
// do this, location should not know about auth status
|
||||
return Location.create({
|
||||
auth: this.container.lookup('service:auth')
|
||||
auth: Ember.getOwner(this).lookup('service:auth')
|
||||
});
|
||||
}
|
||||
}.property(),
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import TravisRoute from 'travis/routes/basic';
|
||||
import config from 'travis/config/environment';
|
||||
import BuildFaviconMixin from 'travis/mixins/build-favicon';
|
||||
import Ember from 'ember';
|
||||
|
||||
export default TravisRoute.extend(BuildFaviconMixin, {
|
||||
needsAuth: false,
|
||||
|
@ -9,8 +10,13 @@ export default TravisRoute.extend(BuildFaviconMixin, {
|
|||
this._super.apply(this, arguments);
|
||||
return this.get('auth').refreshUserData().then( () => {
|
||||
this.setupPendo();
|
||||
}, () => {
|
||||
}, (xhr) => {
|
||||
// if xhr is not defined it means that scopes are not correct,
|
||||
// so log the user out. Also log the user out if the response is 401
|
||||
// or 403
|
||||
if(!xhr || (xhr.status === 401 || xhr.status === 403)) {
|
||||
return this.get('auth').signOut();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -94,7 +100,7 @@ export default TravisRoute.extend(BuildFaviconMixin, {
|
|||
error(error) {
|
||||
var authController;
|
||||
if (error === 'needs-auth') {
|
||||
authController = this.container.lookup('controller:auth');
|
||||
authController = Ember.getOwner(this).lookup('controller:auth');
|
||||
authController.set('redirected', true);
|
||||
return this.transitionTo('auth');
|
||||
} else {
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import TravisRoute from 'travis/routes/basic';
|
||||
import Ember from 'ember';
|
||||
|
||||
export default TravisRoute.extend({
|
||||
setupController(controller) {
|
||||
return this.container.lookup('controller:repos').activate('owned');
|
||||
return Ember.getOwner(this).lookup('controller:repos').activate('owned');
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,61 +1,13 @@
|
|||
import BasicRoute from 'travis/routes/basic';
|
||||
import config from 'travis/config/environment';
|
||||
import limit from 'travis/utils/computed-limit';
|
||||
import Ember from 'ember';
|
||||
|
||||
export default BasicRoute.extend({
|
||||
init: function() {
|
||||
var repos, store;
|
||||
|
||||
store = this.store;
|
||||
repos = Ember.ArrayProxy.extend({
|
||||
isLoadedBinding: 'repos.isLoaded',
|
||||
repos: [],
|
||||
sorted: Ember.computed.sort('repos', 'sortedReposKeys'),
|
||||
content: limit('sorted', 'limit'),
|
||||
sortedReposKeys: ['sortOrderForLandingPage:desc'],
|
||||
limit: 3
|
||||
}).create();
|
||||
|
||||
this.set('repos', repos);
|
||||
this.loadMoreRepos();
|
||||
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
|
||||
loadMoreRepos() {
|
||||
return this.store.findAll('build').then( (builds) => {
|
||||
var repoIds, repos;
|
||||
repoIds = builds.mapBy('data.repo').uniq();
|
||||
repos = this.get('repos.repos');
|
||||
return this.store.query('repo', {
|
||||
ids: repoIds
|
||||
}).then(function(reposFromRequest) {
|
||||
return reposFromRequest.toArray().forEach(function(repo) {
|
||||
if (!repos.contains(repo)) {
|
||||
return repos.pushObject(repo);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
activate() {
|
||||
var interval;
|
||||
this._super.apply(this, arguments);
|
||||
interval = setInterval(() => {
|
||||
return this.loadMoreRepos();
|
||||
}, 60000);
|
||||
this.set('interval', interval);
|
||||
return this.controllerFor('top').set('landingPage', true);
|
||||
},
|
||||
|
||||
deactivate() {
|
||||
var interval;
|
||||
this._super.apply(this, arguments);
|
||||
if (interval = this.get('interval')) {
|
||||
clearInterval(interval);
|
||||
}
|
||||
return this.controllerFor('top').set('landingPage', false);
|
||||
},
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ export default TravisRoute.extend(ScrollResetMixin, {
|
|||
},
|
||||
|
||||
setupController(controller, model) {
|
||||
this.container.lookup('controller:repos').activate('owned');
|
||||
this.controllerFor('repos').activate('owned');
|
||||
if (model && !model.get) {
|
||||
model = this.get('store').find('repo', model.id);
|
||||
}
|
||||
|
|
|
@ -4,8 +4,7 @@ import Config from 'travis/config/environment';
|
|||
export default TravisRoute.extend({
|
||||
setupController(controller, model) {
|
||||
this._super.apply(this, arguments);
|
||||
this.controllerFor('repo').activate('current');
|
||||
controller.set('repo', model);
|
||||
return this.controllerFor('repo').activate('current');
|
||||
},
|
||||
|
||||
deactivate() {
|
||||
|
|
|
@ -3,7 +3,7 @@ import TravisRoute from 'travis/routes/basic';
|
|||
export default TravisRoute.extend({
|
||||
setupController: function() {
|
||||
$('body').attr('id', 'simple');
|
||||
this.container.lookup('controller:repos').activate('owned');
|
||||
this.controllerFor('repos').activate('owned');
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
renderTemplate: function() {
|
||||
|
|
|
@ -29,7 +29,7 @@ export default TravisRoute.extend({
|
|||
image: 'fritz'
|
||||
}, {
|
||||
name: 'Konstantin Haase',
|
||||
title: 'Haase of Pain',
|
||||
title: 'Haase of Engineering',
|
||||
handle: 'konstantinhaase',
|
||||
nationality: 'germany',
|
||||
country: 'switzerland',
|
||||
|
@ -172,6 +172,33 @@ export default TravisRoute.extend({
|
|||
nationality: 'italy',
|
||||
country: 'austria',
|
||||
image: 'laura'
|
||||
}, {
|
||||
name: 'Maren Brechler',
|
||||
title: 'Number Juggler',
|
||||
nationality: 'germany',
|
||||
country: 'germany',
|
||||
image: 'maren'
|
||||
}, {
|
||||
name: 'Ana Rosas',
|
||||
title: 'Software Baker',
|
||||
handle: 'ana_rosas',
|
||||
nationality: 'mexico',
|
||||
country: 'mexico',
|
||||
image: 'ana'
|
||||
}, {
|
||||
name: 'Igor Wiedler',
|
||||
title: 'webmaster',
|
||||
handle: 'igorwhilefalse',
|
||||
nationality: 'ukswitzerland',
|
||||
country: 'germany',
|
||||
image: 'igor'
|
||||
}, {
|
||||
name: 'Carmen Andoh',
|
||||
title: 'SRE- Snazzy Rsync Empress',
|
||||
handle: 'caelestisca',
|
||||
nationality: 'usa',
|
||||
country: 'usa',
|
||||
image: 'carmen'
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
@ -16,6 +16,14 @@ var Serializer = V2FallbackSerializer.extend({
|
|||
return result;
|
||||
},
|
||||
|
||||
normalizeSingleResponse: function(store, primaryModelClass, payload, id, requestType) {
|
||||
if (payload.commit) {
|
||||
payload.build.commit = payload.commit;
|
||||
delete payload.build.commit_id;
|
||||
}
|
||||
return this._super(...arguments);
|
||||
},
|
||||
|
||||
normalizeArrayResponse: function(store, primaryModelClass, payload, id, requestType) {
|
||||
var result;
|
||||
if (payload.commits) {
|
||||
|
|
|
@ -25,6 +25,14 @@ export default V2FallbackSerializer.extend({
|
|||
return this._super(modelClass, resourceHash);
|
||||
},
|
||||
|
||||
normalizeSingleResponse: function(store, primaryModelClass, payload, id, requestType) {
|
||||
if (payload.commit) {
|
||||
payload.job.commit = payload.commit;
|
||||
delete payload.job.commit_id;
|
||||
}
|
||||
return this._super(...arguments);
|
||||
},
|
||||
|
||||
normalizeArrayResponse: function(store, primaryModelClass, payload, id, requestType) {
|
||||
var result;
|
||||
if (payload.commits) {
|
||||
|
|
|
@ -64,7 +64,7 @@ export default Ember.Service.extend({
|
|||
success = options.success || (function() {});
|
||||
options.success = (data, status, xhr) => {
|
||||
if (data != null ? data.flash : void 0) {
|
||||
Travis.lookup('controller:flash').loadFlashes(data.flash);
|
||||
Ember.getOwner(Travis).lookup('controller:flash').loadFlashes(data.flash);
|
||||
}
|
||||
if (data != null) {
|
||||
delete data.flash;
|
||||
|
@ -75,7 +75,7 @@ export default Ember.Service.extend({
|
|||
options.error = (data, status, xhr) => {
|
||||
console.log("[ERROR] API responded with an error (" + status + "): " + (JSON.stringify(data)));
|
||||
if (data != null ? data.flash : void 0) {
|
||||
Travis.lookup('controller:flash').pushObject(data.flash);
|
||||
Ember.getOwner(Travis).lookup('controller:flash').pushObject(data.flash);
|
||||
}
|
||||
if (data != null) {
|
||||
delete data.flash;
|
||||
|
|
|
@ -140,7 +140,7 @@ export default Ember.Service.extend({
|
|||
data.user.token = user.token;
|
||||
this.storeData(data, this.get('sessionStorage'));
|
||||
this.storeData(data, this.get('storage'));
|
||||
return Travis.trigger('user:refreshed', data.user);
|
||||
Travis.trigger('user:refreshed', data.user);
|
||||
}
|
||||
} else {
|
||||
return Ember.RSVP.Promise.reject();
|
||||
|
@ -214,7 +214,7 @@ export default Ember.Service.extend({
|
|||
// as a direct response to either manual sign in or autoSignIn (right now
|
||||
// we treat both cases behave the same in terms of sent events which I think
|
||||
// makes it more complicated than it should be).
|
||||
router = this.container.lookup('router:main');
|
||||
router = Ember.getOwner(this).lookup('router:main');
|
||||
try {
|
||||
return router.send(name);
|
||||
} catch (error1) {
|
||||
|
|
|
@ -48,9 +48,5 @@ export default Ember.Service.extend({
|
|||
|
||||
close(msg) {
|
||||
return this.get('flashes').removeObject(msg);
|
||||
},
|
||||
|
||||
add(type, message) {
|
||||
this.loadFlashes([ { [type]: message } ]);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
@import "app/legacy/_grid";
|
||||
|
||||
@import "app/vars";
|
||||
@import "app/data";
|
||||
@import "app/mixins";
|
||||
@import "app/base";
|
||||
@import "app/userlike";
|
||||
|
@ -26,11 +27,11 @@
|
|||
@import "app/modules/build-header";
|
||||
@import "app/modules/avatar";
|
||||
@import "app/modules/popup";
|
||||
|
||||
@import "app/components/sync-button";
|
||||
@import "app/components/loading-indicator";
|
||||
@import "app/components/build-tile";
|
||||
@import "app/components/status-icon";
|
||||
@import "app/modules/lastbuild";
|
||||
@import "app/modules/sync-button";
|
||||
@import "app/modules/loading-indicator";
|
||||
@import "app/modules/build-tile";
|
||||
@import "app/modules/status-icon";
|
||||
|
||||
@import "app/animation/tractor";
|
||||
|
||||
|
|
|
@ -18,6 +18,9 @@ body
|
|||
line-height: 1.45
|
||||
font-family: $font-family-sans-serif
|
||||
|
||||
h1, h2, h3, h4, h5, h6
|
||||
font-weight: $font-weight-normal
|
||||
|
||||
img
|
||||
max-width: 100%
|
||||
height: auto
|
||||
|
@ -63,9 +66,8 @@ a
|
|||
text-decoration: underline
|
||||
|
||||
.small-title
|
||||
font-size: 20px
|
||||
font-size: 18px
|
||||
color: $oxide-blue
|
||||
font-weight: 400
|
||||
|
||||
.blank-list
|
||||
@include resetul
|
||||
|
|
38
app/styles/app/data.scss
Normal file
38
app/styles/app/data.scss
Normal file
|
@ -0,0 +1,38 @@
|
|||
$stateMap: (
|
||||
passed: (
|
||||
color: $turf-green,
|
||||
color-bg: $seed-green
|
||||
),
|
||||
failed: (
|
||||
color: $brick-red,
|
||||
color-bg: $quartz-red
|
||||
),
|
||||
errored: (
|
||||
color: $brick-red,
|
||||
color-bg: $quartz-red
|
||||
),
|
||||
canceled: (
|
||||
color: $cement-grey,
|
||||
color-bg: $pebble-grey
|
||||
),
|
||||
created: (
|
||||
color: $canary-yellow,
|
||||
color-bg: $dozer-yellow
|
||||
),
|
||||
started: (
|
||||
color: $canary-yellow,
|
||||
color-bg: $dozer-yellow
|
||||
),
|
||||
booting: (
|
||||
color: $canary-yellow,
|
||||
color-bg: $dozer-yellow
|
||||
),
|
||||
queued: (
|
||||
color: $canary-yellow,
|
||||
color-bg: $dozer-yellow
|
||||
),
|
||||
received: (
|
||||
color: $canary-yellow,
|
||||
color-bg: $dozer-yellow
|
||||
)
|
||||
);
|
|
@ -3,7 +3,7 @@
|
|||
height: $top-height
|
||||
width: 40px
|
||||
margin-left: 1em
|
||||
line-height: $top-height
|
||||
line-height: 2.5
|
||||
cursor: pointer
|
||||
vertical-align: middle
|
||||
@media #{$medium-up}
|
||||
|
@ -46,7 +46,7 @@
|
|||
font-size: .9em
|
||||
word-wrap: break-word
|
||||
a:not(.icon-close)
|
||||
display: block
|
||||
|
||||
line-height: 1.45
|
||||
text-decoration: underline
|
||||
|
||||
|
@ -57,15 +57,15 @@
|
|||
height: auto
|
||||
|
||||
.icon-close
|
||||
@extend %icon-line-cross
|
||||
position: absolute
|
||||
bottom: 0
|
||||
right: 0
|
||||
display: inline-block
|
||||
width: 1.2em
|
||||
height: 1.2em
|
||||
background:
|
||||
image: inline-image('line-icons/icon-failed.svg')
|
||||
repeat: no-repeat
|
||||
width: 1em
|
||||
height: 1em
|
||||
background-repeat: no-repeat
|
||||
cursor: pointer
|
||||
|
||||
@media #{$medium-up}
|
||||
position: absolute
|
||||
|
@ -73,7 +73,7 @@
|
|||
left: 145px
|
||||
width: 27em
|
||||
height: auto
|
||||
margin-left: -0.7em
|
||||
margin-left: -0.4em
|
||||
.centered &
|
||||
left: 133px
|
||||
&:after
|
||||
|
@ -94,61 +94,33 @@
|
|||
&.announcement
|
||||
background-color: $turf-green
|
||||
|
||||
|
||||
.icon-broadcast
|
||||
display: inline-block
|
||||
width: 1.3em
|
||||
height: 2em
|
||||
width: 16px
|
||||
height: 16px
|
||||
vertical-align: middle
|
||||
svg
|
||||
overflow: visible
|
||||
.tower-path
|
||||
fill: #AEAEAE
|
||||
.radio-wave--right,
|
||||
.radio-wave--left
|
||||
display: none
|
||||
.path
|
||||
stroke: $cement-grey
|
||||
fill: none
|
||||
&:hover,
|
||||
&.is-open
|
||||
.tower-path
|
||||
fill: #818181
|
||||
.path
|
||||
stroke: $asphalt-grey
|
||||
|
||||
&.warning
|
||||
.tower-path
|
||||
fill: #DB4141
|
||||
.path
|
||||
stroke: $brick-red
|
||||
&:hover,
|
||||
&.is-open
|
||||
.tower-path
|
||||
fill: #BA1717
|
||||
.path
|
||||
stroke: $brick-red
|
||||
|
||||
&.announcement
|
||||
.tower-path
|
||||
fill: #3CA85B
|
||||
.path
|
||||
stroke: $turf-green
|
||||
&:hover,
|
||||
&.is-open
|
||||
.tower-path
|
||||
fill: #238C3E
|
||||
|
||||
&.announcement,
|
||||
&.warning
|
||||
.radio-wave--right,
|
||||
.radio-wave--left
|
||||
display: block
|
||||
|
||||
.radio-wave--right
|
||||
.tower-path
|
||||
transform-origin: left center
|
||||
animation: pulsating-right 1.5s linear infinite
|
||||
|
||||
.radio-wave--left
|
||||
.tower-path
|
||||
transform-origin: right center
|
||||
animation: pulsating-left 1.5s linear infinite
|
||||
|
||||
|
||||
// @keyframes pulsating-right
|
||||
// 40%
|
||||
// transform: translateX(1px) scale(1.1)
|
||||
|
||||
//@keyframes pulsating-left
|
||||
// 40%
|
||||
// transform: translateX(-1px) scale(1.1)
|
||||
.path
|
||||
stroke: $turf-green
|
||||
|
|
|
@ -20,33 +20,25 @@
|
|||
list-style: none
|
||||
|
||||
.cache-item
|
||||
border: 1px solid $cream-dark
|
||||
border: 1px solid rgba($cement-grey, 0.2)
|
||||
margin-bottom: 5px
|
||||
font-size: 15px
|
||||
padding: 0 1em
|
||||
.status-icon
|
||||
width: 1.5em
|
||||
height: 1.5em
|
||||
vertical-align: middle
|
||||
.icon-scale
|
||||
width: 1.2em
|
||||
height: 1.2em
|
||||
vertical-align: middle
|
||||
margin-right: .3em
|
||||
&:hover,
|
||||
&:active
|
||||
background-color: #F5F5F5
|
||||
background-color: $pebble-grey
|
||||
|
||||
@media #{$medium-up}
|
||||
display: flex
|
||||
justify-content: space-between
|
||||
flex-flow: row wrap
|
||||
flex-flow: row nowrap
|
||||
align-items: center
|
||||
padding: .3em 0
|
||||
white-space: nowrap
|
||||
.row-item:first-of-type
|
||||
flex: 1 0 30%
|
||||
padding-left: 1em
|
||||
overflow: hidden
|
||||
.row-item:nth-of-type(2)
|
||||
flex: 1 0 30%
|
||||
.row-item:nth-of-type(3)
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
list-style: none
|
||||
padding: 0
|
||||
|
||||
.dashboard .centered
|
||||
@media #{$small-only}
|
||||
padding: 0 1em
|
||||
|
||||
.dashboard-header
|
||||
width: 100%
|
||||
|
@ -26,3 +29,83 @@
|
|||
padding: 2rem 0
|
||||
font-size: 20px
|
||||
color: $cement-grey
|
||||
|
||||
.dash-star
|
||||
&:hover,
|
||||
&:active
|
||||
svg path
|
||||
stroke-width: 2px
|
||||
|
||||
&.is-starred
|
||||
svg path
|
||||
stroke: $dozer-yellow
|
||||
fill: $canary-yellow
|
||||
|
||||
.dash-header
|
||||
order: 2
|
||||
flex: 0 0 20%
|
||||
|
||||
.dash-head
|
||||
flex: 0 0 2%
|
||||
display: flex
|
||||
padding: 0 1em
|
||||
margin-bottom: 1em
|
||||
justify-content: space-between
|
||||
align-items: flex-end
|
||||
@media #{$medium-up}
|
||||
flex: 0 0 3em
|
||||
display: block
|
||||
margin-bottom: 0
|
||||
height: 55px
|
||||
border-right: 1px solid rgba($asphalt-grey, .2)
|
||||
|
||||
.dash-body
|
||||
flex-grow: 1
|
||||
position: relative
|
||||
|
||||
@media #{$medium-up}
|
||||
padding: 0 1.5em 0
|
||||
|
||||
.dash-aside
|
||||
@media #{$medium-up}
|
||||
position: absolute
|
||||
width: 100%
|
||||
bottom: 0
|
||||
overflow: hidden
|
||||
|
||||
.dash-main
|
||||
@media #{$small-only}
|
||||
padding: 0 1em
|
||||
@media #{$medium-up}
|
||||
display: flex
|
||||
flex-flow: row wrap
|
||||
align-items: center
|
||||
justify-content: space-between
|
||||
height: 80px
|
||||
|
||||
.dash-default
|
||||
order: 3
|
||||
flex: 0 0 20%
|
||||
|
||||
@media #{$small-only}
|
||||
margin-top: 2em
|
||||
|
||||
.dash-menu
|
||||
order: 5
|
||||
flex: 0 0 3%
|
||||
|
||||
.dash-last-build
|
||||
display: flex
|
||||
order: 4
|
||||
flex: 0 0 55%
|
||||
flex-flow: row wrap
|
||||
justify-content: space-between
|
||||
|
||||
@media #{$small-only}
|
||||
margin-top: 2em
|
||||
@media #{$medium-up}
|
||||
align-items: center
|
||||
padding-right: 3em
|
||||
|
||||
> div
|
||||
flex: 0 0 33%
|
||||
|
|
|
@ -23,15 +23,15 @@
|
|||
.jobs-item
|
||||
border: 1px solid $cream-dark
|
||||
margin-bottom: 5px
|
||||
@include colorJobs($turf-green, 'passed', 6px, $seed-green)
|
||||
@include colorJobs($brick-red, 'failed', 6px, $quartz-red)
|
||||
@include colorJobs($brick-red, 'errored', 6px, $quartz-red)
|
||||
@include colorJobs($cement-grey, 'canceled', 6px, $pebble-grey)
|
||||
@include colorJobs($canary-yellow, 'started', 6px, $haze-yellow, true)
|
||||
@include colorJobs($canary-yellow, 'queued', 6px, $haze-yellow, true)
|
||||
@include colorJobs($canary-yellow, 'booting', 6px, $haze-yellow, true)
|
||||
@include colorJobs($canary-yellow, 'received', 6px, $haze-yellow, true)
|
||||
@include colorJobs($canary-yellow, 'created', 6px, $haze-yellow, true)
|
||||
@include colorJobs($turf-green, 'passed', 3px, $seed-green)
|
||||
@include colorJobs($brick-red, 'failed', 3px, $quartz-red)
|
||||
@include colorJobs($brick-red, 'errored', 3px, $quartz-red)
|
||||
@include colorJobs($cement-grey, 'canceled', 3px, $pebble-grey)
|
||||
@include colorJobs($canary-yellow, 'started', 3px, $haze-yellow, true)
|
||||
@include colorJobs($canary-yellow, 'queued', 3px, $haze-yellow, true)
|
||||
@include colorJobs($canary-yellow, 'booting', 3px, $haze-yellow, true)
|
||||
@include colorJobs($canary-yellow, 'received', 3px, $haze-yellow, true)
|
||||
@include colorJobs($canary-yellow, 'created', 3px, $haze-yellow, true)
|
||||
|
||||
@include colorFadeOut('passed', $seed-green)
|
||||
@include colorFadeOut('failed', $quartz-red)
|
||||
|
@ -52,7 +52,6 @@
|
|||
justify-content: space-between
|
||||
align-items: center
|
||||
height: 34px
|
||||
padding-left: 0.5em
|
||||
|
||||
.section-title
|
||||
font-size: 16px
|
||||
|
@ -65,40 +64,21 @@
|
|||
@media #{$medium-up}
|
||||
flex: 0 0 2em
|
||||
|
||||
&.started,
|
||||
&.booting,
|
||||
&.received,
|
||||
&.created
|
||||
line-height: 3
|
||||
.icon
|
||||
width: 24px
|
||||
height: 24px
|
||||
vertical-align: middle
|
||||
|
||||
.job-number
|
||||
display: inline-block
|
||||
@media #{$medium-up}
|
||||
flex: 0 0 7em
|
||||
padding-right: 1em
|
||||
border-right: 1px solid $cream-dark
|
||||
.icon-hash
|
||||
width: 20px
|
||||
height: 20px
|
||||
vertical-align: middle
|
||||
@extend %icon
|
||||
@extend %icon-line-hash
|
||||
|
||||
.job-os
|
||||
position: relative
|
||||
pointer-events: none
|
||||
.icon
|
||||
width: 16px
|
||||
width: 18px
|
||||
height: 20px
|
||||
vertical-align: middle
|
||||
padding-left: 1.5em
|
||||
background:
|
||||
size: auto 18px
|
||||
repeat: no-repeat
|
||||
@media #{$medium-up}
|
||||
flex: 0 0 4em
|
||||
text-align: center
|
||||
|
@ -127,11 +107,8 @@
|
|||
@include fadeOut(right, -90deg, white)
|
||||
|
||||
.icon-lang
|
||||
width: 16px
|
||||
height: 13px
|
||||
margin-right: .3em
|
||||
vertical-align: middle
|
||||
@extend %icon
|
||||
@extend .icon
|
||||
@extend %icon-line-language
|
||||
|
||||
.job-env
|
||||
|
@ -149,7 +126,6 @@
|
|||
width: 14px
|
||||
height: 14px
|
||||
margin-right: .3em
|
||||
vertical-align: middle
|
||||
@extend %icon
|
||||
@extend %icon-line-environment
|
||||
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
padding: 0.1em 0.5em 0.1em 1.5em
|
||||
cursor: pointer
|
||||
background:
|
||||
color: #777777
|
||||
color: $cement-grey
|
||||
repeat: no-repeat
|
||||
size: auto 12px
|
||||
position: 6px 4px
|
||||
position: 6px 5px
|
||||
border-radius: 2px
|
||||
color: $pebble-grey
|
||||
@extend %icon-arrow-down
|
||||
|
|
|
@ -15,10 +15,6 @@
|
|||
.owner-handle
|
||||
margin: 0
|
||||
font-size: $font-size-ml
|
||||
.icon
|
||||
width: 1.1em
|
||||
height: 1.2em
|
||||
vertical-align: middle
|
||||
a:hover
|
||||
text-decoration: underline
|
||||
img
|
||||
|
|
|
@ -133,9 +133,6 @@ p.profile-user-last
|
|||
display: inline-block
|
||||
padding: .2em .2em .2em .5em
|
||||
height: 28px
|
||||
.icon
|
||||
width: 14px
|
||||
height: 14px
|
||||
|
||||
.profile-hooklist .sync-spinner
|
||||
display: inline !important
|
||||
|
@ -219,23 +216,23 @@ p.profile-user-last
|
|||
.icon-eye
|
||||
vertical-align: middle
|
||||
path
|
||||
fill: #B6B7B9
|
||||
fill: $cement-grey
|
||||
circle
|
||||
stroke: #B6B7B9
|
||||
stroke: $cement-grey
|
||||
fill: #fff
|
||||
&:hover
|
||||
path
|
||||
fill: #666666
|
||||
fill: $asphalt-grey
|
||||
circle
|
||||
stroke: #666666
|
||||
stroke: $asphalt-grey
|
||||
fill: #fff
|
||||
&.is-visible
|
||||
.icon-eye
|
||||
circle
|
||||
fill: #B6B7B9
|
||||
fill: $cement-grey
|
||||
&:hover
|
||||
circle
|
||||
fill: #666666
|
||||
fill: $asphalt-grey
|
||||
|
||||
#unadministerable-hooks
|
||||
p
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
display: flex
|
||||
flex-flow: row wrap
|
||||
align-items: baseline
|
||||
padding-left: 0.4em
|
||||
|
||||
.row-branch
|
||||
flex: 1 0 18%
|
||||
|
|
|
@ -29,13 +29,6 @@
|
|||
font-weight: $font-weight-bold
|
||||
margin-right: .5em
|
||||
|
||||
.status-icon
|
||||
width: 1.3em
|
||||
height: 1.3em
|
||||
vertical-align: middle
|
||||
&.api
|
||||
width: 1.2em !important
|
||||
|
||||
a:hover,
|
||||
a:active
|
||||
text-decoration: underline
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
|
||||
.settings
|
||||
padding-top: .8em
|
||||
|
||||
.settings-section
|
||||
padding: 0 0 1em
|
||||
margin-bottom: 3em
|
||||
border-bottom: 2px solid #f2f3ef
|
||||
border-bottom: 2px solid $pebble-grey
|
||||
&:last-of-type
|
||||
border-bottom: none
|
||||
.small-title
|
||||
|
@ -53,10 +52,8 @@
|
|||
box-shadow: none
|
||||
|
||||
%settings-row
|
||||
border-radius: 4px
|
||||
background-color: #F6F5F5
|
||||
@media #{$medium-up}
|
||||
height: 36px
|
||||
border-radius: 2px
|
||||
background-color: $pebble-grey
|
||||
|
||||
.settings-envvar
|
||||
@extend %settings-row
|
||||
|
@ -79,10 +76,10 @@
|
|||
vertical-align: middle
|
||||
overflow: hidden
|
||||
white-space: nowrap
|
||||
color: #8e8f8e
|
||||
color: $asphalt-grey
|
||||
&:after
|
||||
content: ""
|
||||
@include fadeOut(right, -90deg, #F6F5F5)
|
||||
@include fadeOut(right, -90deg, $pebble-grey)
|
||||
|
||||
.ssh-key-name
|
||||
@extend %settings-name-section
|
||||
|
@ -104,7 +101,7 @@
|
|||
display: inline-block
|
||||
vertical-align: middle
|
||||
overflow: hidden
|
||||
color: #8e8f8e
|
||||
color: $asphalt-grey
|
||||
|
||||
.ssh-key-value
|
||||
@extend %settings-value-section
|
||||
|
@ -123,16 +120,16 @@
|
|||
input
|
||||
display: inline-block
|
||||
width: 100%
|
||||
padding: 0.6em 0.5em 0.7em 1.1em
|
||||
border-radius: 4px
|
||||
padding: 0.6em 0.5em 0.7em 2.5em
|
||||
border-radius: 2px
|
||||
border: none
|
||||
background-color: #eeedec
|
||||
color: #8e8f8e
|
||||
@extend .icon-lock
|
||||
background-color: lighten($cement-grey, 20)
|
||||
color: $asphalt-grey
|
||||
@extend %icon-line-lock
|
||||
background:
|
||||
size: 14px
|
||||
size: 16px
|
||||
repeat: no-repeat
|
||||
position: 0.8em 0.7em
|
||||
position: 0.5em 0.5em
|
||||
.is-public &
|
||||
input
|
||||
background-image: none;
|
||||
|
@ -146,12 +143,6 @@
|
|||
width: 24%
|
||||
vertical-align: middle
|
||||
text-align: center
|
||||
.icon-delete
|
||||
@extend %icon
|
||||
@extend .icon-delete
|
||||
width: 1.1em
|
||||
height: 1.6em
|
||||
background-position: 0 2px
|
||||
&:hover
|
||||
.icon-delete
|
||||
@extend .icon-delete-hover
|
||||
|
@ -173,11 +164,7 @@
|
|||
.icon-delete
|
||||
margin: .2em auto 0
|
||||
.icon-delete-disabled
|
||||
@extend %icon
|
||||
@extend .icon
|
||||
@extend .icon-delete-disabled
|
||||
display: block
|
||||
width: 1.1em
|
||||
height: 1.4em
|
||||
margin: .2em auto 0
|
||||
|
||||
|
||||
|
|
|
@ -46,10 +46,15 @@
|
|||
width: 22%
|
||||
a:hover
|
||||
text-decoration: underline
|
||||
.icon
|
||||
width: 1.3em
|
||||
height: 1.4em
|
||||
vertical-align: middle
|
||||
|
||||
.icon-clock,
|
||||
.icon-calendar,
|
||||
.icon-hash
|
||||
width: 14px
|
||||
height: 14px
|
||||
.status-icon
|
||||
width: 12px
|
||||
height: 16px
|
||||
|
||||
.tabnav--sidebar
|
||||
font-size: 14px
|
||||
|
@ -76,6 +81,7 @@
|
|||
@media (min-width: #{lower-bound($large-range)})
|
||||
ul
|
||||
height: 2em
|
||||
margin-bottom: -5px
|
||||
@media (max-width: #{lower-bound($large-range)})
|
||||
li
|
||||
display: block !important
|
||||
|
|
|
@ -36,15 +36,6 @@
|
|||
bottom: 0
|
||||
margin: auto
|
||||
|
||||
%inline-block
|
||||
display: inline-block
|
||||
|
||||
%section-title
|
||||
font-size: $font-size-sm
|
||||
color: $cement-grey
|
||||
font-weight: 400
|
||||
|
||||
|
||||
=linkStyle
|
||||
a
|
||||
text-decoration: none
|
||||
|
@ -67,9 +58,34 @@
|
|||
|
||||
// @todo simplyfiy coloring mixins
|
||||
=colorStatusIcons($color, $status)
|
||||
.status-icon.#{$status}
|
||||
.status-icon.#{$status},
|
||||
.request-icon.#{$status}
|
||||
svg *
|
||||
fill: $color
|
||||
stroke: $color
|
||||
|
||||
=rowBorder
|
||||
border: 1px solid lighten($cement-grey, 20)
|
||||
border-radius: 2px
|
||||
|
||||
=rowColor($status, $color, $color-bg: $color)
|
||||
&.#{$status}
|
||||
.color
|
||||
color: $color
|
||||
a
|
||||
color: $color
|
||||
text-decoration: none
|
||||
&:hover,
|
||||
&:active
|
||||
border-bottom: 1px solid $color
|
||||
.status-icon g > *,
|
||||
.request-icon g > *
|
||||
stroke: $color-bg
|
||||
.background
|
||||
background-color: $color-bg
|
||||
|
||||
=rowBg($width, $status, $color)
|
||||
&.#{$status}
|
||||
background: linear-gradient(to right, $color 0%, $color $width, white $width, white 100%) no-repeat
|
||||
|
||||
=statusColors($color, $status, $width, $color2: $color, $building:false)
|
||||
&.#{$status}
|
||||
|
@ -80,9 +96,9 @@
|
|||
color: $color
|
||||
&:hover
|
||||
border-color: $color
|
||||
.row-name .status-icon g > *,
|
||||
.row-request .icon-request g > *
|
||||
fill: $color
|
||||
.status-icon g > *,
|
||||
.request-icon g > *
|
||||
stroke: $color
|
||||
|
||||
.build a,
|
||||
.repo-title a
|
||||
|
@ -119,4 +135,7 @@
|
|||
@include colorStatusIcons($color, $status)
|
||||
&:hover,
|
||||
&:active
|
||||
@include colorBg($bg-start, $status, $width, $hover)
|
||||
background-color: $hover
|
||||
border-left: $width solid $color
|
||||
a
|
||||
margin-left: - $width + 1px
|
||||
|
|
|
@ -42,18 +42,11 @@
|
|||
margin-left: 1em
|
||||
top: -3px
|
||||
|
||||
.commit-author
|
||||
.avatar
|
||||
width: 20px
|
||||
height: 20px
|
||||
.pseudo-avatar:after
|
||||
font-size: .7em
|
||||
line-height: 1.7
|
||||
|
||||
.row-committer
|
||||
.avatar
|
||||
.avatar--small
|
||||
@extend .avatar
|
||||
width: 18px
|
||||
height: 18px
|
||||
margin-right: .3rem
|
||||
.pseudo-avatar:after
|
||||
font-size: .7em
|
||||
line-height: 1.6
|
||||
font-size: 9px
|
||||
line-height: 16px
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
border: 1px solid $cream-dark
|
||||
clear: both
|
||||
|
||||
@include colorRows($turf-green, 'passed', 12px)
|
||||
@include colorRows($brick-red, 'failed', 12px)
|
||||
@include colorRows($brick-red, 'errored', 12px)
|
||||
@include colorRows($cement-grey, 'canceled', 12px)
|
||||
@include colorRows($canary-yellow, 'started', 12px, true, $dozer-yellow)
|
||||
@include colorRows($canary-yellow, 'queued', 12px, true, $dozer-yellow)
|
||||
@include colorRows($canary-yellow, 'booting', 12px, true, $dozer-yellow)
|
||||
@include colorRows($canary-yellow, 'received', 12px, true, $dozer-yellow)
|
||||
@include colorRows($canary-yellow, 'created', 12px, true, $dozer-yellow)
|
||||
@include colorRows($turf-green, 'passed', 10px)
|
||||
@include colorRows($brick-red, 'failed', 10px)
|
||||
@include colorRows($brick-red, 'errored', 10px)
|
||||
@include colorRows($cement-grey, 'canceled', 10px)
|
||||
@include colorRows($canary-yellow, 'started', 10px, true, $dozer-yellow)
|
||||
@include colorRows($canary-yellow, 'queued', 10px, true, $dozer-yellow)
|
||||
@include colorRows($canary-yellow, 'booting', 10px, true, $dozer-yellow)
|
||||
@include colorRows($canary-yellow, 'received', 10px, true, $dozer-yellow)
|
||||
@include colorRows($canary-yellow, 'created', 10px, true, $dozer-yellow)
|
||||
|
||||
@media #{$medium-up}
|
||||
display: flex
|
||||
|
@ -30,7 +30,7 @@
|
|||
font-size: 16px
|
||||
@media #{$medium-up}
|
||||
flex: 1 1 65%
|
||||
padding-left: 2.5rem
|
||||
padding-left: 2.2rem
|
||||
|
||||
.build-tools
|
||||
padding: 1rem 0 1rem 3rem
|
||||
|
@ -52,14 +52,10 @@
|
|||
font-weight: $font-weight-normal
|
||||
font-size: 16px
|
||||
|
||||
.status-icon
|
||||
width: 1.7rem
|
||||
height: 1.8rem
|
||||
vertical-align: middle
|
||||
|
||||
.build-title
|
||||
.status-icon
|
||||
margin-left: -2rem
|
||||
margin-left: -1.9rem
|
||||
margin-right: 0.7rem
|
||||
|
||||
.commit-info
|
||||
font-size: 15px
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
@mixin buildTileColors($color, $bg, $status, $extra-hover: $color)
|
||||
> .#{$status}
|
||||
background-color: $bg
|
||||
.icon-request g > *,
|
||||
.status-icon g > *
|
||||
fill: $color
|
||||
stroke: $color
|
||||
&:hover
|
||||
background-color: $extra-hover
|
||||
.status-icon.#{$status} g > *
|
||||
fill: white
|
||||
.status-icon g > *
|
||||
stroke: white
|
||||
.status-icon .circle
|
||||
border-color: white
|
||||
border-width: 2px
|
||||
|
@ -33,8 +32,8 @@
|
|||
right: 0
|
||||
bottom: 0
|
||||
left: 0
|
||||
width: 2.5rem !important
|
||||
height: 2.5rem !important
|
||||
width: 18px
|
||||
height: 18px
|
||||
margin: auto !important
|
||||
background-color: transparent
|
||||
transition: top 200ms ease
|
|
@ -124,8 +124,9 @@ $button-border-color: #d4d4d4
|
|||
overflow: hidden
|
||||
width: 28px
|
||||
height: 28px
|
||||
border: solid 1px #E4E6E6
|
||||
border: solid 1px rgba($cement-grey, 0.2)
|
||||
border-radius: 50%
|
||||
cursor: pointer
|
||||
&:hover
|
||||
border-color: $oxide-blue
|
||||
|
||||
|
@ -140,8 +141,9 @@ $button-border-color: #d4d4d4
|
|||
@extend %circle-button
|
||||
@extend %icon-line-cross
|
||||
background:
|
||||
position: 6px 6px
|
||||
repeat: no-repeat
|
||||
size: auto 100%
|
||||
size: 14px 14px
|
||||
&:hover
|
||||
@extend %icon-line-cross-teal
|
||||
|
||||
|
@ -149,9 +151,9 @@ $button-border-color: #d4d4d4
|
|||
@extend %circle-button
|
||||
@extend %icon-line-trigger
|
||||
background:
|
||||
position: 2px 1px
|
||||
position: 6px 5px
|
||||
repeat: no-repeat
|
||||
size: 24px 24px
|
||||
size: 16px 16px
|
||||
&:hover
|
||||
@extend %icon-line-trigger-teal
|
||||
|
||||
|
@ -213,4 +215,4 @@ $button-border-color: #d4d4d4
|
|||
position: 4px 1px
|
||||
cursor: pointer
|
||||
@extend .button--grey
|
||||
@extend %icon-line-eye
|
||||
@extend %icon-line-eye-white
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
.option-button
|
||||
position: relative
|
||||
width: 17em
|
||||
@media #{$small-only}
|
||||
&.display
|
||||
.option-dropdown
|
||||
display: block
|
||||
@media #{$medium-up}
|
||||
&:hover
|
||||
.option-dropdown
|
||||
display: block
|
||||
|
@ -13,8 +8,18 @@
|
|||
color: $oxide-blue
|
||||
border-color: $oxide-blue
|
||||
.option-tofu
|
||||
@extend %icon-line-tofu-teal
|
||||
border-color: $oxide-blue
|
||||
background-image: inline-image('/line-icons/icon-tofuburger-teal.svg')
|
||||
.option-arrow
|
||||
@extend %icon-line-arrowtabs-teal
|
||||
border-color: $oxide-blue
|
||||
transform: rotate(-90deg)
|
||||
border-bottom: none
|
||||
border-top: 1px solid $oxide-blue
|
||||
@media #{$small-only}
|
||||
&.display
|
||||
.option-dropdown
|
||||
display: block
|
||||
|
||||
$dropdown-button-height: 30px
|
||||
$dropdown-button-margin: -9px
|
||||
|
@ -45,19 +50,29 @@ $dropdown-button-margin: -9px
|
|||
border-radius: 50%
|
||||
overflow: hidden
|
||||
|
||||
.option-tofu
|
||||
.option-tofu,
|
||||
.option-arrow
|
||||
width: 2em
|
||||
height: 2em
|
||||
display: inline-block
|
||||
vertical-align: top
|
||||
background:
|
||||
image: inline-image('/line-icons/icon-tofuburger.svg')
|
||||
repeat: no-repeat
|
||||
size: 20px
|
||||
position: 50%
|
||||
|
||||
.option-tofu
|
||||
@extend %icon-line-tofu
|
||||
background-size: 20px
|
||||
@media #{$medium-up}
|
||||
border-left: 1px solid $pebble-grey
|
||||
|
||||
.option-arrow
|
||||
@extend %icon-line-arrowtabs
|
||||
transform: rotate(90deg)
|
||||
background-size: 14px
|
||||
@media #{$medium-up}
|
||||
border-bottom: 1px solid $pebble-grey
|
||||
|
||||
.option-dropdown
|
||||
display: none
|
||||
position: absolute
|
||||
|
@ -78,7 +93,6 @@ $dropdown-button-margin: -9px
|
|||
color: white
|
||||
background-color: $oxide-blue
|
||||
|
||||
|
||||
.option-search
|
||||
input[type="text"]
|
||||
display: block
|
||||
|
@ -87,7 +101,6 @@ $dropdown-button-margin: -9px
|
|||
border-bottom: 1px solid $oxide-blue
|
||||
border-radius: 0
|
||||
|
||||
|
||||
.option-list
|
||||
list-style: none
|
||||
padding: 0
|
||||
|
@ -101,3 +114,90 @@ $dropdown-button-margin: -9px
|
|||
vertical-align: top
|
||||
margin-right: .3em
|
||||
border-radius: 50%
|
||||
|
||||
|
||||
|
||||
.dropup
|
||||
&.is-open
|
||||
.dropup-list
|
||||
display: block
|
||||
.dropup-tofu
|
||||
@extend %icon-line-tofu-teal
|
||||
outline: none
|
||||
|
||||
.dropup-tofu
|
||||
@extend %icon-line-tofu
|
||||
background:
|
||||
color: transparent
|
||||
size: 100%
|
||||
repeat: no-repeat
|
||||
position: 0 5px
|
||||
width: 2.5em
|
||||
height: 2.5em
|
||||
border: none
|
||||
text-indent: 999%
|
||||
overflow: hidden
|
||||
white-space: nowrap
|
||||
cursor: pointer
|
||||
display: none
|
||||
@media #{$medium-up}
|
||||
display: inline-block
|
||||
&:hover,
|
||||
&:active
|
||||
@extend %icon-line-tofu-teal
|
||||
outline: none
|
||||
|
||||
.dropup-list
|
||||
list-style: none
|
||||
padding: 0
|
||||
margin: 2em 0 0
|
||||
background-color: white
|
||||
text-align: center
|
||||
|
||||
li
|
||||
display: inline-block
|
||||
a
|
||||
display: inline-block
|
||||
width: 100%
|
||||
padding: 0.5em 1em
|
||||
background-color: white
|
||||
[class^="icon-"]
|
||||
margin-right: .3rem
|
||||
&:hover,
|
||||
&:active
|
||||
background: $oxide-blue
|
||||
color: white
|
||||
.icon-trigger
|
||||
@extend %icon-line-trigger-white
|
||||
.icon-deactivate
|
||||
@extend %icon-line-cross-white
|
||||
border-color: white
|
||||
.icon-settings
|
||||
@extend %icon-line-cog-white
|
||||
|
||||
@media #{$medium-up}
|
||||
position: absolute
|
||||
right: 0
|
||||
top: -7em
|
||||
margin: 0
|
||||
background-color: white
|
||||
border: 1px solid $oxide-blue
|
||||
border-radius: 2px
|
||||
display: none
|
||||
z-index: 2
|
||||
text-align: left
|
||||
li
|
||||
display: block
|
||||
&:last-of-type
|
||||
&:after
|
||||
content: ""
|
||||
display: block
|
||||
width: 1.6em
|
||||
height: 1.6em
|
||||
border: 1px solid $oxide-blue
|
||||
background: white
|
||||
transform: rotate(45deg)
|
||||
position: absolute
|
||||
bottom: -0.7em
|
||||
right: 1.7em
|
||||
z-index: -1
|
||||
|
|
|
@ -32,20 +32,14 @@
|
|||
|
||||
.success,
|
||||
.notice
|
||||
color: #3ba85b
|
||||
background-color: #deebdd
|
||||
color: $turf-green
|
||||
background-color: $seed-green
|
||||
.close
|
||||
@extend .icon--dismiss-green
|
||||
|
||||
.broadcast
|
||||
color: #D8C500
|
||||
background-color: #FFFBD7
|
||||
.close
|
||||
@extend .icon--dismiss-yellow
|
||||
|
||||
.error
|
||||
color: #de4248
|
||||
background-color: #f1b6ad
|
||||
color: $brick-red
|
||||
background-color: $quartz-red
|
||||
.close
|
||||
@extend .icon--dismiss-red
|
||||
|
||||
|
|
|
@ -6,34 +6,28 @@
|
|||
repeat: no-repeat
|
||||
|
||||
.icon
|
||||
width: 1em
|
||||
height: 1em
|
||||
width: 15px
|
||||
height: 15px
|
||||
@extend %icon
|
||||
|
||||
%icon-download-log
|
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 12.4"><style>.st0{fill:%23f1f1f1;}</style><g id="downloadlog"><path class="st0" d="M5.1 11.3c-.4 0-.7-.3-.7-.7V.6c0-.3.3-.6.7-.6.4 0 .7.3.7.7v10c-.1.4-.4.6-.7.6z"/><path class="st0" d="M5.1 12.4c-.2 0-.3-.1-.5-.2L.2 7.8c-.3-.3-.3-.7 0-.9s.7-.3.9 0L5 10.8l4-3.9c.3-.3.7-.3.9 0s.3.7 0 .9l-4.4 4.4c-.1.1-.3.2-.4.2zM14.1 2.1H7.9c-.4 0-.7-.3-.7-.7s.3-.7.7-.7h6.2c.4 0 .7.3.7.7s-.3.7-.7.7zM14.3 5.3H7.9c-.4 0-.6-.3-.6-.7 0-.4.2-.6.6-.6h6.4c.4 0 .7.2.7.6 0 .4-.3.7-.7.7zM14.3 8.5h-2.4c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7h2.4c.4 0 .7.3.7.7 0 .4-.3.7-.7.7zM13 11.6H9.2c-.4 0-.7-.3-.7-.7s.3-.7.7-.7H13c.4 0 .7.3.7.7s-.4.7-.7.7z"/></g></svg>')
|
||||
background-image: inline-image('stroke-icons/icon-downloadlogs.svg')
|
||||
.icon-download-log
|
||||
@extend %icon
|
||||
@extend .icon
|
||||
@extend %icon-download-log
|
||||
width: 1.5em
|
||||
height: 1.1em
|
||||
vertical-align: middle
|
||||
background-size: auto 14px
|
||||
background-position: 0 -1px
|
||||
%icon-remove-log
|
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 10.9"><style>.st0{fill:%23f1f1f1;}</style><g id="removelog"><path class="st0" d="M12.3 1.8h1.9c.3 0 .6-.3.6-.6s-.3-.6-.6-.6h-1.9c-.3 0-.6.3-.6.6 0 .4.3.6.6.6zM9.7 3.5c-.3 0-.6.3-.6.6s.3.6.6.6h4.8c.3 0 .6-.3.6-.6s-.3-.6-.6-.6H9.7zM14.4 6.3H9.7c-.3 0-.6.3-.6.6s.3.6.6.6h4.7c.3 0 .6-.3.6-.6 0-.4-.3-.6-.6-.6zM13.2 9.1h-.7c-.3 0-.6.3-.6.6s.3.6.6.6h.7c.3 0 .6-.3.6-.6 0-.4-.3-.6-.6-.6z"/><path class="st0" d="M6.3 5.4L10.7 1c.2-.2.2-.6 0-.9-.2-.2-.6-.2-.9 0L5.4 4.5 1.1.2C.9 0 .5 0 .2.2s-.2.6 0 .9l4.4 4.4L.2 9.8c-.2.2-.2.6 0 .9.1.1.3.2.4.2s.3-.1.4-.2l4.4-4.4 4.4 4.4c.1.1.3.2.4.2.2 0 .3-.1.4-.2.2-.2.2-.6 0-.9L6.3 5.4z"/></g></svg>')
|
||||
background-image: inline-image('stroke-icons/icon-deletelogs.svg')
|
||||
.icon-remove-log
|
||||
@extend %icon
|
||||
@extend .icon
|
||||
@extend %icon-remove-log
|
||||
width: 1.5em
|
||||
height: 1.1em
|
||||
vertical-align: middle
|
||||
background-size: auto 14px
|
||||
background-position: 0 -1px
|
||||
|
||||
%icon-arrow-down
|
||||
background-image: inline-image('line-icons/icon-arrow-down.svg')
|
||||
background-image: inline-image('stroke-icons/icon-arrowdown.svg')
|
||||
|
||||
.icon--search
|
||||
background-image: inline-image('ui/search.svg')
|
||||
background-image: inline-image('stroke-icons/icon-search.svg')
|
||||
|
||||
.icon--dismiss-yellow
|
||||
background-image: inline-image('ui/icon-warning-dismiss.svg')
|
||||
|
@ -45,105 +39,92 @@
|
|||
.icon--dismiss-grey
|
||||
background-image: inline-image('ui/dismiss.svg')
|
||||
|
||||
%icon-hook-on
|
||||
background-image: inline-image('ui/hooks-on.svg')
|
||||
%icon-hook-off
|
||||
background-image: inline-image('ui/hooks-off.svg')
|
||||
|
||||
%icon-line-trashcan
|
||||
background-image: inline-image('line-icons/icon-trash.svg')
|
||||
background-image: inline-image('stroke-icons/icon-trash.svg')
|
||||
%icon-line-trashcan-red
|
||||
background-image: inline-image('line-icons/icon-trash-red.svg')
|
||||
background-image: inline-image('stroke-icons/icon-trash-red.svg')
|
||||
%icon-line-trashcan-disabled
|
||||
background-image: inline-image('line-icons/icon-trash-disabled.svg')
|
||||
background-image: inline-image('stroke-icons/icon-trash-disabled.svg')
|
||||
|
||||
.icon-delete
|
||||
@extend .icon
|
||||
@extend %icon-line-trashcan
|
||||
.icon-delete-hover
|
||||
@extend %icon-line-trashcan-red
|
||||
.icon-delete-disabled
|
||||
@extend %icon-line-trashcan-disabled
|
||||
|
||||
%icon-line-arrowtabs
|
||||
background-image: inline-image('stroke-icons/icon-arrowtabs.svg')
|
||||
%icon-line-arrowtabs-teal
|
||||
background-image: inline-image('stroke-icons/icon-arrowtabs-teal.svg')
|
||||
|
||||
%icon-line-key
|
||||
background-image: inline-image('line-icons/icon-key.svg')
|
||||
background-image: inline-image('stroke-icons/icon-key.svg')
|
||||
.icon-key
|
||||
@extend %icon
|
||||
@extend .icon
|
||||
@extend %icon-line-key
|
||||
width: 20px
|
||||
height: 20px
|
||||
background-position: 0 6px
|
||||
margin-right: .1em
|
||||
margin-right: .3rem
|
||||
|
||||
%icon-line-fingerprint
|
||||
background-image: inline-image('line-icons/icon-fingerprint.svg')
|
||||
background-image: inline-image('stroke-icons/icon-fingerprint.svg')
|
||||
.icon-fingerprint
|
||||
@extend %icon
|
||||
@extend .icon
|
||||
@extend %icon-line-fingerprint
|
||||
width: 20px
|
||||
height: 20px
|
||||
margin-right: .1em
|
||||
margin-right: .3rem
|
||||
|
||||
%icon-line-calendar
|
||||
background-image: inline-image('line-icons/icon-cal.svg')
|
||||
background-image: inline-image('stroke-icons/icon-calendar.svg')
|
||||
.icon-line-calendar,
|
||||
.icon-cal,
|
||||
.icon-calendar
|
||||
@extend %icon
|
||||
@extend .icon
|
||||
@extend %icon-line-calendar
|
||||
width: 20px
|
||||
height: 18px
|
||||
margin-right: .1em
|
||||
background:
|
||||
size: auto 20px
|
||||
position: -1px 0
|
||||
margin-right: .3rem
|
||||
|
||||
%icon-line-clock
|
||||
background-image: inline-image('line-icons/icon-clock.svg')
|
||||
background-image: inline-image('stroke-icons/icon-clock.svg')
|
||||
.icon-clock
|
||||
@extend %icon
|
||||
@extend .icon
|
||||
@extend %icon-line-clock
|
||||
width: 20px
|
||||
height: 20px
|
||||
margin-right: .1em
|
||||
background:
|
||||
size: auto 21px
|
||||
position: -2px 0
|
||||
margin-right: .2rem
|
||||
|
||||
%icon-line-stopwatch
|
||||
background-image: inline-image('line-icons/icon-stopwatch.svg')
|
||||
background-image: inline-image('stroke-icons/icon-stopwatch.svg')
|
||||
.icon-stopwatch
|
||||
@extend %icon
|
||||
@extend %icon-line-stopwatch
|
||||
width: 20px
|
||||
height: 18px
|
||||
margin-right: .1em
|
||||
background-size: auto 18px
|
||||
background-position: 1px 0
|
||||
width: 17px
|
||||
height: 19px
|
||||
margin-right: .2rem
|
||||
|
||||
.icon-line-build
|
||||
@extend %icon
|
||||
background-image: inline-image('line-icons/icon-build.svg')
|
||||
background-image: inline-image('stroke-icons/icon-builds.svg')
|
||||
|
||||
%icon-line-commit
|
||||
background-image: inline-image('line-icons/icon-commit.svg')
|
||||
%icon-line-commit,
|
||||
%icon-github
|
||||
background-image: inline-image('stroke-icons/icon-github.svg')
|
||||
.icon-line-commit
|
||||
@extend %icon
|
||||
@extend %icon-line-commit
|
||||
|
||||
%icon-line-eye
|
||||
background-image:inline-image('line-icons/icon-view.svg')
|
||||
background-image:inline-image('stroke-icons/icon-seemore.svg')
|
||||
%icon-line-eye-white
|
||||
background-image:inline-image('stroke-icons/icon-seemore-white.svg')
|
||||
|
||||
%icon-line-question
|
||||
background-image: inline-image('line-icons/icon-help.svg')
|
||||
background-image: inline-image('stroke-icons/icon-help.svg')
|
||||
%icon-line-question-teal
|
||||
background-image: inline-image('line-icons/icon-help-teal.svg')
|
||||
background-image: inline-image('stroke-icons/icon-help-teal.svg')
|
||||
|
||||
.icon-question
|
||||
width: 1em
|
||||
height: 1em
|
||||
width: 18px
|
||||
height: 18px
|
||||
background:
|
||||
repeat: no-repeat
|
||||
position: 4px 2px
|
||||
position: 3px 3px
|
||||
size: auto 10px
|
||||
display: inline-block
|
||||
border: solid 1px #E4E6E6
|
||||
|
@ -154,68 +135,102 @@
|
|||
@extend %icon-line-question-teal
|
||||
|
||||
%icon-line-hash
|
||||
background-image: inline-image('line-icons/icon-hash.svg')
|
||||
background-image: inline-image('stroke-icons/icon-hash.svg')
|
||||
.icon-hash
|
||||
@extend .icon
|
||||
@extend %icon-line-hash
|
||||
|
||||
%icon-line-linux
|
||||
background-image: inline-image('line-icons/icon-linux.svg')
|
||||
background-image: inline-image('stroke-icons/icon-linux.svg')
|
||||
%icon-line-mac
|
||||
background-image: inline-image('line-icons/icon-mac.svg')
|
||||
background-image: inline-image('stroke-icons/icon-mac.svg')
|
||||
%icon-line-language
|
||||
background-image: inline-image('line-icons/icon-lang.svg')
|
||||
background-image: inline-image('stroke-icons/icon-language.svg')
|
||||
%icon-line-environment
|
||||
background-image: inline-image('line-icons/icon-environment.svg')
|
||||
background-image: inline-image('stroke-icons/icon-environment.svg')
|
||||
|
||||
%icon-line-cog
|
||||
background-image: inline-image('line-icons/icon-settings.svg')
|
||||
background-image: inline-image('stroke-icons/icon-settings.svg')
|
||||
%icon-line-cog-teal
|
||||
background-image: inline-image('line-icons/icon-settings-teal.svg')
|
||||
background-image: inline-image('stroke-icons/icon-settings-teal.svg')
|
||||
%icon-line-cog-white
|
||||
background-image: inline-image('stroke-icons/icon-settings-white.svg')
|
||||
|
||||
%icon-line-tofu
|
||||
background-image: inline-image('stroke-icons/icon-tofuburger.svg')
|
||||
%icon-line-tofu-teal
|
||||
background-image: inline-image('stroke-icons/icon-tofuburger-teal.svg')
|
||||
|
||||
.icon-settings
|
||||
@extend %icon-line-cog
|
||||
width: 1em
|
||||
height: 1em
|
||||
vertical-align: middle
|
||||
display: inline-block
|
||||
background:
|
||||
repeat: no-repeat
|
||||
position: 0 0
|
||||
@extend .icon
|
||||
&:hover
|
||||
@extend %icon-line-cog-teal
|
||||
|
||||
%icon-line-dropdown
|
||||
background-image: inline-image('line-icons/icon-arrow-dropdown.svg')
|
||||
background-image: inline-image('stroke-icons/icon-arrow-dropdown.svg')
|
||||
%icon-line-dropdown-teal
|
||||
background-image: inline-image('line-icons/icon-arrow-dropdown-teal.svg')
|
||||
background-image: inline-image('stroke-icons/icon-arrow-dropdown-teal.svg')
|
||||
|
||||
%icon-line-cross
|
||||
background-image: inline-image('line-icons/icon-failed.svg')
|
||||
background-image: inline-image('stroke-icons/icon-failed.svg')
|
||||
%icon-line-cross-white
|
||||
background-image: inline-image('line-icons/icon-failed-white.svg')
|
||||
background-image: inline-image('stroke-icons/icon-failed-white.svg')
|
||||
%icon-line-cross-teal
|
||||
background-image: inline-image('line-icons/icon-failed-teal.svg')
|
||||
background-image: inline-image('stroke-icons/icon-failed-teal.svg')
|
||||
|
||||
.icon-deactivate
|
||||
@extend .icon
|
||||
@extend %icon-line-cross
|
||||
border: 1px solid $cement-grey
|
||||
border-radius: 50%
|
||||
&:hover,
|
||||
&:active
|
||||
@extend %icon-line-cross-white
|
||||
border-color: white
|
||||
|
||||
%icon-line-trigger
|
||||
background-image: inline-image('line-icons/icon-trigger.svg')
|
||||
background-image: inline-image('stroke-icons/icon-restart.svg')
|
||||
%icon-line-trigger-white
|
||||
background-image: inline-image('line-icons/icon-trigger-white.svg')
|
||||
background-image: inline-image('stroke-icons/icon-restart-white.svg')
|
||||
%icon-line-trigger-teal
|
||||
background-image: inline-image('line-icons/icon-trigger-teal.svg')
|
||||
background-image: inline-image('stroke-icons/icon-restart-teal.svg')
|
||||
|
||||
.icon-trigger
|
||||
@extend .icon
|
||||
@extend %icon-line-trigger
|
||||
&:hover,
|
||||
&:active
|
||||
@extend %icon-line-trigger-white
|
||||
|
||||
%icon-line-lock
|
||||
background-image: inline-image('stroke-icons/icon-private.svg')
|
||||
.icon-lock
|
||||
@extend %icon
|
||||
@extend %icon-line-lock
|
||||
width: 18px
|
||||
height: 18px
|
||||
margin-top: 1em
|
||||
white-space: nowrap
|
||||
text-indent: 999px
|
||||
overflow: hidden
|
||||
|
||||
.icon-star
|
||||
@extend %icon
|
||||
width: 18px
|
||||
height: 18px
|
||||
|
||||
%icon-line-passed
|
||||
background-image: inline-image('stroke-icons/icon-passed.svg')
|
||||
|
||||
%icon-github
|
||||
background-image: inline-image('line-icons/icon-commit.svg')
|
||||
.icon-github
|
||||
display: inline-block
|
||||
width: 1.1em
|
||||
height: 1.1em
|
||||
margin-right: 0.3em
|
||||
vertical-align: middle
|
||||
background:
|
||||
repeat: no-repeat
|
||||
size: 36px 21px
|
||||
position: -9px -3px
|
||||
@extend .icon
|
||||
@extend %icon-github
|
||||
|
||||
%icon-github-circle
|
||||
background-image: inline-image('line-icons/icon-github-outline.svg')
|
||||
background-image: inline-image('stroke-icons/icon-repooctocat.svg')
|
||||
.icon-github-circle
|
||||
display: inline-block
|
||||
width: 1.2em
|
||||
|
@ -226,16 +241,17 @@
|
|||
@extend %icon-github-circle
|
||||
|
||||
%icon-line-flag-teal
|
||||
background-image: inline-image('line-icons/icon-flag.svg')
|
||||
background-image: inline-image('stroke-icons/icon-flag.svg')
|
||||
%icon-line-flag-yellow
|
||||
background-image: inline-image('line-icons/icon-flag-yellow.svg')
|
||||
background-image: inline-image('stroke-icons/icon-flag-yellow.svg')
|
||||
|
||||
%icon-line-scale
|
||||
background-image: inline-image('line-icons/icon-scales.svg')
|
||||
background-image: inline-image('stroke-icons/icon-scales.svg')
|
||||
|
||||
.icon-scale
|
||||
@extend %icon
|
||||
@extend .icon
|
||||
@extend %icon-line-scale
|
||||
margin-right: .3rem
|
||||
|
||||
.icon--plus
|
||||
width: 1.1rem
|
||||
|
|
38
app/styles/app/modules/lastbuild.sass
Normal file
38
app/styles/app/modules/lastbuild.sass
Normal file
|
@ -0,0 +1,38 @@
|
|||
.lastbuilds
|
||||
list-style: none
|
||||
margin: 0
|
||||
padding: 0
|
||||
width: 100%
|
||||
display: flex
|
||||
justify-content: flex-start
|
||||
@media #{$small-only}
|
||||
flex-flow: row wrap
|
||||
margin-top: 1em
|
||||
|
||||
li
|
||||
flex: 0 0 20%
|
||||
height: 30px
|
||||
@each $key, $value in $stateMap
|
||||
&.#{$key}
|
||||
background-color: map-get($value, color)
|
||||
|
||||
@media #{$medium-up}
|
||||
flex: 0 0 10%
|
||||
margin-right: 2px
|
||||
transform: translateY(25px)
|
||||
transition: transform 150ms ease
|
||||
&:hover
|
||||
transform: translateY(0)
|
||||
a
|
||||
display: block
|
||||
width: 100%
|
||||
height: 30%
|
||||
padding-top: 4px
|
||||
color: white
|
||||
text-align: center
|
||||
|
||||
.status-icon
|
||||
svg *
|
||||
stroke: white !important
|
||||
.circle
|
||||
border-color: white !important
|
|
@ -23,12 +23,12 @@
|
|||
.notice--blue
|
||||
padding: 0.3em 0.5em 0.3em
|
||||
margin-bottom: .5em
|
||||
background-color: #d2f5f9
|
||||
color: #40a3ad
|
||||
background-color: $agate-blue
|
||||
color: $oxide-blue
|
||||
border-radius: 2px
|
||||
font-size: 15px
|
||||
a
|
||||
color: #40a3ad
|
||||
color: $oxide-blue
|
||||
text-decoration: underline
|
||||
|
||||
.icon-flag
|
||||
|
@ -36,7 +36,7 @@
|
|||
@extend %icon-line-flag-teal
|
||||
display: inline-block
|
||||
background:
|
||||
color: #40a3ad
|
||||
color: $oxide-blue
|
||||
size: auto 13px
|
||||
position: 6px 4px
|
||||
repeat: no-repeat
|
||||
|
|
|
@ -1,15 +1,12 @@
|
|||
.help
|
||||
display: inline-block
|
||||
@extend %icon-line-question
|
||||
@extend %icon
|
||||
height: 19px
|
||||
width: 16px
|
||||
margin: -4px 0 0 3px
|
||||
vertical-align: middle
|
||||
background:
|
||||
image: inline-image('ui/help.svg')
|
||||
repeat: no-repeat
|
||||
position: 0 1px
|
||||
color: transparent
|
||||
size: 100%
|
||||
cursor: pointer
|
||||
|
||||
.popup
|
||||
|
@ -19,25 +16,23 @@
|
|||
transform: translate(-50%, -50%)
|
||||
height: auto
|
||||
padding: 2em
|
||||
color: #565656
|
||||
color: $asphalt-grey
|
||||
z-index: 99
|
||||
background-color: white
|
||||
border-radius: 2px
|
||||
|
||||
display: none
|
||||
background-color: #fff
|
||||
border: solid 10px #f1f1f1
|
||||
border: solid 10px $pebble-grey
|
||||
|
||||
&:before
|
||||
content: ""
|
||||
|
||||
.close
|
||||
position: absolute
|
||||
display: block
|
||||
right: 5px
|
||||
top: 8px
|
||||
width: 30px
|
||||
height: 30px
|
||||
width: 20px
|
||||
height: 20px
|
||||
text-indent: 999%
|
||||
overflow: hidden
|
||||
white-space: nowrap
|
||||
|
|
|
@ -11,6 +11,46 @@
|
|||
vertical-align: middle
|
||||
line-height: 1.5
|
||||
|
||||
.rows
|
||||
+rowBorder
|
||||
display: flex
|
||||
flex-flow: column wrap
|
||||
margin-bottom: 1rem
|
||||
@each $key, $value in $stateMap
|
||||
+rowColor(#{$key}, map-get($value, color))
|
||||
|
||||
@media #{$medium-up}
|
||||
position: relative
|
||||
flex-flow: row nowrap
|
||||
justify-content: space-between
|
||||
align-items: center
|
||||
|
||||
.label
|
||||
margin: 0
|
||||
font-size: 10px
|
||||
color: $cement-grey
|
||||
text-transform: uppercase
|
||||
font-weight: 600
|
||||
|
||||
.row-label,
|
||||
.row-label a
|
||||
font-size: $font-size-m
|
||||
color: $cement-grey
|
||||
|
||||
.row-label
|
||||
margin: 0
|
||||
a:hover,
|
||||
a:active
|
||||
border-bottom: 1px solid $cement-grey
|
||||
|
||||
.row-content
|
||||
margin: 0
|
||||
font-size: 16px
|
||||
a:hover,
|
||||
a:active
|
||||
border-bottom: 1px solid $asphalt-grey
|
||||
|
||||
// old! remove this
|
||||
.row-li
|
||||
position: relative
|
||||
border: 1px solid $cream-dark
|
||||
|
@ -20,7 +60,6 @@
|
|||
|
||||
h2, h3, small
|
||||
margin: 0
|
||||
font-weight: $font-weight-normal
|
||||
font-size: 16px
|
||||
small
|
||||
font-weight: $font-weight-bold
|
||||
|
@ -71,22 +110,6 @@
|
|||
@media #{$medium-up}
|
||||
display: block
|
||||
|
||||
.icon
|
||||
width: 1.3em
|
||||
height: 1.3em
|
||||
margin-right: .2em
|
||||
display: inline-block
|
||||
vertical-align: middle
|
||||
|
||||
.avatar
|
||||
display: inline-block
|
||||
width: 16px
|
||||
height: 16px
|
||||
margin: 0 .4em 0 .1em
|
||||
border-radius: 50%
|
||||
vertical-align: middle
|
||||
background-color: #E9EBEB
|
||||
|
||||
@include statusColors($turf-green, 'passed', 10px)
|
||||
@include statusColors($brick-red, 'failed', 10px)
|
||||
@include statusColors($brick-red, 'errored', 10px)
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
.status-icon *,
|
||||
.request-icon *
|
||||
fill: none
|
||||
stroke: $cement-grey
|
||||
stroke-linecap: round
|
||||
stroke-linejoin: round
|
||||
stroke-miterlimit: 10
|
||||
stroke-width: 2px
|
||||
|
||||
.status-icon
|
||||
@extend %icon
|
||||
width: 13px
|
||||
height: 14px
|
||||
line-height: 0
|
||||
margin-right: .3rem
|
||||
|
||||
.request-icon
|
||||
@extend %icon
|
||||
width: 16px
|
||||
height: 19px
|
||||
margin-right: .1rem
|
||||
|
||||
.status-icon
|
||||
.is-rotating
|
||||
width: 17px
|
||||
|
@ -12,10 +34,15 @@
|
|||
vertical-align: middle
|
||||
width: 5px
|
||||
height: 5px
|
||||
border: solid 1px #bfb502
|
||||
border: solid 1px $dozer-yellow
|
||||
border-radius: 50%
|
||||
transform-origin: center center
|
||||
|
||||
&.started,
|
||||
&.received,
|
||||
&.created
|
||||
height: 19px
|
||||
|
||||
@keyframes rotation
|
||||
0%
|
||||
transform: rotateZ(0deg)
|
|
@ -35,7 +35,6 @@
|
|||
.label
|
||||
vertical-align: middle
|
||||
font-size: $font-size-m
|
||||
color: $cement-grey
|
||||
display: inline-block
|
||||
&.label--small .label
|
||||
width: 7em
|
||||
|
@ -79,6 +78,6 @@
|
|||
background-position: 50%
|
||||
background-repeat: no-repeat
|
||||
.off
|
||||
@extend %icon-hook-off
|
||||
@extend %icon-line-cross-white
|
||||
.on
|
||||
@extend %icon-hook-on
|
||||
@extend %icon-line-passed
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
background-color: $oxide-blue
|
||||
.sync-last
|
||||
position: absolute
|
||||
left: -15em
|
||||
right: 9em
|
||||
top: 0
|
||||
width: 170%
|
||||
z-index: -1
|
||||
transition: transform 150ms ease, opacity 250ms ease
|
||||
transform: translateX(80%)
|
||||
|
@ -33,11 +34,8 @@
|
|||
|
||||
.icon-trigger
|
||||
@extend %icon-line-trigger-white
|
||||
@extend %icon
|
||||
width: 1.5em
|
||||
height: 1.5em
|
||||
margin-right: 0.3em
|
||||
|
||||
@extend .icon
|
||||
margin-right: 0.3rem
|
||||
|
||||
.loading-indicator--white
|
||||
vertical-align: top
|
|
@ -10,6 +10,7 @@
|
|||
width: 100%
|
||||
@media #{$medium-up}
|
||||
margin-top: 0
|
||||
margin-bottom: 4px
|
||||
display: block
|
||||
li
|
||||
flex: 0 0 8em
|
||||
|
@ -76,13 +77,13 @@
|
|||
left: .5em
|
||||
|
||||
.tab-arrow
|
||||
@extend %icon-line-arrowtabs
|
||||
display: inline-block
|
||||
position: absolute
|
||||
top: 5px
|
||||
left: -19px
|
||||
width: .7em
|
||||
top: 1px
|
||||
left: -22px
|
||||
width: 1em
|
||||
height: 1.3em
|
||||
background:
|
||||
size: auto 100%
|
||||
repeat: no-repeat
|
||||
image: inline-image('line-icons/icon-arrow-tabs.svg')
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
.tofuburger
|
||||
@extend %icon-line-tofu
|
||||
height: $top-height
|
||||
width: 30px
|
||||
border: none
|
||||
|
@ -7,7 +7,6 @@
|
|||
outline: none
|
||||
text-indent: -9999px
|
||||
background:
|
||||
image: inline-image('line-icons/icon-tofuburger.svg')
|
||||
size: 100%
|
||||
position: center center
|
||||
repeat: no-repeat
|
||||
|
|
|
@ -3,18 +3,17 @@
|
|||
max-width: 900px
|
||||
margin: auto
|
||||
h1
|
||||
color: #808080
|
||||
color: $cement-grey
|
||||
font-size: 36px
|
||||
margin-bottom: 1em
|
||||
font-weight: 300
|
||||
line-height: 1.1
|
||||
h2
|
||||
color: #35a764
|
||||
color: $turf-green
|
||||
font-size: 22px
|
||||
margin-bottom: 1em
|
||||
font-weight: 300
|
||||
p, li
|
||||
color: #666
|
||||
font-size: $font-size-m
|
||||
line-height: 25px
|
||||
|
||||
|
@ -76,10 +75,3 @@
|
|||
strong
|
||||
text-transform: uppercase
|
||||
font-style: normal
|
||||
|
||||
.note--info
|
||||
background-color: #e7eeee
|
||||
color: #3e8987
|
||||
code
|
||||
color: #267c8d
|
||||
background-color: white
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
$teal: #40A3AD
|
||||
$green: #39A85B
|
||||
$red: #DB4242
|
||||
$yellow: #E5C025
|
||||
$grey: #858585
|
||||
|
||||
.landing-pro
|
||||
|
||||
|
@ -44,10 +39,10 @@ $grey: #858585
|
|||
border-radius: 2px
|
||||
font-size: 27px
|
||||
text-decoration: none
|
||||
background-color: $green
|
||||
background-color: $turf-green
|
||||
&:hover
|
||||
color: white
|
||||
background-color: #73c78d
|
||||
background-color: lighten($turf-green, .2)
|
||||
|
||||
.hero-button
|
||||
@extend .landing-button
|
||||
|
@ -199,22 +194,22 @@ $grey: #858585
|
|||
.h1--grey
|
||||
@extend %h1
|
||||
@include linkStyle
|
||||
color: $grey !important
|
||||
color: $asphalt-grey !important
|
||||
a
|
||||
color: $grey
|
||||
color: $asphalt-grey
|
||||
|
||||
.h1--teal
|
||||
@extend %h1
|
||||
font-size: 64px
|
||||
color: #408692 !important
|
||||
color: $oxide-blue !important
|
||||
|
||||
.h1--green
|
||||
@extend %h1
|
||||
color: $green !important
|
||||
color: $turf-green !important
|
||||
|
||||
.h1--red
|
||||
@extend %h1
|
||||
color: $red !important
|
||||
color: $brick-red !important
|
||||
|
||||
%h2
|
||||
margin: 0 0 .5em
|
||||
|
@ -224,19 +219,19 @@ $grey: #858585
|
|||
|
||||
.h2--grey
|
||||
@extend %h2
|
||||
color: $grey
|
||||
color: $asphalt-grey
|
||||
|
||||
.h2--green
|
||||
@extend %h2
|
||||
color: $green
|
||||
color: $turf-green
|
||||
|
||||
.h2--red
|
||||
@extend %h2
|
||||
color: $red
|
||||
color: $brick-red
|
||||
|
||||
.h2--teal
|
||||
@extend %h2
|
||||
color: $teal
|
||||
color: $oxide-blue
|
||||
|
||||
%h3
|
||||
margin: .5em 0
|
||||
|
@ -254,19 +249,19 @@ $grey: #858585
|
|||
|
||||
.h3--teal
|
||||
@extend %h3
|
||||
color: $teal
|
||||
color: $oxide-blue
|
||||
|
||||
.h3--red
|
||||
@extend %h3
|
||||
color: $red
|
||||
color: $brick-red
|
||||
|
||||
.h3--green
|
||||
@extend %h3
|
||||
color: $green
|
||||
color: $turf-green
|
||||
|
||||
.h3--yellow
|
||||
@extend %h3
|
||||
color: $yellow
|
||||
color: $dozer-yellow
|
||||
|
||||
.text-big
|
||||
@include linkStyle
|
||||
|
|
|
@ -11,14 +11,14 @@
|
|||
background-color: #ffffff
|
||||
background-image: inline-image('landing-page/signingithub.svg')
|
||||
background-size: 16px 16px
|
||||
border: 2px solid #e4e7e7
|
||||
color: #a0a8a8
|
||||
border: 2px solid rgba($cement-grey, .4)
|
||||
color: $cement-grey
|
||||
.button--signingin
|
||||
border: 2px solid #3FA75F
|
||||
border: 2px solid $turf-green
|
||||
.button--signin:hover
|
||||
background-color: #73c78d
|
||||
background-color: $turf-green
|
||||
background-image: inline-image('landing-page/signingithub-hover.svg')
|
||||
border: 2px solid #73c78d
|
||||
border: 2px solid $turf-green
|
||||
color: #fff
|
||||
|
||||
.landing-centered-wrapper
|
||||
|
@ -37,7 +37,7 @@
|
|||
font-size: 5em
|
||||
line-height: 1em
|
||||
font-weight: 300
|
||||
color: #8f9294
|
||||
color: $cement-grey
|
||||
margin-bottom: 0
|
||||
|
||||
.hero, .oss-testing, .customers, .recent-builds, .free-for-oss, .private-repos, .features-list, .build-flows, .user-testimonials
|
||||
|
@ -52,11 +52,10 @@
|
|||
font-size: 3.3em
|
||||
line-height: 1.15em
|
||||
font-weight: 300
|
||||
color: #39a85b
|
||||
color: $turf-green
|
||||
|
||||
p
|
||||
line-height: 1.5em
|
||||
font-color: #606162
|
||||
font-size: 1.7em
|
||||
|
||||
.hero.z-1
|
||||
|
@ -78,13 +77,13 @@
|
|||
margin-bottom: -192px
|
||||
|
||||
#laptop img
|
||||
border: 2px solid #d8dadc
|
||||
border: 2px solid lighten($cement-grey, 20)
|
||||
border-radius: 2px
|
||||
|
||||
.hero
|
||||
background-color: #f6f6f6
|
||||
background-color: $pebble-grey
|
||||
h1
|
||||
color: #339999
|
||||
color: $oxide-blue
|
||||
line-height: 1.2em
|
||||
margin-bottom: 0
|
||||
|
||||
|
@ -96,7 +95,7 @@
|
|||
display: none
|
||||
|
||||
.button
|
||||
background-color: #39a85b
|
||||
background-color: $turf-green
|
||||
color: #fff
|
||||
font-size: 2em
|
||||
font-weight: 300
|
||||
|
@ -106,7 +105,7 @@
|
|||
border: 0
|
||||
|
||||
&:hover
|
||||
background-color: #73c78d
|
||||
background-color: lighten($turf-green, 20)
|
||||
|
||||
.sign-in-mascot
|
||||
padding-right: 10px
|
||||
|
@ -130,6 +129,10 @@
|
|||
|
||||
br.mobile-break
|
||||
display: none
|
||||
.os-numbers
|
||||
width: 80%
|
||||
@media #{$medium-up}
|
||||
width: 60%
|
||||
|
||||
.customers
|
||||
text-align: center
|
||||
|
@ -138,44 +141,6 @@
|
|||
text-align: left
|
||||
padding: 0 0 0 12%
|
||||
|
||||
.recent-builds
|
||||
background-color: #f6f6f6
|
||||
min-height: 44rem
|
||||
|
||||
.recent-builds-text
|
||||
text-align: center
|
||||
h2
|
||||
color: #db4141
|
||||
text-align: right
|
||||
margin: 0
|
||||
|
||||
a
|
||||
color: #828282
|
||||
|
||||
p
|
||||
text-align: right
|
||||
margin-top: 0.5em
|
||||
margin-bottom: 2em
|
||||
|
||||
img
|
||||
margin-bottom: 20px
|
||||
|
||||
ul
|
||||
padding-left: 0
|
||||
|
||||
li
|
||||
background-color: #fff
|
||||
border-radius: 4px
|
||||
color: #828282
|
||||
font-weight: 400
|
||||
margin-bottom: 20px
|
||||
list-style-type: none
|
||||
position: relative
|
||||
height: 120px
|
||||
width: 100%
|
||||
padding: 10px 0 0 60px
|
||||
text-align: left
|
||||
|
||||
.free-for-oss
|
||||
text-align: center
|
||||
|
||||
|
@ -192,11 +157,16 @@
|
|||
br.mobile-no-break
|
||||
display: inline-block
|
||||
|
||||
.os-numbers
|
||||
width: 80%
|
||||
@media #{$medium-up}
|
||||
width: 60%
|
||||
|
||||
.private-repos
|
||||
text-align: center
|
||||
|
||||
h2
|
||||
color: #339999
|
||||
color: $oxide-blue
|
||||
margin: 0
|
||||
text-align: right
|
||||
|
||||
|
@ -215,15 +185,12 @@
|
|||
display: inline-block
|
||||
|
||||
.features-list
|
||||
background-color: #f6f6f6
|
||||
|
||||
h2
|
||||
margin: 0
|
||||
|
||||
h3
|
||||
font-size: 1.4em
|
||||
font-weight: 300
|
||||
color: #413c3c
|
||||
text-align: center
|
||||
margin-bottom: 35px
|
||||
padding-top: 40px
|
||||
|
@ -231,7 +198,6 @@
|
|||
p
|
||||
font-size: 1.15em
|
||||
font-weight: 300
|
||||
color: #606162
|
||||
text-align: center
|
||||
|
||||
br.mobile-break
|
||||
|
@ -278,7 +244,6 @@
|
|||
margin-top: 1.6rem;
|
||||
|
||||
li
|
||||
font-color: #606162
|
||||
font-size: 1.7em
|
||||
line-height: 1.7em
|
||||
&:before
|
||||
|
@ -293,7 +258,7 @@
|
|||
text-align: center
|
||||
|
||||
h2
|
||||
color: #909295
|
||||
color: $cement-grey
|
||||
|
||||
h2#pr-bf-margin
|
||||
margin-top: 90px
|
||||
|
@ -304,14 +269,14 @@
|
|||
width: 120px
|
||||
|
||||
p
|
||||
font-size: 1em
|
||||
font-size: 13px
|
||||
line-height: 1.5em
|
||||
color: #5f6062
|
||||
color: $asphalt-grey
|
||||
|
||||
.divider-line-horizontal
|
||||
width: 50px
|
||||
height: 3px
|
||||
background: #eaeaec
|
||||
background: lighten($cement-grey, 30)
|
||||
display: inline-block
|
||||
margin-bottom: 75px
|
||||
|
||||
|
@ -322,13 +287,11 @@
|
|||
margin-bottom: 50px
|
||||
|
||||
h2
|
||||
color: #418793
|
||||
color: $oxide-blue
|
||||
text-align: right
|
||||
|
||||
p
|
||||
font-size: 1.2em
|
||||
font-weight: 300
|
||||
color: #606162
|
||||
margin: 0
|
||||
display: inline-block
|
||||
|
||||
|
@ -407,7 +370,7 @@
|
|||
.build-flows .branch-bf .divider-line-vertical
|
||||
width: 3px
|
||||
height: 40px
|
||||
background: #eaeaec
|
||||
background: lighten($cement-grey, 30)
|
||||
display: inline-block
|
||||
margin-bottom: 10px
|
||||
|
||||
|
@ -459,20 +422,6 @@
|
|||
.navigation-nested
|
||||
background-color: white
|
||||
|
||||
.landing-rows
|
||||
list-style: none
|
||||
margin: 0
|
||||
@media #{$small-only}
|
||||
padding: 0
|
||||
|
||||
.landing-row
|
||||
.two-line
|
||||
padding-left: 2rem
|
||||
h2
|
||||
padding-left: .5rem
|
||||
font-size: 18px
|
||||
|
||||
|
||||
.landing,
|
||||
.landing-pro
|
||||
background-color: white
|
||||
|
|
|
@ -19,13 +19,13 @@
|
|||
margin: .5em 0 0
|
||||
.font-light
|
||||
font-weight: 300
|
||||
color: $teal
|
||||
color: $oxide-blue
|
||||
.font-regular
|
||||
font-weight: 400
|
||||
color: #D3B01E
|
||||
color: $dozer-yellow
|
||||
.font-semibold
|
||||
font-weight: 600
|
||||
color: $grey
|
||||
color: $asphalt-grey
|
||||
|
||||
.list--colors
|
||||
@extend %list
|
||||
|
@ -39,15 +39,15 @@
|
|||
height: 3em
|
||||
margin-bottom: .5em
|
||||
.colors-sample--teal
|
||||
background-color: $teal
|
||||
background-color: $oxide-blue
|
||||
.colors-sample--green
|
||||
background-color: $green
|
||||
background-color: $turf-green
|
||||
.colors-sample--yellow
|
||||
background-color: $yellow
|
||||
background-color: $canary-yellow
|
||||
.colors-sample--red
|
||||
background-color: $red
|
||||
background-color: $brick-red
|
||||
.colors-sample--grey
|
||||
background-color: #666
|
||||
background-color: $asphalt-grey
|
||||
|
||||
.list--mascot
|
||||
@extend %list
|
||||
|
@ -91,3 +91,6 @@
|
|||
margin-bottom: 3em
|
||||
@media #{$medium-up}
|
||||
margin-bottom: 0
|
||||
|
||||
.text-logo
|
||||
margin: 0 auto 3em
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
margin-bottom: 2em
|
||||
border:
|
||||
width: 2px
|
||||
color: #E8E8E8
|
||||
color: rgba($cement-grey, .2)
|
||||
style: solid
|
||||
|
||||
@media #{$medium-up}
|
||||
|
@ -52,19 +52,19 @@
|
|||
color: $color
|
||||
|
||||
.plan--red
|
||||
+colorPlans($red, #FCF0F0, false)
|
||||
+colorPlans($brick-red, lighten($brick-red, 40), false)
|
||||
.list--check li:before
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjREI0MjQyIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+")
|
||||
.plan--green
|
||||
+colorPlans($green, #73c78d)
|
||||
+colorPlans($turf-green, lighten($turf-green, 10))
|
||||
.list--check li:before
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjMzlBODVCIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+")
|
||||
.plan--teal
|
||||
+colorPlans($teal, #8CC8CE)
|
||||
+colorPlans($oxide-blue, lighten($oxide-blue, 10))
|
||||
.list--check li:before
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjNDBBM0FEIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+")
|
||||
.plan--yellow
|
||||
+colorPlans($yellow, #EFD97C)
|
||||
+colorPlans($dozer-yellow, lighten($dozer-yellow, 10))
|
||||
.list--check li:before
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjRTVDMDI1IiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+")
|
||||
|
||||
|
@ -129,7 +129,7 @@
|
|||
flex: 0 0 100%
|
||||
padding: 1em 1.5em 1.7em
|
||||
margin-bottom: 2em
|
||||
border: solid 1px #E8E8E8
|
||||
border: solid 1px rgba($cement-grey, .2)
|
||||
@media #{$medium-up}
|
||||
flex: 0 0 48%
|
||||
|
||||
|
|
|
@ -43,11 +43,11 @@ $color-bg-log-fold-highlight: #777
|
|||
$ansi-black: #4E4E4E
|
||||
$ansi-black-bold: #7C7C7C
|
||||
$ansi-red: #FF6C60
|
||||
$ansi-red-bold: #FFB6B0
|
||||
$ansi-red-bold: #FF9B93
|
||||
$ansi-green: #00AA00
|
||||
$ansi-green-bold: #CEFFAB
|
||||
$ansi-green-bold: #B1FD79
|
||||
$ansi-yellow: #FFFFB6
|
||||
$ansi-yellow-bold: #FFFFCB
|
||||
$ansi-yellow-bold: #FFFF91
|
||||
$ansi-blue: #96CBFE
|
||||
$ansi-blue-bold: #B5DCFE
|
||||
$ansi-magenta: #FF73FD
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{{#if allHooks.isLoaded}}
|
||||
|
||||
<header>
|
||||
<header>
|
||||
{{#unless config.enterprise}}
|
||||
{{#if config.billingEndpoint}}
|
||||
<div class="cta-btn">
|
||||
{{#if subscribeButtonInfo.subscribed}}
|
||||
|
@ -14,6 +15,7 @@
|
|||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
|
||||
<div class="profile-header">
|
||||
<h1>{{accountName}}</h1>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{{#if cachesExist}}
|
||||
<div class="caches-header">
|
||||
<h1 class="small-title">All caches <small>(<a href="http://docs.travis-ci.com/user/caching/" title="Read about caching">Read the docs</a>)</small></h1>
|
||||
<a {{action "deleteRepoCache"}} class="{{if isDeleting 'deleting'}} delete-cache-button" title="Delete all repository caches">
|
||||
<a {{action "deleteRepoCache"}} href="#" class="{{if isDeleting 'deleting'}} delete-cache-button" title="Delete all repository caches">
|
||||
Delete all repository caches
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -5,21 +5,7 @@
|
|||
</div>
|
||||
<div class="row-builds">
|
||||
<div class="row-item">
|
||||
<span class="icon icon-line-build">
|
||||
<svg x="0px" y="0px" viewBox="0 0 20 20" xml:space="preserve" enable-background="new 0 0 20 20">
|
||||
<g id="Build">
|
||||
<path fill="#A7AEAE" d="M15.2,15.3c-0.4,0-0.7-0.1-1-0.4c-0.4-0.3-0.6-0.8-0.6-1.2c0-0.3,0.2-0.5,0.5-0.5c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.2,0.1,0.4,0.2,0.5c0.1,0.1,0.3,0.2,0.5,0.1c0.2,0,0.4-0.2,0.5-0.5c0.1-0.3-0.1-0.6-0.4-0.7c-0.4-0.2-0.7-0.6-0.7-1.1V8.7
|
||||
c0-0.3,0.2-0.5,0.5-0.5s0.5,0.2,0.5,0.5V12c0,0,0,0.2,0.1,0.2c0.7,0.3,1.1,1,1,1.8c-0.1,0.6-0.6,1.2-1.3,1.3
|
||||
C15.3,15.3,15.3,15.3,15.2,15.3z"/>
|
||||
<path fill="#A7AEAE" d="M9.1,17.5C9.1,17.5,9.1,17.5,9.1,17.5H3.7c-0.3,0-0.5-0.2-0.5-0.5c0-0.3,0.2-0.5,0.5-0.5h1.7V8.9H3.4
|
||||
C2.5,8.9,2.5,7.1,2.5,7V6.6c0-0.5,0.3-0.9,0.7-1l2.2-0.8V3.3c0-0.2,0.1-0.5,0.3-0.6c0.2-0.2,0.4-0.2,0.7-0.2l1.5,0.3
|
||||
C9,3,9.6,3.1,9.6,3.7v1.2l7.1,0.9c0.5,0.1,0.8,0.5,0.8,0.9V7c0,0,0,1.8-0.9,1.8h-7v7.6h1.7c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5H9.1C9.1,17.5,9.1,17.5,9.1,17.5z M6.4,16.5l2.2,0V8.9H6.4V16.5z M9.6,7.9h6.7c0.1-0.3,0.2-0.7,0.2-0.9
|
||||
V6.7L9.6,5.9V7.9z M6.4,7.9h2.2V5.7L8.1,5.7l-1.7,0V7.9z M3.6,7.9h1.8v-2l-2,0.7l0,0.4C3.5,7.2,3.5,7.6,3.6,7.9z M6.4,4.7h1.7
|
||||
l0.5,0.1V4c-0.1,0-0.4-0.1-0.9-0.2c0,0-0.1,0-0.1,0L6.4,3.5V4.7z"/>
|
||||
</g>
|
||||
</svg></span>
|
||||
<span class="icon icon-line-build"></span>
|
||||
<span class="label-align">
|
||||
{{#if build.last_build}}
|
||||
{{#if getLast5Builds.isLoading}}
|
||||
|
@ -37,8 +23,8 @@
|
|||
<div class="row-request">
|
||||
<div class="row-item">
|
||||
{{#if build.last_build}}
|
||||
{{#link-to "build" build.last_build.id}}
|
||||
{{request-icon event=build.last_build.event_type state=build.last_build.state}}
|
||||
{{#link-to "build" build.last_build.id}}
|
||||
<span class="label-align">#{{build.last_build.number}} {{build.last_build.state}}</span>
|
||||
{{/link-to}}
|
||||
{{else}}
|
||||
|
@ -61,8 +47,8 @@
|
|||
<div class="two-line">
|
||||
<div class="row-commit">
|
||||
<div class="row-item">
|
||||
<a href="{{urlGithubCommit}}" title="commit on GitHub">
|
||||
<span class="icon-github"></span>
|
||||
<a href="{{urlGithubCommit}}" title="commit on GitHub">
|
||||
<span class="label-align">
|
||||
{{#if build.last_build}}
|
||||
{{format-sha build.last_build.commit.sha}}
|
||||
|
@ -74,9 +60,9 @@
|
|||
<div class="row-commiter">
|
||||
<div class="row-item">
|
||||
{{#if build.last_build}}
|
||||
<img src="{{build.last_build.commit.committer.avatar_url}}" alt="avatar" class="avatar"><span class="label-align">{{build.last_build.commit.committer.name}}</span>
|
||||
<img src="{{build.last_build.commit.committer.avatar_url}}" alt="avatar" class="avatar--small"><span class="label-align">{{build.last_build.commit.committer.name}}</span>
|
||||
{{else}}
|
||||
<div class="avatar"></div><span class="label-align">no commits yet</span>
|
||||
<div class="avatar--small"></div><span class="label-align">no commits yet</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,26 +1,18 @@
|
|||
<span class="icon-broadcast {{status}} {{if isOpen 'is-open'}}" title="broadcasts" {{action 'toggleBroadcasts'}}>
|
||||
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="-1 0 16 25" xml:space="preserve">
|
||||
<g>
|
||||
<path class="tower-path" d="M0.989,18.732l0.92-2.247l3.926,0.663V20h0.868l-0.001-2.852l3.926-0.663l0.92,2.247h0.989L8.167,8.078
|
||||
H7.183l0.004,0.011H5.351l0.004-0.011H4.37L0,18.732H0.989z M6.702,16.288l-0.003-3.877l2.461,0.492l1.131,2.759L6.702,16.288z
|
||||
M2.246,15.662l1.131-2.759l2.459-0.492l-0.001,3.877L2.246,15.662z M8.794,12.015l-2.095-0.483L6.698,8.92h0.827L8.794,12.015z
|
||||
M5.836,8.92v2.612l-2.093,0.482L5.012,8.92H5.836z"/>
|
||||
<g class="radio-wave--right">
|
||||
<path class="tower-path" d="M10.035,8.32l0.606,0.606c2.267-2.355,2.263-6.58-0.016-8.927l-0.591,0.593
|
||||
C11.992,2.781,11.99,6.115,10.035,8.32z"/>
|
||||
<path class="tower-path" d="M8.631,1.995C9.823,3.41,9.824,5.496,8.635,6.922l0.606,0.606c1.522-1.766,1.524-4.394,0-6.144L8.631,1.995
|
||||
z"/>
|
||||
<svg version="1.1" id="icon-broadcast" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 15 21.625" xml:space="preserve" alt="Broadcast tower">
|
||||
<g class="tower-path">
|
||||
<circle class="path" cx="7.503" cy="6.733" r="1.775"/>
|
||||
<polyline class="path" points="8.303,8.508 13.627,21.206 4.728,14.441 "/>
|
||||
<polyline class="path" points="6.828,8.508 1.528,21.206 10.427,14.441 "/>
|
||||
<line class="path" x1="7.5" y1="8.508" x2="7.5" y2="20.673"/>
|
||||
</g>
|
||||
<g class="radio-wave--left">
|
||||
<path class="tower-path" d="M1.855,8.927L2.462,8.32C0.507,6.115,0.506,2.781,2.463,0.593L1.872,0C-0.407,2.347-0.41,6.571,1.855,8.927
|
||||
z"/>
|
||||
<path class="tower-path" d="M3.257,1.385c-1.524,1.75-1.523,4.378-0.001,6.144l0.606-0.606C2.674,5.496,2.674,3.41,3.866,1.995
|
||||
L3.257,1.385z"/>
|
||||
<g class="radio-wave--outer">
|
||||
<path class="path" d="M2.454,11.81C1.247,10.557,0.5,8.859,0.5,6.981c0-2.936,1.812-5.441,4.375-6.481"/>
|
||||
<path class="path" d="M12.668,11.668C13.8,10.43,14.5,8.792,14.5,6.981c0-2.936-1.812-5.441-4.375-6.481"/>
|
||||
</g>
|
||||
<path class="tower-path" d="M6.246,6.437c1.082,0,1.962-0.88,1.962-1.964c0-1.085-0.88-1.964-1.962-1.964
|
||||
c-1.087,0-1.966,0.879-1.966,1.964C4.28,5.557,5.159,6.437,6.246,6.437z"/>
|
||||
<g class="radio-wave--inner">
|
||||
<path class="path" d="M3.751,9.161C3.356,8.506,3.123,7.743,3.123,6.922c0-1.836,1.133-3.402,2.735-4.052"/>
|
||||
<path class="path" d="M11.339,8.986c0.336-0.615,0.537-1.313,0.537-2.064c0-1.836-1.133-3.402-2.735-4.052"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
|
|
@ -41,12 +41,12 @@
|
|||
</ul>
|
||||
<p class="commit-author">
|
||||
{{#if commit.authorName}}
|
||||
{{user-avatar url=commit.authorAvatarUrlOrGravatar name=commit.authorName}}
|
||||
{{user-avatar url=commit.authorAvatarUrlOrGravatar name=commit.authorName small=true}}
|
||||
<span class="label-align">{{commit.authorName}} authored{{#if commit.authorIsCommitter}} and committed{{/if}}</span>
|
||||
{{/if}}
|
||||
{{#unless commit.authorIsCommitter}}
|
||||
{{#if commit.committerName}}
|
||||
{{user-avatar url=commit.committerAvatarUrlOrGravatar name=commit.committerName}}
|
||||
{{user-avatar url=commit.committerAvatarUrlOrGravatar name=commit.committerName small=true}}
|
||||
<span class="label-align">{{commit.committerName}} committed</span>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
{{/unless}}
|
||||
</div>
|
||||
<div class="row-item row-committer">
|
||||
{{user-avatar url=build.commit.authorAvatarUrlOrGravatar name=build.commit.authorName}}
|
||||
{{user-avatar url=build.commit.authorAvatarUrlOrGravatar name=build.commit.authorName small=true}}
|
||||
<span class="label-align">{{build.commit.authorName}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,111 +1,92 @@
|
|||
|
||||
<div class="two-line fade-out">
|
||||
<div class="row-name row-item row-color">
|
||||
<h3>{{#link-to "owner" repo.owner.login}}{{status-icon status=repo.default_branch.last_build.state}} {{repo.owner.login}}{{/link-to}}</h3>
|
||||
<h2>{{#link-to "repo" repo.owner.login repo.name}}<span class="label-align">{{repo.name}}</span>{{/link-to}}</h2>
|
||||
<div class="dash-head">
|
||||
<a href="#" class="dash-star is-starred" title="(un-) star this repo"><span class="icon-star">
|
||||
<svg version="1.1" id="icon-star" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 15 15" style="enable-background:new 0 0 15 15;" xml:space="preserve" alt="star repository">
|
||||
<path id="star" d="M7.159,1.035c0.188-0.38,0.495-0.38,0.683,0l1.596,3.234c0.188,0.38,0.685,0.741,1.105,0.802
|
||||
l3.569,0.519c0.42,0.061,0.515,0.353,0.211,0.649l-2.583,2.517c-0.304,0.296-0.494,0.88-0.422,1.298l0.61,3.555
|
||||
c0.072,0.418-0.177,0.599-0.552,0.401l-3.192-1.678c-0.375-0.197-0.99-0.197-1.365,0l-3.192,1.678
|
||||
c-0.375,0.197-0.624,0.017-0.552-0.401l0.61-3.555c0.072-0.418-0.118-1.002-0.422-1.298L0.678,6.24
|
||||
C0.374,5.944,0.469,5.652,0.889,5.591l3.569-0.519c0.42-0.061,0.917-0.422,1.105-0.802L7.159,1.035z"/>
|
||||
</svg>
|
||||
</span></a>
|
||||
<span class="icon-lock">private repo</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dash-body">
|
||||
<div class="dash-main">
|
||||
<header class="fade-out dash-header">
|
||||
<h2 class="row-label">{{#link-to "owner" repo.owner.login}}{{repo.owner.login}}{{/link-to}}</h2>
|
||||
<h1 class="row-content">{{#link-to "repo" repo.owner.login repo.name}}{{repo.name}}{{/link-to}}</h1>
|
||||
</header>
|
||||
|
||||
<div class="one-line fade-out">
|
||||
<div class="row-request">
|
||||
<div class="row-item">
|
||||
{{#link-to "build" repo.owner.login repo.name repo.default_branch.last_build.id}}
|
||||
<section class="dash-default">
|
||||
<h3 class="label">Default branch</h3>
|
||||
<p class="row-content color">
|
||||
{{request-icon event=repo.default_branch.last_build.event_type state=repo.default_branch.last_build.state}}
|
||||
<span class="label-align">#{{repo.default_branch.last_build.number}} {{repo.default_branch.last_build.state}} on {{repo.default_branch.name}}</span>
|
||||
{{/link-to}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{repo.default_branch.name}} is {{repo.default_branch.last_build.state}}
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<div class="one-line">
|
||||
<div class="row-commit">
|
||||
<div class="row-item">
|
||||
<a href="{{urlGithubCommit}}" title="commit on GitHub">
|
||||
<section class="dash-last-build">
|
||||
<div>
|
||||
<h3 class="label">Last build</h3>
|
||||
<p class="row-content color">
|
||||
{{status-icon status=repo.default_branch.last_build.state}}
|
||||
{{#link-to "build" repo.owner.login repo.name repo.default_branch.last_build.id}}
|
||||
<span class="label-align">#{{repo.default_branch.last_build.number}} {{repo.default_branch.last_build.state}}</span>
|
||||
{{/link-to}}
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="label">Last commit</h3>
|
||||
<p class="row-content">
|
||||
<span class="icon-github"></span>
|
||||
<a href="{{urlGithubCommit}}" title="See the commit on Github">
|
||||
<span class="label-align">
|
||||
{{format-sha repo.default_branch.last_build.commit.sha}}
|
||||
</span>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="one-line">
|
||||
<div class="row-calendar">
|
||||
<div class="row-item" title="{{repo.default_branch.last_build.finished_at}}">
|
||||
<div>
|
||||
<h3 class="label">Last commit completed</h3>
|
||||
<p class="row-content" title="{{repo.default_branch.last_build.finished_at}}">
|
||||
<span class="icon-calendar"></span>
|
||||
<span class="label-align">
|
||||
{{#if repo.default_branch.last_build}}
|
||||
{{format-time repo.default_branch.last_build.finished_at}}
|
||||
{{else}}
|
||||
-
|
||||
running
|
||||
{{/if}}</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{!--
|
||||
<div class="one-line is-relative">
|
||||
<div class="row-nav dropup-trigger">
|
||||
<div class="row-item">
|
||||
<a href="#"><span class="icon icon-tofu">
|
||||
<svg x="0px" y="0px" viewBox="0 0 20 20" xml:space="preserve">
|
||||
<g id="Tofuburger">
|
||||
<path fill="#A7AEAE" d="M17.9,6.2H2.1C1.8,6.2,1.5,6,1.5,5.6C1.5,5.3,1.8,5,2.1,5h15.7c0.4,0,0.6,0.3,0.6,0.6
|
||||
C18.5,6,18.2,6.2,17.9,6.2z"/>
|
||||
<path fill="#A7AEAE" d="M17.9,10.6H2.1c-0.4,0-0.6-0.3-0.6-0.6s0.3-0.6,0.6-0.6h15.7c0.4,0,0.6,0.3,0.6,0.6S18.2,10.6,17.9,10.6z
|
||||
"/>
|
||||
<path fill="#A7AEAE" d="M17.9,15H2.1c-0.4,0-0.6-0.3-0.6-0.6c0-0.3,0.3-0.6,0.6-0.6h15.7c0.4,0,0.6,0.3,0.6,0.6
|
||||
C18.5,14.7,18.2,15,17.9,15z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span></a></div>
|
||||
</div>
|
||||
<div class="dropup--blue">
|
||||
<ul>
|
||||
<li><a {{action 'deactivateRepo'}}>
|
||||
<span class="icon icon-eye">
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
||||
<g id="Failed">
|
||||
<path fill="#A7AEAE" d="M10.9,10l3.9-3.9c0.2-0.2,0.2-0.6,0-0.9c-0.2-0.2-0.6-0.2-0.9,0L10,9.1L6.1,5.2c-0.2-0.2-0.6-0.2-0.9,0
|
||||
c-0.2,0.2-0.2,0.6,0,0.9L9.1,10l-3.9,3.9c-0.2,0.2-0.2,0.6,0,0.9C5.3,14.9,5.5,15,5.6,15s0.3-0.1,0.4-0.2l3.9-3.9l3.9,3.9
|
||||
c0.1,0.1,0.3,0.2,0.4,0.2c0.2,0,0.3-0.1,0.4-0.2c0.2-0.2,0.2-0.6,0-0.9L10.9,10z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="dropup-item">Deactivate</span></a>
|
||||
</li>
|
||||
</section>
|
||||
|
||||
{{#if displayMenuTofu}}
|
||||
<div class="dash-menu">
|
||||
<div class="dropup {{if dropupIsOpen "is-open"}}">
|
||||
<button type="button" class="dropup-tofu" {{action "openDropup"}}>open action menu</button>
|
||||
<ul class="dropup-list">
|
||||
<li><a href="#" title="Trigger a new build">
|
||||
<span class="icon-trigger"></span>
|
||||
<span class="label-align">Trigger a build</span></a></li>
|
||||
{{#if displayActiavteLink}}
|
||||
<li><a href="#" title="Deactivate builds for this repository">
|
||||
<span class="icon-deactivate"></span>
|
||||
<span class="label-align">Deactivate repository</span></a></li>
|
||||
{{/if}}
|
||||
<li>
|
||||
{{#if hasTriggered}}
|
||||
<span class="icon">
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
||||
<g id="Passed">
|
||||
<path fill="#A7AEAE" d="M9.6,14.4c-0.1,0-0.3-0.1-0.4-0.1l-4-3.3c-0.3-0.2-0.3-0.6-0.1-0.9S5.8,9.8,6.1,10l3.4,2.8l4.9-7.5
|
||||
C14.6,5,15,4.9,15.3,5.1c0.3,0.2,0.4,0.6,0.2,0.9l-5.3,8.1C10.1,14.3,9.9,14.4,9.6,14.4C9.7,14.4,9.7,14.4,9.6,14.4z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="dropup-item no-link">Build triggered</span>
|
||||
{{else}}
|
||||
{{#if isTriggering}}
|
||||
{{loading-indicator}}
|
||||
{{else}}
|
||||
<a {{action 'tiggerBuild'}}>
|
||||
<span class="icon icon-trigger">
|
||||
<svg x="0px" y="0px" viewBox="0 0 20 20" xml:space="preserve">
|
||||
<g id="Trigger">
|
||||
<path fill="#A7AEAE" d="M17.2,7.9C17,7.6,16.6,7.7,16.3,8l-1,1.2C14.9,6,12.2,3.6,9,3.6c-3.6,0-6.4,2.9-6.4,6.4s2.9,6.4,6.4,6.4
|
||||
c1.8,0,3.6-0.8,4.8-2.2c0.2-0.3,0.2-0.7-0.1-0.9c-0.3-0.2-0.7-0.2-0.9,0.1c-1,1.1-2.4,1.7-3.9,1.7c-2.8,0-5.1-2.3-5.1-5.1
|
||||
S6.1,4.9,9,4.9c2.7,0,4.9,2.1,5.1,4.7l-1.7-1.1c-0.3-0.2-0.7-0.1-0.9,0.2s-0.1,0.7,0.2,0.9l2.8,1.8c0,0,0,0,0,0
|
||||
c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0.1,0,0.1-0.1c0,0,0.1-0.1,0.1-0.1l2-2.4C17.6,8.5,17.5,8.1,17.2,7.9z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="dropup-item">Trigger a build</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</li>
|
||||
{{#link-to 'settings' repo title="Settings for this repository"}}
|
||||
<span class="icon-settings"></span>
|
||||
<span class="label-align">Settings</span>
|
||||
{{/link-to}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div> --}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<aside class="dash-aside">
|
||||
<ul class="lastbuilds">
|
||||
{{lastbuild-tile repo=repo build=repo.default_branch.last_build}}
|
||||
</ul>
|
||||
</aside>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
{{#if log.isLoaded}}
|
||||
{{log-content job=job log=log}}
|
||||
{{#if error}}
|
||||
<p class="notice">There was an error while trying to fetch the log.</p>
|
||||
{{else}}
|
||||
{{#if log.isLoaded}}
|
||||
{{log-content job=job log=log}}
|
||||
{{else}}
|
||||
{{loading-indicator}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
|
|
@ -1,108 +0,0 @@
|
|||
|
||||
<div class="two-line row-header fade-out">
|
||||
<div class="row-name row-color">
|
||||
<h3>{{#link-to "owner" repo.owner}}
|
||||
{{status-icon status=repo.lastBuildState}}
|
||||
<span class="label-align">{{repo.owner}}</span>{{/link-to}}
|
||||
</h3>
|
||||
<h2>{{#link-to "repo" repo.owner repo.name}}
|
||||
<span class="label-align">{{repo.name}}</span>
|
||||
{{/link-to}}
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="two-line">
|
||||
<div class="row-number">
|
||||
<div class="row-item row-color">
|
||||
{{#link-to "build" repo repo.lastBuildId}}
|
||||
<span class="icon">
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="-289 191 20 20" style="enable-background:new -289 191 20 20;" xml:space="preserve">
|
||||
<path fill="#A5ACAD" class="st0" d="M-272.4,198.4C-272.4,198.4-272.4,198.4-272.4,198.4l-3.4,0l0.3-3.3c0-0.3-0.2-0.6-0.5-0.6
|
||||
c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.4l-3.2,0l0.3-3.6c0-0.3-0.2-0.6-0.5-0.6c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.7l-3.2,0
|
||||
c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5c0,0,0,0,0,0l3.1,0l-0.2,2.9l-3.5,0c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5
|
||||
c0,0,0,0,0,0l3.4,0l-0.3,3.3c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.4l3.2,0l-0.3,3.6
|
||||
c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.7l3.2,0c0.3,0,0.5-0.2,0.5-0.6c0-0.3-0.2-0.5-0.5-0.5c0,0,0,0,0,0
|
||||
l-3.1,0l0.2-2.9l3.5,0c0.3,0,0.5-0.2,0.5-0.6C-271.8,198.7-272.1,198.4-272.4,198.4z M-277.2,202.4l-3.2,0l0.2-2.9l3.2,0
|
||||
L-277.2,202.4z"/>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="label-align">
|
||||
{{repo.lastBuildNumber}} {{repo.lastBuildState}}</span>
|
||||
{{/link-to}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row-calendar">
|
||||
<div class="row-item" title="{{repo.lastBuildFinishedAt}}">
|
||||
<span class="icon">
|
||||
<svg viewBox="0 0 20 20">
|
||||
<g id="Cal">
|
||||
<path fill="#A7AEAE" d="M16.7,2.5H3.3C3,2.5,2.8,2.7,2.8,3V17c0,0.3,0.2,0.5,0.5,0.5h13.4c0.3,0,0.5-0.2,0.5-0.5V3
|
||||
C17.2,2.7,17,2.5,16.7,2.5z M16.2,3.4v3.1H3.8V3.4H16.2z M3.8,16.6v-9h12.5v9H3.8z"/>
|
||||
<path fill="#A7AEAE" d="M8.7,13.4c-0.1,0-0.3,0-0.4,0c0.2-0.2,0.4-0.4,0.5-0.6c0.2-0.2,0.3-0.4,0.5-0.6c0.1-0.2,0.2-0.4,0.3-0.6
|
||||
c0.1-0.2,0.1-0.4,0.1-0.6c0-0.2,0-0.4-0.1-0.6c-0.1-0.2-0.2-0.3-0.3-0.4C9.2,10,9.1,9.9,8.9,9.8C8.7,9.7,8.5,9.7,8.3,9.7
|
||||
C8,9.7,7.7,9.8,7.5,9.9C7.2,10,7,10.2,6.8,10.4L7.3,11c0.1-0.1,0.2-0.2,0.4-0.3c0.1-0.1,0.3-0.1,0.4-0.1c0.2,0,0.4,0.1,0.5,0.2
|
||||
c0.1,0.1,0.2,0.3,0.2,0.5c0,0.2,0,0.3-0.1,0.5c-0.1,0.2-0.2,0.4-0.4,0.6c-0.2,0.2-0.4,0.4-0.6,0.7c-0.2,0.2-0.5,0.5-0.8,0.8v0.6
|
||||
H10v-0.9H9.1C9,13.4,8.8,13.4,8.7,13.4z"/>
|
||||
<path fill="#A7AEAE" d="M10.6,10.7h2c-0.2,0.3-0.4,0.6-0.5,0.8c-0.1,0.3-0.3,0.6-0.4,0.8c-0.1,0.3-0.2,0.6-0.2,0.9
|
||||
c0,0.3-0.1,0.7-0.1,1h1c0-0.4,0-0.8,0.1-1.2c0-0.3,0.1-0.7,0.2-0.9c0.1-0.3,0.2-0.6,0.4-0.9c0.2-0.3,0.4-0.6,0.6-0.9V9.8h-3.1
|
||||
V10.7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
<time class="label-align" datetime="{{repo.lastBuildFinishedAt}}">
|
||||
{{landing-page-last-build-time repo.lastBuildFinishedAt}}</time>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="two-line">
|
||||
<div class="row-commit">
|
||||
<div class="row-item">
|
||||
<span class="icon">
|
||||
<svg x="0px" y="0px" viewBox="2 0 20 20" xml:space="preserve">
|
||||
<g id="Commit">
|
||||
<path fill="#A7AEAE" d="M7.8,17.5c-0.3,0-0.5-0.2-0.5-0.5l0-1c-0.4,0-1,0.1-1.4-0.1c-0.4-0.1-1.3-0.5-1.8-1.7
|
||||
c-0.1-0.2-0.3-0.4-0.4-0.6c-0.1-0.1-0.2-0.3-0.3-0.4C3,12.8,3,12,3.3,11.5c0.3-0.4,0.7-0.5,1.2-0.3c0.7,0.2,1.1,0.9,1.4,1.3
|
||||
c0.1,0.1,0.1,0.2,0.2,0.2c0.4,0.4,1,0.3,1.4,0.1c0.1-0.1,0.2-0.2,0.3-0.3c-0.1,0-0.1,0-0.2,0c-0.7-0.1-1.3-0.4-1.9-0.7
|
||||
c-0.2-0.2-0.6-0.4-0.8-0.7c-0.3-0.3-0.5-0.7-0.7-1.2C4.1,9.4,4,9,3.9,8.5c0-0.4-0.1-0.9,0-1.4C4,6.5,4.2,6,4.5,5.5
|
||||
c0.1-0.1,0.1-0.2,0.2-0.3c0,0,0-0.1,0-0.1c-0.1-0.3-0.1-0.6-0.1-1c0-0.4,0.1-0.8,0.3-1.2C5,2.6,5.2,2.5,5.5,2.5
|
||||
c0.3,0,0.8,0.1,1.2,0.3c0.4,0.2,0.8,0.4,1.2,0.7c0.5-0.1,1-0.2,1.6-0.2c0.4,0,1.6,0,2,0c0.5,0,1,0.1,1.4,0.2l0.2-0.1
|
||||
c0.2-0.1,0.5-0.3,0.7-0.4c0.4-0.2,0.7-0.3,1.1-0.3c0.1,0,0.2,0,0.3,0c0.3,0,0.5,0.1,0.6,0.4c0.2,0.6,0.4,1.2,0.2,2l0,0.1
|
||||
c0,0.1,0,0.2-0.1,0.3c0.5,0.6,0.7,1.3,0.8,2.1c0,0.3,0,0.6,0,0.9c0,0.5-0.1,1-0.2,1.4c-0.2,0.5-0.4,1-0.7,1.4
|
||||
c-0.3,0.4-0.7,0.6-1,0.8c-0.6,0.3-1.2,0.6-1.8,0.7c0.2,0.4,0.3,0.8,0.3,1.3c0,0,0,0,0,0c0,0.8,0,3.2,0,3.2c0,0.3-0.2,0.5-0.5,0.5
|
||||
L7.8,17.5L7.8,17.5z M7.8,15.1c0.1,0,0.2,0,0.3,0.1c0.1,0.1,0.2,0.2,0.2,0.3l0,1l4.2,0c0-0.7,0-2.1,0-2.7c0-0.4-0.1-0.7-0.2-1
|
||||
c-0.1-0.2-0.1-0.3-0.2-0.3l0.3-0.4l0,0L12,12.5c-0.1-0.1-0.1-0.3-0.1-0.5c0.1-0.2,0.2-0.3,0.4-0.3l0.3,0c0.7-0.1,1.3-0.3,1.9-0.7
|
||||
c0.3-0.2,0.6-0.4,0.7-0.6c0.2-0.3,0.4-0.6,0.5-1C15.9,9,15.9,8.6,16,8.1c0-0.2,0-0.5,0-0.7c-0.1-0.7-0.3-1.2-0.7-1.7
|
||||
c-0.2-0.2-0.2-0.4-0.1-0.6c0-0.1,0.1-0.2,0.1-0.3l0-0.1c0.1-0.4,0-0.8-0.1-1.2c0,0,0,0-0.1,0c-0.2,0-0.5,0.1-0.7,0.2
|
||||
c-0.2,0.1-0.4,0.2-0.7,0.4l-0.4,0.2c-0.1,0.1-0.3,0.1-0.4,0.1c-0.5-0.1-0.9-0.2-1.4-0.2c-0.4,0-1.5,0-1.9,0C9,4.1,8.5,4.2,8,4.4
|
||||
c-0.1,0-0.3,0-0.5-0.1C7.1,4,6.7,3.8,6.3,3.6C6.1,3.5,5.9,3.5,5.7,3.5C5.6,3.7,5.6,4,5.6,4.2c0,0.3,0,0.5,0.1,0.7
|
||||
c0,0.1,0,0.1,0.1,0.2c0.1,0.2,0,0.4-0.1,0.5L5.5,5.8C5.5,5.9,5.4,6,5.3,6.1C5.1,6.4,4.9,6.8,4.8,7.3c-0.1,0.4,0,0.8,0,1.1
|
||||
c0,0.4,0.1,0.8,0.2,1.2c0.1,0.4,0.3,0.7,0.5,0.9C5.8,10.7,6,10.9,6.2,11c0.5,0.3,1,0.5,1.6,0.6c0.2,0,0.7,0.1,0.7,0.1
|
||||
c0.1,0,0.3,0.1,0.3,0.2c0.1,0.1,0.1,0.2,0.1,0.4c0,0.1-0.3,1-0.9,1.4c-0.7,0.4-1.8,0.5-2.5-0.3c-0.1-0.1-0.2-0.2-0.3-0.3
|
||||
c-0.2-0.3-0.6-0.8-1-1c-0.1,0-0.1,0-0.1,0c0,0,0,0-0.1,0.1c0,0.2,0,0.4,0.1,0.6c0.1,0.1,0.2,0.2,0.3,0.4c0.2,0.3,0.4,0.5,0.5,0.8
|
||||
c0.4,0.8,1,1.1,1.2,1.2C6.6,15.2,7.4,15.1,7.8,15.1C7.7,15.1,7.7,15.1,7.8,15.1z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="label-align">
|
||||
{{format-sha repo.lastBuild.commit.sha}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-commiter">
|
||||
<div class="row-item">
|
||||
<span class="icon">
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
||||
<g id="Push">
|
||||
<path fill="#A7AEAE" d="M16.9,9.4h-3.5c-0.3-1.6-1.7-2.8-3.4-2.8S6.9,7.8,6.6,9.4H3.1c-0.3,0-0.6,0.3-0.6,0.6s0.3,0.6,0.6,0.6h3.5
|
||||
c0.3,1.6,1.7,2.8,3.4,2.8s3.1-1.2,3.4-2.8h3.5c0.3,0,0.6-0.3,0.6-0.6S17.2,9.4,16.9,9.4z M10,12.2c-1.2,0-2.2-1-2.2-2.2
|
||||
c0-1.2,1-2.2,2.2-2.2c1.2,0,2.2,1,2.2,2.2c0,0,0,0,0,0c0,0,0,0,0,0C12.2,11.2,11.2,12.2,10,12.2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span><span class="label-align">{{repo.lastBuild.commit.branch}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
4
app/templates/components/lastbuild-tile.hbs
Normal file
4
app/templates/components/lastbuild-tile.hbs
Normal file
|
@ -0,0 +1,4 @@
|
|||
{{#link-to "build" repo.owner.login repo.name build.id}}
|
||||
{{status-icon status=build.state}}
|
||||
<span class="label-align">#{{build.number}}</span>
|
||||
{{/link-to}}
|
|
@ -13,16 +13,6 @@
|
|||
<span class="label-align">This job is running on our legacy infrastructure. Please read <a href="http://docs.travis-ci.com/user/migrating-from-legacy/?utm_source=legacy-notice&utm_medium=banner&utm_campaign=legacy-upgrade" title="Migrating from legacy">our docs on how to upgrade</a>.</span></p>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if job.displayGceNotice}}
|
||||
{{#if job.isFinished}}
|
||||
<p class="notice--blue"><span class="icon-flag"></span>
|
||||
<span class="label-align">This job ran on our new platform for Precise builds. Please read <a href="https://blog.travis-ci.com/2015-11-27-moving-to-a-more-elastic-future" title="Blog post on infrastructure migration">our blog post for more information</a>.</span></p>
|
||||
{{else}}
|
||||
<p class="notice--blue"><span class="icon-flag"></span>
|
||||
<span class="label-align">This job is running on our new platform for Legacy Precise builds. Please read <a href="https://blog.travis-ci.com/2015-11-27-moving-to-a-more-elastic-future" title="Blog post on infrastructure migration">our blog post for more information</a>.</span></p>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
|
||||
|
|
|
@ -63,14 +63,7 @@
|
|||
<h2 class="page-title">This is not an active repository</h2>
|
||||
<p class="page-notice">Want to start testing this project on Travis CI?</p>
|
||||
<a href="http://docs.travis-ci.com/user/getting-started/" class="button button--green">Read the Docs on Getting Started</a>
|
||||
|
||||
{{#if canActivate}}
|
||||
<p>You can activate the repository on {{#link-to "account" repo.owner}}your profile{{/link-to}},<br/>
|
||||
or by clicking the button below:</p>
|
||||
|
||||
<button {{action 'activate'}} class="button button--green">Activate</button>
|
||||
{{#if isActivating}}
|
||||
{{loading-indicator}}
|
||||
{{/if}}
|
||||
{{#if user.pushPermissions.length}}
|
||||
<p>If this repository is already in active use, <br> make sure it’s activated on {{#link-to "account" repo.owner}}your profile{{/link-to}}.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
{{else}}
|
||||
All organizations
|
||||
{{/if}}
|
||||
</span><span class="option-tofu"></span>
|
||||
</span><span class="option-arrow"></span>
|
||||
</a>
|
||||
{{/if}}
|
||||
<div class="option-dropdown {{if showFilter 'is-open'}}">
|
||||
|
|
|
@ -15,17 +15,7 @@
|
|||
<div class="row-item row-color">
|
||||
<div class="one-line">
|
||||
{{#link-to "build" ownerName repoName repo.default_branch.last_build.id}}
|
||||
<span class="icon">
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="-289 193 18 18" {{!-- style="enable-background:new -289 191 20 20;" --}} xml:space="preserve">
|
||||
<path fill="#A5ACAD" class="st0" d="M-272.4,198.4C-272.4,198.4-272.4,198.4-272.4,198.4l-3.4,0l0.3-3.3c0-0.3-0.2-0.6-0.5-0.6
|
||||
c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.4l-3.2,0l0.3-3.6c0-0.3-0.2-0.6-0.5-0.6c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.7l-3.2,0
|
||||
c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5c0,0,0,0,0,0l3.1,0l-0.2,2.9l-3.5,0c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5
|
||||
c0,0,0,0,0,0l3.4,0l-0.3,3.3c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.4l3.2,0l-0.3,3.6
|
||||
c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.7l3.2,0c0.3,0,0.5-0.2,0.5-0.6c0-0.3-0.2-0.5-0.5-0.5c0,0,0,0,0,0
|
||||
l-3.1,0l0.2-2.9l3.5,0c0.3,0,0.5-0.2,0.5-0.6C-271.8,198.7-272.1,198.4-272.4,198.4z M-277.2,202.4l-3.2,0l0.2-2.9l3.2,0
|
||||
L-277.2,202.4z"/>x
|
||||
</svg>
|
||||
<span class="icon-hash">
|
||||
</span>
|
||||
<span class="label-align">{{repo.default_branch.last_build.number}}</span>
|
||||
{{/link-to}}
|
||||
|
@ -42,31 +32,7 @@
|
|||
<div class="row-item">
|
||||
<div class="one-line">
|
||||
<a href="{{repo.default_branch.last_build.commit.compare_url}}">
|
||||
<span class="icon">
|
||||
<svg x="0px" y="0px" viewBox="2 0 20 20" xml:space="preserve">
|
||||
<g id="Commit">
|
||||
<path fill="#A7AEAE" d="M7.8,17.5c-0.3,0-0.5-0.2-0.5-0.5l0-1c-0.4,0-1,0.1-1.4-0.1c-0.4-0.1-1.3-0.5-1.8-1.7
|
||||
c-0.1-0.2-0.3-0.4-0.4-0.6c-0.1-0.1-0.2-0.3-0.3-0.4C3,12.8,3,12,3.3,11.5c0.3-0.4,0.7-0.5,1.2-0.3c0.7,0.2,1.1,0.9,1.4,1.3
|
||||
c0.1,0.1,0.1,0.2,0.2,0.2c0.4,0.4,1,0.3,1.4,0.1c0.1-0.1,0.2-0.2,0.3-0.3c-0.1,0-0.1,0-0.2,0c-0.7-0.1-1.3-0.4-1.9-0.7
|
||||
c-0.2-0.2-0.6-0.4-0.8-0.7c-0.3-0.3-0.5-0.7-0.7-1.2C4.1,9.4,4,9,3.9,8.5c0-0.4-0.1-0.9,0-1.4C4,6.5,4.2,6,4.5,5.5
|
||||
c0.1-0.1,0.1-0.2,0.2-0.3c0,0,0-0.1,0-0.1c-0.1-0.3-0.1-0.6-0.1-1c0-0.4,0.1-0.8,0.3-1.2C5,2.6,5.2,2.5,5.5,2.5
|
||||
c0.3,0,0.8,0.1,1.2,0.3c0.4,0.2,0.8,0.4,1.2,0.7c0.5-0.1,1-0.2,1.6-0.2c0.4,0,1.6,0,2,0c0.5,0,1,0.1,1.4,0.2l0.2-0.1
|
||||
c0.2-0.1,0.5-0.3,0.7-0.4c0.4-0.2,0.7-0.3,1.1-0.3c0.1,0,0.2,0,0.3,0c0.3,0,0.5,0.1,0.6,0.4c0.2,0.6,0.4,1.2,0.2,2l0,0.1
|
||||
c0,0.1,0,0.2-0.1,0.3c0.5,0.6,0.7,1.3,0.8,2.1c0,0.3,0,0.6,0,0.9c0,0.5-0.1,1-0.2,1.4c-0.2,0.5-0.4,1-0.7,1.4
|
||||
c-0.3,0.4-0.7,0.6-1,0.8c-0.6,0.3-1.2,0.6-1.8,0.7c0.2,0.4,0.3,0.8,0.3,1.3c0,0,0,0,0,0c0,0.8,0,3.2,0,3.2c0,0.3-0.2,0.5-0.5,0.5
|
||||
L7.8,17.5L7.8,17.5z M7.8,15.1c0.1,0,0.2,0,0.3,0.1c0.1,0.1,0.2,0.2,0.2,0.3l0,1l4.2,0c0-0.7,0-2.1,0-2.7c0-0.4-0.1-0.7-0.2-1
|
||||
c-0.1-0.2-0.1-0.3-0.2-0.3l0.3-0.4l0,0L12,12.5c-0.1-0.1-0.1-0.3-0.1-0.5c0.1-0.2,0.2-0.3,0.4-0.3l0.3,0c0.7-0.1,1.3-0.3,1.9-0.7
|
||||
c0.3-0.2,0.6-0.4,0.7-0.6c0.2-0.3,0.4-0.6,0.5-1C15.9,9,15.9,8.6,16,8.1c0-0.2,0-0.5,0-0.7c-0.1-0.7-0.3-1.2-0.7-1.7
|
||||
c-0.2-0.2-0.2-0.4-0.1-0.6c0-0.1,0.1-0.2,0.1-0.3l0-0.1c0.1-0.4,0-0.8-0.1-1.2c0,0,0,0-0.1,0c-0.2,0-0.5,0.1-0.7,0.2
|
||||
c-0.2,0.1-0.4,0.2-0.7,0.4l-0.4,0.2c-0.1,0.1-0.3,0.1-0.4,0.1c-0.5-0.1-0.9-0.2-1.4-0.2c-0.4,0-1.5,0-1.9,0C9,4.1,8.5,4.2,8,4.4
|
||||
c-0.1,0-0.3,0-0.5-0.1C7.1,4,6.7,3.8,6.3,3.6C6.1,3.5,5.9,3.5,5.7,3.5C5.6,3.7,5.6,4,5.6,4.2c0,0.3,0,0.5,0.1,0.7
|
||||
c0,0.1,0,0.1,0.1,0.2c0.1,0.2,0,0.4-0.1,0.5L5.5,5.8C5.5,5.9,5.4,6,5.3,6.1C5.1,6.4,4.9,6.8,4.8,7.3c-0.1,0.4,0,0.8,0,1.1
|
||||
c0,0.4,0.1,0.8,0.2,1.2c0.1,0.4,0.3,0.7,0.5,0.9C5.8,10.7,6,10.9,6.2,11c0.5,0.3,1,0.5,1.6,0.6c0.2,0,0.7,0.1,0.7,0.1
|
||||
c0.1,0,0.3,0.1,0.3,0.2c0.1,0.1,0.1,0.2,0.1,0.4c0,0.1-0.3,1-0.9,1.4c-0.7,0.4-1.8,0.5-2.5-0.3c-0.1-0.1-0.2-0.2-0.3-0.3
|
||||
c-0.2-0.3-0.6-0.8-1-1c-0.1,0-0.1,0-0.1,0c0,0,0,0-0.1,0.1c0,0.2,0,0.4,0.1,0.6c0.1,0.1,0.2,0.2,0.3,0.4c0.2,0.3,0.4,0.5,0.5,0.8
|
||||
c0.4,0.8,1,1.1,1.2,1.2C6.6,15.2,7.4,15.1,7.8,15.1C7.7,15.1,7.7,15.1,7.8,15.1z"/>
|
||||
</g>
|
||||
</svg>
|
||||
<span class="icon-github">
|
||||
</span>
|
||||
<span class="label-align">{{format-sha repo.default_branch.last_build.commit.sha}}</span>
|
||||
</a>
|
||||
|
@ -75,21 +41,7 @@
|
|||
|
||||
<div class="row-item fade-out">
|
||||
<div class="one-line">
|
||||
<span class="icon">
|
||||
<svg viewBox="0 0 20 20">
|
||||
<g id="Cal">
|
||||
<path fill="#A7AEAE" d="M16.7,2.5H3.3C3,2.5,2.8,2.7,2.8,3V17c0,0.3,0.2,0.5,0.5,0.5h13.4c0.3,0,0.5-0.2,0.5-0.5V3
|
||||
C17.2,2.7,17,2.5,16.7,2.5z M16.2,3.4v3.1H3.8V3.4H16.2z M3.8,16.6v-9h12.5v9H3.8z"/>
|
||||
<path fill="#A7AEAE" d="M8.7,13.4c-0.1,0-0.3,0-0.4,0c0.2-0.2,0.4-0.4,0.5-0.6c0.2-0.2,0.3-0.4,0.5-0.6c0.1-0.2,0.2-0.4,0.3-0.6
|
||||
c0.1-0.2,0.1-0.4,0.1-0.6c0-0.2,0-0.4-0.1-0.6c-0.1-0.2-0.2-0.3-0.3-0.4C9.2,10,9.1,9.9,8.9,9.8C8.7,9.7,8.5,9.7,8.3,9.7
|
||||
C8,9.7,7.7,9.8,7.5,9.9C7.2,10,7,10.2,6.8,10.4L7.3,11c0.1-0.1,0.2-0.2,0.4-0.3c0.1-0.1,0.3-0.1,0.4-0.1c0.2,0,0.4,0.1,0.5,0.2
|
||||
c0.1,0.1,0.2,0.3,0.2,0.5c0,0.2,0,0.3-0.1,0.5c-0.1,0.2-0.2,0.4-0.4,0.6c-0.2,0.2-0.4,0.4-0.6,0.7c-0.2,0.2-0.5,0.5-0.8,0.8v0.6
|
||||
H10v-0.9H9.1C9,13.4,8.8,13.4,8.7,13.4z"/>
|
||||
<path fill="#A7AEAE" d="M10.6,10.7h2c-0.2,0.3-0.4,0.6-0.5,0.8c-0.1,0.3-0.3,0.6-0.4,0.8c-0.1,0.3-0.2,0.6-0.2,0.9
|
||||
c0,0.3-0.1,0.7-0.1,1h1c0-0.4,0-0.8,0.1-1.2c0-0.3,0.1-0.7,0.2-0.9c0.1-0.3,0.2-0.6,0.4-0.9c0.2-0.3,0.4-0.6,0.6-0.9V9.8h-3.1
|
||||
V10.7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
<span class="icon-calendar">
|
||||
</span>
|
||||
<span class="build-status label-align">{{repo.default_branch.last_build.state}}</span>
|
||||
<span class="finished-at label-align">{{format-time repo.default_branch.last_build.finished_at}}</span>
|
||||
|
|
|
@ -8,35 +8,14 @@
|
|||
{{/if}}
|
||||
|
||||
<p class="tile-title float-right">
|
||||
<span class="icon">
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="-289 191 20 20" style="enable-background:new -289 191 20 20;" xml:space="preserve">
|
||||
<path fill="#A5ACAD" class="st0" d="M-272.4,198.4C-272.4,198.4-272.4,198.4-272.4,198.4l-3.4,0l0.3-3.3c0-0.3-0.2-0.6-0.5-0.6
|
||||
c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.4l-3.2,0l0.3-3.6c0-0.3-0.2-0.6-0.5-0.6c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.7l-3.2,0
|
||||
c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5c0,0,0,0,0,0l3.1,0l-0.2,2.9l-3.5,0c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5
|
||||
c0,0,0,0,0,0l3.4,0l-0.3,3.3c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.4l3.2,0l-0.3,3.6
|
||||
c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.7l3.2,0c0.3,0,0.5-0.2,0.5-0.6c0-0.3-0.2-0.5-0.5-0.5c0,0,0,0,0,0
|
||||
l-3.1,0l0.2-2.9l3.5,0c0.3,0,0.5-0.2,0.5-0.6C-271.8,198.7-272.1,198.4-272.4,198.4z M-277.2,202.4l-3.2,0l0.2-2.9l3.2,0
|
||||
L-277.2,202.4z"/>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="icon-hash"></span>
|
||||
{{#if job.repo.slug}}
|
||||
{{#link-to "job" job.repo job}}<span class="label-align">{{job.number}}</span>{{/link-to}}
|
||||
{{/if}}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span class="icon">
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="-289 191 20 20" style="enable-background:new -289 191 20 20;" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#A5ACAD" class="st0" d="M-278.9,207.7c-3.7,0-6.7-3-6.7-6.7s3-6.7,6.7-6.7s6.7,3,6.7,6.7S-275.2,207.7-278.9,207.7z M-278.9,195.4
|
||||
c-3.1,0-5.6,2.5-5.6,5.6s2.5,5.6,5.6,5.6c3.1,0,5.6-2.5,5.6-5.6S-275.8,195.4-278.9,195.4z"/>
|
||||
<path fill="#A5ACAD" class="st0" d="M-276.7,203.1c-0.1,0-0.2,0-0.3-0.1l-2.4-1.5c-0.2-0.1-0.2-0.3-0.2-0.4v-3.8c0-0.3,0.2-0.5,0.5-0.5
|
||||
s0.5,0.2,0.5,0.5v3.5l2.1,1.4c0.2,0.2,0.3,0.5,0.2,0.7C-276.4,203-276.5,203.1-276.7,203.1z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="icon-clock"></span>
|
||||
<span class="label-align">Queued</span>
|
||||
</p>
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<div class="tile {{repo.lastBuildState}}">
|
||||
<h2 class="tile-title {{repo.lastBuildState}}">
|
||||
{{#if repo.slug}}
|
||||
{{#link-to "repo" repo}}
|
||||
{{status-icon status=repo.lastBuildState}}
|
||||
{{#link-to "repo" repo}}
|
||||
<span class="label-align">{{repo.slug}}</span>
|
||||
{{/link-to}}
|
||||
{{/if}}
|
||||
|
@ -11,8 +11,8 @@
|
|||
{{#if repo.slug}}
|
||||
{{#if repo.lastBuildId}}
|
||||
<p class="tile-title float-right {{repo.lastBuildState}}">
|
||||
{{#link-to "build" repo repo.lastBuildId}}
|
||||
<span class="icon-hash"></span>
|
||||
{{#link-to "build" repo repo.lastBuildId}}
|
||||
<span class="label-align">{{repo.lastBuildNumber}}</span>
|
||||
{{/link-to}}
|
||||
</p>
|
||||
|
|
|
@ -1,15 +1,35 @@
|
|||
{{#if isEmpty}}
|
||||
<svg viewBox="0 0 20 20"><path fill="#A7AEAE" d="M16.9 9.4h-3.5c-.3-1.6-1.7-2.8-3.4-2.8S6.9 7.8 6.6 9.4H3.1c-.3 0-.6.3-.6.6s.3.6.6.6h3.5c.3 1.6 1.7 2.8 3.4 2.8s3.1-1.2 3.4-2.8h3.5c.3 0 .6-.3.6-.6s-.3-.6-.6-.6zM10 12.2c-1.2 0-2.2-1-2.2-2.2 0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2 0 1.2-1 2.2-2.2 2.2z"/></svg>
|
||||
<svg version="1.1" id="icon-nobuilds" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 15 15" xml:space="preserve">
|
||||
<g id="nobuilds">
|
||||
<circle cx="7.5" cy="7.5" r="7"/>
|
||||
</g>
|
||||
</svg>
|
||||
{{else}}
|
||||
{{#if isPush}}
|
||||
<svg viewBox="0 0 20 20"><path fill="#A7AEAE" d="M16.9 9.4h-3.5c-.3-1.6-1.7-2.8-3.4-2.8S6.9 7.8 6.6 9.4H3.1c-.3 0-.6.3-.6.6s.3.6.6.6h3.5c.3 1.6 1.7 2.8 3.4 2.8s3.1-1.2 3.4-2.8h3.5c.3 0 .6-.3.6-.6s-.3-.6-.6-.6zM10 12.2c-1.2 0-2.2-1-2.2-2.2 0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2 0 1.2-1 2.2-2.2 2.2z"/></svg>
|
||||
<svg version="1.1" id="icon-push" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 15 15" xml:space="preserve">
|
||||
<g id="push">
|
||||
<circle cx="7.505" cy="7.354" r="2.854"/>
|
||||
<line x1="14.5" y1="7.354" x2="10.349" y2="7.354"/>
|
||||
<line x1="4.651" y1="7.354" x2="0.5" y2="7.354"/>
|
||||
</g>
|
||||
</svg>
|
||||
{{/if}}
|
||||
|
||||
{{#if isPR}}
|
||||
<svg viewBox="0 0 20 20"><g fill="#A7AEAE"><path d="M8 4.5C8 3.1 6.9 2 5.5 2S3 3.1 3 4.5c0 1.1.8 2.1 1.8 2.4v6.5c-1 .3-1.8 1.2-1.8 2.4 0 1.4 1.1 2.5 2.5 2.5S8 17 8 15.7c0-1.1-.8-2.1-1.8-2.4V6.8C7.2 6.6 8 5.6 8 4.5zm-3.7 0c0-.6.5-1.2 1.2-1.2s1.2.5 1.2 1.2-.6 1.1-1.2 1.1-1.2-.5-1.2-1.1zm2.4 11.2c0 .6-.5 1.2-1.2 1.2s-1.2-.5-1.2-1.2.5-1.2 1.2-1.2 1.2.5 1.2 1.2zM15.1 13.3v-6c0-1-.3-1.9-.9-2.4-1-.9-2.4-.8-2.4-.8h-1l1-1c.3-.3.3-.7 0-.9s-.7-.3-.9 0l-2 2c-.1 0-.2.1-.3.2v.4c0 .1.1.2.2.3.3.3.8.9 2 2 .1.1.3.2.5.2s.3-.1.5-.2c.3-.3.3-.7 0-.9l-1-1h1s.9 0 1.5.5c.3.3.5.8.5 1.5v6.1c-1 .3-1.8 1.2-1.8 2.4 0 1.4 1.1 2.5 2.5 2.5S17 17 17 15.7c0-1.2-.8-2.1-1.9-2.4zm-.6 3.5c-.6 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2 1.2.5 1.2 1.2-.6 1.2-1.2 1.2z"/></g></svg>
|
||||
<svg version="1.1" id="icon-pullrequest" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 -1 16 17" xml:space="preserve">
|
||||
<g id="pullrequest">
|
||||
<circle cx="3.299" cy="2.344" r="1.699"/>
|
||||
<circle cx="3.299" cy="12.801" r="1.699"/>
|
||||
<circle cx="11.697" cy="12.801" r="1.699"/>
|
||||
<line x1="3.299" y1="4.044" x2="3.299" y2="11.102"/>
|
||||
<path d="M8.752,0.5c0,0-1.946,1.946-1.946,1.975h2.396c0,0,2.483-0.152,2.483,2.462s0,6.143,0,6.143"/>
|
||||
<path d="M8.752,4.436c0,0-1.946-1.946-1.946-1.975"/>
|
||||
</g>
|
||||
</svg>
|
||||
{{/if}}
|
||||
|
||||
{{#if isAPI}}
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 170.08 170.08"><path fill="#A7AEAE" d="M137.765 132.663H32.315c-6.803 0-12.756-5.953-12.756-13.607V72.284c0-6.803 5.952-13.606 12.755-13.606h2.55v-8.504c0-6.803 5.954-13.606 12.757-13.606h21.26c6.803 0 12.756 5.953 12.756 13.606v8.504h5.103v-8.504c0-6.803 5.954-13.606 12.757-13.606h22.11c6.804 0 12.756 5.953 12.756 13.606v8.504h4.252c6.804 0 12.756 5.953 12.756 13.606v47.622c-1.7 6.804-6.803 12.757-13.605 12.757zm-105.45-62.93s-1.7.85-1.7 2.55v47.623s0 2.552 1.7 2.552h105.45s1.7-.85 1.7-2.552V72.284s0-2.55-1.7-2.55H127.56c-3.4 0-5.102-2.552-5.102-5.104V50.174s0-2.55-1.7-2.55h-22.11s-1.7.85-1.7 2.55V63.78c0 3.4-2.553 5.102-5.105 5.102H75.686c-3.4 0-5.103-2.55-5.103-5.102V50.174s0-2.55-1.7-2.55h-21.26s-1.702.85-1.702 2.55V63.78c0 3.4-2.55 5.102-5.1 5.102h-8.505v.85z"/></svg>
|
||||
<svg version="1.1" id="icon-api" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 15 15" xml:space="preserve">
|
||||
<g><path id="api" d="M13.676,5.327h-1.153V3.156c0-0.494-0.329-0.906-0.824-0.906H9.147c-0.412,0-0.824,0.412-0.824,0.906 v2.171H6.429V3.156c0-0.494-0.329-0.906-0.824-0.906h-2.47c-0.412,0-0.824,0.412-0.824,0.906v2.171H1.324C0.912,5.327,0.5,5.739,0.5,6.233v5.076c0,0.494,0.329,0.906,0.824,0.906h12.353c0.412,0,0.824-0.412,0.824-0.906V6.233C14.5,5.739,14.171,5.327,13.676,5.327z"/></g> </svg>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
|
|
@ -10,17 +10,7 @@
|
|||
{{/if}}
|
||||
|
||||
<p class="tile-title float-right">
|
||||
<span class="icon">
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="-289 191 20 20" style="enable-background:new -289 191 20 20;" xml:space="preserve">
|
||||
<path fill="#A5ACAD" class="st0" d="M-272.4,198.4C-272.4,198.4-272.4,198.4-272.4,198.4l-3.4,0l0.3-3.3c0-0.3-0.2-0.6-0.5-0.6
|
||||
c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.4l-3.2,0l0.3-3.6c0-0.3-0.2-0.6-0.5-0.6c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.7l-3.2,0
|
||||
c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5c0,0,0,0,0,0l3.1,0l-0.2,2.9l-3.5,0c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5
|
||||
c0,0,0,0,0,0l3.4,0l-0.3,3.3c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.4l3.2,0l-0.3,3.6
|
||||
c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.7l3.2,0c0.3,0,0.5-0.2,0.5-0.6c0-0.3-0.2-0.5-0.5-0.5c0,0,0,0,0,0
|
||||
l-3.1,0l0.2-2.9l3.5,0c0.3,0,0.5-0.2,0.5-0.6C-271.8,198.7-272.1,198.4-272.4,198.4z M-277.2,202.4l-3.2,0l0.2-2.9l3.2,0
|
||||
L-277.2,202.4z"/>
|
||||
</svg>
|
||||
<span class="icon-hash">
|
||||
</span>
|
||||
{{#if job.repo.slug}}
|
||||
{{#link-to "job" job.repo job}}<span class="label-align">{{job.number}}</span>{{/link-to}}
|
||||
|
@ -28,16 +18,7 @@
|
|||
</p>
|
||||
|
||||
<p>
|
||||
<span class="icon">
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="-289 191 20 20" style="enable-background:new -289 191 20 20;" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#A5ACAD" class="st0" d="M-278.9,207.7c-3.7,0-6.7-3-6.7-6.7s3-6.7,6.7-6.7s6.7,3,6.7,6.7S-275.2,207.7-278.9,207.7z M-278.9,195.4
|
||||
c-3.1,0-5.6,2.5-5.6,5.6s2.5,5.6,5.6,5.6c3.1,0,5.6-2.5,5.6-5.6S-275.8,195.4-278.9,195.4z"/>
|
||||
<path fill="#A5ACAD" class="st0" d="M-276.7,203.1c-0.1,0-0.2,0-0.3-0.1l-2.4-1.5c-0.2-0.1-0.2-0.3-0.2-0.4v-3.8c0-0.3,0.2-0.5,0.5-0.5
|
||||
s0.5,0.2,0.5,0.5v3.5l2.1,1.4c0.2,0.2,0.3,0.5,0.2,0.7C-276.4,203-276.5,203.1-276.7,203.1z"/>
|
||||
</g>
|
||||
</svg>
|
||||
<span class="icon-clock">
|
||||
</span>
|
||||
<span class="label-align">
|
||||
Duration:
|
||||
|
|
|
@ -1,53 +1,39 @@
|
|||
|
||||
{{#if isEmpty}}
|
||||
<svg version="1.1" id="Layer_1" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
||||
<g id="NoBuild">
|
||||
<g>
|
||||
<path fill="#A7AEAE" d="M10,16.2c-3.4,0-6.1-2.8-6.1-6.2S6.6,3.8,10,3.8s6.1,2.8,6.1,6.2S13.4,16.2,10,16.2z M10,5.2
|
||||
c-2.7,0-4.9,2.2-4.9,4.8s2.2,4.8,4.9,4.8s4.9-2.2,4.9-4.8S12.7,5.2,10,5.2z"/>
|
||||
</g>
|
||||
<svg version="1.1" id="icon-nobuilds" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 -1 17 17" xml:space="preserve">
|
||||
<g id="nobuilds">
|
||||
<circle cx="7.5" cy="7.5" r="7"/>
|
||||
</g>
|
||||
</svg>
|
||||
{{else}}
|
||||
{{#if hasPassed}}
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
||||
<g id="Passed">
|
||||
<path fill="#A7AEAE" d="M9.6,14.4c-0.1,0-0.3-0.1-0.4-0.1l-4-3.3c-0.3-0.2-0.3-0.6-0.1-0.9S5.8,9.8,6.1,10l3.4,2.8l4.9-7.5
|
||||
C14.6,5,15,4.9,15.3,5.1c0.3,0.2,0.4,0.6,0.2,0.9l-5.3,8.1C10.1,14.3,9.9,14.4,9.6,14.4C9.7,14.4,9.7,14.4,9.6,14.4z"/>
|
||||
</g>
|
||||
<svg version="1.1" id="icon-passed" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 -1 17 16" xml:space="preserve">
|
||||
<g><polyline style="stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;"id="passed" points="14.5,1.5 6.499,13.716 0.5,8.78 "/></g>
|
||||
</svg>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasFailed}}
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
||||
<g id="Failed">
|
||||
<path fill="#A7AEAE" d="M10.9,10l3.9-3.9c0.2-0.2,0.2-0.6,0-0.9c-0.2-0.2-0.6-0.2-0.9,0L10,9.1L6.1,5.2c-0.2-0.2-0.6-0.2-0.9,0
|
||||
c-0.2,0.2-0.2,0.6,0,0.9L9.1,10l-3.9,3.9c-0.2,0.2-0.2,0.6,0,0.9C5.3,14.9,5.5,15,5.6,15s0.3-0.1,0.4-0.2l3.9-3.9l3.9,3.9
|
||||
c0.1,0.1,0.3,0.2,0.4,0.2c0.2,0,0.3-0.1,0.4-0.2c0.2-0.2,0.2-0.6,0-0.9L10.9,10z"/>
|
||||
<svg version="1.1" id="icon-failed" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 -1 17 17" xml:space="preserve">
|
||||
<g id="failed">
|
||||
<line x1="0.5" y1="0.5" x2="14.5" y2="14.5"/>
|
||||
<line x1="14.5" y1="0.5" x2="0.5" y2="14.5"/>
|
||||
</g>
|
||||
</svg>
|
||||
{{/if}}
|
||||
|
||||
{{#if wasCanceled}}
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
||||
<g id="Cancelled">
|
||||
<path fill="#A7AEAE" d="M10,3.3c-3.7,0-6.6,3-6.6,6.7s3,6.7,6.6,6.7s6.6-3,6.6-6.7S13.7,3.3,10,3.3z M15.4,10
|
||||
c0,1.3-0.5,2.5-1.3,3.4L6.5,6C7.5,5.2,8.7,4.7,10,4.7C13,4.7,15.4,7,15.4,10z M4.6,10c0-1.2,0.4-2.2,1-3.1l7.5,7.4
|
||||
c-0.9,0.7-2,1-3.2,1C7,15.3,4.6,13,4.6,10z"/>
|
||||
<svg version="1.1" id="icon-canceled" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 -1 17 17" xml:space="preserve">
|
||||
<g id="canceled">
|
||||
<line x1="2.542" y1="2.938" x2="12.306" y2="12.551"/>
|
||||
<circle cx="7.5" cy="7.5" r="7"/>
|
||||
</g>
|
||||
</svg>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasErrored}}
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px"
|
||||
viewBox="-519 391 20 20" style="enable-background:new -518 391 20 20;" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#A5ACAD" d="M-508.9,403.2c-0.3,0-0.6-0.3-0.6-0.6V395c0-0.3,0.3-0.6,0.6-0.6s0.6,0.3,0.6,0.6v7.6
|
||||
C-508.2,402.9-508.5,403.2-508.9,403.2z"/>
|
||||
<circle fill="#A5ACAD" cx="-508.9" cy="406.5" r="1.2"/>
|
||||
<svg version="1.1" id="icon-errored" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 -1 16 17" xml:space="preserve">
|
||||
<g id="errored">
|
||||
<circle cx="7.5" cy="13.986" r="0.97"/>
|
||||
<line x1="7.5" y1="0.5" x2="7.5" y2="10.646"/>
|
||||
</g>
|
||||
</svg>
|
||||
{{/if}}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<figure class="team-image">
|
||||
<img class="front" src="../images/team/team-{{member.image}}.png" alt="">
|
||||
<img class="back" src="../images/team/{{member.image}}-animated.gif" alt="">
|
||||
<img class="front" src="../images/team/team-{{member.image}}.png" alt="{{member.name}}">
|
||||
<img class="back" src="../images/team/{{member.image}}-animated.gif" alt="{{member.name}} gif">
|
||||
</figure>
|
||||
<h3 class="team-name">{{member.name}}</h3>
|
||||
<p class="team-title">{{member.title}}</p>
|
||||
|
@ -8,7 +8,7 @@
|
|||
<p class="team-handle"><a href="https://twitter.com/{{member.handle}}" title="{{member.name}} on Twitter">@{{member.handle}}</a></p>
|
||||
{{/if}}
|
||||
<div class="team-flags">
|
||||
<img src="../images/pro-landing/flag-{{member.nationality}}.svg" alt="flag {{member.nationality}}">
|
||||
<img src="../images/pro-landing/flag-{{member.nationality}}.svg" alt="flag {{member.nationality}}" title="is from {{member.nationality}}">
|
||||
<span class="flag-divider">/</span>
|
||||
<img src="../images/pro-landing/flag-{{member.country}}.svg" alt="flag {{member.country}}">
|
||||
<img src="../images/pro-landing/flag-{{member.country}}.svg" alt="flag {{member.country}}" title="lives in {{member.country}}">
|
||||
</div>
|
||||
|
|
|
@ -22,9 +22,6 @@
|
|||
<h2>Add .travis.yml file to your repository</h2>
|
||||
<p>In order for Travis CI to build your project, you need to tell the systems a little bit about it. You'll need to add a file named .travis.yml to the root of your repository.</p>
|
||||
<p>If .travis.yml is not in the repository, is misspelled or is not valid YAML, Travis CI will ignore it.</p>
|
||||
<p class="note note--info">
|
||||
<strong>Note:</strong> The <code>language</code> value is case-sensitive. If you set <code>language: C</code>, for example, your project will be considered a Ruby project.
|
||||
</p>
|
||||
<p>Here you can find some of our basic <a href="http://docs.travis-ci.com/user/language-specific/" title="">language examples</a>.</p>
|
||||
</div>
|
||||
</li>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{{#travis-layout layoutName="layouts/landing-page"}}
|
||||
<div id="landing" class="landing">
|
||||
<div class="row hero z-1">
|
||||
<div class="landing-centered-wrapper">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="large-12 columns" id="hero-copy">
|
||||
<h1>Test and Deploy with Confidence</h1>
|
||||
<p>Easily sync your GitHub projects with Travis CI<br class="mobile-break"> and you’ll be testing your code in minutes!</p>
|
||||
|
@ -16,26 +16,26 @@
|
|||
</div>
|
||||
<div class="large-12 columns laptop-wrapper">
|
||||
<div id="laptop">
|
||||
<img src="../images/landing-page/laptop.png">
|
||||
</div>
|
||||
<img src="../images/landing-page/laptop.png" alt="Travis CI screenshot">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="row oss-testing">
|
||||
<div class="landing-centered-wrapper">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="large-12 columns">
|
||||
<h2>The home of<br class="mobile-break"> open source testing</h2>
|
||||
<p>Over 200k open source projects<br class="mobile-break"> and 126k users are testing on Travis CI.</p>
|
||||
<img src="../images/landing-page/customer-numbers.svg">
|
||||
</div>
|
||||
<p>Over 300k open source projects<br class="mobile-break"> and 235k users are testing on Travis CI.</p>
|
||||
<img src="../images/landing-page/customer-numbers.svg" alt="Open source project numbers" class="os-numbers">
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="row customers">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="medium-6 columns">
|
||||
<img src="../images/landing-page/customers-temp-together.svg">
|
||||
<img src="../images/landing-page/customers-temp-together.svg" alt="customer logos">
|
||||
</div>
|
||||
<div class="medium-6 columns">
|
||||
<p class="left">Some pretty awesome companies<br> and projects are using us.</p>
|
||||
|
@ -43,37 +43,17 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row recent-builds">
|
||||
<div class="landing-centered-wrapper">
|
||||
<div class="medium-6 columns recent-builds-text">
|
||||
<div class="landing-vert-center-m">
|
||||
<h2>Every minute there’s<br>a new build being run</h2>
|
||||
<p>Here are just a few projects<br>currently running on Travis CI</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="medium-6 columns">
|
||||
<ul class="landing-rows">
|
||||
{{#each repos as |repo|}}
|
||||
{{landing-row repo=repo}}
|
||||
{{else}}
|
||||
{{loading-indicator}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row free-for-oss">
|
||||
<div class="landing-centered-wrapper">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="large-12 columns">
|
||||
<h1>Testing your open source<br class="mobile-no-break"> project is 10000% free</h1>
|
||||
<p><span class="bold-italic">Seriously. Always.</span> We like to think of it as our way of giving<br>back to a community that gives us so much as well.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="row private-repos">
|
||||
<div class="landing-centered-wrapper">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="medium-6 columns mobile-envelope">
|
||||
<img src="../images/landing-page/envelope.svg">
|
||||
</div>
|
||||
|
@ -85,13 +65,13 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="medium-6 columns desktop-envelope">
|
||||
<img src="../images/landing-page/envelope.svg">
|
||||
</div>
|
||||
<img src="../images/landing-page/envelope.svg" alt="envelope">
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="row features-list">
|
||||
<div class="landing-centered-wrapper">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="large-6 columns features-callouts">
|
||||
<div class="landing-vert-center-s">
|
||||
<div class="medium-6 columns">
|
||||
|
@ -125,16 +105,16 @@
|
|||
<li>Did we say free for Open Source already?</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="row build-flows">
|
||||
<div class="landing-centered-wrapper">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="large-12 columns">
|
||||
<h2>Branch build flow</h2>
|
||||
<div class="branch-bf">
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-1.svg">
|
||||
<img src="../images/landing-page/push-icon-1.svg" alt="GitHub logo">
|
||||
<p>You push your<br>code to GitHub</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -142,7 +122,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-2.svg">
|
||||
<img src="../images/landing-page/push-icon-2.svg" alt="Trigger build">
|
||||
<p>GitHub triggers<br>Travis CI to build</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -150,7 +130,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-3.svg">
|
||||
<img src="../images/landing-page/push-icon-3.svg" alt="Travis logo">
|
||||
<p>Hooray!<br>Your build passes!</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -158,7 +138,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-4.svg">
|
||||
<img src="../images/landing-page/push-icon-4.svg" alt="Heroku logo">
|
||||
<p>Travis CI deploys<br>to Heroku</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -166,14 +146,14 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-5.svg">
|
||||
<img src="../images/landing-page/push-icon-5.svg" alt="Slack logo">
|
||||
<p>Travis CI tells the<br>team all is well</p>
|
||||
</div>
|
||||
</div>
|
||||
<h2 id="pr-bf-margin">Pull request build flow</h2>
|
||||
<div class="branch-bf">
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/pull-icon-1.svg">
|
||||
<img src="../images/landing-page/pull-icon-1.svg" alt="PR icon">
|
||||
<p>A pull request<br>is created</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -181,7 +161,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/pull-icon-2.svg">
|
||||
<img src="../images/landing-page/pull-icon-2.svg" alt="Check test">
|
||||
<p>GitHub tells Travis CI the build is mergeable</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -189,7 +169,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/push-icon-3.svg">
|
||||
<img src="../images/landing-page/push-icon-3.svg" alt="Tavis logo">
|
||||
<p>Hooray!<br>Your build passes!</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -197,7 +177,7 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/pull-icon-4.svg">
|
||||
<img src="../images/landing-page/pull-icon-4.svg" alt="Build status">
|
||||
<p>Travis CI updates the PR that it passed</p>
|
||||
</div>
|
||||
<div class="divider-line-horizontal">
|
||||
|
@ -205,22 +185,22 @@
|
|||
<div class="divider-line-vertical">
|
||||
</div>
|
||||
<div class="bf">
|
||||
<img src="../images/landing-page/pull-icon-5.svg">
|
||||
<img src="../images/landing-page/pull-icon-5.svg" alt="Merge icon">
|
||||
<p>You merge in<br>the PR goodness</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="row user-testimonials">
|
||||
<div class="landing-centered-wrapper">
|
||||
<section class="landing-centered-wrapper">
|
||||
<div class="medium-6 columns">
|
||||
<h2>Some people have said some pretty nice things about us</h2>
|
||||
</div>
|
||||
<div class="medium-6 columns">
|
||||
<div class="small-3 columns">
|
||||
<img src="../images/landing-page/dhh.png" class="home-avatar">
|
||||
<img src="../images/landing-page/dhh.png" class="home-avatar" alt="image DHH">
|
||||
</div>
|
||||
<div class="small-9 columns">
|
||||
<p>Travis CI makes it so much easier for us to coordinate the thousands of commits and contributors that flow through the Rails code base. The test suite for such a large project is vast, and we wouldn’t be catching issues as quickly or smoothly without the help of Travis.</p>
|
||||
|
@ -229,7 +209,7 @@
|
|||
</div>
|
||||
|
||||
<div class="small-3 columns">
|
||||
<img src="../images/landing-page/chris.png" class="home-avatar">
|
||||
<img src="../images/landing-page/chris.png" class="home-avatar" alt="image Chris Aniszczyk">
|
||||
</div>
|
||||
<div class="small-9 columns">
|
||||
<p>We love Travis CI at @TwitterOSS and use it for the majority of our open source projects on GitHub. Travis CI is simple to use, we love their API to build tooling and adore the new container infrastructure for speedier builds.</p>
|
||||
|
@ -238,7 +218,7 @@
|
|||
</div>
|
||||
|
||||
<div class="small-3 columns">
|
||||
<img src="../images/landing-page/alex.png" class="home-avatar">
|
||||
<img src="../images/landing-page/alex.png" class="home-avatar" alt="Alex Gaynor">
|
||||
</div>
|
||||
<div class="small-9 columns">
|
||||
<p>Not only is Travis CI the best way to test your software, it is the right way. rm -rf jenkins && touch .travis.yml</p>
|
||||
|
@ -246,7 +226,7 @@
|
|||
<p class="title">PyPy and Python Core Team Member</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
{{/travis-layout}}
|
||||
|
|
|
@ -14,13 +14,13 @@
|
|||
<div class="logos--light">
|
||||
<img src="../images/pro-landing/TravisCI-logolockup-spacingexample.svg" alt="Travis CI logo on light background">
|
||||
</div>
|
||||
<figcaption class="text-small">Dark logo on light background <a href="images/logos/TravisCI-Full-Color.eps" title="" download="travis-ci-logo-light-bg.eps">.eps</a> or <a href="images/logos/TravisCI-Full-Color.png" title="" download="travis-ci-logo-light-bg.png">.png</a></figcaption>
|
||||
<figcaption class="text-small">Dark logo on light background <a href="images/logos/TravisCI-Full-Color.eps" title="" download="TravisCI-Full-Color.eps">.eps</a> or <a href="images/logos/TravisCI-Full-Color.png" title="" download="TravisCI-Full-Color.png">.png</a></figcaption>
|
||||
</figure>
|
||||
<figure>
|
||||
<div class="logos--dark">
|
||||
<img src="../images/pro-landing/TravisCI-logolockup-spacingexample-darkbg.svg" alt="Travis CI logo on dark background">
|
||||
</div>
|
||||
<figcaption class="text-small">Light logo on dark background <a href="images/logos/TravisCI-Full-Color.eps" title="" download="travis-ci-logo-dark-bg.eps">.eps</a> or <a href="images/logos/TravisCI-Full-Color.png" title="" download="travis-ci-logo-dark-bg.png">.png</a></figcaption>
|
||||
<figcaption class="text-small">Light logo on dark background <a href="images/logos/TravisCI-Full-Color-light.eps" title="" download="TravisCI-Full-Color-light.eps">.eps</a> or <a href="images/logos/TravisCI-Full-Color-light.png" title="" download="TravisCI-Full-Color-light.png">.png</a></figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -46,19 +46,19 @@
|
|||
<ul class="list--colors">
|
||||
<li>
|
||||
<div class="colors-sample--teal" aria-hidden="true"></div>
|
||||
<p class="text-small"><strong>Turbo Teal</strong> #40A3AD</p>
|
||||
<p class="text-small"><strong>Oxide blue</strong> #3EAAAF</p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="colors-sample--green" aria-hidden="true"></div>
|
||||
<p class="text-small"><strong>Passing green</strong> #44A662</p>
|
||||
<p class="text-small"><strong>Turf green</strong> #39AA56</p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="colors-sample--yellow" aria-hidden="true"></div>
|
||||
<p class="text-small"><strong>Building yellow</strong> #E5DA3F</p>
|
||||
<p class="text-small"><strong>Canary yellow</strong> #EDDE3F</p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="colors-sample--red" aria-hidden="true"></div>
|
||||
<p class="text-small"><strong>Failing red</strong> #D94341</p>
|
||||
<p class="text-small"><strong>Brick red</strong> #DB4545</p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="colors-sample--grey" aria-hidden="true"></div>
|
||||
|
|
|
@ -11,30 +11,10 @@
|
|||
</header>
|
||||
|
||||
<div class="tabs--owner">
|
||||
{{!-- <nav class="tabnav tabnav--owner row" role="tablist">
|
||||
<ul class="tab">
|
||||
<li role="presentational">{{#link-to 'owner.repositories' owner.login}}All Repositories{{/link-to}}</li>
|
||||
<li role="presentational">{{#link-to 'owner.running' owner.login}}Running Builds{{/link-to}}</li>
|
||||
<li role="presentational"><a href="#" title="" role="tab">Members</a></li>
|
||||
</ul>
|
||||
</nav> --}}
|
||||
|
||||
<div class="tabbody">
|
||||
<section role="tabpanel">
|
||||
{{outlet}}
|
||||
</section>
|
||||
|
||||
{{!-- <section role="tabpanel">
|
||||
<ul class="memberlist">
|
||||
<li class="columns small-6 large-4">
|
||||
<img src="//placehold.it/50x50" alt="">
|
||||
<div class="memberlist-names">
|
||||
<h2>Firstname Lastname</h2>
|
||||
<p>githubhandle</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</section> --}}
|
||||
</div>
|
||||
</div>
|
||||
{{/travis-layout}}
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
<p class="faq-text">A build has 120 minutes to run. Should your build take longer, you can split it up using a build matrix.</p>
|
||||
</li>
|
||||
<li>
|
||||
<h4 class="h3--red">Can I pay anually?</h4>
|
||||
<h4 class="h3--red">Can I pay annually?</h4>
|
||||
<p class="faq-text">You most certainly can! When signing up for a subscription, simply select the annual option. You get 1 month for free — 12 months for the price of 11!</p>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -1 +1 @@
|
|||
{{not-active user=auth.currentUser repo=repo}}
|
||||
{{not-active user=currentUser repo=repo}}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
{{#each broadcasts.content as |broadcast|}}
|
||||
<li><p><span class="broadcast-status {{broadcast.category}}" title="Transmitted on {{broadcast.updated_at}}"></span> {{{broadcast.message}}} <a {{action 'markBroadcastAsSeen' broadcast}} class="icon-close"></a></p></li>
|
||||
{{else}}
|
||||
<li><p>There are no broadcasts transmitted</p></li>
|
||||
<li><p>There are no broadcasts</p></li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
|
32
app/utils/permission.js
Normal file
32
app/utils/permission.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
|
||||
var hasPermission = function(user, repoId) {
|
||||
var id = parseInt(repoId);
|
||||
var permissions;
|
||||
if (user) {
|
||||
if (permissions = user.get('permissions')) {
|
||||
return permissions.contains(id);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var hasPushPermission = function(user, repoId) {
|
||||
var id = parseInt(repoId);
|
||||
var permissions;
|
||||
if (user) {
|
||||
if (permissions = user.get('pushPermissions')) {
|
||||
return permissions.contains(id);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var hasAdminPermission = function(user, repoId) {
|
||||
var id = parseInt(repoId);
|
||||
var permissions;
|
||||
if (user) {
|
||||
if (permissions = user.get('adminPermissions')) {
|
||||
return permissions.contains(id);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export {hasPermission, hasPushPermission, hasAdminPermission};
|
|
@ -27,7 +27,7 @@ rstStatusImage = (function(url, slug, branch) {
|
|||
});
|
||||
|
||||
podStatusImage = (function(url, slug, branch) {
|
||||
return "=for HTML <a href=\"" + url + "\"><img src=\"" + (statusImageUrl(slug, branch)) + "\"></a>";
|
||||
return "=for html <a href=\"" + url + "\"><img src=\"" + (statusImageUrl(slug, branch)) + "\"></a>";
|
||||
});
|
||||
|
||||
ccxmlStatusUrl = (function(slug, branch) {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user