Merge branch 'master' into topbar

This commit is contained in:
Lisa Passing 2015-03-24 14:23:11 +01:00
commit 0bed9a5fa7
61 changed files with 841 additions and 944 deletions

View File

@ -0,0 +1,21 @@
`import Ember from 'ember'`
`import { colorForState } from 'travis/utils/helpers'`
`import { languageConfigKeys } from 'travis/utils/keys-map';`
JobsItemComponent = Ember.Component.extend
tagName: 'li'
classNameBindings: ['job.state']
classNames: ['tile', 'tile--jobs', 'row']
languages: (->
output = []
if config = @get('job.config')
for key, languageName of languageConfigKeys
if version = config[key]
output.push(languageName + ': ' + version)
output.join(' ')
).property('job.config')
`export default JobsItemComponent`

View File

@ -0,0 +1,11 @@
`import Ember from 'ember'`
JobsListComponent = Ember.Component.extend
jobTableId: Ember.computed(->
if @get('required')
'jobs'
else
'allowed_failure_jobs'
)
`export default JobsListComponent`

View File

@ -12,6 +12,11 @@ Controller = Ember.Controller.extend GithubUrlPropertievs,
currentItemBinding: 'build' currentItemBinding: 'build'
jobsLoaded: (->
if jobs = @get('build.jobs')
jobs.everyBy('config')
).property('build.jobs.@each.config')
loading: (-> loading: (->
@get('build.isLoading') @get('build.isLoading')
).property('build.isLoading') ).property('build.isLoading')

View File

@ -8,7 +8,7 @@ Controller = Ember.ArrayController.extend
init: -> init: ->
@_super.apply this, arguments @_super.apply this, arguments
@set('flashes', LimitedArray.create(limit: 2, content: [])) @set('flashes', LimitedArray.create(limit: 1, content: []))
model: (-> model: (->
broadcasts = @get('unseenBroadcasts') broadcasts = @get('unseenBroadcasts')

View File

@ -1,9 +1,14 @@
`import Ember from 'ember'` `import Ember from 'ember'`
Controller = Ember.ArrayController.extend Controller = Ember.ArrayController.extend
isLoaded: false
content: (-> content: (->
@store.filter 'job', {}, (job) -> result = @store.filter('job', {}, (job) ->
['created', 'queued'].indexOf(job.get('state')) != -1 ['created', 'queued'].indexOf(job.get('state')) != -1
)
result.then =>
@set('isLoaded', true)
result
).property() ).property()
`export default Controller` `export default Controller`

View File

@ -7,6 +7,19 @@ Controller = Ember.ArrayController.extend
activate: (name) -> activate: (name) ->
@activate(name) @activate(name)
showRunningJobs: ->
@activate('running')
showMyRepositories: ->
# this is a bit of a hack. I don't want to switch URL for 'running'
# so depending on current state I'm either just switching back or
# redirecting
if @get('tab') == 'running'
@activate('owned')
else
@transitionToRoute('main.repositories')
tabOrIsLoadedDidChange: (-> tabOrIsLoadedDidChange: (->
@possiblyRedirectToGettingStartedPage() @possiblyRedirectToGettingStartedPage()
).observes('isLoaded', 'tab', 'length') ).observes('isLoaded', 'tab', 'length')
@ -17,7 +30,7 @@ Controller = Ember.ArrayController.extend
@container.lookup('router:main').send('redirectToGettingStarted') @container.lookup('router:main').send('redirectToGettingStarted')
isLoadedBinding: 'content.isLoaded' isLoadedBinding: 'content.isLoaded'
needs: ['currentUser', 'repo'] needs: ['currentUser', 'repo', 'runningJobs', 'queue']
currentUserBinding: 'controllers.currentUser' currentUserBinding: 'controllers.currentUser'
selectedRepo: (-> selectedRepo: (->
# we need to observe also repo.content here, because we use # we need to observe also repo.content here, because we use
@ -26,6 +39,11 @@ Controller = Ember.ArrayController.extend
@get('controllers.repo.repo.content') || @get('controllers.repo.repo') @get('controllers.repo.repo.content') || @get('controllers.repo.repo')
).property('controllers.repo.repo', 'controllers.repo.repo.content') ).property('controllers.repo.repo', 'controllers.repo.repo.content')
startedJobsCount: Ember.computed.alias('controllers.runningJobs.length')
allJobsCount: (->
@get('startedJobsCount') + @get('controllers.queue.length')
).property('startedJobsCount', 'controllers.queue.length')
init: -> init: ->
@_super.apply this, arguments @_super.apply this, arguments
if !Ember.testing if !Ember.testing
@ -57,6 +75,8 @@ Controller = Ember.ArrayController.extend
viewOwned: -> viewOwned: ->
@set('content', @get('userRepos')) @set('content', @get('userRepos'))
viewRunning: ->
userRepos: (-> userRepos: (->
if login = @get('currentUser.login') if login = @get('currentUser.login')
Repo.accessibleBy(@store, login) Repo.accessibleBy(@store, login)
@ -91,4 +111,8 @@ Controller = Ember.ArrayController.extend
'Could not find any repos' 'Could not find any repos'
).property('tab') ).property('tab')
showRunningJobs: (->
@get('tab') == 'running'
).property('tab')
`export default Controller` `export default Controller`

View File

@ -1,9 +1,23 @@
`import Ember from 'ember'` `import Ember from 'ember'`
Controller = Ember.ArrayController.extend Controller = Ember.ArrayController.extend
init: ->
@_super.apply this, arguments
if !Ember.testing
Visibility.every @config.intervals.updateTimes, @updateTimes.bind(this)
updateTimes: ->
if content = @get('content')
content.forEach (job) -> job.updateTimes()
isLoaded: false
content: (-> content: (->
@store.filter 'job', { state: 'started' }, (job) -> result = @store.filter('job', { state: 'started' }, (job) ->
['started', 'received'].indexOf(job.get('state')) != -1 ['started', 'received'].indexOf(job.get('state')) != -1
)
result.then =>
@set('isLoaded', true)
result
).property() ).property()
`export default Controller` `export default Controller`

View File

@ -1,19 +0,0 @@
`import Ember from 'ember'`
Controller = Ember.ArrayController.extend
init: ->
@_super.apply this, arguments
@tickables = []
tips: [
"Did you know that you can parallelize tests on Travis CI? <a href=\"http://docs.travis-ci.com/user/speeding-up-the-build/#Paralellizing-your-build-on-one-VM?utm_source=tips\">Learn more</a>"
"Did you know that you can split a build into several smaller pieces? <a href=\"http://docs.travis-ci.com/user/speeding-up-the-build/#Parallelizing-your-builds-across-virtual-machines?utm_source=tips\">Learn more</a>"
"Did you know that you can skip a build? <a href=\"http://docs.travis-ci.com/user/how-to-skip-a-build/?utm_source=tips\">Learn more</a>"
]
tip: (->
if tips = @get('tips')
tips[Math.floor(Math.random()*tips.length)]
).property().volatile()
`export default Controller`

View File

@ -10,7 +10,7 @@
@import "app/auth"; @import "app/auth";
@import "app/caches"; @import "app/caches";
@import "app/charm"; @import "app/charm";
@import "app/flash"; // @import "app/flash";
@import "app/forms"; @import "app/forms";
@import "app/getting_started"; @import "app/getting_started";
@import "app/github"; @import "app/github";
@ -21,24 +21,19 @@
@import "app/main/annotations"; @import "app/main/annotations";
@import "app/main/list"; @import "app/main/list";
@import "app/main/log"; @import "app/main/log";
// @import "app/main/repository";
@import "app/main/sponsors"; @import "app/main/sponsors";
// @import "app/main/summary";
// @import "app/main/tools";
@import "app/main"; @import "app/main";
@import "app/maximize"; // @import "app/maximize";
@import "app/misc"; @import "app/misc";
@import "app/popup"; @import "app/popup";
@import "app/pro"; @import "app/pro";
@import "app/profile/hooks"; @import "app/profile/hooks";
@import "app/profile"; @import "app/profile";
@import "app/requests"; @import "app/requests";
@import "app/right/lists"; // @import "app/right/lists";
@import "app/right/sponsors"; // @import "app/right/sponsors";
@import "app/right"; // @import "app/right";
@import "app/settings"; @import "app/settings";
// @import "app/stats";
// @import "app/status";
@import "app/tabs"; @import "app/tabs";
@import "app/tipsy"; @import "app/tipsy";
@ -54,6 +49,7 @@
@import "app/modules/dropdown"; @import "app/modules/dropdown";
@import "app/modules/tabs"; @import "app/modules/tabs";
@import "app/modules/tooltips"; @import "app/modules/tooltips";
@import "app/modules/flash";
@import "app/layout"; @import "app/layout";
@import "app/layouts/dashboard"; @import "app/layouts/dashboard";

View File

@ -41,49 +41,25 @@
.wrapper .wrapper
overflow: hidden overflow: hidden
#main, #main,
#left, #left
#right
margin-bottom: -99999px margin-bottom: -99999px
padding-bottom: 100034px padding-bottom: 100034px
@media #{$medium-up}
// layout magic http://lea.verou.me/2011/01/styling-children-based-on-their-number-with-css3/
.wrapper-main
overflow: hidden
& > div:first-child:nth-last-child(2)
width: grid-calc(20, 24)
float: left
& > div:first-child:nth-last-child(2) ~ div
width: grid-calc(4, 24)
max-width: 180px
float: right
.maximized
.wrapper-main
& > div:first-child:nth-last-child(2)
width: grid-calc(24, 24)
float: none
& > div:first-child:nth-last-child(2) ~ div
display: none
@media #{$large-up} @media #{$large-up}
#left, #right, .wrapper-main #left, #right, .wrapper-main
min-height: 100vh min-height: 100vh
#left #left
width: grid-calc(5, 24) width: grid-calc(6, 24)
float: left float: left
margin-left: -100% margin-left: -100%
max-width: 325px max-width: 325px
.wrapper-main .wrapper-main
width: grid-calc(19, 24) width: grid-calc(18, 24)
float: left float: left
margin-left: grid-calc(5, 24) margin-left: grid-calc(6, 24)
overflow: visible overflow: visible
@media #{$xlarge-up} @media #{$xlarge-up}
@ -120,56 +96,56 @@
a a
margin-left: 5px margin-left: 5px
@media screen and (max-width: 1400px) // @media screen and (max-width: 1400px)
#left .duration_label // #left .duration_label
display: inline-block // display: inline-block
width: 11px // width: 11px
height: 11px // height: 11px
margin-right: 1px // margin-right: 1px
text-indent: 10px // text-indent: 10px
overflow: hidden // overflow: hidden
background: inline-image('ui/clock.svg') no-repeat 0px 0px // background: inline-image('ui/clock.svg') no-repeat 0px 0px
background-size: contain // background-size: contain
@media screen and (max-width: 1400px) // @media screen and (max-width: 1400px)
#left .finished_at_label // #left .finished_at_label
display: none // display: none
@media screen and (max-width: 1400px) // @media screen and (max-width: 1400px)
table#builds .committer // table#builds .committer
display: none // display: none
@media handheld, only screen and (max-device-width: 980px) // @media handheld, only screen and (max-device-width: 980px)
#left // #left
display: none // display: none
#main // #main
min-width: 99% // min-width: 99%
max-width: 99% // max-width: 99%
padding: 0px // padding: 0px
.tabs // .tabs
margin-top: 5px // margin-top: 5px
p.description // p.description
margin: 5px 0px // margin: 5px 0px
#repo // #repo
padding: 15px 10px // padding: 15px 10px
width: 95% // width: 95%
#top // #top
width: 100% // width: 100%
min-width: 960px // min-width: 960px
#tools // #tools
display: none // display: none
a // a
text-decoration : none // text-decoration : none
.application, // .application,
.dashboard // .dashboard
height: 100% // height: 100%
.no-padding // .no-padding
padding : 0 // padding : 0

View File

@ -34,7 +34,7 @@
p p
white-space: normal white-space: normal
a a
color: $grey1 color: $grey2
.tile-status--job .tile-status--job
width: 2em width: 2em
@ -120,4 +120,8 @@
@include colorJobs($created-color, #f4efd8) @include colorJobs($created-color, #f4efd8)
.is-empty .is-empty
opacity: .3 opacity: .5
.jobs-list
@include resetul

View File

@ -23,7 +23,8 @@ $sb-font-size: 14px
@include colorSidebarTiles($pass-color) @include colorSidebarTiles($pass-color)
&.started, &.started,
&.created, &.created,
&.received &.received,
&.queued
@include colorSidebarTiles($created-color) @include colorSidebarTiles($created-color)
h2, p h2, p
@ -60,10 +61,11 @@ $sb-font-size: 14px
border-bottom: solid 2px $sb-grey border-bottom: solid 2px $sb-grey
width: 90% width: 90%
margin: auto margin: auto
ul
height: 1.7em .active a:after,
li.float-right a:hover:after
padding-right: 0 bottom: -4px
.icon--plus .icon--plus
&:after &:after
transform: translateX(35%) transform: translateX(35%)
@ -73,14 +75,37 @@ $sb-font-size: 14px
.icon--plus:after .icon--plus:after
color: $teal1 color: $teal1
&:after &:after
bottom: 0.05em bottom: 0
@media (min-width: #{lower-bound($large-range)})
ul
height: 1.7em
li
padding-right: 1em
@media #{$xxlarge-up}
li
padding-right: 2em
@media (max-width: #{lower-bound($large-range)})
li
display: block !important
float: none
a
padding: 0 0 .35em
margin-bottom: .8em
.sidebar-list .sidebar-list
margin-top: 1.4rem margin-top: 1.4rem
color: $grey1
ul ul
@include resetul @include resetul
border-bottom: .46rem solid #FAF9F7 border-bottom: .46rem solid #FAF9F7
background-color: #FAF9F7 background-color: #FAF9F7
.sidebar-seperator
width: 90%
margin: 1rem auto
border: none
border-bottom: solid 2px #f2f2f2

View File

@ -1,94 +0,0 @@
// #repo
// position: relative
// width: 100%
// overflow-x: hidden
// padding: 1px 0 0 10px
// h3
// margin-right: 5px
// .status-image
// display: inline-block
// position: relative
// width: 90px
// height: 25px
// vertical-align: top
// a#status-image-popup
// display: inline-block
// opacity: 1.0
// img
// border: none
// .github-icon
// width: 21px
// height: 21px
// display: inline-block
// position: relative
// vertical-align: top
// img
// opacity: 0.65
// .not-found
// display: block
// padding: 10px 5px
// font-size: 12px
// .description, .language
// font-weight: normal
// font-size: 15px
// .description
// margin: 10px 0 35px 0
// color: #9ca0a7
// .language
// display: none
// padding-right: 5px
// color: #666a72
// .github-stats
// position: absolute
// top: 15px
// right: 10px
// > *
// float: left
// a
// height: 16px
// display: block
// font-size: $font-size-smaller
// font-weight: bold
// text-decoration: none
// margin-left: 10px
// padding-left: 20px
// background: no-repeat 0px 2px
// color: $color-text-light
// &.watchers
// background-image: inline-image('ui/github-watchers.png')
// &.forks
// background-image: inline-image('ui/github-forks.png')
// .tab dd
// a[href^="https://github.com"],
// a[href^="http://github.com"],
// a[href^="https://www.github.com"],
// a[href^="http://www.github.com"]
// &:hover
// background: transparent url(/images/icons/github.png) center right no-repeat
// background-size: 12px
// opacity: 1
// padding-right: 16px
// @media #{$large-up}
// h3
// display: inline-block
// .github-icon
// display: inline-block
// top: 17px
// margin-right: 1em
// .status-image
// top: 18px

View File

@ -1,241 +0,0 @@
.green .build-status
background:
color: #549e54
image: inline-image('icons/state-passed-white.svg')
.yellow .build-status
background:
color: #bcaf39
image: inline-image('icons/state-pending-white.svg')
.red .build-status
background:
color: #b54223
image: inline-image('icons/state-failed-white.svg')
.gray .build-status
background:
color: #a8a8a9
image: inline-image('icons/state-errored-white.svg')
.build-status
background-size: 14px 14px
background-position: 12px 12px
background-repeat: no-repeat
#new-summary
@include clearfix
border-radius: 4px
padding: 0 11px 0 51px
position: relative
min-height: 155px
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mN4/+HDfwAJcAPPMJixRQAAAABJRU5ErkJggg=='), #fafafa
background-size: 41px 100%
background-repeat: no-repeat
@media #{$large-up}
padding-right: 240px
.mainline
display: -webkit-flex
display: flex
width: 100%
-webkit-flex-wrap: wrap
flex-wrap: wrap
margin: 0 auto
-webkit-align-items: flex-start
align-items: flex-start
.request-kind
opacity: 0.55
position: absolute
top: 15px
left: 11px
background-size: contain
background-repeat: no-repeat
height: 21px
width: 21px
&.push
background-image: inline-image('icons/push.svg')
&.pull_request
background-image: inline-image('icons/pull-request.svg')
.branch
margin-right: 5px
font-weight: bold
color: #6c878e
font-size: 16px
max-width: 300px
margin-top: 10px
overflow: hidden
white-space: nowrap
.subject
font-size: 15px
color: #6c878e
margin-top: 12px
overflow: hidden
margin-right: 2px
line-height: 20px
word-wrap: break-word
padding-left: 0.55em
text-indent: -0.55em
.body
display: block
font-size: 12px
font-family: Monaco, 'Liberation Mono', Courier, monospace
margin-bottom: 3.5em
margin-top: 17px
overflow: hidden
word-break: break-word
white-space: pre-wrap
a
text-decoration: underline
.build-status
border-radius: 4px
color: white
padding: 8px 0
font-size: 16px
text-align: left
padding-left: 10px
a
color: white
padding-left: 21px
.runtime
background-image: inline-image('icons/run-time.svg')
.finished
background-image: inline-image('icons/finished.svg')
.tags
background-image: inline-image('icons/tags.svg')
.commit-changes
background-image: inline-image('icons/github.svg')
.runtime
margin-top: 5px
.runtime, .finished, .tags, .commit-changes
background-position: left center
background-repeat: no-repeat
background-size: 14px 14px
padding-left: 20px
font-size: 13px
display: block
width: 100%
height: 24px
text-align: left
line-height: 24px
margin-left: 12px
.commit-changes
div
display: inline
clear: none
height: 24px
a
text-overflow: ellipsis
white-space: nowrap
overflow: hidden
display: inline-block
max-width: 175px
line-height: 24px
color: $color-link
.right
font-size: 11px
color: $color-link
a:hover
text-decoration: underline
@media #{$large-up}
position: absolute
top: 10px
right: 10px
width: 220px
.footer
a
color: #818181
text-decoration: underline
img
vertical-align: middle
border-radius: 100px
.text
line-height: 15px
display: inline-block
position: relative
top: 2px
font-size: $font-size-small
.author
float: left
margin-top: 10px
position: absolute
bottom: 9px
left: 48px
div
display: inline
clear: none
color: #818181
img
height: 16px
width: 16px
margin-right: 4px
margin-left: 2px
#summary
margin: 0 0 0 12px
@include clearfix
.left,
.right
float: left
a
text-decoration: underline
dt, dd
float: left
min-height: 25px
margin: 0
dt
clear: left
width: 90px
dd
width: 150px
white-space: nowrap
> dd
width: 80%
min-width: 315px
overflow: hidden
text-overflow: ellipsis
white-space: nowrap
.message
white-space: normal
min-width: 0
pre
font-size: 12px
display: inline-block
width: 100%
line-height: 18px
margin-bottom: 0
font-family: Monaco, 'Liberation Mono', Courier, monospace

View File

@ -1,138 +0,0 @@
#tools
position: relative
margin-top: 5px
& > a.menu-popup-button
display: inline-block
text-align: left
color: #fff
font-size: 13px
padding: 3px 24px 3px 25px
background-image: inline-image('icons/settings.svg'), inline-image('icons/dropdown-arrow-white.svg')
background-size: 14px 14px, 8px 8px
background-position: 6px 7px, right 9px center
background-color: #a6adad
background-repeat: no-repeat
border-radius: 4px
cursor: pointer
img
width: 7px
padding-left: 10px
.menu
@include resetul
@include border-bottom-radius(4px)
margin-top: 1px
z-index: 1000
display: none
position: absolute
width: 140px
background-color: #a6adad
a
display: block
color: $white
font-size: $font-size-small
padding: 5px 25px 5px 25px
&:hover:not(.disabled)
background-color: #909393
&:last-child
@include border-bottom-radius(4px)
&.disabled
cursor: default
color: $color-link-disabled
@media screen and (min-width: 46em)
position: relative
top: 2px
width: 600px
float: right
& > a.menu-popup-button
margin-top: -37px
float: right
.menu
right: 0
top: -8px
margin-top: 0
#code-climate
a
text-decoration: underline
font-weight: bold
img
&#code-climate-logo
float: right
width: 150px
margin-top: 5px
margin-right: 10px
#actions
text-align: right
ul
@include resetul
li
display: inline
@media #{$medium-up}
float: right
position: relative
top: 1.8em
ul
margin-top: -21px
li.restart-build a, li.restart-job a
background-image: inline-image('icons/repeat.svg')
li.cancel-build a, li.cancel-job a
background-image: inline-image('icons/off.svg')
li.code-climate a
background-image: inline-image('icons/code-climate-icon.svg')
li.icon
span.loading
background: inline-image('ui/round-spinner.svg') no-repeat
background-size: 17px 17px
display: inline-block
height: 28px
width: 28px
position: relative
top: -7px
cursor: pointer
color: #ffffff
background-color: #5e869a
text-align: center
border-radius: 50%
background-position: center center
a
text-indent: -9999px
display: inline-block
width: 28px
height: 28px
position: relative
top: -7px
cursor: pointer
color: #fef4e9
border-radius: 50%
background-color: #5e869a
background-size: 16px 16px
background-position: center center
background-repeat: no-repeat
text-align: center
img
width: 16px
height: 16px
margin-top: 6px
margin-left: 0px
&:hover
opacity: 1.0
&.disabled
opacity: 0.6
display: none
visibility: hidden

View File

@ -18,7 +18,7 @@
width: 20px width: 20px
height: 20px height: 20px
border-bottom-left-radius: 4px border-bottom-left-radius: 4px
display: block // display: block
&:hover &:hover
background-color: $color-border-slider-hover background-color: $color-border-slider-hover

View File

@ -0,0 +1,52 @@
.flash
@include resetul
font-size: 18px
text-align: center
li
opacity: 0
position: relative
max-height: 3.5rem
height: 0
animation: comeIn 7s 1 ease
.close
@extend .icon
position: absolute
top: 1em
right: 1em
width: 1.1rem
height: 1.1rem
p
padding: .7em 0
margin: 0
.success,
.notice
color: #3ba85b
background-color: #deebdd
.close
@extend .icon--dismiss-green
.error
color: #de4248
background-color: #f1b6ad
.close
@extend .icon--dismiss-red
@keyframes comeIn
0%
opacity: 1
height: 0
top: -10em
5%
height: 3.5rem
top: 0
95%
height: 3.5rem
opacity: 1
99%
height: 3.5em
100%
height: 0
opacity: 0

View File

@ -14,6 +14,10 @@
.icon--clock .icon--clock
background-image: inline-image('svg/duration-icon.svg') background-image: inline-image('svg/duration-icon.svg')
.icon-clock-dark,
.icon--clock-dark
background-image: inline-image('svg/duration-icon-dark2.svg')
.icon-github, .icon-github,
.icon--github .icon--github
background-image: inline-image('svg/commit-icon.svg') background-image: inline-image('svg/commit-icon.svg')
@ -29,6 +33,10 @@
.icon--hash .icon--hash
background-image: inline-image('svg/build-number-icon.svg') background-image: inline-image('svg/build-number-icon.svg')
.icon-hash-dark,
.icon--hash-dark
background-image: inline-image('svg/build-number-icon-dark2.svg')
.icon-cog, .icon-cog,
.icon--cog .icon--cog
background-image: inline-image('icons/settings.svg') background-image: inline-image('icons/settings.svg')
@ -87,7 +95,7 @@
.icon--env .icon--env
background-image: inline-image('svg/icon-environment.svg') background-image: inline-image('svg/icon-environment-dark2.svg')
.icon--cross-red, .icon--cross-red,
.icon--job.failed .icon--job.failed
background-image: inline-image('svg/icon-job-failed.svg') background-image: inline-image('svg/icon-job-failed.svg')
@ -107,14 +115,14 @@
background-image: inline-image('svg/icon-job-canceled.svg') background-image: inline-image('svg/icon-job-canceled.svg')
.icon--lang .icon--lang
background-image: inline-image('svg/icon-language.svg') background-image: inline-image('svg/icon-language-dark2.svg')
.icon--linux, .icon--linux,
.icon.linux .icon.linux
background-image: inline-image('svg/icon-linux.svg') background-image: inline-image('svg/icon-linux-dark2.svg')
.icon--mac, .icon--mac,
.icon.mac .icon.mac
.icon.osx .icon.osx
background-image: inline-image('svg/icon-mac.svg') background-image: inline-image('svg/icon-mac-dark2.svg')
.icon--eye .icon--eye
background-image: inline-image('svg/icon-showmore.svg') background-image: inline-image('svg/icon-showmore.svg')
.icon--question .icon--question
@ -127,6 +135,12 @@
.icon--search .icon--search
background-image: inline-image('svg/search.svg') background-image: inline-image('svg/search.svg')
.icon--dismiss-green
background-image: inline-image('svg/icon-success-dismiss.svg')
.icon--dismiss-red
background-image: inline-image('svg/icon-error-dismiss.svg')
.icon--plus .icon--plus
&:after &:after
content: "+" content: "+"

View File

@ -5,4 +5,4 @@
background-color: $white background-color: $white
.section--maxheight .section--maxheight
height: 3.3em height: 3.3em

View File

@ -32,7 +32,7 @@ $tooltip-grey: #6A6C6D
bottom: -2.5em bottom: -2.5em
@media #{$medium-up} @media #{$medium-up}
width: 25rem width: 18rem
.tooltip-inner .tooltip-inner
height: 4.1em height: 4.1em

View File

@ -1,7 +0,0 @@
#repo_count_container,
#build_count_container
width: 100%
height: 300px
margin: 30px 0

View File

@ -1,97 +0,0 @@
.status
display: inline-block
width: 10px
height: 10px
margin-right: 2px
background-size: auto auto
background-position: 0px 0px
.list .status
margin-left: 7px
#repos .yellow,
.yellow #summary .number,
.list .yellow .number
.status
background-image: inline-image('icons/state-pending.svg')
a
color: $color-text-status-pending
#repos .green,
.green #summary .number,
.list .green .number,
#requests .accepted .request-id
.status
background-image: inline-image('icons/state-passed.svg')
a
color: $color-text-status-passed
#repos .red,
.red #summary .number,
.list .red .number,
#requests .rejected .request-id
.status
background-image: inline-image('icons/state-failed.svg')
a
color: $color-text-status-failed
#repos .gray,
.gray #summary .number,
.list .gray .number
.status
background-image: inline-image('icons/state-errored.svg')
a
color: $color-text-status-gray
table.list
tbody
td
background-color: $color-bg-job
tr:hover td
background-color: $color-bg-job-highlight
.green, .accepted
td
background-color: $color-bg-job-passed
&:hover td
background-color: $color-bg-job-passed-highlight
.number a, .request-id a
color: $color-text-status-passed
.red, .rejected
td
background-color: $color-bg-job-failed
&:hover td
background-color: $color-bg-job-failed-highlight
.number a, .request-id a
color: $color-text-status-failed
.gray
td
background-color: $color-bg-job-gray
&:hover td
background-color: $color-bg-job-gray-highlight
.number a
color: $color-text-status-gray
.number a
display: inline-block
text-decoration: none
&:hover
text-decoration: underline
#workers
.status
background-color: $color-bg-status-waiting
.waiting .status
background-color: $color-bg-status-waiting
.errored .status
background-color: $color-bg-status-errored
.stopped .status
background-color: $color-bg-status-stopped

View File

@ -96,26 +96,6 @@
@media #{$medium-up} @media #{$medium-up}
display: inline-block display: inline-block
// .tab
// margin-top: 15px
// ul.navigation
// @include resetul
// border-bottom: 1px solid #EAEAEA
// li
// margin-right: 10px
// a
// color: #ACACAC
// font-weight: 600
// font-size: 14px
// a.active
// color: #55888E
// @media #{$small-up}
// li
// display: inline-block
// @media #{$medium-up}
// height: 40px
// line-height: 40px
#builds #builds
a a
display: inline display: inline
@ -136,24 +116,17 @@
.tab .tab
margin: 30px 0 0 12px margin: 30px 0 0 12px
#right // #right
.tabs // .tabs
margin-left: -3px // margin-left: -3px
.active // .active
background-color: $color-bg-right // background-color: $color-bg-right
border-bottom-color: $color-bg-right // border-bottom-color: $color-bg-right
h5 // h5
font-weight: bold // font-weight: bold
@media handheld, only screen and (max-device-width: 980px) // @media handheld, only screen and (max-device-width: 980px)
#main // #main
// .tabs // #tab_branches
// margin-top: 5px // display: none
// li
// margin-right: 0px
// h5
// min-width: 0px
#tab_branches
display: none

View File

@ -1,8 +1 @@
{{outlet}} {{outlet}}
{{#if config.pro}}
<div id="global_slider" {{action toggle target=slider}}>
<div class='icon'></div>&nbsp;
</div>
{{/if}}

View File

@ -61,7 +61,7 @@
<li> <li>
<span class="icon icon--clock"></span> <span class="icon icon--clock"></span>
{{#if build.isFinished}}ran{{else}}running{{/if}} for {{format-duration build.duration}} {{#if build.isFinished}}ran{{else}}running{{/if}} for {{format-duration build.duration}}
<li> <li {{bind-attr title="build.finishedAt"}}>
<span class="icon icon--cal"></span> <span class="icon icon--cal"></span>
{{format-time build.finishedAt}} {{format-time build.finishedAt}}
</li> </li>
@ -76,8 +76,14 @@
{{/unless}} {{/unless}}
{{#if build.isMatrix}} {{#if build.isMatrix}}
{{view 'jobs' jobs=build.requiredJobs required="true"}} {{#if jobsLoaded}}
{{view 'jobs' jobs=build.allowedFailureJobs}} {{jobs-list jobs=build.requiredJobs required="true"}}
{{jobs-list jobs=build.allowedFailureJobs}}
{{else}}
<div class="spinner-container">
<span class="sync-spinner sync-spinner--grey"><i></i><i></i><i></i></span>
</div>
{{/if}}
{{else}} {{else}}
{{view 'log' job=build.jobs.firstObject}} {{view 'log' job=build.jobs.firstObject}}
{{/if}} {{/if}}

View File

@ -0,0 +1,46 @@
{{#link-to "job" job.repo job}}
<div class="tile-status tile-status--job">
<span {{bind-attr class=":icon :icon--job job.state"}}></span>
</div>
<p class="job-id jobs-item build-status">
<span class="icon icon--hash-dark"></span>
{{job.number}}
</p>
<p {{bind-attr class=":job-os :jobs-item :build-os job.config.os"}}>
<span {{bind-attr class=":icon job.config.os"}}></span>
</p>
{{#if languages}}
<p class="job-lang jobs-item build-lang">
<span class="icon icon--lang"></span>
{{languages}}
</p>
{{else}}
<p class="job-lang jobs-item build-lang is-empty">
<span class="icon icon--lang"></span>
no language set
</p>
{{/if}}
<div class="job-anchor jobs-item">
{{#if job.config.env}}
<p class="job-env jobs-item build-env">
<span class="icon icon--env"></span>
{{job.config.env}}
</p>
{{else}}
<p class="job-env jobs-item build-env is-empty">
<span class="icon icon--env"></span>
no environment variables set
</p>
{{/if}}
<p class="job-duration jobs-item" {{bind-attr title="job.startedAt"}}>
<span class="icon icon--clock-dark"></span>
{{format-duration job.duration}}
</p>
</div>
{{/link-to}}

View File

@ -0,0 +1,21 @@
{{#if jobs.length}}
<section>
{{#if required}}
<h2 class="build-title">Build Jobs</h2>
{{else}}
<h2 class="build-title">Allowed Failures
<span class="icon icon--question"></span>
<div class="tooltip">
<p class="tooltip-inner">These are jobs you can allow to fail without failing your entire build</p>
</div>
</h2>
{{/if}}
<ul class="jobs-list">
{{#each job in jobs}}
{{jobs-item job=job}}
{{/each}}
</ul>
</section>
{{/if}}

View File

@ -7,7 +7,7 @@
<h2 class="build-title">Allowed Failures <h2 class="build-title">Allowed Failures
<span class="icon icon--question"></span> <span class="icon icon--question"></span>
<div class="tooltip"> <div class="tooltip">
<p class="tooltip-inner">These are jobs you can allow to fail without failing your entire build</p> <p class="tooltip-inner">These are jobs are allowed to fail, without failing your entire build.</p>
</div> </div>
</h2> </h2>
{{/if}} {{/if}}
@ -23,7 +23,7 @@
</div> </div>
<p class="job-id jobs-item build-status"> <p class="job-id jobs-item build-status">
<span class="icon icon--hash"></span> <span class="icon icon--hash-dark"></span>
{{#if job.id}} {{#if job.id}}
{{#if job.repo.slug}} {{#if job.repo.slug}}
{{number}} {{number}}
@ -57,12 +57,12 @@
{{else}} {{else}}
<p class="job-env jobs-item build-env is-empty"> <p class="job-env jobs-item build-env is-empty">
<span class="icon icon--env"></span> <span class="icon icon--env"></span>
no environments set no environment variables set
</p> </p>
{{/if}} {{/if}}
<p class="job-duration jobs-item" {{bind-attr title="startedAt"}}> <p class="job-duration jobs-item" {{bind-attr title="startedAt"}}>
<span class="icon icon--clock"></span> <span class="icon icon--clock-dark"></span>
{{format-duration duration}} {{format-duration duration}}
</p> </p>

View File

@ -4,16 +4,12 @@
{{render "top"}} {{render "top"}}
</header> </header>
{{render "flash"}}
<div class="wrapper-main"> <div class="wrapper-main">
<div id="main" role="main"> <div id="main" role="main">
{{render "flash"}}
{{yield}} {{yield}}
</div> </div>
{{#if config.pro}}
<div id="right">
{{render "sidebar"}}
</div>
{{/if}}
</div> </div>
<aside id="left"> <aside id="left">

View File

@ -3,31 +3,12 @@
{{render "top"}} {{render "top"}}
</header> </header>
{{render "flash"}}
<div class="wrapper-main"> <div class="wrapper-main">
<div id="main" role="main"> <div id="main" role="main">
{{render "flash"}}
{{yield}} {{yield}}
</div> </div>
<div id="right">
<div id="slider" {{action "toggle" target=slider}}>
<div class='icon'></div>&nbsp;
</div>
<div class="box">
<h4>Getting started?</h4>
<p>
Please read our <a href="http://docs.travis-ci.com/user/getting-started">guide</a>.
You'll be up and running in no time!
</p>
<p>
You can find detailed docs on our <a href="http://docs.travis-ci.com">documentation</a> site.
</p>
<p>
If you need help <a href="http://stackoverflow.com/questions/ask?tags=travis-ci">ask a question</a> or hop on <a href="irc://irc.freenode.net/#travis">#travis</a> on irc.freenode.net
</p>
</div>
</div>
</div> </div>
<aside id="left"> <aside id="left">

View File

@ -2,7 +2,8 @@
{{render "top"}} {{render "top"}}
</div> </div>
{{render "flash"}}
<div id="main"> <div id="main">
{{render "flash"}}
{{yield}} {{yield}}
</div> </div>

View File

@ -1,23 +1,32 @@
<ul id="queues"> {{#if isLoaded}}
<li class="queue"> {{#if length}}
<h4>Queue ({{length}})</h4> {{#each job in controller}}
<ul> <div {{bind-attr class=":tile :tile--sidebar job.state"}}>
{{#if length}} {{#if job.repo.slug}}
{{#each job in controller}} <span {{bind-attr class=":icon :icon--job job.state"}}></span>
<li> {{#link-to "job" job.repo job}}{{job.repo.slug}}{{/link-to}}
{{#if job.repo.slug}} {{/if}}
{{#link-to "job" job.repo job}} </h2>
<span class="slug" {{bind-attr title="job.slug"}}>
{{job.repo.slug}} <p class="tile-title float-right">
</span> <span class="icon icon--hash"></span>
#{{job.number}} {{#if job.repo.slug}}
{{/link-to}} {{#link-to "job" job.repo job}}{{job.number}}{{/link-to}}
{{/if}} {{/if}}
</li> </p>
{{/each}}
{{else}} <p>
There are no jobs <span class="icon icon--clock"></span> Queued
{{/if}} </p>
</ul>
</li> </div>
</ul>
{{/each}}
{{else}}
<div class="spinner-container">There are no jobs queued</div>
{{/if}}
{{else}}
<div class="spinner-container">
<span class="sync-spinner sync-spinner--grey"><i></i><i></i><i></i></span>
</div>
{{/if}}

View File

@ -6,52 +6,68 @@
{{view 'repos-list-tabs'}} {{view 'repos-list-tabs'}}
<div class="tabbody sidebar-list"> {{#if showRunningJobs}}
<div class="tabbody sidebar-list">
{{#if isLoaded}} <div>
{{#collection 'repos-list' content=this}} {{render "runningJobs"}}
{{#with view.repo as repo}}
<div {{bind-attr class=":tile :tile--sidebar repo.lastBuildState"}}>
<h2 class="tile-title">
{{#if repo.slug}}
<span {{bind-attr class=":icon :icon--job repo.lastBuildState"}}></span>
{{#link-to "repo" repo class="slug"}}{{repo.slug}}{{/link-to}}
{{/if}}
</h2>
{{#with repo.lastBuildHash as lastBuild}}
{{#if repo.slug}}
{{#if lastBuild.id}}
<p class="tile-title float-right">
<span class="icon icon--hash"></span>
{{#link-to "build" repo lastBuild.id
class="last_build"}}{{lastBuild.number}}{{/link-to}}
</p>
{{/if}}
{{/if}}
{{/with}}
<p>
<span class="icon icon--clock"></span>
Duration:
<abbr class="duration" {{bind-attr title="lastBuildStartedAt"}}>
{{format-duration repo.lastBuildDuration}}
</abbr>
</p>
<p>
<span class="icon icon--cal"></span>
Finished:
<abbr clas s="finished_at timeago" {{bind-attr title="lastBuildFinishedAt"}}>
{{format-time repo.lastBuildFinishedAt}}
</abbr>
</p>
</div>
{{/with}}
{{else}}
<p class="empty">{{noReposMessage}}</p>
{{/collection}}
{{else}}
<div class="spinner-container">
<span class="sync-spinner sync-spinner--grey"><i></i><i></i><i></i></span>
</div> </div>
{{/if}} <hr class="sidebar-seperator">
</div> <div>
{{render "queue"}}
</div>
</div>
{{else}}
<div class="tabbody sidebar-list">
{{#if isLoaded}}
{{#collection 'repos-list' content=this}}
{{#with view.repo as repo}}
<div {{bind-attr class=":tile :tile--sidebar repo.lastBuildState"}}>
<h2 class="tile-title">
{{#if repo.slug}}
<span {{bind-attr class=":icon :icon--job repo.lastBuildState"}}></span>
{{#link-to "repo" repo class="slug"}}{{repo.slug}}{{/link-to}}
{{/if}}
</h2>
{{#with repo.lastBuildHash as lastBuild}}
{{#if repo.slug}}
{{#if lastBuild.id}}
<p class="tile-title float-right">
<span class="icon icon--hash"></span>
{{#link-to "build" repo lastBuild.id
class="last_build"}}{{lastBuild.number}}{{/link-to}}
</p>
{{/if}}
{{/if}}
{{/with}}
<p>
<span class="icon icon--clock"></span>
Duration:
<abbr class="duration" {{bind-attr title="lastBuildStartedAt"}}>
{{format-duration repo.lastBuildDuration}}
</abbr>
</p>
<p>
<span class="icon icon--cal"></span>
Finished:
<abbr class="finished_at timeago" {{bind-attr title="lastBuildFinishedAt"}}>
{{format-time repo.lastBuildFinishedAt}}
</abbr>
</p>
</div>
{{/with}}
{{else}}
<p class="empty">{{noReposMessage}}</p>
{{/collection}}
{{else}}
<div class="spinner-container">
<span class="sync-spinner sync-spinner--grey"><i></i><i></i><i></i></span>
</div>
{{/if}}
</div>
{{/if}}

View File

@ -1,7 +1,7 @@
<div class="tabnav tabnav--sidebar" role="tablist"> <div class="tabnav tabnav--sidebar" role="tablist">
<ul class="tab tabs--sidebar"> <ul class="tab tabs--sidebar">
<li id="tab_owned" {{bind-attr class="view.classOwned"}}> <li id="tab_owned" {{bind-attr class="view.classOwned"}}>
{{#link-to "main.repositories"}}My Repositories{{/link-to}} <a href="#" {{action "showMyRepositories"}}>My Repositories</a>
</li> </li>
{{#unless config.pro}} {{#unless config.pro}}
@ -10,11 +10,13 @@
</li> </li>
{{/unless}} {{/unless}}
{{!-- <li id="tab_search" {{bind-attr class="view.classSearch"}}> {{#if config.pro}}
<h5>Search</h5> <li id="tab_running" {{bind-attr class="view.classRunning"}}>
</li> --}} <a href="#" {{action "showRunningJobs"}}>Running ({{startedJobsCount}}/{{allJobsCount}})</a>
</li>
{{/if}}
<li id="tab_new" {{bind-attr class="view.classNew :float-right"}}> <li id="tab_new" {{bind-attr class="view.classNew"}}>
{{#link-to "profile" trackEvent="add-repository-from-list" title="Add New Repository"}} {{#link-to "profile" trackEvent="add-repository-from-list" title="Add New Repository"}}
<span class="icon icon--plus"></span> <span class="icon icon--plus"></span>
{{/link-to}} {{/link-to}}

View File

@ -1,17 +1,36 @@
<h4>Running Jobs ({{controller.length}})</h4> {{#if isLoaded}}
<ul class="jobs">
{{#if controller.length}} {{#if controller.length}}
{{#each job in controller}} {{#each job in controller}}
<li {{bind-attr title="job.slug"}}"> <div {{bind-attr class=":tile :tile--sidebar job.state"}}>
{{#if job.repo.slug}} {{#if job.repo.slug}}
{{#link-to "job" job.repo job}} <span {{bind-attr class=":icon :icon--job job.state"}}></span>
{{job.repo.slug}} #{{job.number}} {{#link-to "job" job.repo job}}{{job.repo.slug}}{{/link-to}}
{{/link-to}} {{/if}}
{{/if}} </h2>
</li>
<p class="tile-title float-right">
<span class="icon icon--hash"></span>
{{#if job.repo.slug}}
{{#link-to "job" job.repo job}}{{job.number}}{{/link-to}}
{{/if}}
</p>
<p>
<span class="icon icon--clock"></span>
Duration:
<abbr class="duration" {{bind-attr title="job.startedAt"}}>
{{format-duration job.duration}}
</abbr>
</p>
</div>
{{/each}} {{/each}}
{{else}} {{else}}
There are no jobs <div class="spinner-container">There are no jobs running</div>
{{/if}} {{/if}}
</ul> {{else}}
<div class="spinner-container">
<span class="sync-spinner sync-spinner--grey"><i></i><i></i><i></i></span>
</div>
{{/if}}

View File

@ -1,19 +0,0 @@
<div id="slider" {{action toggle target=slider}}>
<div class='icon'></div>&nbsp;
</div>
{{#if tip}}
<div class="tip box">
<h4>Tip:</h4>
<p>{{{tip}}}</p>
</div>
{{/if}}
{{#if config.sidebar_support_box}}
{{view templateName="layouts/support"}}
{{/if}}
{{render "runningJobs"}}
{{render "queue"}}

View File

@ -28,8 +28,8 @@ podStatusImage = ( (url, slug, branch) ->
"=for HTML <a href=\"#{url}\"><img src=\"#{statusImageUrl(slug, branch)}\"></a>" "=for HTML <a href=\"#{url}\"><img src=\"#{statusImageUrl(slug, branch)}\"></a>"
) )
ccxmlStatusUrl = ( (slug) -> ccxmlStatusUrl = ( (slug, branch) ->
ccXmlUrl(slug) ccXmlUrl(slug, branch)
) )
format = (version, slug, branch) -> format = (version, slug, branch) ->
@ -43,7 +43,7 @@ format = (version, slug, branch) ->
when 'AsciiDoc' then asciidocStatusImage(url, slug, branch) when 'AsciiDoc' then asciidocStatusImage(url, slug, branch)
when 'Rst' then rstStatusImage(url, slug, branch) when 'Rst' then rstStatusImage(url, slug, branch)
when 'Pod' then podStatusImage(url, slug, branch) when 'Pod' then podStatusImage(url, slug, branch)
when 'CCTray' then ccxmlStatusUrl(url, slug, branch) when 'CCTray' then ccxmlStatusUrl(slug, branch)
`export default format` `export default format`

View File

@ -28,12 +28,17 @@ statusImage = (slug, branch) ->
else else
"#{location.protocol}//#{location.host}/#{slug}.svg" + if branch then "?branch=#{encodeURIComponent(branch)}" else '' "#{location.protocol}//#{location.host}/#{slug}.svg" + if branch then "?branch=#{encodeURIComponent(branch)}" else ''
ccXml = (slug) -> ccXml = (slug, branch) ->
url = "##{config.apiEndpoint}/repos/#{slug}/cc.xml"
if branch
url = "#{url}?branch=#{branch}"
if config.pro if config.pro
delimiter = if url.indexOf('?') == -1 then '?' else '&'
token = Travis.__container__.lookup('controller:currentUser').get('token') token = Travis.__container__.lookup('controller:currentUser').get('token')
"##{config.apiEndpoint}/repos/#{slug}/cc.xml?token=#{token}" url = "#{url}#{delimiter}token=#{token}"
else
"#{config.apiEndpoint}/repos/#{slug}/cc.xml" url
email = (email) -> email = (email) ->
"mailto:#{email}" "mailto:#{email}"

View File

@ -2,7 +2,7 @@
View = BasicView.extend View = BasicView.extend
classNames: ['flash'] classNames: ['flash']
tagname: 'ul' tagName: 'ul'
templateName: 'layouts/flash' templateName: 'layouts/flash'
`export default View` `export default View`

View File

@ -1,26 +0,0 @@
`import BasicView from 'travis/views/basic'`
`import { colorForState } from 'travis/utils/helpers'`
`import { languageConfigKeys } from 'travis/utils/keys-map';`
View = BasicView.extend
tagName: 'div'
classNameBindings: ['color']
repoBinding: 'context.repo'
jobBinding: 'context'
color: (->
colorForState(@get('job.state'))
).property('job.state')
languages: (->
output = []
if config = @get('job.config')
for key, languageName of languageConfigKeys
if version = config[key]
output.push(languageName + ': ' + version)
output.join(' ')
).property()
`export default View`

View File

@ -1,23 +0,0 @@
`import Ember from 'ember'`
`import BasicView from 'travis/views/basic'`
View = BasicView.extend
templateName: 'jobs'
buildBinding: 'controller.build'
jobTableId: Ember.computed(->
if @get('required')
'jobs'
else
'allowed_failure_jobs'
)
actions:
popupClose: ->
@popupCloseAll()
openHelpPopup: ->
@popupCloseAll()
@popup('help-allowed_failures')
`export default View`

View File

@ -12,6 +12,12 @@ View = Ember.View.extend
'hidden' 'hidden'
).property('tab') ).property('tab')
classRunning: (->
classes = []
classes.push('active') if @get('tab') == 'running'
classes.join(' ')
).property('tab')
classOwned: (-> classOwned: (->
classes = [] classes = []
classes.push('active') if @get('tab') == 'owned' classes.push('active') if @get('tab') == 'owned'

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="16.96px" height="16.15px" viewBox="0 0 16.96 16.15" enable-background="new 0 0 16.96 16.15" xml:space="preserve">
<path fill="#808080" d="M15.748,6.406c0.668,0,1.213-0.542,1.213-1.21c0-0.669-0.545-1.212-1.213-1.212h-3.172l0.209-2.678
c0.051-0.667-0.445-1.249-1.115-1.303c-0.666-0.051-1.248,0.447-1.299,1.113l-0.228,2.867H7.454l0.212-2.678
C7.72,0.639,7.22,0.057,6.553,0.003C5.886-0.048,5.303,0.45,5.25,1.117L5.024,3.984H2.02c-0.67,0-1.212,0.542-1.212,1.212
c0,0.668,0.542,1.21,1.212,1.21h2.815L4.602,9.371H1.211C0.542,9.371,0,9.913,0,10.583s0.542,1.212,1.211,1.212h3.2l-0.239,3.049
c-0.053,0.667,0.446,1.25,1.112,1.303C5.317,16.15,5.35,16.15,5.381,16.15c0.626,0,1.157-0.481,1.207-1.116l0.253-3.239H9.53
l-0.239,3.049c-0.053,0.667,0.447,1.25,1.112,1.303c0.032,0.005,0.063,0.005,0.097,0.005c0.627,0,1.154-0.481,1.209-1.116
l0.254-3.239h2.977c0.67,0,1.211-0.542,1.211-1.212s-0.541-1.212-1.211-1.212h-2.787l0.232-2.965L15.748,6.406L15.748,6.406z
M9.722,9.371h-2.69l0.232-2.965h2.688L9.722,9.371z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="16.96px" height="16.15px" viewBox="0 0 16.96 16.15" enable-background="new 0 0 16.96 16.15" xml:space="preserve">
<path fill="#969496" d="M15.748,6.406c0.668,0,1.213-0.542,1.213-1.21c0-0.669-0.545-1.212-1.213-1.212h-3.172l0.209-2.678
c0.051-0.667-0.445-1.249-1.115-1.304c-0.666-0.051-1.248,0.447-1.299,1.113l-0.228,2.867H7.454l0.212-2.678
C7.72,0.639,7.22,0.057,6.553,0.003C5.886-0.048,5.303,0.45,5.25,1.117L5.024,3.984H2.02c-0.67,0-1.212,0.542-1.212,1.212
c0,0.668,0.542,1.21,1.212,1.21h2.815L4.602,9.371H1.211C0.542,9.371,0,9.913,0,10.583s0.542,1.212,1.211,1.212h3.2l-0.239,3.049
c-0.053,0.667,0.446,1.25,1.112,1.304C5.317,16.15,5.35,16.15,5.381,16.15c0.626,0,1.157-0.481,1.207-1.116l0.253-3.239H9.53
l-0.239,3.049c-0.053,0.667,0.447,1.25,1.112,1.304c0.032,0.005,0.063,0.005,0.097,0.005c0.627,0,1.154-0.481,1.209-1.116
l0.254-3.239h2.978c0.67,0,1.211-0.542,1.211-1.212S15.61,9.373,14.94,9.373h-2.787l0.231-2.965L15.748,6.406L15.748,6.406z
M9.722,9.371h-2.69l0.232-2.965h2.688L9.722,9.371z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="15.375px" height="15.372px" viewBox="0 0 15.375 15.372" enable-background="new 0 0 15.375 15.372" xml:space="preserve">
<g>
<path fill="#808080" d="M7.7,0.2c-4.142,0-7.5,3.358-7.5,7.5c0,4.14,3.358,7.5,7.5,7.5c4.143,0,7.5-3.359,7.5-7.5
C15.201,3.558,11.843,0.2,7.7,0.2z M7.7,13.327c-3.102,0-5.625-2.523-5.625-5.625S4.599,2.075,7.7,2.075
c3.1,0,5.625,2.523,5.625,5.625C13.326,10.801,10.802,13.327,7.7,13.327z"/>
<path fill="#808080" d="M11.339,9.381L8.373,7.377V3.928c0-0.083-0.033-0.163-0.092-0.221C8.223,3.648,8.142,3.615,8.06,3.615H7.24
c-0.083,0-0.163,0.034-0.221,0.092C6.96,3.765,6.927,3.845,6.927,3.928v4.074c0,0.082,0.033,0.162,0.092,0.221
c0.023,0.023,0.051,0.043,0.08,0.059l3.457,2.315c0.052,0.034,0.111,0.053,0.173,0.053c0.022,0,0.045-0.002,0.065-0.008
c0.084-0.017,0.154-0.065,0.199-0.14l0.437-0.694C11.519,9.665,11.479,9.475,11.339,9.381z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="15.375px" height="15.372px" viewBox="0 0 15.375 15.372" enable-background="new 0 0 15.375 15.372" xml:space="preserve">
<g>
<path fill="#969496" d="M7.7,0.2c-4.142,0-7.5,3.358-7.5,7.5c0,4.14,3.358,7.5,7.5,7.5c4.143,0,7.5-3.359,7.5-7.5
C15.201,3.558,11.843,0.2,7.7,0.2z M7.7,13.327c-3.102,0-5.625-2.522-5.625-5.625S4.599,2.075,7.7,2.075
c3.1,0,5.625,2.523,5.625,5.625C13.326,10.801,10.802,13.327,7.7,13.327z"/>
<path fill="#969496" d="M11.339,9.381L8.373,7.377V3.928c0-0.083-0.033-0.163-0.092-0.221C8.223,3.648,8.142,3.615,8.06,3.615H7.24
c-0.083,0-0.163,0.034-0.221,0.092C6.96,3.765,6.927,3.845,6.927,3.928v4.074c0,0.082,0.033,0.162,0.092,0.221
c0.023,0.023,0.051,0.043,0.08,0.059l3.458,2.315c0.051,0.034,0.11,0.053,0.172,0.053c0.022,0,0.045-0.002,0.065-0.008
c0.084-0.017,0.154-0.065,0.199-0.14l0.437-0.694C11.52,9.665,11.479,9.475,11.339,9.381z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
<path fill="#808080" d="M15.312,2.454C15.312,2.453,15.312,2.453,15.312,2.454l-0.006-0.002c-0.013-0.004-0.024-0.008-0.039-0.011
L8.2,0.528c-0.132-0.036-0.271-0.036-0.402,0L0.686,2.453C0.369,2.539,0.15,2.816,0.126,3.14C0.123,3.154,0.121,3.169,0.118,3.184
c0,0.005-0.001,0.009-0.001,0.013c0,0.001,0,0.002,0,0.003C0.112,3.235,0.106,3.271,0.106,3.309v8.534
c0,0.312,0.188,0.595,0.476,0.712l6.995,2.889c0.095,0.039,0.194,0.059,0.294,0.059c0.022,0,0.044-0.004,0.067-0.006
c0.02,0.002,0.04,0.006,0.061,0.006c0.188,0,0.357-0.068,0.491-0.182l6.904-2.629c0.299-0.113,0.496-0.399,0.496-0.719V3.196
C15.891,2.838,15.645,2.539,15.312,2.454z M7.999,2.069l4.166,1.127L7.999,4.323L3.833,3.196L7.999,2.069z M1.646,4.2l5.583,1.51
v7.923l-5.583-2.305V4.2z M8.77,13.564V5.71l5.582-1.51v7.239L8.77,13.564z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
<path fill="#969496" d="M15.312,2.454C15.312,2.453,15.312,2.453,15.312,2.454l-0.006-0.002c-0.014-0.004-0.024-0.008-0.039-0.011
L8.2,0.528c-0.132-0.036-0.271-0.036-0.402,0L0.686,2.453C0.369,2.539,0.15,2.816,0.126,3.14C0.123,3.154,0.121,3.169,0.118,3.184
c0,0.005-0.001,0.009-0.001,0.013c0,0.001,0,0.002,0,0.003C0.112,3.235,0.106,3.271,0.106,3.309v8.534
c0,0.312,0.188,0.595,0.476,0.712l6.995,2.889c0.095,0.039,0.194,0.06,0.294,0.06c0.022,0,0.044-0.004,0.067-0.006
c0.02,0.002,0.04,0.006,0.061,0.006c0.188,0,0.357-0.067,0.491-0.183l6.904-2.629c0.299-0.112,0.496-0.398,0.496-0.719V3.196
C15.891,2.838,15.645,2.539,15.312,2.454z M7.999,2.069l4.166,1.127L7.999,4.323L3.833,3.196L7.999,2.069z M1.646,4.2l5.583,1.51
v7.923l-5.583-2.305V4.2z M8.77,13.564V5.71l5.582-1.51v7.239L8.77,13.564z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="14px" height="14px" viewBox="0 0 14 14" enable-background="new 0 0 14 14" xml:space="preserve">
<polygon fill="#E16C5E" points="10.914,0 6.998,3.913 3.088,0 0,3.085 3.912,7 0,10.915 3.092,14 6.998,10.088 10.914,14 14,10.915
10.092,7 14,3.085 "/>
</svg>

After

Width:  |  Height:  |  Size: 631 B

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="21.104px" height="12.938px" viewBox="0 0 21.104 12.938" enable-background="new 0 0 21.104 12.938" xml:space="preserve">
<g>
<polygon fill="#808080" points="6.703,3.362 5.008,2 0,6.775 5.055,11.551 6.75,10.189 3.113,6.775 "/>
<polygon fill="#808080" points="15.958,2 14.263,3.361 17.899,6.775 14.31,10.189 16.005,11.551 21.013,6.775 "/>
<polygon fill="#808080" points="8.075,12.917 10.032,12.917 13.163,0 11.208,0 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 814 B

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="21.104px" height="12.938px" viewBox="0 0 21.104 12.938" enable-background="new 0 0 21.104 12.938" xml:space="preserve">
<g>
<polygon fill="#969496" points="6.703,3.362 5.008,2 0,6.775 5.055,11.551 6.75,10.189 3.113,6.775 "/>
<polygon fill="#969496" points="15.958,2 14.263,3.361 17.899,6.775 14.31,10.189 16.005,11.551 21.013,6.775 "/>
<polygon fill="#969496" points="8.075,12.917 10.032,12.917 13.163,0 11.208,0 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 814 B

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="13.604px" height="16.021px" viewBox="0 0 13.604 16.021" enable-background="new 0 0 13.604 16.021" xml:space="preserve">
<g>
<g>
<g>
<path fill="#808080" d="M13.163,12.911c-0.048-0.018-0.095-0.045-0.139-0.072c-0.302-0.175-0.502-0.413-0.485-0.791
c0.01-0.265-0.083-0.508-0.24-0.715c-0.094-0.13-0.113-0.242-0.078-0.396c0.215-1.01,0.043-1.94-0.509-2.828
c-0.509-0.822-1.038-1.627-1.6-2.408C9.761,5.208,9.598,4.665,9.57,4.06c-0.021-0.5-0.021-1.007-0.108-1.503
C9.255,1.4,8.812,0.431,7.535,0.12c-0.328,0-0.657,0-0.985,0C6.49,0.137,6.431,0.152,6.371,0.167
C5.72,0.347,5.134,0.61,4.861,1.303C4.682,1.76,4.633,2.24,4.649,2.723C4.67,3.346,4.722,3.971,4.753,4.593
c0.031,0.612-0.142,1.109-0.526,1.582C3.688,6.833,3.198,7.53,2.941,8.364c-0.163,0.531-0.367,1.045-0.603,1.55
c-0.072,0.158-0.136,0.327-0.118,0.503c0.035,0.308-0.063,0.54-0.242,0.802c-0.263,0.394-0.586,0.616-1.027,0.711
c-0.101,0.023-0.2,0.045-0.297,0.077c-0.34,0.118-0.499,0.336-0.407,0.688c0.128,0.487,0.075,0.945-0.082,1.411
c-0.117,0.352,0,0.565,0.341,0.715c0.199,0.085,0.407,0.15,0.621,0.175c0.813,0.08,1.576,0.354,2.339,0.633
c0.261,0.096,0.53,0.159,0.805,0.194c0.313,0.04,0.622-0.035,0.81-0.282c0.208-0.273,0.476-0.326,0.771-0.363
c0.104-0.014,0.204-0.025,0.305-0.04c0.841-0.11,1.675-0.098,2.507,0.08c0.114,0.026,0.215,0.049,0.274,0.165
c0.358,0.689,1.361,0.668,1.849,0.221c0.386-0.357,0.824-0.641,1.284-0.896c0.396-0.218,0.802-0.423,1.177-0.671
C13.769,13.687,13.687,13.1,13.163,12.911z M7.406,2.135c0.314-0.341,0.796-0.322,1.095,0.026
c0.312,0.365,0.374,0.957,0.14,1.375C8.566,3.668,8.485,3.809,8.307,3.833C8.251,3.704,8.352,3.635,8.384,3.554
c0.047-0.13,0.07-0.261,0.055-0.397C8.404,2.854,8.186,2.613,7.942,2.601C7.69,2.589,7.51,2.797,7.436,3.131
C7.411,3.239,7.534,3.445,7.319,3.447c-0.178,0-0.188-0.188-0.212-0.336C7.046,2.734,7.151,2.405,7.406,2.135z M6.468,3.841
c0.417,0.11,0.82,0.258,1.2,0.461C7.824,4.385,7.849,4.51,7.684,4.606c-0.41,0.23-0.791,0.509-1.233,0.682
C6.396,5.31,6.335,5.321,6.296,5.333C6.073,5.329,5.46,4.873,5.374,4.674c-0.042-0.098,0.01-0.155,0.074-0.207
c0.229-0.185,0.465-0.369,0.699-0.551C6.241,3.849,6.354,3.812,6.468,3.841z M5.426,2.11c0.19-0.098,0.361-0.062,0.507,0.077
c0.294,0.283,0.375,0.646,0.334,1.04C6.253,3.354,6.159,3.409,6.019,3.445C5.971,3.243,5.98,3.056,5.879,2.896
C5.779,2.746,5.654,2.62,5.462,2.649c-0.181,0.022-0.255,0.17-0.299,0.332C5.076,3.296,5.177,3.554,5.407,3.773
c0.048,0.044,0.138,0.093,0.047,0.172C5.394,3.994,5.339,3.944,5.291,3.909C4.793,3.557,4.88,2.396,5.426,2.11z M4.622,15.083
c-0.138,0.145-0.291,0.213-0.493,0.192c-0.258-0.029-0.507-0.091-0.74-0.192c-0.728-0.319-1.489-0.51-2.272-0.627
c-0.181-0.026-0.411-0.031-0.407-0.338c0.006-0.038,0.006-0.104,0.024-0.159c0.116-0.377,0.204-0.749,0.104-1.144
C0.78,12.588,0.88,12.434,1.12,12.39c0.081-0.016,0.158-0.044,0.238-0.058c0.43-0.07,0.753-0.263,0.937-0.69
c0.155-0.364,0.349-0.379,0.64-0.115c0.193,0.177,0.341,0.383,0.473,0.604c0.374,0.627,0.753,1.245,1.203,1.819
C4.957,14.391,4.939,14.744,4.622,15.083z M8.833,11.749c-0.039,0.33-0.051,0.654-0.045,0.983
c0.005,0.151-0.053,0.265-0.152,0.378c-0.569,0.64-1.294,0.907-2.13,0.925c-0.107,0.003-0.216-0.016-0.318,0.004
c-0.458,0.089-0.728-0.164-0.965-0.5c-0.064-0.092-0.068-0.135,0.027-0.208c0.265-0.213,0.282-0.476,0.05-0.732
c-0.245-0.273-0.533-0.499-0.83-0.705c-0.659-0.461-0.832-1.062-0.626-1.814c0.074-0.267,0.146-0.53,0.282-0.771
C4.35,8.912,4.47,8.473,4.632,8.049c0.077-0.198,0.165-0.391,0.29-0.563C5.174,7.13,5.325,6.738,5.366,6.246
c0.177,0.157,0.316,0.293,0.479,0.397C6.1,6.804,6.352,6.83,6.624,6.677c0.361-0.202,0.733-0.39,1.103-0.586
C7.855,6.023,7.95,6.023,8.028,6.177c0.57,1.114,1.08,2.257,1.408,3.468c0.133,0.49,0.107,0.999,0.02,1.504
c-0.024,0.128-0.062,0.187-0.218,0.188C8.934,11.346,8.87,11.442,8.833,11.749z M12.727,13.726
c-0.267,0.152-0.541,0.293-0.812,0.437c-0.371,0.198-0.729,0.416-1.024,0.726c-0.148,0.154-0.337,0.267-0.533,0.356
c-0.388,0.179-0.746-0.009-0.824-0.436c-0.021-0.11-0.018-0.227-0.021-0.305c0.021-0.51,0.174-0.959,0.22-1.429
c0.028-0.288,0.051-0.571,0-0.858c-0.025-0.15-0.026-0.306-0.008-0.459c0.008-0.062,0.037-0.125,0.109-0.129
c0.087-0.002,0.08,0.075,0.092,0.131c0.015,0.092,0.023,0.185,0.047,0.271c0.108,0.404,0.387,0.602,0.801,0.542
c0.405-0.06,0.781-0.184,1.016-0.559c0.035-0.06,0.066-0.148,0.152-0.128c0.085,0.018,0.076,0.108,0.085,0.178
c0.02,0.121,0.032,0.243,0.059,0.365c0.057,0.271,0.188,0.495,0.428,0.647c0.07,0.046,0.145,0.081,0.212,0.124
C13.073,13.421,13.075,13.521,12.727,13.726z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="13.604px" height="16.021px" viewBox="0 0 13.604 16.021" enable-background="new 0 0 13.604 16.021" xml:space="preserve">
<g>
<g>
<g>
<path fill="#969496" d="M13.163,12.911c-0.048-0.018-0.096-0.045-0.14-0.072c-0.302-0.175-0.502-0.413-0.484-0.791
c0.01-0.265-0.083-0.508-0.24-0.715c-0.094-0.13-0.113-0.242-0.078-0.396c0.215-1.011,0.043-1.94-0.509-2.828
c-0.509-0.822-1.038-1.627-1.601-2.408C9.761,5.208,9.598,4.665,9.57,4.06c-0.021-0.5-0.021-1.007-0.107-1.503
C9.255,1.4,8.812,0.431,7.535,0.12c-0.328,0-0.657,0-0.985,0C6.49,0.137,6.431,0.152,6.371,0.167
C5.72,0.347,5.134,0.61,4.861,1.303C4.682,1.76,4.633,2.24,4.649,2.723C4.67,3.346,4.722,3.971,4.753,4.593
c0.031,0.612-0.143,1.109-0.526,1.582C3.688,6.833,3.198,7.53,2.941,8.364c-0.163,0.531-0.366,1.045-0.603,1.55
c-0.072,0.158-0.136,0.327-0.118,0.503c0.035,0.309-0.062,0.54-0.242,0.802c-0.263,0.395-0.586,0.616-1.026,0.712
c-0.102,0.022-0.2,0.045-0.298,0.076c-0.34,0.118-0.499,0.336-0.406,0.688c0.128,0.487,0.074,0.945-0.082,1.411
c-0.117,0.352,0,0.564,0.341,0.715c0.199,0.085,0.407,0.15,0.621,0.175c0.812,0.08,1.576,0.354,2.339,0.633
c0.261,0.097,0.53,0.159,0.805,0.194c0.313,0.04,0.622-0.035,0.811-0.282c0.208-0.272,0.476-0.326,0.771-0.362
c0.104-0.015,0.204-0.025,0.306-0.04c0.841-0.11,1.675-0.099,2.507,0.079c0.113,0.026,0.215,0.05,0.273,0.165
c0.358,0.689,1.361,0.668,1.85,0.222c0.386-0.357,0.823-0.642,1.283-0.896c0.396-0.218,0.803-0.423,1.178-0.671
C13.769,13.687,13.687,13.1,13.163,12.911z M7.406,2.135C7.72,1.794,8.202,1.813,8.501,2.161c0.312,0.365,0.374,0.957,0.14,1.375
C8.566,3.668,8.485,3.809,8.307,3.833C8.251,3.704,8.352,3.635,8.384,3.554c0.047-0.131,0.07-0.262,0.055-0.397
C8.404,2.854,8.186,2.613,7.942,2.601C7.69,2.589,7.51,2.797,7.436,3.131C7.411,3.239,7.534,3.445,7.319,3.447
c-0.178,0-0.188-0.188-0.212-0.336C7.046,2.734,7.151,2.405,7.406,2.135z M6.468,3.841c0.417,0.11,0.82,0.259,1.2,0.461
C7.824,4.385,7.849,4.51,7.684,4.606c-0.41,0.229-0.791,0.509-1.232,0.682C6.396,5.31,6.335,5.321,6.296,5.333
C6.073,5.329,5.46,4.873,5.374,4.674c-0.042-0.098,0.01-0.154,0.074-0.207c0.229-0.185,0.465-0.368,0.698-0.551
C6.241,3.849,6.354,3.812,6.468,3.841z M5.426,2.11c0.19-0.098,0.361-0.062,0.507,0.077c0.294,0.283,0.375,0.646,0.334,1.04
C6.253,3.354,6.159,3.409,6.019,3.445C5.971,3.243,5.98,3.056,5.879,2.896C5.779,2.746,5.654,2.62,5.462,2.649
c-0.181,0.021-0.255,0.17-0.299,0.332C5.076,3.296,5.177,3.554,5.407,3.773c0.048,0.044,0.138,0.093,0.047,0.172
C5.394,3.994,5.339,3.944,5.291,3.909C4.793,3.557,4.88,2.396,5.426,2.11z M4.622,15.083c-0.139,0.146-0.291,0.213-0.493,0.192
c-0.258-0.029-0.507-0.091-0.74-0.192c-0.728-0.318-1.489-0.51-2.271-0.627c-0.182-0.025-0.411-0.031-0.407-0.338
c0.006-0.038,0.006-0.104,0.023-0.159c0.116-0.377,0.204-0.749,0.104-1.144C0.78,12.588,0.88,12.434,1.12,12.39
c0.081-0.017,0.157-0.044,0.237-0.059c0.431-0.069,0.753-0.263,0.938-0.689c0.155-0.364,0.349-0.379,0.64-0.115
c0.193,0.177,0.341,0.383,0.474,0.604c0.374,0.627,0.753,1.245,1.202,1.819C4.957,14.391,4.939,14.744,4.622,15.083z
M8.833,11.749c-0.039,0.33-0.051,0.654-0.045,0.983c0.005,0.15-0.054,0.265-0.152,0.378c-0.569,0.64-1.294,0.907-2.13,0.925
c-0.107,0.003-0.216-0.016-0.318,0.004c-0.458,0.089-0.728-0.164-0.965-0.5c-0.063-0.092-0.068-0.135,0.027-0.208
c0.265-0.213,0.282-0.476,0.05-0.731c-0.245-0.273-0.533-0.499-0.83-0.705c-0.659-0.461-0.832-1.062-0.626-1.814
C3.918,9.813,3.99,9.55,4.126,9.309C4.35,8.912,4.47,8.473,4.632,8.049c0.077-0.197,0.165-0.391,0.29-0.562
c0.252-0.356,0.403-0.748,0.444-1.24c0.177,0.157,0.315,0.293,0.479,0.397C6.1,6.804,6.352,6.83,6.624,6.677
c0.36-0.201,0.732-0.39,1.103-0.586C7.855,6.023,7.95,6.023,8.028,6.177c0.57,1.114,1.08,2.258,1.408,3.469
c0.133,0.489,0.107,0.999,0.021,1.504c-0.024,0.128-0.062,0.187-0.219,0.188C8.934,11.346,8.87,11.442,8.833,11.749z
M12.727,13.726c-0.267,0.151-0.541,0.293-0.812,0.437c-0.371,0.198-0.729,0.416-1.024,0.727
c-0.147,0.153-0.337,0.267-0.533,0.355c-0.388,0.179-0.746-0.009-0.823-0.436c-0.021-0.11-0.019-0.228-0.021-0.306
c0.021-0.51,0.174-0.959,0.22-1.429c0.028-0.288,0.052-0.571,0-0.858c-0.024-0.149-0.025-0.306-0.008-0.459
c0.008-0.062,0.037-0.125,0.109-0.129c0.087-0.002,0.08,0.075,0.092,0.131c0.015,0.093,0.023,0.186,0.047,0.271
c0.108,0.404,0.387,0.602,0.801,0.542c0.405-0.06,0.781-0.184,1.017-0.559c0.035-0.061,0.065-0.148,0.151-0.129
c0.085,0.019,0.076,0.108,0.085,0.179c0.021,0.121,0.032,0.243,0.06,0.365c0.057,0.271,0.188,0.494,0.428,0.646
c0.07,0.046,0.146,0.081,0.212,0.124C13.073,13.421,13.075,13.521,12.727,13.726z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="13.604px" height="16.021px" viewBox="0 0 13.604 16.021" enable-background="new 0 0 13.604 16.021" xml:space="preserve">
<g>
<path fill="#808080" d="M13.386,5.884c-2.124,1.462-2.068,4.633,0.076,6.041c-0.505,1.263-1.088,2.472-2.174,3.357
c-0.573,0.468-1.21,0.591-1.912,0.352c-0.315-0.106-0.63-0.22-0.946-0.341c-0.93-0.364-1.851-0.335-2.769,0.033
c-0.264,0.104-0.523,0.213-0.789,0.306c-0.629,0.229-1.216,0.131-1.756-0.26c-0.524-0.373-0.931-0.854-1.272-1.392
c-0.949-1.495-1.514-3.129-1.695-4.885C0.054,8.172,0.193,7.269,0.586,6.417c0.862-1.871,2.79-2.719,4.791-2.119
C5.615,4.371,5.852,4.441,6.085,4.53c0.724,0.282,1.438,0.258,2.166,0C8.69,4.374,9.145,4.22,9.605,4.151
c1.448-0.21,2.893,0.361,3.763,1.681C13.379,5.845,13.382,5.868,13.386,5.884z"/>
<path fill="#808080" d="M6.81,4.222c-0.058-2.288,2.165-4.194,4.1-4.081C11.013,2.093,9.085,4.284,6.81,4.222z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="13.604px" height="16.021px" viewBox="0 0 13.604 16.021" enable-background="new 0 0 13.604 16.021" xml:space="preserve">
<g>
<path fill="#969496" d="M13.386,5.884c-2.124,1.463-2.068,4.634,0.076,6.041c-0.505,1.264-1.088,2.473-2.174,3.357
c-0.573,0.468-1.21,0.591-1.912,0.352c-0.315-0.105-0.63-0.22-0.946-0.341c-0.93-0.363-1.851-0.335-2.769,0.033
c-0.265,0.104-0.523,0.213-0.789,0.306c-0.629,0.229-1.216,0.132-1.756-0.26c-0.524-0.373-0.932-0.854-1.272-1.392
c-0.949-1.495-1.514-3.129-1.695-4.885C0.054,8.172,0.193,7.269,0.586,6.417c0.862-1.871,2.79-2.719,4.791-2.119
C5.615,4.371,5.852,4.441,6.085,4.53c0.724,0.282,1.438,0.258,2.166,0C8.69,4.374,9.145,4.22,9.605,4.151
c1.448-0.21,2.894,0.361,3.764,1.681C13.379,5.845,13.382,5.868,13.386,5.884z"/>
<path fill="#969496" d="M6.81,4.222C6.752,1.934,8.975,0.028,10.91,0.141C11.013,2.093,9.085,4.284,6.81,4.222z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="14px" height="14px" viewBox="0 0 14 14" enable-background="new 0 0 14 14" xml:space="preserve">
<polygon fill="#6CB578" points="10.914,0 6.998,3.913 3.088,0 0,3.085 3.912,7 0,10.915 3.092,14 6.998,10.088 10.914,14 14,10.915
10.092,7 14,3.085 "/>
</svg>

After

Width:  |  Height:  |  Size: 631 B

View File

@ -6,9 +6,6 @@
"SL_firefox" "SL_firefox"
], ],
"launch_in_dev": [ "launch_in_dev": [
"PhantomJS",
"Chrome",
"Firefox"
], ],
"launchers": { "launchers": {
"SL_chrome": { "SL_chrome": {

View File

@ -13,6 +13,15 @@
<link rel="stylesheet" href="assets/vendor.css"> <link rel="stylesheet" href="assets/vendor.css">
<link rel="stylesheet" href="assets/travis.css"> <link rel="stylesheet" href="assets/travis.css">
<link rel="stylesheet" href="assets/test-support.css"> <link rel="stylesheet" href="assets/test-support.css">
<style>
#ember-testing-container {
top: 100px;
right: -620px;
}
#ember-testing-container:hover {
right: 0;
}
</style>
{{content-for 'head-footer'}} {{content-for 'head-footer'}}
{{content-for 'test-head-footer'}} {{content-for 'test-head-footer'}}

View File

@ -0,0 +1,39 @@
`import { test, moduleForComponent } from 'ember-qunit'`
moduleForComponent 'jobs-item', 'JobsItemComponent', {
# specify the other units that are required for this test
needs: ['helper:format-duration']
}
test 'it renders', ->
attributes = {
id: 10
state: 'passed'
number: '2'
config: {
rvm: '2.1.2'
jdk: 'openjdk6'
os: 'linux',
env: 'TESTS=unit'
},
duration: 100
}
job = Ember.Object.create(attributes)
component = @subject(job: job)
@append()
ok component.$().hasClass('passed'), 'component should have a state class (passed)'
equal component.$('.job-id').text().trim(), '2', 'job number should be displayed'
equal component.$('.job-lang').text().trim(), 'JDK: openjdk6 Ruby: 2.1.2', 'langauges list should be displayed'
equal component.$('.job-env').text().trim(), 'TESTS=unit', 'env should be displayed'
ok component.$('.job-os').hasClass('linux'), 'OS class should be added for OS icon'
equal component.$('.job-duration').text().trim(), '1 min 40 sec', 'duration should be displayed'
test 'ouputs info on not set properties', ->
job = Ember.Object.create()
component = @subject(job: job)
@append()
ok component.$('.job-env').text().match(/no environment variables set/), 'a message for no env vars should be displayed'
ok component.$('.job-lang').text().match(/no language set/), 'a message about no language being set should be displayed'

View File

@ -0,0 +1,25 @@
`import { test, moduleForComponent } from 'ember-qunit'`
moduleForComponent 'jobs-list', 'JobsListComponent', {
needs: ['helper:format-duration', 'component:jobs-item']
}
test 'it renders a list of jobs', ->
jobs = [Ember.Object.create(id: 1, state: 'passed'),
Ember.Object.create(id: 1, state: 'failed')]
component = @subject(jobs: jobs, required: true)
@append()
equal component.$('.build-title').text().trim(), 'Build Jobs'
equal component.$('.tile--jobs').length, 2, 'there should be 2 job items'
ok component.$('.tile--jobs:nth(0)').hasClass('passed'), 'passed class should be applied to a job'
ok component.$('.tile--jobs:nth(1)').hasClass('failed'), 'failed class should be applied to a job'
test 'it renders "Allowed Failures" version without a `required` property', ->
jobs = [Ember.Object.create(id: 1)]
component = @subject(jobs: jobs)
@append()
ok component.$('.build-title').text().match /Allowed Failures/

View File

@ -0,0 +1,13 @@
`import Ember from 'ember'`
`import format from 'travis/utils/status-image-formats'`
`import config from 'travis/config/environment'`
module 'Status image formats'
test 'it generates CCTray url with a slug', ->
url = format('CCTray', 'travis-ci/travis-web')
equal url, '#/repos/travis-ci/travis-web/cc.xml'
test 'it generates CCTray url with a slug and a branch', ->
url = format('CCTray', 'travis-ci/travis-web', 'development')
equal url, '#/repos/travis-ci/travis-web/cc.xml?branch=development'