From 08bb056849e6090a5dbd32c3717b39b3191aa481 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 23 Sep 2012 17:23:15 +0200 Subject: [PATCH] more tweaks --- assets/images/icons/group.png | Bin 1142 -> 0 bytes assets/images/icons/group.small.png | Bin 1278 -> 0 bytes assets/images/icons/org.small.png | Bin 1321 -> 1922 bytes .../javascripts/app/templates/layouts/top.hbs | 4 +- .../app/templates/profile/show.hbs | 2 +- assets/javascripts/app/views/profile.coffee | 5 ++ assets/javascripts/app/views/repo/show.coffee | 4 +- assets/stylesheets/application/misc.sass | 3 + assets/stylesheets/layout.sass | 5 +- assets/stylesheets/left/list.sass | 16 ++--- assets/stylesheets/main/repository.sass | 1 + assets/stylesheets/maximize.sass | 2 +- assets/stylesheets/right.sass | 2 - public/images/icons/collapse.png | Bin 1041 -> 0 bytes public/images/icons/expand.png | Bin 1042 -> 0 bytes public/images/icons/group.png | Bin 1142 -> 0 bytes public/images/icons/group.small.png | Bin 1278 -> 0 bytes public/images/icons/org.png | Bin 353 -> 0 bytes public/images/icons/org.small.png | Bin 1321 -> 1922 bytes public/images/icons/tools-button.png | Bin 1711 -> 0 bytes public/images/layout/background-left.png | Bin 933 -> 0 bytes .../current-repository-indicator-even.png | Bin 1255 -> 0 bytes .../current-repository-indicator-odd.png | Bin 1240 -> 0 bytes public/images/layout/logo.png | Bin 3260 -> 0 bytes public/images/ui/logo.2.png | Bin 3003 -> 0 bytes public/javascripts/application.js | 2 +- public/stylesheets/application.css | 59 ++++++++++-------- 27 files changed, 61 insertions(+), 44 deletions(-) delete mode 100644 assets/images/icons/group.png delete mode 100644 assets/images/icons/group.small.png delete mode 100644 public/images/icons/collapse.png delete mode 100644 public/images/icons/expand.png delete mode 100644 public/images/icons/group.png delete mode 100644 public/images/icons/group.small.png delete mode 100644 public/images/icons/org.png delete mode 100644 public/images/icons/tools-button.png delete mode 100644 public/images/layout/background-left.png delete mode 100644 public/images/layout/current-repository-indicator-even.png delete mode 100644 public/images/layout/current-repository-indicator-odd.png delete mode 100644 public/images/layout/logo.png delete mode 100644 public/images/ui/logo.2.png diff --git a/assets/images/icons/group.png b/assets/images/icons/group.png deleted file mode 100644 index 1572a32eaa3a5584fd49a69a0219b130f2ead153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1142 zcmaJ=TSyd97@m^KB#TI*3&e4JD%zdPs@o23vF*&}qO-~FQc?tsGe;eCF3y~7MgP?4SicOS+pr9Lz5&F=>K83x6oiSH?Xge@-&VT0nzW+Pt|L1H| zY+rfVmNJ4M%A@ss9M4tw*;rbF-zV<9OW|oV5}HxMXhmtsf<#C$S|EsOQX7mzN$Kty zgLMQ^LaNDT)GRh~vY~k;7vps_6SE1TZjWP1atB191-7Yrkjy{MkU&*}{XppbiZgF1)90vbdTaI{X{=A0lougl@JyG@Z`9)dc81{G5;FXc{aG5@)lNRxZv*7INVzNVX$n zauk(Lr@d*P*Ra|sCJ+d?8Z7I<2#?*ZBgygTc2z-vhqi2~CQ=O@xQbGXkwQTdJNi+ zBCJr$Fai^*_W1&#UEvV#r`cTsQ{eK3oYJ6<3S4E0TV0gvwt{Bj%sjNzV^E1$h6d)3 z%&En_Fh%tixJq#^Y*8+S%}{P(|0;B03wMvZTx?q$EH*yWakpEzt;ve-Q}~zI(bSj} zdV72O`}=dbTqcv5ot^FL>zkaM92^`R9v+^VnaO6eLqkLPe12|jj@$m6$E>v|9!ubG zX%ND*&#&>9D^Wg_bUuy@d|F#lS<0`f_|oueE_Y{TSLK&#@#>rN?6t~eBj7HvW8a4L zr_SZ*6#L`Mht)Sm58fO`#uhv57i{GL8xg8$p6>u$j51>IYrhvh0g&Z+=$ z^KvCX{UTcpLV)G#-=7A>2x7v7NQGX(lvA86T37>PNr(z$BS>*cLSeZYpre(bT991W zpWocWP=R-0?-Viwqj*46C~HtbxFHbX8frKvkCnWR7AGhuAOf956Jku#sDumK*QMav z*v2t*AEMW|u*aq}wrRe%;+2s1|%5oi%n?+Wuank8@8X8us86wPDy`-}Vv!oT|6=L3t^O$2QtimLq+ibt?41~#P6ZP zTBKe9cnD~6t;)fRt12*3DU?SAtS+k&S&rpTF&LF~S&PaF>IoO349f|U5%1#}hVo0A z&Pp8c(=H4uSOkHmd^VrmN!#r{tG9?Gy`j*hOZtSl}r4i68Hjg3uBO?7s5&dkiD)9JOfwT+F9mX?;jzP_QMq2=Y}=H}-0 z_4Q;j+0@juy1F_rFfcheIXgSs*4Eb3)6><}wY9a?-rhbwKHl5gyScf!v$K=QWV*Y% zx3{-bsnp2G$ll)G!oor}o4wkJu0eaG9twnE_`e47Vk+ zXFvA7b!>Mc^ICEDrS$iIG(E6=fXB9yv9Ir}|Nhk7Yxt+)opTN8@2=ep*ZJRG`t8Fd zvGmsJh+01VW1#HvBhRyM{#EcZ|7iZ${S@#Vk1?g$FAx)Q<>52J%kLfUf({YCH$Y#% HaIxhdM#26E diff --git a/assets/images/icons/org.small.png b/assets/images/icons/org.small.png index b5afd5fac360e258086ebe1ab96e05b723d47d6c..4d9f6356812c10a3ae36ce5c48bac30352174f47 100644 GIT binary patch delta 1245 zcmZ{jXH1i69Kb6$?uc@^+$ERX83m%rT~xF{p=A_W+Cqhv+7^&0LfIP%BCBi!1qwyB zfQTZSmc2yw#xh(eC_|84hU{_w4|gB=@IG(yq@!q5t#cB8N+1x3 zb7XA-9p1mebM_~3SgR$y%lOil#Y`1Y@=9owB8Ei3qmW1<5|5T6piv|=28AMGh(x4} zl#jC;g`!MwweoVdc43nVYBI1R%d%%F|2K;}ZkCrLcH{p8l#csIM#_^-x3*Dc9e)7& zxLKa8IG(drcM69-DE-oe}W@BR`Dk`e9w3N%?a@W__x3;#%#>Qe}V}Jbkk(QSB z^5x5&ot=@9k)xv{BoZknCnqm2ub`lSLZK8D6_u2f&}cLUgHcviR#8z=RaI3}Q^R7h z>gwtm8X7np4v)ucYHAV)1R{}0B9XMTw6wLg$z<})n>TfIbaZufDHIBoO4ZZTqtQ6D zTeoh}>2wBz!DKS^_4N%53=9noZ{NOcWMpJ)Y;0m;Vrpt?W@ct?Zhq&^9SaMKyLaze zT3T9JS+Q6wYiny88yj0&TRS^DdwY8a2M0$-M<*vIXJ=;@7Z+DoS2s5|cXxLW4-ZdI zPd1zF<>lq=?S1dwJs%&R`}gnr`ucMG{QUg={R0950s{kqKM(_Y05dc+G%PGEJUl!i zA_AlUIv^Gu9SvT9JTL@W0F%q*#>dA4c^;1k)*e584A=p9N=iy@}D=Vw2s;aB2Yieq0YisN3>gwz38yXrK8yjD}dezj_1g4vto1u@^*4DPR zw)Xb+j*gDb&d#o`uI}z`D5kf!x390SzrTNAVBpOg&Ku|g`WhMebo2A` z3kwU-X7^78V^%8E!NT3uaTTU&$9pgSmRb8{1dgSsKI3%k3!dwYBP`}+q62Zx7; zP@JH}B^vHHl1-;Fc*v8ooTDSe#Wbok>=ly6)-N`{!2I8+~^k}h1j)HD(6&NKd5|GFzF@1N5ph`+JF$M7XZ z>Iu5BSYf}xiOGqC+UqBnYB_4L#+I3GDu0HN!H5@14dc>u_GQ);gu@XX>bKZxQk@VrY1s delta 636 zcmZqTU&*D|8Q|y6%O%Cdz`(%k>ERLtq{V=kkAoRV%Dk8Pzfn<@DaPE<#lp$d)YZ+% z(b>?@)zH$!%+lGw%-GGq(!kQp+*wJXBDcWT*UBY7ximL5uf)^ERtYGgmy(%c1=Z_@ zOYh`GOa?FuoN*~qQYbD7N=>s$!EJ#HF1?fWn4RhmiY{FM^wFXKpAgsj`uf(^)@jqG zJ$m%$!-o%DU0uhIA3uNo{J($yCQqJx;>3xkPoJ(?vu5AEeQj-RhYug#x^?Tvj~~B% z`}X9?lf8TQ-nemN>C&Y?fByXY_wUi8M|bSlv0}xF2@@tPUc9)!zyI#tyL0Buxp3ja zy?gf>8XD%$pFeTp#97v}X5GAb^Y-oA*RNkcefspfckgD*n6YTlqPcVD&YnH{;>C*( z9z0mMaN*mxZr9&-0-bAC666;=c_N$o~C zoO>?TWWdAvpxbp@(>~aG+r^sbH|V}?S-yq+9dEka z1!=j~`G@5aQqSzvJ?wq1PDAF`*GcTREsx#FeKy}Z@@c{DB0-ladp`KibqU&YD5&<& tlJ#p2P4*S}x9Cfg@?(AFW!o8;8D`v-2z>M3!V&0l22WQ%mvv4FO#tGB9 +

Travis

@@ -18,7 +18,7 @@
  • {{t layouts.top.github_login}} - {{user.name}} + {{user.name}} Signing in

      diff --git a/assets/javascripts/app/templates/profile/show.hbs b/assets/javascripts/app/templates/profile/show.hbs index c2629a8a..8974f566 100644 --- a/assets/javascripts/app/templates/profile/show.hbs +++ b/assets/javascripts/app/templates/profile/show.hbs @@ -1,4 +1,4 @@ -

      {{account.name}}

      +

      {{view.name}}

      {{view Travis.ProfileTabsView}} diff --git a/assets/javascripts/app/views/profile.coffee b/assets/javascripts/app/views/profile.coffee index 19a932b1..7084606a 100644 --- a/assets/javascripts/app/views/profile.coffee +++ b/assets/javascripts/app/views/profile.coffee @@ -32,6 +32,11 @@ ProfileView: Travis.View.extend templateName: 'profile/show' + accountBinding: 'controller.account' + + name: (-> + @get('account.name') || @get('account.login') + ).property('account.name', 'account.login') ProfileTabsView: Travis.View.extend templateName: 'profile/tabs' diff --git a/assets/javascripts/app/views/repo/show.coffee b/assets/javascripts/app/views/repo/show.coffee index 94f5cde4..3cca4411 100644 --- a/assets/javascripts/app/views/repo/show.coffee +++ b/assets/javascripts/app/views/repo/show.coffee @@ -90,8 +90,8 @@ tabBinding: 'controller.tab' toggle: -> - @set('active', !@get('active')) - $('#tools .pane').toggle() + element = $('#tools .pane').toggleClass('display') + @set('active', element.hasClass('display')) branches: (-> @get('repository.branches') if @get('active') diff --git a/assets/stylesheets/application/misc.sass b/assets/stylesheets/application/misc.sass index f5cfbc34..4a46dd2b 100644 --- a/assets/stylesheets/application/misc.sass +++ b/assets/stylesheets/application/misc.sass @@ -1,5 +1,8 @@ @import "_mixins/all" +.display + display: block !important + .emoji vertical-align: middle width: 20px diff --git a/assets/stylesheets/layout.sass b/assets/stylesheets/layout.sass index 4fb190f1..ac8f80ae 100644 --- a/assets/stylesheets/layout.sass +++ b/assets/stylesheets/layout.sass @@ -49,12 +49,13 @@ body > div, body > div > div, body > div > div > div position: relative overflow: hidden min-width: 630px - padding: 20px 40px 40px 30px + padding: 20px 40px 80px 30px #right width: 205px - padding: 11px 20px 20px 20px + padding: 11px 20px 80px 20px background-color: $color-bg-sidebar + border-left: 1px solid $color-border-normal @media screen and (max-width: 1400px) #left .duration_label diff --git a/assets/stylesheets/left/list.sass b/assets/stylesheets/left/list.sass index d298cbfe..9ee208ae 100644 --- a/assets/stylesheets/left/list.sass +++ b/assets/stylesheets/left/list.sass @@ -62,12 +62,14 @@ &.selected .indicator display: block position: absolute - top: 25px - right: -15px - width: 15px - height: 25px + top: 50% + right: -14px + width: 14px + height: 19px + margin-top: -11px + background-repeat: no-repeat + background-position: -4px -5px background-repeat: no-repeat - background-position: -2px -2px .loading padding: 15px 25px 15px 30px @@ -80,9 +82,9 @@ padding-left: 52px &.user background-image: inline-image('icons/user.small.png') - background-position: 29px 17px + background-position: 29px 18px &.org background-image: inline-image('icons/org.small.png') - background-position: 24px 17px + background-position: 24px 18px .summary margin-left: 0 diff --git a/assets/stylesheets/main/repository.sass b/assets/stylesheets/main/repository.sass index 38955dd6..f8c10706 100644 --- a/assets/stylesheets/main/repository.sass +++ b/assets/stylesheets/main/repository.sass @@ -10,6 +10,7 @@ color: $color-text-light .language + display: none padding-right: 5px .github-stats diff --git a/assets/stylesheets/maximize.sass b/assets/stylesheets/maximize.sass index ec9d8534..880a05f3 100644 --- a/assets/stylesheets/maximize.sass +++ b/assets/stylesheets/maximize.sass @@ -20,4 +20,4 @@ #profile #top .profile, .maximized #top .profile - margin-right: 30px + margin-right: 40px diff --git a/assets/stylesheets/right.sass b/assets/stylesheets/right.sass index df6dbbfa..af5986f8 100644 --- a/assets/stylesheets/right.sass +++ b/assets/stylesheets/right.sass @@ -30,8 +30,6 @@ top: 0 left: 0 width: 10px - border-left: 1px solid $color-border-normal - border-bottom: 1px solid $color-border-normal background-color: $color-bg-slider cursor: pointer background: transparent inline-image('ui/slider-closed.png') no-repeat 3px 10px diff --git a/public/images/icons/collapse.png b/public/images/icons/collapse.png deleted file mode 100644 index d7625dd4ae48dce69b6080abf071ad5e41a4d510..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1041 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 HaIxhdM#26E diff --git a/public/images/icons/org.png b/public/images/icons/org.png deleted file mode 100644 index 25689ddb145ee83872ea0b83acaed2ec529769ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmV-n0iOPeP)iTl=!ek}RwNXf{glxT6F2L>P+AAr7D^A3>YcoR@7%zPqqA07q+?15;+Bd|Ad z4?9L0)`I?i9DStBJnSHp58zc?JmZ9iQp1aCWT3 zx8xoRXXVMjvZHw?-gIiYrK!Lt|G<(uNkLMaCrXNv!WQwGmZa_~V3tz=Ms6>%GnY51 z%emgt3puaP_ip8lKrjsSl((c^-xk6HUKBD=-g`FHaK#Rp_)r0^LH!yXubJZE$#m2T z;Z69o7G|tmxYwsf7ZX~&XC7(aw`bmM9|iLdvy5H47B4Ic00000NkvXXu0mjfDiV%1 diff --git a/public/images/icons/org.small.png b/public/images/icons/org.small.png index b5afd5fac360e258086ebe1ab96e05b723d47d6c..4d9f6356812c10a3ae36ce5c48bac30352174f47 100644 GIT binary patch delta 1245 zcmZ{jXH1i69Kb6$?uc@^+$ERX83m%rT~xF{p=A_W+Cqhv+7^&0LfIP%BCBi!1qwyB zfQTZSmc2yw#xh(eC_|84hU{_w4|gB=@IG(yq@!q5t#cB8N+1x3 zb7XA-9p1mebM_~3SgR$y%lOil#Y`1Y@=9owB8Ei3qmW1<5|5T6piv|=28AMGh(x4} zl#jC;g`!MwweoVdc43nVYBI1R%d%%F|2K;}ZkCrLcH{p8l#csIM#_^-x3*Dc9e)7& zxLKa8IG(drcM69-DE-oe}W@BR`Dk`e9w3N%?a@W__x3;#%#>Qe}V}Jbkk(QSB z^5x5&ot=@9k)xv{BoZknCnqm2ub`lSLZK8D6_u2f&}cLUgHcviR#8z=RaI3}Q^R7h z>gwtm8X7np4v)ucYHAV)1R{}0B9XMTw6wLg$z<})n>TfIbaZufDHIBoO4ZZTqtQ6D zTeoh}>2wBz!DKS^_4N%53=9noZ{NOcWMpJ)Y;0m;Vrpt?W@ct?Zhq&^9SaMKyLaze zT3T9JS+Q6wYiny88yj0&TRS^DdwY8a2M0$-M<*vIXJ=;@7Z+DoS2s5|cXxLW4-ZdI zPd1zF<>lq=?S1dwJs%&R`}gnr`ucMG{QUg={R0950s{kqKM(_Y05dc+G%PGEJUl!i zA_AlUIv^Gu9SvT9JTL@W0F%q*#>dA4c^;1k)*e584A=p9N=iy@}D=Vw2s;aB2Yieq0YisN3>gwz38yXrK8yjD}dezj_1g4vto1u@^*4DPR zw)Xb+j*gDb&d#o`uI}z`D5kf!x390SzrTNAVBpOg&Ku|g`WhMebo2A` z3kwU-X7^78V^%8E!NT3uaTTU&$9pgSmRb8{1dgSsKI3%k3!dwYBP`}+q62Zx7; zP@JH}B^vHHl1-;Fc*v8ooTDSe#Wbok>=ly6)-N`{!2I8+~^k}h1j)HD(6&NKd5|GFzF@1N5ph`+JF$M7XZ z>Iu5BSYf}xiOGqC+UqBnYB_4L#+I3GDu0HN!H5@14dc>u_GQ);gu@XX>bKZxQk@VrY1s delta 636 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 FV1nzJKPvzL diff --git a/public/images/layout/background-left.png b/public/images/layout/background-left.png deleted file mode 100644 index 2736ceb0fd71401c84e05258dd3191c763c4733a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 933 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 diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 9708122b..3ece3751 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -1 +1 @@ -minispade.register('templates', "(function() {Ember.TEMPLATES['builds/list']=Ember.Handlebars.compile(\"{{#if builds.isLoaded}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n {{#each build in builds}}\\n {{#view Travis.BuildsItemView contextBinding=\\\"build\\\"}}\\n \\n \\n \\n \\n \\n \\n \\n {{/view}}\\n {{/each}}\\n \\n
      {{t builds.name}}{{t builds.commit}}{{t builds.message}}{{t builds.duration}}{{t builds.finished_at}}
      \\n \\n \\n {{number}}\\n \\n \\n \\n {{formatCommit commit}}\\n \\n \\n {{{formatMessage commit.message short=\\\"true\\\"}}}\\n \\n {{formatDuration duration}}\\n \\n {{formatTime finishedAt}}\\n
      \\n\\n

      \\n \\n

      \\n{{else}}\\n
      Loading
      \\n{{/if}}\\n\");Ember.TEMPLATES['builds/show']=Ember.Handlebars.compile(\"{{#with view}}\\n {{#if build.isLoaded}}\\n
      \\n
      \\n
      \\n
      {{t builds.name}}
      \\n
      \\n \\n \\n {{build.number}}\\n \\n
      \\n
      {{t builds.finished_at}}
      \\n
      {{formatTime build.finishedAt}}
      \\n
      {{t builds.duration}}
      \\n
      {{formatDuration build.duration}}
      \\n
      \\n\\n
      \\n
      {{t builds.commit}}
      \\n
      {{formatCommit build.commit}}
      \\n {{#if commit.compareUrl}}\\n
      {{t builds.compare}}
      \\n
      {{pathFrom build.commit.compareUrl}}
      \\n {{/if}}\\n {{#if commit.authorName}}\\n
      {{t builds.author}}
      \\n
      {{build.commit.authorName}}
      \\n {{/if}}\\n {{#if commit.committerName}}\\n
      {{t builds.committer}}
      \\n
      {{build.commit.committerName}}
      \\n {{/if}}\\n
      \\n\\n
      {{t builds.message}}
      \\n
      {{{formatMessage build.commit.message}}}
      \\n\\n {{#unless isMatrix}}\\n
      {{t builds.config}}
      \\n
      {{formatConfig build.config}}
      \\n {{/unless}}\\n
      \\n
      \\n\\n {{#if build.isMatrix}}\\n {{view Travis.JobsView jobsBinding=\\\"build.requiredJobs\\\" required=\\\"true\\\"}}\\n {{view Travis.JobsView jobsBinding=\\\"build.allowedFailureJobs\\\"}}\\n {{else}}\\n {{view Travis.LogView contextBinding=\\\"build.jobs.firstObject\\\"}}\\n {{/if}}\\n {{else}}\\n
      \\n Loading\\n
      \\n {{/if}}\\n{{/with}}\\n\");Ember.TEMPLATES['jobs/list']=Ember.Handlebars.compile(\"{{#if view.jobs.length}}\\n {{#if view.required}}\\n \\n \\n {{else}}\\n
      \\n {{t jobs.build_matrix}}\\n
      \\n \\n {{/if}}\\n \\n \\n {{#each key in view.build.configKeys}}\\n \\n {{/each}}\\n \\n \\n \\n {{#each job in view.jobs}}\\n {{#view Travis.JobsItemView contextBinding=\\\"job\\\"}}\\n \\n \\n \\n {{#each value in configValues}}\\n \\n {{/each}}\\n {{/view}}\\n {{/each}}\\n \\n
      \\n {{t jobs.allowed_failures}}\\n \\n
      {{key}}
      \\n \\n \\n {{number}}\\n \\n \\n {{formatDuration duration}}\\n \\n {{formatTime finishedAt}}\\n {{value}}
      \\n\\n {{#unless view.required}}\\n
      \\n

      {{t \\\"jobs.allowed_failures\\\"}}

      \\n

      \\n Allowed Failures are items in your build matrix that are allowed to\\n fail without causing the entire build to be shown as failed.\\n

      \\n

      \\n You can define allowed failures in the build matrix as follows:\\n

      \\n
      matrix:\\n  allow_failures:\\n    - rvm: ruby-head
      \\n

      \\n This lets you add in experimental and preparatory builds to test against versions or\\n configurations that you are not ready to officially support.\\n

      \\n
      \\n {{/unless}}\\n{{/if}}\\n\");Ember.TEMPLATES['jobs/log']=Ember.Handlebars.compile(\"{{view.logSubscriber}}\\n\\n{{#if log.isLoaded}}\\n
      \\n    \\n    \\n  {{{formatLog log.body}}}
      \\n\\n {{#if sponsor.name}}\\n

      \\n {{t builds.messages.sponsored_by}}\\n {{sponsor.name}}\\n

      \\n {{/if}}\\n\\n To top\\n{{else}}\\n
      \\n Loading\\n
      \\n{{/if}}\\n\");Ember.TEMPLATES['jobs/show']=Ember.Handlebars.compile(\"{{#with view}}\\n {{#if job.isLoaded}}\\n
      \\n
      \\n
      \\n
      Job
      \\n
      {{job.number}}
      \\n
      {{t jobs.finished_at}}
      \\n
      {{formatTime job.finishedAt}}
      \\n
      {{t jobs.duration}}
      \\n
      {{formatDuration job.duration}}
      \\n
      \\n\\n
      \\n
      {{t jobs.commit}}
      \\n
      {{formatCommit commit}}
      \\n {{#if commit.compareUrl}}\\n
      {{t jobs.compare}}
      \\n
      {{pathFrom commit.compareUrl}}
      \\n {{/if}}\\n {{#if commit.authorName}}\\n
      {{t jobs.author}}
      \\n
      {{commit.authorName}}
      \\n {{/if}}\\n {{#if commit.committerName}}\\n
      {{t jobs.committer}}
      \\n
      {{commit.committerName}}
      \\n {{/if}}\\n
      \\n\\n
      {{t jobs.message}}
      \\n
      {{formatMessage commit.message}}
      \\n
      {{t jobs.config}}
      \\n
      {{formatConfig job.config}}
      \\n
      \\n\\n {{view Travis.LogView contextBinding=\\\"job\\\"}}}\\n
      \\n {{else}}\\n
      \\n Loading\\n
      \\n {{/if}}\\n{{/with}}\\n\");Ember.TEMPLATES['layouts/home']=Ember.Handlebars.compile(\"
      \\n {{outlet top}}\\n
      \\n\\n
      \\n
      \\n {{outlet left}}\\n
      \\n\\n
      \\n {{outlet main}}\\n
      \\n\\n
      \\n {{outlet right}}\\n
      \\n
      \\n\");Ember.TEMPLATES['layouts/profile']=Ember.Handlebars.compile(\"
      \\n {{outlet top}}\\n
      \\n\\n
      \\n
      \\n {{outlet left}}\\n
      \\n\\n
      \\n {{outlet main}}\\n
      \\n\\n
      \\n
      \\n
       \\n
      \\n\\n
      \\n

      Getting started?

      \\n

      \\n Please read our guide.\\n It will only take a few minutes :)\\n

      \\n

      \\n You can find detailled docs on our about site.\\n

      \\n

      \\n If you need help please don't hesitate to join\\n #travis on irc.freenode.net\\n or our mailinglist.\\n

      \\n
      \\n
      \\n
      \\n\");Ember.TEMPLATES['layouts/sidebar']=Ember.Handlebars.compile(\"\\n {{t layouts.application.fork_me}}\\n\\n\\n
      \\n
       \\n
      \\n\\n{{outlet decks}}\\n{{outlet workers}}\\n{{outlet queues}}\\n{{outlet links}}\\n\\n
      \\n

      {{t layouts.about.join}}

      \\n \\n
      \\n\");Ember.TEMPLATES['layouts/simple']=Ember.Handlebars.compile(\"
      \\n {{outlet top}}\\n
      \\n\\n
      \\n
      \\n {{outlet main}}\\n
      \\n
      \\n\\n\");Ember.TEMPLATES['layouts/top']=Ember.Handlebars.compile(\"\\n

      Travis

      \\n
      \\n\\n\\n\");Ember.TEMPLATES['profile/accounts']=Ember.Handlebars.compile(\"
      \\n
      \\n\\n\\n\\n
      \\n {{#collection Travis.AccountsListView contentBinding=\\\"controller\\\"}}\\n {{view.name}}\\n

      \\n Repositories:\\n {{view.content.reposCount}}\\n

      \\n {{/collection}}\\n
      \\n\");Ember.TEMPLATES['profile/show']=Ember.Handlebars.compile(\"

      {{account.name}}

      \\n\\n{{view Travis.ProfileTabsView}}\\n\\n
      \\n {{outlet pane}}\\n
      \\n\\n\\n\");Ember.TEMPLATES['profile/tabs']=Ember.Handlebars.compile(\"
        \\n
      • \\n
        \\n Repositories\\n
        \\n
      • \\n {{#if view.displayUser}}\\n
      • \\n
        \\n Profile\\n
        \\n
      • \\n {{/if}}\\n
      \\n\");Ember.TEMPLATES['profile/tabs/hooks']=Ember.Handlebars.compile(\"

      \\n {{{t profiles.show.message.your_repos}}}\\n

      \\n\\n{{#if hooks.isLoaded}}\\n {{#if user.isSyncing}}\\n

      \\n Please wait while we sync from GitHub\\n

      \\n {{else}}\\n

      \\n Last synchronized from GitHub: {{formatTime user.syncedAt}}\\n \\n

      \\n\\n
        \\n {{#each hook in hooks}}\\n
      • \\n {{hook.slug}}\\n

        {{hook.description}}

        \\n\\n
        \\n \\n \\n
        \\n
      • \\n {{else}}\\n
      • \\n You do not seem to have any repositories that we could sync.\\n
      • \\n {{/each}}\\n
      \\n {{/if}}\\n{{else}}\\n

      \\n Loading\\n

      \\n{{/if}}\\n\\n\\n\");Ember.TEMPLATES['profile/tabs/user']=Ember.Handlebars.compile(\"\\n\\n
      \\n
      \\n {{t profiles.show.github}}:\\n
      \\n
      \\n {{user.login}}\\n
      \\n
      \\n {{t profiles.show.email}}:\\n
      \\n
      \\n {{user.email}}\\n
      \\n
      \\n {{t profiles.show.token}}:\\n
      \\n
      \\n {{user.token}}\\n
      \\n
      \\n\\n
      \\n {{view Ember.Select\\n contentBinding=\\\"view.locales\\\"\\n selectionBinding=\\\"user.locale\\\"\\n optionLabelPath=\\\"content.name\\\"\\n optionValuePath=\\\"content.key\\\"}}\\n\\n \\n
      \\n\\n\\n\");Ember.TEMPLATES['queues/list']=Ember.Handlebars.compile(\"
        \\n{{#each queue in controller}}\\n
      • \\n

        {{t queue}}: {{queue.name}}

        \\n \\n
      • \\n{{/each}}\\n
      \\n\");Ember.TEMPLATES['repos/list']=Ember.Handlebars.compile(\"
      \\n {{view Ember.TextField valueBinding=\\\"controller.search\\\"}}\\n
      \\n\\n{{view Travis.ReposListTabsView}}\\n\\n\\n\\n
      \\n {{#collection Travis.RepositoriesListView contentBinding=\\\"controller\\\"}}\\n {{#with view.repository}}\\n
      \\n \\n {{slug}}\\n
      \\n {{lastBuildNumber}}\\n\\n

      \\n {{t repositories.duration}}:\\n {{formatDuration lastBuildDuration}},\\n {{t repositories.finished_at}}:\\n {{formatTime lastBuildFinishedAt}}\\n

      \\n\\n \\n\\n {{#if description}}\\n
      \\n

      {{description}}

      \\n
      \\n {{/if}}\\n {{/with}}\\n {{/collection}}\\n
      \\n\");Ember.TEMPLATES['repos/list/tabs']=Ember.Handlebars.compile(\"\\n\\n\");Ember.TEMPLATES['repos/show']=Ember.Handlebars.compile(\"
      \\n {{#if view.repository.isLoaded}}\\n {{#with view.repository}}\\n

      \\n {{slug}}\\n

      \\n\\n

      {{description}}

      \\n\\n \\n\\n {{view Travis.RepoShowTabsView}}\\n {{view Travis.RepoShowToolsView}}\\n {{/with}}\\n\\n {{else}}\\n Loading\\n {{/if}}\\n\\n
      \\n {{outlet pane}}\\n
      \\n
      \\n\\n\");Ember.TEMPLATES['repos/show/tabs']=Ember.Handlebars.compile(\"\\n\");Ember.TEMPLATES['repos/show/tools']=Ember.Handlebars.compile(\"
      \\n \\n
      \\n

      \\n \\n {{#if view.branches.isLoaded}}\\n {{view Ember.Select contentBinding=\\\"view.branches\\\" selectionBinding=\\\"view.branch\\\" optionLabelPath=\\\"content.commit.branch\\\" optionValuePath=\\\"content.commit.branch\\\"}}\\n {{else}}\\n \\n {{/if}}\\n

      \\n

      \\n \\n \\n

      \\n

      \\n \\n \\n

      \\n

      \\n \\n \\n

      \\n

      \\n \\n \\n

      \\n
      \\n
      \\n\");Ember.TEMPLATES['sponsors/decks']=Ember.Handlebars.compile(\"

      {{t layouts.application.sponsers}}

      \\n\\n
        \\n {{#each deck in controller}}\\n {{#each deck}}\\n
      • \\n \\n \\n \\n
      • \\n {{/each}}\\n {{/each}}\\n
      \\n\\n

      \\n \\n {{{t layouts.application.sponsors_link}}}\\n \\n

      \\n\");Ember.TEMPLATES['sponsors/links']=Ember.Handlebars.compile(\"
      \\n

      {{t layouts.application.sponsers}}

      \\n\\n
        \\n {{#each controller}}\\n
      • \\n {{{link}}}\\n
      • \\n {{/each}}\\n
      \\n\\n

      \\n \\n {{{t layouts.application.sponsors_link}}}\\n \\n

      \\n
      \\n\\n\");Ember.TEMPLATES['stats/show']=Ember.Handlebars.compile(\"
      \\n
      \\n\");Ember.TEMPLATES['workers/list']=Ember.Handlebars.compile(\"{{#view Travis.WorkersView}}\\n

      \\n {{t workers}}\\n \\n

      \\n
        \\n {{#each group in controller.groups}}\\n {{#view Travis.WorkersListView}}\\n
      • \\n
        \\n {{group.firstObject.host}}\\n
        \\n
          \\n {{#each worker in group}}\\n {{#view Travis.WorkersItemView workerBinding=\\\"worker\\\"}}\\n
        • \\n
          \\n {{#if worker.isWorking}}\\n \\n {{view.display}}\\n \\n {{else}}\\n {{view.display}}\\n {{/if}}\\n
        • \\n {{/view}}\\n {{/each}}\\n
        \\n
      • \\n {{/view}}\\n {{else}}\\n No workers\\n {{/each}}\\n
      \\n{{/view}}\\n\");\n})();\n//@ sourceURL=templates");minispade.register('app', "(function() {(function() {\nminispade.require('travis');\nminispade.require('auth');\nminispade.require('controllers');\nminispade.require('helpers');\nminispade.require('models');\nminispade.require('pusher');\nminispade.require('routes');\nminispade.require('slider');\nminispade.require('store');\nminispade.require('tailing');\nminispade.require('templates');\nminispade.require('views');\nminispade.require('config/locales');\nminispade.require('data/sponsors');\n\n Travis.reopen({\n App: Em.Application.extend({\n currentUserBinding: 'auth.user',\n accessTokenBinding: 'auth.user.accessToken',\n authStateBinding: 'auth.state',\n init: function() {\n this._super();\n this.connect();\n this.store = Travis.Store.create();\n this.store.loadMany(Travis.Sponsor, Travis.SPONSORS);\n this.set('auth', Travis.Auth.create({\n store: this.store,\n endpoint: Travis.config.api_endpoint\n }));\n this.slider = new Travis.Slider();\n this.routes = new Travis.Routes();\n this.pusher = new Travis.Pusher();\n return this.tailing = new Travis.Tailing();\n },\n signIn: function() {\n return this.get('auth').signIn();\n },\n signOut: function() {\n this.get('auth').signOut();\n return this.routes.route('');\n },\n render: function(name, action, params) {\n var layout;\n layout = this.connectLayout(name);\n layout.activate(action, params || {});\n return $('body').attr('id', name);\n },\n receive: function() {\n return this.store.receive.apply(this.store, arguments);\n },\n connectLayout: function(name) {\n var viewClass;\n if (this.get('layout.name') !== name) {\n name = $.camelize(name);\n viewClass = Travis[\"\" + name + \"Layout\"];\n this.layout = Travis[\"\" + name + \"Controller\"].create({\n parent: this.controller\n });\n this.controller.connectOutlet({\n outletName: 'layout',\n controller: this.layout,\n viewClass: viewClass\n });\n }\n return this.layout;\n },\n connect: function() {\n var view;\n this.controller = Em.Controller.create();\n view = Em.View.create({\n template: Em.Handlebars.compile('{{outlet layout}}'),\n controller: this.controller\n });\n return view.appendTo(this.get('rootElement') || 'body');\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=app");minispade.register('auth', "(function() {(function() {\n\n this.Travis.Auth = Ember.Object.extend({\n iframe: $('