Merge branch 'updated-styles'

This commit is contained in:
Josh Kalderimis 2013-10-14 17:37:28 +02:00
commit c699d48337
61 changed files with 549 additions and 350 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
assets/images/ui/cal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,12 +1,16 @@
{{#if redirected}}
<p>You need to sign in to see this page.</p>
{{/if}}
<span class="mascot"></span>
<h3>Hey, we're so glad you're here!</h3>
<h2>In order to view your repositories, please sign in.</h2>
<p>
<a href="#" {{action "signIn" target="Travis"}}>
{{#if Travis.signingIn}}
Signing in...
{{else}}
Sign in with GitHub.
Sign in with GitHub
{{/if}}
</a>
</p>

View File

@ -1,29 +1,29 @@
<div id="getting-started">
<h3>Just one more thing...<img class="spinner" width="20" src="/images/getting-started/mustache-spinner.gif"/></h3>
<div id="first_sync">
<img src="/images/getting-started/mustache-spinner.gif" class="spinner" width="300">
<p>
We're almost done getting you on board, just a few more seconds as we talk to GitHub to find out which
repositories belong to you.
</p>
<p class="first-sync-head">One more thing</p>
<p class="few-more">Just a few more seconds as we talk to GitHub to find out which repositories belong to you.</p>
<p>
If you're part of an organization that already has repositories set up on Travis CI, we'll take you to the list
once we're done.
</p>
<div class="sync-row">
<div class="sync-column">
<p class="align-right">
If you're part of an organization that already has repositories set up on Travis CI, we'll take you to the list once we're done.
</p>
</div>
<p>
If this is your first time on Travis CI, and you're not part of any existing organizations yet, we'll take you to
a handy getting started guide to get you off the ground quickly.
</p>
<p>
Now hold tight while we sync the last bits from GitHub, we should be done here any minute now.
</p>
{{#unless isSyncing}}
<h3>Great news!</h3>
<p>
We've successfully synchronized your details from GitHub. We will redirect you to your profile in a few seconds.
</p>
{{/unless}}
<div class="sync-column">
<p>
If you're not part of any existing organizations yet, we'll take you to a handy getting started guide to get you off the ground quickly.
</p>
</div>
</div>
<div class="sync-row">
{{#unless isSyncing}}
<img src="/images/getting-started/mustache-no-spin.png" class="spinner" width="100">
<p class="great-news">Great news!</p>
<p>
We've successfully synchronized your details from GitHub. We will redirect you to your profile in a few seconds.
</p>
{{/unless}}
</div>
</div>

View File

@ -1,6 +1,80 @@
<div id="getting-started">
<h3>Welcome to Travis CI!</h3>
<h2>Hey, it looks like you're new around here and have yet to set up your first<br>repository on Travis CI. We're here to help you get started, it's easy!</h2>
<div class="getting-started-row">
<div class="column">
<img src="/images/getting-started/project-switch.png">
</div>
<div class="column-right">
<span class="steps">Step 1: &nbsp; Enabling your projects</span>
<p>
Start by going to your {{#linkTo "profile.index"}}profile{{/linkTo}} and enable one of your projects. We've been
synchronizing all repositories you have administrative access to. Pick one and flip the switch next to it.
</p>
</div>
</div>
<div class="getting-started-row">
<div class="column">
<img src="/images/getting-started/first-build.png">
</div>
<div class="column-right">
<span class="steps">Step 2: &nbsp; Adding Travis</span>
<p>
Once you've enabled one of your projects, add a <a
href="http://about.travis-ci.org/docs/user/build-configuration/#.travis.yml-file%3A-what-it-is-and-how-it-is-used"><code>.travis.yml</code></a> to your project, push some code, and we'll start processing your builds. Wait a
whee while and reload the page, and your newly setup and built project will show up on the right.
</p>
</div>
</div>
<div class="getting-started-row">
<div class="column">
<img src="/images/getting-started/build-email.png">
</div>
<div class="column-right">
<span class="steps">Step 3: &nbsp; Wait for your build to finish</span>
<p>
We'll be sending you an email once the build has finished. Then, it's up to you to do the happy dance.
</p>
</div>
</div>
<div class="getting-started-row">
<span class="after-steps steps">Build Configuration</span>
<p>
We use sensible defaults for <a href="http://about.travis-ci.org/docs/">most languages</a>, but you can customize
both the <a href="http://about.travis-ci.org/docs/user/build-configuration/">build process</a> and the <a
href="http://about.travis-ci.org/docs/user/build-configuration/">build
environment</a> to fit your project's needs.
</p>
<span class="steps">Notifications</span>
<p>
You can also configure how you want to be notified of build results. Email is only one channel you can use. We
support <a href="http://about.travis-ci.org/docs/user/notifications/#Campfire-notification">Campfire</a>, <a
href="http://about.travis-ci.org/docs/user/notifications/#HipChat-notification">HipChat</a>, <a
href="http://about.travis-ci.org/docs/user/notifications/#Flowdock-notification">Flowdock</a>, <a
href="http://about.travis-ci.org/docs/user/notifications/#IRC-notification">IRC</a>, and <a
href="http://about.travis-ci.org/docs/user/notifications/#Webhook-notification">webhooks</a>. To avoid
exposing any private credentials, you can shield them from the public using <a
href="http://about.travis-ci.org/docs/user/build-configuration/#Secure-environment-variables">encrypted
configuration settings</a>.
</p>
<span class="steps">Questions</span>
<p>
Should you have any questions or issues, have a look at <a href="http://about.travis-ci.org/docs/" location="_top">our
documentation</a>, <a href="https://github.com/travis-ci/travis-ci/issues/new" location="_top">open an issue</a> or
<a href="mailto:support@travis-ci.com">send us an email</a>.
</p>
</div>
<p>
Hey, it looks like you're new around here and have yet to set up your first repository on Travis CI.
</p>
@ -60,4 +134,5 @@
documentation</a>, <a href="https://github.com/travis-ci/travis-ci/issues/new" location="_top">open an issue</a> or
<a href="mailto:support@travis-ci.com">send us an email</a>.
</p>
>>>>>>> f6867e8a4cddfef041367a301d22d0969c6f886d
</div>

View File

@ -21,9 +21,11 @@
{{/with}}
<p class="summary">
<span class="duration_label">{{t repositories.duration}}:</span>
<abbr class="duration" {{bindAttr title="lastBuildStartedAt"}}>{{formatDuration lastBuildDuration}}</abbr>,
<span class="finished_at_label">{{t repositories.finished_at}}:</span>
<span class="duration-icon"></span><span class="duration_label">{{t repositories.duration}}:</span>
<abbr class="duration" {{bindAttr title="lastBuildStartedAt"}}>{{formatDuration lastBuildDuration}}</abbr>
</p>
<p class="summary">
<span class="finished-icon"></span><span class="finished_at_label">{{t repositories.finished_at}}:</span>
<abbr class="finished_at timeago" {{bindAttr title="lastBuildFinishedAt"}}>{{formatTime lastBuildFinishedAt}}</abbr>
</p>

View File

@ -60,7 +60,7 @@
suite on Travis CI allows to track changes in coverage over time. If you haven't tried it out already, <a
{{bindAttr href="Travis.config.code_climate_url"}}" target="_blank">sign
up today</a> for to improve your code's quality. New customers get 20% off for the first three months!
</p>
</p>
<p>
It only takes a few steps, once you've set up your project:

View File

@ -30,4 +30,5 @@
Travis.Urls.account(@get('account.login'))
).property('account.login')
click: ->
@get('controller').transitionToRoute("account", @get('account.login'))

View File

@ -9,7 +9,8 @@ Travis.reopen
ShowMoreButton: Em.View.extend
tagName: 'button'
classNameBindings: ['isLoading']
classNameBindings: ['isLoading', 'showMore']
showMore: true
attributeBindings: ['disabled']
isLoadingBinding: 'controller.isLoading'
template: Em.Handlebars.compile('{{view.label}}')

View File

@ -21,6 +21,9 @@
Travis.Helpers.colorForState(@get('repo.lastBuildState'))
).property('repo.lastBuildState')
click: ->
@get('controller').transitionToRoute('/' + @get('repo.slug'))
ReposListTabsView: Travis.View.extend
templateName: 'repos/list/tabs'
tabBinding: 'controller.tab'

File diff suppressed because one or more lines are too long

View File

@ -14,11 +14,11 @@
(function($) {
var _ajax = $.ajax,
mockHandlers = [],
CALLBACK_REGEX = /=\?(&|$)/,
CALLBACK_REGEX = /=\?(&|$)/,
jsc = (new Date()).getTime();
// Parse the given XML string.
// Parse the given XML string.
function parseXML(xml) {
if ( window['DOMParser'] == undefined && window.ActiveXObject ) {
DOMParser = function() { };
@ -53,7 +53,7 @@
(s.context ? $(s.context) : $.event).trigger(type, args);
}
// Check if the data field on the mock handler and the request match. This
// Check if the data field on the mock handler and the request match. This
// can be used to restrict a mock handler to being used only when a certain
// set of data is passed to it.
function isMockDataEqual( mock, live ) {
@ -103,7 +103,7 @@
} else {
// Look for a simple wildcard '*' or a direct URL match
var star = handler.url.indexOf('*');
if (handler.url !== requestSettings.url && star === -1 ||
if (handler.url !== requestSettings.url && star === -1 ||
!new RegExp(handler.url.replace(/[-[\]{}()+?.,\\^$|#\s]/g, "\\$&").replace('*', '.+')).test(requestSettings.url)) {
return null;
}
@ -117,7 +117,7 @@
}
}
// Inspect the request type
if ( handler && handler.type &&
if ( handler && handler.type &&
handler.type.toLowerCase() != requestSettings.type.toLowerCase() ) {
// The request type doesn't match (GET vs. POST)
return null;
@ -283,7 +283,7 @@
if(requestSettings.type.toUpperCase() === "GET" && remote ) {
var newMockReturn = processJsonpRequest( requestSettings, mockHandler, origSettings );
// Check if we are supposed to return a Deferred back to the mock call, or just
// Check if we are supposed to return a Deferred back to the mock call, or just
// signal success
if(newMockReturn) {
return newMockReturn;
@ -299,14 +299,14 @@
function processJsonpUrl( requestSettings ) {
if ( requestSettings.type.toUpperCase() === "GET" ) {
if ( !CALLBACK_REGEX.test( requestSettings.url ) ) {
requestSettings.url += (/\?/.test( requestSettings.url ) ? "&" : "?") +
requestSettings.url += (/\?/.test( requestSettings.url ) ? "&" : "?") +
(requestSettings.jsonp || "callback") + "=?";
}
} else if ( !requestSettings.data || !CALLBACK_REGEX.test(requestSettings.data) ) {
requestSettings.data = (requestSettings.data ? requestSettings.data + "&" : "") + (requestSettings.jsonp || "callback") + "=?";
}
}
// Process a JSONP request by evaluating the mocked response text
function processJsonpRequest( requestSettings, mockHandler, origSettings ) {
// Synthesize the mock request for adding a script tag
@ -407,7 +407,7 @@
}
// The core $.ajax replacement.
// The core $.ajax replacement.
function handleAjax( url, origSettings ) {
var mockRequest, requestSettings, mockHandler;
@ -419,7 +419,7 @@
// work around to support 1.5 signature
origSettings.url = url;
}
// Extend the original settings for the request
requestSettings = $.extend(true, {}, $.ajaxSettings, origSettings);
@ -429,7 +429,7 @@
if ( !mockHandlers[k] ) {
continue;
}
mockHandler = getMockForRequest( mockHandlers[k], requestSettings );
if(!mockHandler) {
// No valid mock found for this request
@ -520,4 +520,4 @@
return mockHandlers[i];
}
};
})(jQuery);
})(jQuery);

View File

@ -2016,7 +2016,7 @@ function suspendListener(obj, eventName, target, method, callback) {
Suspends multiple listeners during a callback.
@method suspendListeners
@for Ember
@param obj
@ -2082,7 +2082,7 @@ function watchedEvents(obj) {
is skipped, and once listeners are removed. A listener without
a target is executed on the passed object. If an array of actions
is not passed, the actions stored on the passed object are invoked.
@method sendEvent
@for Ember
@param obj
@ -2837,14 +2837,14 @@ Map.create = function() {
Map.prototype = {
/**
This property will change as the number of objects in the map changes.
@property length
@type number
@default 0
*/
length: 0,
/**
Retrieve the value associated with a given key.
@ -4438,7 +4438,7 @@ Ember.computed.alias = function(dependentKey) {
@return {Ember.ComputedProperty} computed property which creates an
one way computed property to the original value for property.
Where `computed.alias` aliases `get` and `set`, and allows for bidirectional
Where `computed.alias` aliases `get` and `set`, and allows for bidirectional
data flow, `computed.oneWay` only provides an aliased `get`. The `set` will
not mutate the upstream property, rather causes the current property to
become the value set. This causes the downstream property to permentantly
@ -8679,7 +8679,7 @@ Ember.Error.prototype = Ember.create(Error.prototype);
(function() {
/**
Expose RSVP implementation
Documentation can be found here: https://github.com/tildeio/rsvp.js/blob/master/README.md
@class RSVP
@ -20624,7 +20624,7 @@ if (Handlebars.compile) {
var template = Ember.Handlebars.template(templateSpec);
template.isMethod = false; //Make sure we don't wrap templates with ._super
return template;
};
}
@ -24307,7 +24307,7 @@ helpers = this.merge(helpers, Ember.Handlebars.helpers); data = data || {};
var buffer = '', stack1, hashTypes, hashContexts, escapeExpression=this.escapeExpression, self=this;
function program1(depth0,data) {
var buffer = '', hashTypes, hashContexts;
data.buffer.push("<option value=\"\">");
hashTypes = {};
@ -24318,7 +24318,7 @@ function program1(depth0,data) {
}
function program3(depth0,data) {
var stack1, hashTypes, hashContexts;
hashTypes = {};
hashContexts = {};
@ -24327,7 +24327,7 @@ function program3(depth0,data) {
else { data.buffer.push(''); }
}
function program4(depth0,data) {
var hashContexts, hashTypes;
hashContexts = {'contentBinding': depth0,'labelBinding': depth0};
hashTypes = {'contentBinding': "ID",'labelBinding': "ID"};
@ -24338,7 +24338,7 @@ function program4(depth0,data) {
}
function program6(depth0,data) {
var stack1, hashTypes, hashContexts;
hashTypes = {};
hashContexts = {};
@ -24347,7 +24347,7 @@ function program6(depth0,data) {
else { data.buffer.push(''); }
}
function program7(depth0,data) {
var hashContexts, hashTypes;
hashContexts = {'contentBinding': depth0};
hashTypes = {'contentBinding': "STRING"};
@ -24365,7 +24365,7 @@ function program7(depth0,data) {
stack1 = helpers['if'].call(depth0, "view.optionGroupPath", {hash:{},inverse:self.program(6, program6, data),fn:self.program(3, program3, data),contexts:[depth0],types:["ID"],hashContexts:hashContexts,hashTypes:hashTypes,data:data});
if(stack1 || stack1 === 0) { data.buffer.push(stack1); }
return buffer;
}),
attributeBindings: ['multiple', 'disabled', 'tabindex', 'name'],
@ -29044,7 +29044,7 @@ Ember.ControllerMixin.reopen({
Optionally supply a model for the route in question. The model
will be serialized into the URL using the `serialize` hook of
the route:
```javascript
aController.transitionToRoute('blogPost', aPost);
```
@ -29168,7 +29168,7 @@ Ember.View.reopen({
// Add a new named queue after the 'actions' queue (where RSVP promises
// resolve), which is used in router transitions to prevent unnecessary
// loading state entry if all context promises resolve on the
// loading state entry if all context promises resolve on the
// 'actions' queue first.
var queues = Ember.run.queues,
@ -33110,7 +33110,7 @@ function chain(app, promise, fn) {
* using your app.
*
* Example:
*
*
* ```
* visit('posts/index').then(function() {
* // assert something
@ -33118,7 +33118,7 @@ function chain(app, promise, fn) {
* ```
*
* @method visit
* @param {String} url the name of the route
* @param {String} url the name of the route
* @returns {RSVP.Promise}
*/
helper('visit', visit);

View File

@ -195,108 +195,108 @@ performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
var $0 = $$.length - 1;
switch (yystate) {
case 1: return $$[$0-1];
case 1: return $$[$0-1];
break;
case 2: this.$ = new yy.ProgramNode([], $$[$0]);
case 2: this.$ = new yy.ProgramNode([], $$[$0]);
break;
case 3: this.$ = new yy.ProgramNode($$[$0-2], $$[$0]);
case 3: this.$ = new yy.ProgramNode($$[$0-2], $$[$0]);
break;
case 4: this.$ = new yy.ProgramNode($$[$0-1], []);
case 4: this.$ = new yy.ProgramNode($$[$0-1], []);
break;
case 5: this.$ = new yy.ProgramNode($$[$0]);
case 5: this.$ = new yy.ProgramNode($$[$0]);
break;
case 6: this.$ = new yy.ProgramNode([], []);
case 6: this.$ = new yy.ProgramNode([], []);
break;
case 7: this.$ = new yy.ProgramNode([]);
case 7: this.$ = new yy.ProgramNode([]);
break;
case 8: this.$ = [$$[$0]];
case 8: this.$ = [$$[$0]];
break;
case 9: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
case 9: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
break;
case 10: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]);
case 10: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]);
break;
case 11: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]);
case 11: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]);
break;
case 12: this.$ = $$[$0];
case 12: this.$ = $$[$0];
break;
case 13: this.$ = $$[$0];
case 13: this.$ = $$[$0];
break;
case 14: this.$ = new yy.ContentNode($$[$0]);
case 14: this.$ = new yy.ContentNode($$[$0]);
break;
case 15: this.$ = new yy.CommentNode($$[$0]);
case 15: this.$ = new yy.CommentNode($$[$0]);
break;
case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
break;
case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
break;
case 18: this.$ = $$[$0-1];
case 18: this.$ = $$[$0-1];
break;
case 19:
// Parsing out the '&' escape token at this level saves ~500 bytes after min due to the removal of one parser node.
this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2][2] === '&');
break;
case 20: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true);
case 20: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true);
break;
case 21: this.$ = new yy.PartialNode($$[$0-1]);
case 21: this.$ = new yy.PartialNode($$[$0-1]);
break;
case 22: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1]);
case 22: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1]);
break;
case 23:
case 23:
break;
case 24: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]];
case 24: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]];
break;
case 25: this.$ = [[$$[$0-1]].concat($$[$0]), null];
case 25: this.$ = [[$$[$0-1]].concat($$[$0]), null];
break;
case 26: this.$ = [[$$[$0-1]], $$[$0]];
case 26: this.$ = [[$$[$0-1]], $$[$0]];
break;
case 27: this.$ = [[$$[$0]], null];
case 27: this.$ = [[$$[$0]], null];
break;
case 28: this.$ = [[$$[$0]], null];
case 28: this.$ = [[$$[$0]], null];
break;
case 29: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
case 29: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
break;
case 30: this.$ = [$$[$0]];
case 30: this.$ = [$$[$0]];
break;
case 31: this.$ = $$[$0];
case 31: this.$ = $$[$0];
break;
case 32: this.$ = new yy.StringNode($$[$0]);
case 32: this.$ = new yy.StringNode($$[$0]);
break;
case 33: this.$ = new yy.IntegerNode($$[$0]);
case 33: this.$ = new yy.IntegerNode($$[$0]);
break;
case 34: this.$ = new yy.BooleanNode($$[$0]);
case 34: this.$ = new yy.BooleanNode($$[$0]);
break;
case 35: this.$ = $$[$0];
case 35: this.$ = $$[$0];
break;
case 36: this.$ = new yy.HashNode($$[$0]);
case 36: this.$ = new yy.HashNode($$[$0]);
break;
case 37: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
case 37: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
break;
case 38: this.$ = [$$[$0]];
case 38: this.$ = [$$[$0]];
break;
case 39: this.$ = [$$[$0-2], $$[$0]];
case 39: this.$ = [$$[$0-2], $$[$0]];
break;
case 40: this.$ = [$$[$0-2], new yy.StringNode($$[$0])];
case 40: this.$ = [$$[$0-2], new yy.StringNode($$[$0])];
break;
case 41: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])];
case 41: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])];
break;
case 42: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])];
case 42: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])];
break;
case 43: this.$ = [$$[$0-2], $$[$0]];
case 43: this.$ = [$$[$0-2], $$[$0]];
break;
case 44: this.$ = new yy.PartialNameNode($$[$0]);
case 44: this.$ = new yy.PartialNameNode($$[$0]);
break;
case 45: this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0]));
case 45: this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0]));
break;
case 46: this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0]));
case 46: this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0]));
break;
case 47: this.$ = new yy.DataNode($$[$0]);
case 47: this.$ = new yy.DataNode($$[$0]);
break;
case 48: this.$ = new yy.IdNode($$[$0]);
case 48: this.$ = new yy.IdNode($$[$0]);
break;
case 49: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2];
case 49: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2];
break;
case 50: this.$ = [{part: $$[$0]}];
case 50: this.$ = [{part: $$[$0]}];
break;
}
},
@ -582,77 +582,77 @@ lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_STA
var YYSTATE=YY_START
switch($avoiding_name_collisions) {
case 0: yy_.yytext = "\\"; return 14;
case 0: yy_.yytext = "\\"; return 14;
break;
case 1:
if(yy_.yytext.slice(-1) !== "\\") this.begin("mu");
if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin("emu");
if(yy_.yytext) return 14;
break;
case 2: return 14;
case 2: return 14;
break;
case 3:
if(yy_.yytext.slice(-1) !== "\\") this.popState();
if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1);
return 14;
break;
case 4: yy_.yytext = yy_.yytext.substr(0, yy_.yyleng-4); this.popState(); return 15;
case 4: yy_.yytext = yy_.yytext.substr(0, yy_.yyleng-4); this.popState(); return 15;
break;
case 5: return 25;
case 5: return 25;
break;
case 6: return 16;
case 6: return 16;
break;
case 7: return 20;
case 7: return 20;
break;
case 8: return 19;
case 8: return 19;
break;
case 9: return 19;
case 9: return 19;
break;
case 10: return 23;
case 10: return 23;
break;
case 11: return 22;
case 11: return 22;
break;
case 12: this.popState(); this.begin('com');
case 12: this.popState(); this.begin('com');
break;
case 13: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15;
case 13: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15;
break;
case 14: return 22;
case 14: return 22;
break;
case 15: return 37;
case 15: return 37;
break;
case 16: return 36;
case 16: return 36;
break;
case 17: return 36;
case 17: return 36;
break;
case 18: return 40;
case 18: return 40;
break;
case 19: /*ignore whitespace*/
case 19: /*ignore whitespace*/
break;
case 20: this.popState(); return 24;
case 20: this.popState(); return 24;
break;
case 21: this.popState(); return 18;
case 21: this.popState(); return 18;
break;
case 22: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 31;
case 22: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 31;
break;
case 23: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\'/g,"'"); return 31;
case 23: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\'/g,"'"); return 31;
break;
case 24: return 38;
case 24: return 38;
break;
case 25: return 33;
case 25: return 33;
break;
case 26: return 33;
case 26: return 33;
break;
case 27: return 32;
case 27: return 32;
break;
case 28: return 36;
case 28: return 36;
break;
case 29: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 36;
case 29: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 36;
break;
case 30: return 'INVALID';
case 30: return 'INVALID';
break;
case 31: return 5;
case 31: return 5;
break;
}
};

View File

@ -1,7 +1,7 @@
/*!
* jQuery throttle / debounce - v1.1 - 3/7/2010
* http://benalman.com/projects/jquery-throttle-debounce-plugin/
*
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
@ -10,51 +10,51 @@
// Script: jQuery throttle / debounce: Sometimes, less is more!
//
// *Version: 1.1, Last updated: 3/7/2010*
//
//
// Project Home - http://benalman.com/projects/jquery-throttle-debounce-plugin/
// GitHub - http://github.com/cowboy/jquery-throttle-debounce/
// Source - http://github.com/cowboy/jquery-throttle-debounce/raw/master/jquery.ba-throttle-debounce.js
// (Minified) - http://github.com/cowboy/jquery-throttle-debounce/raw/master/jquery.ba-throttle-debounce.min.js (0.7kb)
//
//
// About: License
//
//
// Copyright (c) 2010 "Cowboy" Ben Alman,
// Dual licensed under the MIT and GPL licenses.
// http://benalman.com/about/license/
//
//
// About: Examples
//
//
// These working examples, complete with fully commented code, illustrate a few
// ways in which this plugin can be used.
//
//
// Throttle - http://benalman.com/code/projects/jquery-throttle-debounce/examples/throttle/
// Debounce - http://benalman.com/code/projects/jquery-throttle-debounce/examples/debounce/
//
//
// About: Support and Testing
//
//
// Information about what version or versions of jQuery this plugin has been
// tested with, what browsers it has been tested in, and where the unit tests
// reside (so you can test it yourself).
//
//
// jQuery Versions - none, 1.3.2, 1.4.2
// Browsers Tested - Internet Explorer 6-8, Firefox 2-3.6, Safari 3-4, Chrome 4-5, Opera 9.6-10.1.
// Unit Tests - http://benalman.com/code/projects/jquery-throttle-debounce/unit/
//
//
// About: Release History
//
//
// 1.1 - (3/7/2010) Fixed a bug in <jQuery.throttle> where trailing callbacks
// executed later than they should. Reworked a fair amount of internal
// logic as well.
// 1.0 - (3/6/2010) Initial release as a stand-alone project. Migrated over
// from jquery-misc repo v0.4 to jquery-throttle repo v1.0, added the
// no_trailing throttle parameter and debounce functionality.
//
//
// Topic: Note for non-jQuery users
//
//
// jQuery isn't actually required for this plugin, because nothing internal
// uses any jQuery methods or properties. jQuery is just used as a namespace
// under which these methods can exist.
//
//
// Since jQuery isn't actually required for this plugin, if jQuery doesn't exist
// when this plugin is loaded, the method described below will be created in
// the `Cowboy` namespace. Usage will be exactly the same, but instead of
@ -62,47 +62,47 @@
(function(window,undefined){
'$:nomunge'; // Used by YUI compressor.
// Since jQuery really isn't required for this plugin, use `jQuery` as the
// namespace only if it already exists, otherwise use the `Cowboy` namespace,
// creating it if necessary.
var $ = window.jQuery || window.Cowboy || ( window.Cowboy = {} ),
// Internal method reference.
jq_throttle;
// Method: jQuery.throttle
//
//
// Throttle execution of a function. Especially useful for rate limiting
// execution of handlers on events like resize and scroll. If you want to
// rate-limit execution of a function to a single time, see the
// <jQuery.debounce> method.
//
//
// In this visualization, | is a throttled-function call and X is the actual
// callback execution:
//
//
// > Throttled with `no_trailing` specified as false or unspecified:
// > ||||||||||||||||||||||||| (pause) |||||||||||||||||||||||||
// > X X X X X X X X X X X X
// >
// >
// > Throttled with `no_trailing` specified as true:
// > ||||||||||||||||||||||||| (pause) |||||||||||||||||||||||||
// > X X X X X X X X X X
//
//
// Usage:
//
//
// > var throttled = jQuery.throttle( delay, [ no_trailing, ] callback );
// >
// >
// > jQuery('selector').bind( 'someevent', throttled );
// > jQuery('selector').unbind( 'someevent', throttled );
//
//
// This also works in jQuery 1.4+:
//
//
// > jQuery('selector').bind( 'someevent', jQuery.throttle( delay, [ no_trailing, ] callback ) );
// > jQuery('selector').unbind( 'someevent', callback );
//
//
// Arguments:
//
//
// delay - (Number) A zero-or-greater delay in milliseconds. For event
// callbacks, values around 100 or 250 (or even higher) are most useful.
// no_trailing - (Boolean) Optional, defaults to false. If no_trailing is
@ -114,27 +114,27 @@
// callback - (Function) A function to be executed after delay milliseconds.
// The `this` context and all arguments are passed through, as-is, to
// `callback` when the throttled-function is executed.
//
//
// Returns:
//
//
// (Function) A new, throttled, function.
$.throttle = jq_throttle = function( delay, no_trailing, callback, debounce_mode ) {
// After wrapper has stopped being called, this timeout ensures that
// `callback` is executed at the proper times in `throttle` and `end`
// debounce modes.
var timeout_id,
// Keep track of the last time `callback` was executed.
last_exec = 0;
// `no_trailing` defaults to falsy.
if ( typeof no_trailing !== 'boolean' ) {
debounce_mode = callback;
callback = no_trailing;
no_trailing = undefined;
}
// The `wrapper` function encapsulates all of the throttling / debouncing
// functionality and when executed will limit the rate at which `callback`
// is executed.
@ -142,91 +142,91 @@
var that = this,
elapsed = +new Date() - last_exec,
args = arguments;
// Execute `callback` and update the `last_exec` timestamp.
function exec() {
last_exec = +new Date();
callback.apply( that, args );
};
// If `debounce_mode` is true (at_begin) this is used to clear the flag
// to allow future `callback` executions.
function clear() {
timeout_id = undefined;
};
if ( debounce_mode && !timeout_id ) {
// Since `wrapper` is being called for the first time and
// `debounce_mode` is true (at_begin), execute `callback`.
exec();
}
// Clear any existing timeout.
timeout_id && clearTimeout( timeout_id );
if ( debounce_mode === undefined && elapsed > delay ) {
// In throttle mode, if `delay` time has been exceeded, execute
// `callback`.
exec();
} else if ( no_trailing !== true ) {
// In trailing throttle mode, since `delay` time has not been
// exceeded, schedule `callback` to execute `delay` ms after most
// recent execution.
//
//
// If `debounce_mode` is true (at_begin), schedule `clear` to execute
// after `delay` ms.
//
//
// If `debounce_mode` is false (at end), schedule `callback` to
// execute after `delay` ms.
timeout_id = setTimeout( debounce_mode ? clear : exec, debounce_mode === undefined ? delay - elapsed : delay );
}
};
// Set the guid of `wrapper` function to the same of original callback, so
// it can be removed in jQuery 1.4+ .unbind or .die by using the original
// callback as a reference.
if ( $.guid ) {
wrapper.guid = callback.guid = callback.guid || $.guid++;
}
// Return the wrapper function.
return wrapper;
};
// Method: jQuery.debounce
//
//
// Debounce execution of a function. Debouncing, unlike throttling,
// guarantees that a function is only executed a single time, either at the
// very beginning of a series of calls, or at the very end. If you want to
// simply rate-limit execution of a function, see the <jQuery.throttle>
// method.
//
//
// In this visualization, | is a debounced-function call and X is the actual
// callback execution:
//
//
// > Debounced with `at_begin` specified as false or unspecified:
// > ||||||||||||||||||||||||| (pause) |||||||||||||||||||||||||
// > X X
// >
// >
// > Debounced with `at_begin` specified as true:
// > ||||||||||||||||||||||||| (pause) |||||||||||||||||||||||||
// > X X
//
//
// Usage:
//
//
// > var debounced = jQuery.debounce( delay, [ at_begin, ] callback );
// >
// >
// > jQuery('selector').bind( 'someevent', debounced );
// > jQuery('selector').unbind( 'someevent', debounced );
//
//
// This also works in jQuery 1.4+:
//
//
// > jQuery('selector').bind( 'someevent', jQuery.debounce( delay, [ at_begin, ] callback ) );
// > jQuery('selector').unbind( 'someevent', callback );
//
//
// Arguments:
//
//
// delay - (Number) A zero-or-greater delay in milliseconds. For event
// callbacks, values around 100 or 250 (or even higher) are most useful.
// at_begin - (Boolean) Optional, defaults to false. If at_begin is false or
@ -238,15 +238,15 @@
// callback - (Function) A function to be executed after delay milliseconds.
// The `this` context and all arguments are passed through, as-is, to
// `callback` when the debounced-function is executed.
//
//
// Returns:
//
//
// (Function) A new, debounced, function.
$.debounce = function( delay, at_begin, callback ) {
return callback === undefined
? jq_throttle( delay, at_begin, false )
: jq_throttle( delay, callback, at_begin !== false );
};
})(this);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(function(e){"use strict";var i=function(i){return i!=e},n=window.Visibility={onVisible:function(e){if(!n.isSupported()||!n.hidden())return e(),n.isSupported();var i=n.change(function(){n.hidden()||(n.unbind(i),e())});return i},change:function(e){if(!n.isSupported())return!1;n._lastCallback+=1;var i=n._lastCallback;return n._callbacks[i]=e,n._setListener(),i},unbind:function(e){delete n._callbacks[e]},afterPrerendering:function(e){if(!n.isSupported()||"prerender"!=n.state())return e(),n.isSupported();var i=n.change(function(r,t){"prerender"!=t&&(n.unbind(i),e())});return i},hidden:function(){return n._prop("hidden",!1)},state:function(){return n._prop("visibilityState","visible")},isSupported:function(){return i(n._prefix())},_doc:window.document,_prefixes:["webkit","moz"],_chechedPrefix:null,_listening:!1,_lastCallback:-1,_callbacks:{},_hiddenBefore:!1,_init:function(){n._hiddenBefore=n.hidden()},_prefix:function(){if(null!==n._chechedPrefix)return n._chechedPrefix;if(i(n._doc.visibilityState))return n._chechedPrefix="";for(var e,r=0;n._prefixes.length>r;r++)if(e=n._prefixes[r]+"VisibilityState",i(n._doc[e]))return n._chechedPrefix=n._prefixes[r]},_name:function(e){var i=n._prefix();return""==i?e:i+e.substr(0,1).toUpperCase()+e.substr(1)},_prop:function(e,i){return n.isSupported()?n._doc[n._name(e)]:i},_onChange:function(e){var i=n.state();for(var r in n._callbacks)n._callbacks[r].call(n._doc,e,i);n._hiddenBefore=n.hidden()},_setListener:function(){if(!n._listening){var e=n._prefix()+"visibilitychange",i=function(){n._onChange.apply(Visibility,arguments)};n._doc.addEventListener?n._doc.addEventListener(e,i,!1):n._doc.attachEvent(e,i),n._listening=!0,n._hiddenBefore=n.hidden()}}};n._init();var r={every:function(e,r,t){n._initTimers(),i(t)||(t=r,r=null),n._lastTimer+=1;var a=n._lastTimer;return n._timers[a]={interval:e,hiddenInterval:r,callback:t},n._runTimer(a,!1),n.isSupported()&&n._setListener(),a},stop:function(e){var r=n._timers[e];return i(r)?(n._stopTimer(e),delete n._timers[e],r):!1},_lastTimer:-1,_timers:{},_timersInitialized:!1,_initTimers:function(){n._timersInitialized||(n._timersInitialized=!0,n._setInterval=i(window.jQuery)&&i(jQuery.every)?n._chronoInterval:n._originalInterval,n.change(function(){n._timersStopRun()}))},_originalInterval:function(e,i){return setInterval(e,i)},_chronoInterval:function(e,i){return jQuery.every(i,e)},_setInterval:null,_runTimer:function(e,i){var r,t=n._timers[e];if(n.hidden()){if(null===t.hiddenInterval)return;r=t.hiddenInterval}else r=t.interval;i&&t.callback.call(window),t.id=n._setInterval(t.callback,r)},_stopTimer:function(e){var i=n._timers[e];clearInterval(i.id),delete i.id},_timersStopRun:function(){var e=n.hidden(),i=n._hiddenBefore;if(e&&!i||!e&&i)for(var r in n._timers)n._stopTimer(r),n._runTimer(r,!e)}};for(var t in r)Visibility[t]=r[t]})();
(function(e){"use strict";var i=function(i){return i!=e},n=window.Visibility={onVisible:function(e){if(!n.isSupported()||!n.hidden())return e(),n.isSupported();var i=n.change(function(){n.hidden()||(n.unbind(i),e())});return i},change:function(e){if(!n.isSupported())return!1;n._lastCallback+=1;var i=n._lastCallback;return n._callbacks[i]=e,n._setListener(),i},unbind:function(e){delete n._callbacks[e]},afterPrerendering:function(e){if(!n.isSupported()||"prerender"!=n.state())return e(),n.isSupported();var i=n.change(function(r,t){"prerender"!=t&&(n.unbind(i),e())});return i},hidden:function(){return n._prop("hidden",!1)},state:function(){return n._prop("visibilityState","visible")},isSupported:function(){return i(n._prefix())},_doc:window.document,_prefixes:["webkit","moz"],_chechedPrefix:null,_listening:!1,_lastCallback:-1,_callbacks:{},_hiddenBefore:!1,_init:function(){n._hiddenBefore=n.hidden()},_prefix:function(){if(null!==n._chechedPrefix)return n._chechedPrefix;if(i(n._doc.visibilityState))return n._chechedPrefix="";for(var e,r=0;n._prefixes.length>r;r++)if(e=n._prefixes[r]+"VisibilityState",i(n._doc[e]))return n._chechedPrefix=n._prefixes[r]},_name:function(e){var i=n._prefix();return""==i?e:i+e.substr(0,1).toUpperCase()+e.substr(1)},_prop:function(e,i){return n.isSupported()?n._doc[n._name(e)]:i},_onChange:function(e){var i=n.state();for(var r in n._callbacks)n._callbacks[r].call(n._doc,e,i);n._hiddenBefore=n.hidden()},_setListener:function(){if(!n._listening){var e=n._prefix()+"visibilitychange",i=function(){n._onChange.apply(Visibility,arguments)};n._doc.addEventListener?n._doc.addEventListener(e,i,!1):n._doc.attachEvent(e,i),n._listening=!0,n._hiddenBefore=n.hidden()}}};n._init();var r={every:function(e,r,t){n._initTimers(),i(t)||(t=r,r=null),n._lastTimer+=1;var a=n._lastTimer;return n._timers[a]={interval:e,hiddenInterval:r,callback:t},n._runTimer(a,!1),n.isSupported()&&n._setListener(),a},stop:function(e){var r=n._timers[e];return i(r)?(n._stopTimer(e),delete n._timers[e],r):!1},_lastTimer:-1,_timers:{},_timersInitialized:!1,_initTimers:function(){n._timersInitialized||(n._timersInitialized=!0,n._setInterval=i(window.jQuery)&&i(jQuery.every)?n._chronoInterval:n._originalInterval,n.change(function(){n._timersStopRun()}))},_originalInterval:function(e,i){return setInterval(e,i)},_chronoInterval:function(e,i){return jQuery.every(i,e)},_setInterval:null,_runTimer:function(e,i){var r,t=n._timers[e];if(n.hidden()){if(null===t.hiddenInterval)return;r=t.hiddenInterval}else r=t.interval;i&&t.callback.call(window),t.id=n._setInterval(t.callback,r)},_stopTimer:function(e){var i=n._timers[e];clearInterval(i.id),delete i.id},_timersStopRun:function(){var e=n.hidden(),i=n._hiddenBefore;if(e&&!i||!e&&i)for(var r in n._timers)n._stopTimer(r),n._runTimer(r,!e)}};for(var t in r)Visibility[t]=r[t]})();

View File

@ -25,10 +25,10 @@ $gray-dark-2: #444
$gray-dark-3: #666
$gray-medium-1: #999
$gray-medium-2: #aaa
$gray-medium-3: #ccc
$gray-medium-3: #c4cbcc
$gray-light-1: #ddd
$gray-light-2: #efefef
$gray-light-3: #f6f6f6
$gray-light-3: #f2f2eb
$gray-light-4: #fdfdfd
$slate-blue-1: #e1e2e6
@ -48,20 +48,20 @@ $color-link: $gray-dark-3
$color-link-highlight: $red-medium-1
$color-link-sponsor: #575c7c
$color-link-top: $gray-medium-3
$color-link-top-highlight: $white
$color-link-top-highlight: #ADC7D0
$color-link-disabled: $gray-medium-1
$color-bg-dark: $slate-blue-2
$color-bg-light: $gray-light-1
$color-bg-input: $white
$color-bg-link-top: $black
$color-bg-dropdown: $gray-dark-2
$color-bg-dropdown-highlight: $gray-dark-3
$color-bg-dropdown: #40454f
$color-bg-dropdown-highlight: #30343b
$color-bg-pre: $gray-light-2
$color-bg-tab: $gray-light-3
$color-bg-tab-hover: $white
$color-bg-tab-active: $white
$color-bg-log: $black
$color-bg-log: #222222
$color-bg-log-fold: $gray-dark-1
$color-bg-log-hover: $gray-dark-2
$color-bg-log-highlight: $gray-dark-3
@ -110,10 +110,10 @@ $color-bg-list-info: $yellow-light-2
$color-text-list-info: $slate-yellow-1
$color-shadow-list-info: $slate-yellow-2
$color-bg-flash-success: #ebfcc2
$color-bg-flash-notice: lightGoldenrodYellow
$color-bg-flash-error: #f5d7d3
$color-bg-flash-broadcast: #efefef
$color-bg-flash-success: #7ea35a
$color-bg-flash-notice: #a57829
$color-bg-flash-error: #a53230
$color-bg-flash-broadcast: #55777f
$ansi-black: #4E4E4E
$ansi-black-bold: #7C7C7C

View File

@ -1,13 +1,13 @@
$font-size-huge: 24px
$font-size-huge: 30px
$font-size-big: 15px
$font-size-normal: 13px
$font-size-small: 12px
$font-size-normal: 14px
$font-size-small: 13px
$font-size-log: 12px
$font-size-smaller: 12px
$font-size-smaller: 15px
$font-size-tiny: 11px
$font-size-tiniest: 10px
$line-height: 19px
$line-height-log: 18px
$line-height: 22px
$line-height-log: 19px

View File

@ -1,7 +1,7 @@
@import "_mixins/all"
html, body
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif
font-family: 'Source Sans Pro', sans-serif
font-size: $font-size-small
line-height: $line-height
margin: 0

View File

@ -7,9 +7,7 @@
padding: 5px 10px
border: 1px solid #d4d4d4
margin: 0
@include border-radius(4px)
background-color: #ececec
@include background(linear-gradient(#f4f4f4, #ececec))
background-color: #E9E9E7
background-clip: padding-box
cursor: pointer
outline: none
@ -23,10 +21,9 @@
.button:focus,
.button:active,
.button.active
border-color: #2356c4
border-color: #d4d4d4
border-bottom-color: #2a65a0
background-color: #4a80f3
@include background(linear-gradient(#6699fa, #4a80f3))
background-color: #40454f
text-decoration: none
color: #fff
@ -34,6 +31,17 @@
.button.active
border-color: #2a65a0
border-bottom-color: #2356c4
background-color: #4a80f3
@include background(linear-gradient(#4a80f3, #6699fa))
background-color: #40454f
.show-more
background-color: #F2F2EB
display: inline-block
color: #666
padding: 6px 15px
text-decoration: none
border: 1px solid #DDD
.show-more:hover
background-color: #40454F
color: #FFF
border: 1px solid #40454F
cursor: pointer

View File

@ -1,15 +1,13 @@
@import "_mixins/all"
.flash
color: gray
color: #fff
font-weight: bold
li
position: relative
margin: -20px -40px 20px -30px
margin: -10px -40px 20px -30px
padding: 15px 60px 15px 30px
@include box-shadow(transparent 0 0 0 0, $color-border-normal 0 1px 6px 0, transparent 0 0 0 0, transparent 0 0 0 0)
border-bottom: 1px solid $color-border-light
a
text-decoration: underline
@ -36,7 +34,6 @@
right: 30px
width: 16px
height: 16px
background: inline-image('ui/close.png') no-repeat 0 0
opacity: 0.5
background: inline-image('ui/close-white.png') no-repeat 0 0
cursor: pointer

View File

@ -2,42 +2,52 @@
#auth
#main
top: 100px
margin: 0 auto
padding: 25px 50px
padding: 100px 50px 0 50px
height: 100px
-webkit-flex: none
flex: none
width: 300px
min-width: auto
//border: 10px solid #bbb
max-height: 400px
@include border-radius(8px)
h1
margin-bottom: 1em
color: #333
h2
color: #919191
font-weight: 400
text-align: center
margin-bottom: 50px
h3
font-size: 35px
color: #337389
text-align: center
margin: 0
p
color: #334
text-align: center
font-size: 15px
> a
display: inline-block
padding: 10px
border: 1px solid #d4d4d4
-webkit-border-radius: 4px
-moz-border-radius: 4px
-ms-border-radius: 4px
-o-border-radius: 4px
border-radius: 4px
background-color: #c7000f
a
display: inline
padding: 15px 30px
border: 0
background-color: #a53230
font-size: 20px
color: #f6f6f6
color: #ffffff
width: 200px
text-align: center
a:hover
display: inline
text-decoration: underline
a:hover
text-decoration: underline
span
display: inline-block
text-align: center
.mascot
display: block
margin: 0 0 50px 0
height: 150px
background: inline-image('travis-mascot-150.png') 50% 0 no-repeat
background-size: 150px 150px

View File

@ -1,26 +1,121 @@
#getting-started
width: 650px
margin: 0px auto
font-family: Arial
#first_sync
width: 850px
margin: 0 auto
padding-top: 30px
font-family: 'Source Sans Pro'
font-size: 17px
line-height: 26px
text-align: center
.first-sync-head
font-size: 35px
color: #337389
font-weight: 800
text-align: center
margin: 0
.few-more
color: #919191
font-size: 20px
font-weight: 400
text-align: center
padding: 0
margin: 0
.great-news
font-size: 35px
color: #337389
text-align: center
color: #c44845
font-weight: 800
margin: 0
p
font-size: 15px
text-align: left
padding-bottom: 10px
a
font-weight: bold
.spinner
border: 0px
padding-bottom: 30px
align: center
&:hover
.sync-row
display: inline-block
clear: all
padding-top: 30px
.sync-column
padding-right: 28px
max-width: 380px
display: block
float: left
clear: all
#getting-started
width: 850px
margin: 0 auto
padding-top: 30px
font-family: 'Source Sans Pro'
text-align: left
h2
color: #919191
font-weight: 400
line-height: 30px
text-align: center
h3
font-size: 30px
color: #337389
text-align: center
.getting-started-row
display: inline-block
clear: all
padding-top: 30px
a
color: #337389
text-decoration: underline
img
border: 1px solid #ddd
padding: 7px
float: right
margin: 15px
&:hover
color: #607a84
text-decoration: underline
&.spinner
border: 0px
padding: 0px
img
padding: 0
float: none
margin: 0px
margin-left: 5px
margin: 15px 0 0 0
width: 450px
p
font-size: 17px
line-height: 26px
.after-steps
padding-top: 50px
border-top : 1px solid #AAAAAA
.column
padding-right: 20px
max-width: 450px
display: block
float: left
clear: all
.column-right
width: 40%
display: block
float: left
clear: all
.steps
display: block
margin-top: 10px
font-size: 22px
line-height: 30px
font-weight: 400
color: #bc3c3c
.end-of-steps
padding-bottom: 50px

View File

@ -27,7 +27,8 @@ html, body
top: -40px
left: 0
width: 100%
height: 40px
min-width: 1211px
height: 55px
z-index: 1000
#left, #right
@ -38,13 +39,12 @@ html, body
#left
@include flex(1, 1, 30%)
min-width: 250px
max-width: 380px
min-width: 320px
max-width: 320px
width: -webkit-calc(100% - 1000px)
padding: 0 0 110px 0
background-color: $color-bg-left
border-right: 1px solid $color-border-normal
@include box-shadow(transparent 0 0 0 0, $color-border-normal 0 1px 8px 0, transparent 0 0 0 0, transparent 0 0 0 0)
@media screen and (max-width: 980px)
#left
@ -55,7 +55,7 @@ html, body
-moz-box-flex: 4
-webkit-box-flex: 4
position: relative
min-width: 760px
min-width: 539px
padding: 20px 40px 80px 30px
@media screen and (max-width: 1400px)

View File

@ -3,8 +3,8 @@
#left
#search_box
height: 87px
padding: 30px 20px 0 20px
background-color: $color-bg-dark
padding: 50px 20px 0 20px
background-color: #e9e9e7
input[type=text]
height: 28px
@ -13,7 +13,6 @@
color: $color-text
font-size: $font-size-small
@include box-sizing(border-box)
border: 1px solid $color-border-light
@include border-radius(4px)
border: 0
background: $color-bg-input inline-image('ui/search.png') no-repeat right 8px

View File

@ -11,6 +11,7 @@
padding: 15px 20px 15px 15px
border-bottom: 1px solid $color-border-light
background-repeat: no-repeat
cursor: pointer
&:nth-child(odd),
&:nth-child(odd) .indicator span
@ -35,13 +36,29 @@
// @include border-radius(10px)
.summary
margin: 5px 0 0 16px
margin: 5px 0 0 0
white-space: nowrap
overflow: hidden
text-overflow: ellipsis
color: $color-text-light
font-size: $font-size-small
.duration-icon
display: inline-block
width: 10px
height: 10px
margin-right: 5px
background-image: inline-image('ui/clock.png')
background-size: cover
.finished-icon
display: inline-block
width: 10px
height: 10px
margin-right: 5px
background-image: inline-image('ui/cal.png')
background-size: cover
.info
overflow: hidden
margin: 12px -20px -15px -45px
@ -66,13 +83,12 @@
span
position: relative
display: block
top: 25px
top: 45px
left: -15px
width: 20px
height: 20px
border: 1px solid $color-border-normal
@include rotate(45deg)
@include box-shadow($color-border-normal 0 1px 8px 0)
&.selected .indicator
display: block

View File

@ -5,6 +5,10 @@
margin: 15px 60px 0 0
font-size: $font-size-huge
a
color: #50555b
text-decoration: none
a:hover
color: #607a84
text-decoration: underline
#stats

View File

@ -15,7 +15,6 @@ pre#log
word-wrap: break-word
background-color: $color-bg-log
border: 1px solid $color-border-log
@include border-radius(4px)
overflow-x: scroll
counter-reset: line-numbering

View File

@ -4,7 +4,7 @@
position: relative
width: 100%
overflow-x: hidden
padding-right: 10px
padding: 15px 0 0 10px
h3
display: inline-block
@ -27,7 +27,8 @@
.description, .language
font-weight: normal
color: $color-text-light
color: #666a72
font-size: 15px
.language
display: none
@ -62,5 +63,5 @@
&:hover
background: transparent url(/images/icons/github.png) center right no-repeat
background-size: 12px
opacity: 0.65
opacity: 1
padding-right: 16px

View File

@ -39,11 +39,9 @@
a#status-image-popup
float: right
display: block
opacity: 0.5
opacity: 1.0
margin-top: -26px
margin-right: 45px
&:hover
opacity: 1.0
#code-climate
a
@ -63,12 +61,6 @@
li.icon
a
-webkit-border-radius: .5em
-moz-border-radius: .5em
border-radius: .5em
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2)
-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.2)
box-shadow: 0 1px 2px rgba(0,0,0,0.2)
display: inline-block
width: 25px
height: 20px
@ -76,11 +68,8 @@
top: -2px
cursor: pointer
color: #fef4e9
border: solid 1px #afafaf
background: #eee
background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#eee))
background: -moz-linear-gradient(top, #fff, #eee)
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20')
border: solid 1px #d6d6d6
background: #f4f4f4
text-align: center
margin-left: 5px
@ -89,7 +78,7 @@
height: 15px
margin-top: 3px
margin-left: 0px
&:hover
opacity: 1.0

View File

@ -17,4 +17,4 @@
@include border-bottom-left-radius(4px)
#top .profile
margin-right: 50px
margin-right: 15px

View File

@ -2,6 +2,8 @@
#profile
#main
padding-top: 40px
h3
height: 19px
line-height: 19px
@ -37,7 +39,6 @@
padding: 10px 10px
color: $color-text-light
border: 1px solid #DDD
@include border-radius(4px)
.sync_now
float: right

View File

@ -73,10 +73,7 @@
height: 18px
margin: 0 10px 0 15px
padding: 0 10px 0 0
@include background(linear-gradient(#eee, #fff))
@include box-shadow(#ccc 0px 2px 3px 0px inset)
border: 1px solid #bdbdbd
@include border-radius(4px)
line-height: 21px
font-size: 11px
color: #999
@ -89,17 +86,14 @@
left: -1px
width: 28px
height: 18px
@include background(linear-gradient(#ddd, #fff))
@include box-shadow(#fff 0px 1px 3px 0px inset)
background: #e9e9e7
border: 1px solid #bdbdbd
@include border-radius(4px)
&.active .switch
width: 56px
padding: 0 0 0 14px
@include background(linear-gradient(#3a78f9, #93bafc))
@include box-shadow(#2153be 0px 2px 3px 0px inset)
border: 1px solid #4b7cde
background: #40454f
border: 1px solid #bdbdbd
color: #fff
text-align: left
&:before

View File

@ -2,9 +2,11 @@
#profile
#right
width: 180px
padding: 11px 20px 80px 20px
background-color: $color-bg-right
min-width: 180px
max-width: 180px
padding: 13px 20px 80px 20px
background-color: #E9E9E7
float: right
border-left: 1px solid $color-border-normal
h4
@ -14,12 +16,11 @@
margin-top: 10px
.box
margin-top: 25px
margin-top: 15px
margin-left: -3px
padding: 15px
border: 1px solid $color-border-normal
background-color: $color-bg-sidebar-box
@include border-radius(4px)
border: 1px solid #e0e0e0
background-color: #ffffff
h4
margin: 0

View File

@ -15,7 +15,7 @@
border-bottom-color: $color-border-light
white-space: nowrap
cursor: pointer
@include border-top-radius(4px)
@include border-top-radius(2px)
font-size: 10px
&:hover

View File

@ -13,7 +13,6 @@
border: 1px solid $color-border-light
white-space: nowrap
cursor: pointer
@include border-top-radius(4px)
&:hover
background-color: $color-bg-tab-hover
@ -21,13 +20,13 @@
.active
background-color: $color-bg-tab-active
border-bottom-color: $color-bg-tab-active
@include border-top-radius(4px)
h5
margin: 0
font-size: $font-size-small
font-weight: normal
line-height: 30px
text-align: center
a
display: block

View File

@ -1,23 +1,24 @@
@import "_mixins/all"
#top
line-height: 40px
@include background(linear-gradient(#444, #111))
line-height: 60px
background: #40454f
font-size: $font-size-normal
h1
float: left
width: 73px
width: 72px
height: 30px
margin: 4px 40px 0 22px
margin: 12px 40px 0 22px
text-indent: -9999px
background: inline-image('ui/logo.png') no-repeat
background-size: cover
ul
list-style-type: none
a, span
color: $color-link-top
color: #ffffff
text-decoration: none
li
@ -26,7 +27,7 @@
display: block
padding: 0 15px
&:hover
color: $color-link-top-highlight
color: #ADC7D0
li.traviscicom
a
@ -45,16 +46,13 @@
display: none
position: absolute
z-index: 300
top: 40px
top: 55px
width: 100%
background-color: $color-bg-dropdown
@include border-bottom-radius(6px)
@include single-box-shadow(rgba(black, 0.3), 2px, 2px, 10px)
li
display: block
&:last-child a:hover
@include border-bottom-radius(4px)
a
display: block
@ -83,15 +81,14 @@
display: block
.signing-in
background: inline-image('ui/spinner.gif') no-repeat 110px 16px
background: inline-image('ui/spinner.gif') no-repeat 110px 22px
img
position: absolute
top: 7px
left: 15px
width: 22px
height: 22px
@include border-radius(3px)
top: 12px
left: 5px
width: 30px
height: 30px
ul
min-width: 145px
@ -106,7 +103,9 @@
#home #navigation .home,
#stats #navigation .stats,
#profile #navigation .profile
background-color: $color-bg-link-top
background-color: transparent
a
color: #ffffff
a:hover
color: $color-link-top-highlight

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 960 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -1,6 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,800' rel='stylesheet' type='text/css'>
<meta charset="UTF-8">
<meta rel="travis.api_endpoint" href="https://api.travis-ci.org">
<meta name="travis.pusher_key" value="5df8ac576dcccf4fd076">