Commit 1ffb4b98c0405ee4c8bafaf9b67f1fc49493fbbc

Authored by gitlabhq
1 parent 3fa770dd

new design/layout started. projects page

app/assets/images/.directory
1 [Dolphin] 1 [Dolphin]
2 ShowPreview=true 2 ShowPreview=true
3 -Timestamp=2011,9,14,20,34,18 3 +Timestamp=2011,10,28,13,16,25
4 Version=2 4 Version=2
app/assets/images/bg-header.png 0 → 100644

212 Bytes

app/assets/images/images.png 0 → 100644

6.32 KB

app/assets/images/login-logo.png 0 → 100644

1.4 KB

app/assets/javascripts/modernizr-2.0.6.min.js 0 → 100755
@@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
  1 +/* Modernizr 2.0.6 | MIT & BSD
  2 + * Contains: All core tests, html5shiv, yepnope, respond.js. Get your own custom build at www.modernizr.com/download/
  3 + */
  4 +;window.Modernizr=function(a,b,c){function I(){e.input=function(a){for(var b=0,c=a.length;b<c;b++)t[a[b]]=a[b]in l;return t}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)l.setAttribute("type",f=a[d]),e=l.type!=="text",e&&(l.value=m,l.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&l.style.WebkitAppearance!==c?(g.appendChild(l),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(l,null).WebkitAppearance!=="textfield"&&l.offsetHeight!==0,g.removeChild(l)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=l.checkValidity&&l.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(l),g.offsetWidth,e=l.value!=m,g.removeChild(l)):e=l.value!=m)),s[a[d]]=!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}function G(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+p.join(c+" ")+c).split(" ");return F(d,b)}function F(a,b){for(var d in a)if(k[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function E(a,b){return!!~(""+a).indexOf(b)}function D(a,b){return typeof a===b}function C(a,b){return B(o.join(a+";")+(b||""))}function B(a){k.cssText=a}var d="2.0.6",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l=b.createElement("input"),m=":)",n=Object.prototype.toString,o=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),p="Webkit Moz O ms Khtml".split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v=function(a,c,d,e){var f,h,j,k=b.createElement("div");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:i+(d+1),k.appendChild(j);f=["&shy;","<style>",a,"</style>"].join(""),k.id=i,k.innerHTML+=f,g.appendChild(k),h=c(k,a),k.parentNode.removeChild(k);return!!h},w=function(b){if(a.matchMedia)return matchMedia(b).matches;var c;v("@media "+b+" { #"+i+" { position: absolute; } }",function(b){c=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position=="absolute"});return c},x=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=D(e[d],"function"),D(e[d],c)||(e[d]=c),e.removeAttribute(d))),e=null;return f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y,z={}.hasOwnProperty,A;!D(z,c)&&!D(z.call,c)?A=function(a,b){return z.call(a,b)}:A=function(a,b){return b in a&&D(a.constructor.prototype[b],c)};var H=function(c,d){var f=c.join(""),g=d.length;v(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||j.touch.offsetTop===9,e.csstransforms3d=j.csstransforms3d.offsetLeft===9,e.generatedcontent=j.generatedcontent.offsetHeight>=1,e.fontface=/src/i.test(h)&&h.indexOf(d.split(" ")[0])===0},g,d)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",o.join("touch-enabled),("),i,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",o.join("transform-3d),("),i,")","{#csstransforms3d{left:9px;position:absolute}}"].join(""),['#generatedcontent:after{content:"',m,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);r.flexbox=function(){function c(a,b,c,d){a.style.cssText=o.join(b+":"+c+";")+(d||"")}function a(a,b,c,d){b+=":",a.style.cssText=(b+o.join(c+";"+b)).slice(0,-b.length)+(d||"")}var d=b.createElement("div"),e=b.createElement("div");a(d,"display","box","width:42px;padding:0;"),c(e,"box-flex","1","width:10px;"),d.appendChild(e),g.appendChild(d);var f=e.offsetWidth===42;d.removeChild(e),g.removeChild(d);return f},r.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},r.canvastext=function(){return!!e.canvas&&!!D(b.createElement("canvas").getContext("2d").fillText,"function")},r.webgl=function(){return!!a.WebGLRenderingContext},r.touch=function(){return e.touch},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){var b=!!a.openDatabase;return b},r.indexedDB=function(){for(var b=-1,c=p.length;++b<c;)if(a[p[b].toLowerCase()+"IndexedDB"])return!0;return!!a.indexedDB},r.hashchange=function(){return x("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return!!a.history&&!!history.pushState},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){for(var b=-1,c=p.length;++b<c;)if(a[p[b]+"WebSocket"])return!0;return"WebSocket"in a},r.rgba=function(){B("background-color:rgba(150,255,150,.5)");return E(k.backgroundColor,"rgba")},r.hsla=function(){B("background-color:hsla(120,40%,100%,.5)");return E(k.backgroundColor,"rgba")||E(k.backgroundColor,"hsla")},r.multiplebgs=function(){B("background:url(https://),url(https://),red url(https://)");return/(url\s*\(.*?){3}/.test(k.background)},r.backgroundsize=function(){return G("backgroundSize")},r.borderimage=function(){return G("borderImage")},r.borderradius=function(){return G("borderRadius")},r.boxshadow=function(){return G("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){C("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return G("animationName")},r.csscolumns=function(){return G("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";B((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return E(k.backgroundImage,"gradient")},r.cssreflections=function(){return G("boxReflect")},r.csstransforms=function(){return!!F(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!F(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=e.csstransforms3d);return a},r.csstransitions=function(){return G("transitionProperty")},r.fontface=function(){return e.fontface},r.generatedcontent=function(){return e.generatedcontent},r.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}}catch(e){}return c},r.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")}catch(d){}return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!!sessionStorage.getItem}catch(a){return!1}},r.webworkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="<svg/>";return(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var J in r)A(r,J)&&(y=J.toLowerCase(),e[y]=r[J](),u.push((e[y]?"":"no-")+y));e.input||I(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)A(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return;b=typeof b=="boolean"?b:!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b}return e},B(""),j=l=null,a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function s(a){var b=-1;while(++b<g)a.createElement(f[b])}a.iepp=a.iepp||{};var d=a.iepp,e=d.html5elements||"abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",f=e.split("|"),g=f.length,h=new RegExp("(^|\\s)("+e+")","gi"),i=new RegExp("<(/*)("+e+")","gi"),j=/^\s*[\{\}]\s*$/,k=new RegExp("(^|[^\\n]*?\\s)("+e+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),l=b.createDocumentFragment(),m=b.documentElement,n=m.firstChild,o=b.createElement("body"),p=b.createElement("style"),q=/print|all/,r;d.getCSS=function(a,b){if(a+""===c)return"";var e=-1,f=a.length,g,h=[];while(++e<f){g=a[e];if(g.disabled)continue;b=g.media||b,q.test(b)&&h.push(d.getCSS(g.imports,b),g.cssText),b="all"}return h.join("")},d.parseCSS=function(a){var b=[],c;while((c=k.exec(a))!=null)b.push(((j.exec(c[1])?"\n":c[1])+c[2]+c[3]).replace(h,"$1.iepp_$2")+c[4]);return b.join("\n")},d.writeHTML=function(){var a=-1;r=r||b.body;while(++a<g){var c=b.getElementsByTagName(f[a]),d=c.length,e=-1;while(++e<d)c[e].className.indexOf("iepp_")<0&&(c[e].className+=" iepp_"+f[a])}l.appendChild(r),m.appendChild(o),o.className=r.className,o.id=r.id,o.innerHTML=r.innerHTML.replace(i,"<$1font")},d._beforePrint=function(){p.styleSheet.cssText=d.parseCSS(d.getCSS(b.styleSheets,"all")),d.writeHTML()},d.restoreHTML=function(){o.innerHTML="",m.removeChild(o),m.appendChild(r)},d._afterPrint=function(){d.restoreHTML(),p.styleSheet.cssText=""},s(b),s(l);d.disablePP||(n.insertBefore(p,n.firstChild),p.media="print",p.className="iepp-printshim",a.attachEvent("onbeforeprint",d._beforePrint),a.attachEvent("onafterprint",d._afterPrint))}(a,b),e._version=d,e._prefixes=o,e._domPrefixes=p,e.mq=w,e.hasEvent=x,e.testProp=function(a){return F([a])},e.testAllProps=G,e.testStyles=v,e.prefixed=function(a){return G(a,"pfx")},g.className=g.className.replace(/\bno-js\b/,"")+(f?" js "+u.join(" "):"");return e}(this,this.document),function(a,b){function u(){r(!0)}a.respond={},respond.update=function(){},respond.mediaQueriesSupported=b;if(!b){var c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=j.getElementsByTagName("link"),l=[],m=function(){var b=k,c=b.length,d=0,e,f,g,i;for(;d<c;d++)e=b[d],f=e.href,g=e.media,i=e.rel&&e.rel.toLowerCase()==="stylesheet",!!f&&i&&!h[f]&&(!/^([a-zA-Z]+?:(\/\/)?(www\.)?)/.test(f)||f.replace(RegExp.$1,"").split("/")[0]===a.location.host?l.push({href:f,media:g}):h[f]=!0);n()},n=function(){if(l.length){var a=l.shift();s(a.href,function(b){o(b,a.href,a.media),h[a.href]=!0,n()})}},o=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]+\{[^\}\{]+\})+/gi),g=d&&d.length||0,b=b.substring(0,b.lastIndexOf("/")),h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c,j=0,k,l,m,n,o;b.length&&(b+="/"),i&&(g=1);for(;j<g;j++){k=0,i?(l=c,f.push(h(a))):(l=d[j].match(/@media ([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),n=l.split(","),o=n.length;for(;k<o;k++)m=n[k],e.push({media:m.match(/(only\s+)?([a-zA-Z]+)(\sand)?/)&&RegExp.$2,rules:f.length-1,minw:m.match(/\(min\-width:[\s]*([\s]*[0-9]+)px[\s]*\)/)&&parseFloat(RegExp.$1),maxw:m.match(/\(max\-width:[\s]*([\s]*[0-9]+)px[\s]*\)/)&&parseFloat(RegExp.$1)})}r()},p,q,r=function(a){var b="clientWidth",h=d[b],l=c.compatMode==="CSS1Compat"&&h||c.body[b]||h,m={},n=c.createDocumentFragment(),o=k[k.length-1],s=(new Date).getTime();if(a&&p&&s-p<i)clearTimeout(q),q=setTimeout(r,i);else{p=s;for(var t in e){var u=e[t];if(!u.minw&&!u.maxw||(!u.minw||u.minw&&l>=u.minw)&&(!u.maxw||u.maxw&&l<=u.maxw))m[u.media]||(m[u.media]=[]),m[u.media].push(f[u.rules])}for(var t in g)g[t]&&g[t].parentNode===j&&j.removeChild(g[t]);for(var t in m){var v=c.createElement("style"),w=m[t].join("\n");v.type="text/css",v.media=t,v.styleSheet?v.styleSheet.cssText=w:v.appendChild(c.createTextNode(w)),n.appendChild(v),g.push(v)}j.insertBefore(n,o.nextSibling)}},s=function(a,b){var c=t();if(!!c){c.open("GET",a,!0),c.onreadystatechange=function(){c.readyState==4&&(c.status==200||c.status==304)&&b(c.responseText)};if(c.readyState==4)return;c.send()}},t=function(){var a=!1,b=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest}],c=b.length;while(c--){try{a=b[c]()}catch(d){continue}break}return function(){return a}}();m(),respond.update=m,a.addEventListener?a.addEventListener("resize",u,!1):a.attachEvent&&a.attachEvent("onresize",u)}}(this,Modernizr.mq("only all")),function(a,b,c){function k(a){return!a||a=="loaded"||a=="complete"}function j(){var a=1,b=-1;while(p.length- ++b)if(p[b].s&&!(a=p[b].r))break;a&&g()}function i(a){var c=b.createElement("script"),d;c.src=a.s,c.onreadystatechange=c.onload=function(){!d&&k(c.readyState)&&(d=1,j(),c.onload=c.onreadystatechange=null)},m(function(){d||(d=1,j())},H.errorTimeout),a.e?c.onload():n.parentNode.insertBefore(c,n)}function h(a){var c=b.createElement("link"),d;c.href=a.s,c.rel="stylesheet",c.type="text/css";if(!a.e&&(w||r)){var e=function(a){m(function(){if(!d)try{a.sheet.cssRules.length?(d=1,j()):e(a)}catch(b){b.code==1e3||b.message=="security"||b.message=="denied"?(d=1,m(function(){j()},0)):e(a)}},0)};e(c)}else c.onload=function(){d||(d=1,m(function(){j()},0))},a.e&&c.onload();m(function(){d||(d=1,j())},H.errorTimeout),!a.e&&n.parentNode.insertBefore(c,n)}function g(){var a=p.shift();q=1,a?a.t?m(function(){a.t=="c"?h(a):i(a)},0):(a(),j()):q=0}function f(a,c,d,e,f,h){function i(){!o&&k(l.readyState)&&(r.r=o=1,!q&&j(),l.onload=l.onreadystatechange=null,m(function(){u.removeChild(l)},0))}var l=b.createElement(a),o=0,r={t:d,s:c,e:h};l.src=l.data=c,!s&&(l.style.display="none"),l.width=l.height="0",a!="object"&&(l.type=d),l.onload=l.onreadystatechange=i,a=="img"?l.onerror=i:a=="script"&&(l.onerror=function(){r.e=r.r=1,g()}),p.splice(e,0,r),u.insertBefore(l,s?null:n),m(function(){o||(u.removeChild(l),r.r=r.e=o=1,j())},H.errorTimeout)}function e(a,b,c){var d=b=="c"?z:y;q=0,b=b||"j",C(a)?f(d,a,b,this.i++,l,c):(p.splice(this.i++,0,a),p.length==1&&g());return this}function d(){var a=H;a.loader={load:e,i:0};return a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=r&&!s,u=s?l:n.parentNode,v=a.opera&&o.call(a.opera)=="[object Opera]",w="webkitAppearance"in l.style,x=w&&"async"in b.createElement("script"),y=r?"object":v||x?"img":"script",z=w?"img":y,A=Array.isArray||function(a){return o.call(a)=="[object Array]"},B=function(a){return Object(a)===a},C=function(a){return typeof a=="string"},D=function(a){return o.call(a)=="[object Function]"},E=[],F={},G,H;H=function(a){function f(a){var b=a.split("!"),c=E.length,d=b.pop(),e=b.length,f={url:d,origUrl:d,prefixes:b},g,h;for(h=0;h<e;h++)g=F[b[h]],g&&(f=g(f));for(h=0;h<c;h++)f=E[h](f);return f}function e(a,b,e,g,h){var i=f(a),j=i.autoCallback;if(!i.bypass){b&&(b=D(b)?b:b[a]||b[g]||b[a.split("/").pop().split("?")[0]]);if(i.instead)return i.instead(a,b,e,g,h);e.load(i.url,i.forceCSS||!i.forceJS&&/css$/.test(i.url)?"c":c,i.noexec),(D(b)||D(j))&&e.load(function(){d(),b&&b(i.origUrl,h,g),j&&j(i.origUrl,h,g)})}}function b(a,b){function c(a){if(C(a))e(a,h,b,0,d);else if(B(a))for(i in a)a.hasOwnProperty(i)&&e(a[i],h,b,i,d)}var d=!!a.test,f=d?a.yep:a.nope,g=a.load||a.both,h=a.callback,i;c(f),c(g),a.complete&&b.load(a.complete)}var g,h,i=this.yepnope.loader;if(C(a))e(a,0,i,0);else if(A(a))for(g=0;g<a.length;g++)h=a[g],C(h)?e(h,0,i,0):A(h)?H(h):B(h)&&b(h,i);else B(a)&&b(a,i)},H.addPrefix=function(a,b){F[a]=b},H.addFilter=function(a){E.push(a)},H.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",G=function(){b.removeEventListener("DOMContentLoaded",G,0),b.readyState="complete"},0)),a.yepnope=d()}(this,this.document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
0 \ No newline at end of file 5 \ No newline at end of file
app/assets/stylesheets/projects.css.scss
@@ -210,9 +210,9 @@ table.round-borders { @@ -210,9 +210,9 @@ table.round-borders {
210 padding:20px; 210 padding:20px;
211 } 211 }
212 212
213 -body {  
214 - background: #eaeaea;  
215 -} 213 +//body {
  214 + //background: #eaeaea;
  215 +//}
216 216
217 a { 217 a {
218 color: #111; 218 color: #111;
app/assets/stylesheets/style.scss 0 → 100755
@@ -0,0 +1,521 @@ @@ -0,0 +1,521 @@
  1 +/* HTML5 ✰ Boilerplate
  2 + * ==|== normalize ==========================================================
  3 + */
  4 +
  5 +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; }
  6 +audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
  7 +audio:not([controls]) { display: none; }
  8 +[hidden] { display: none; }
  9 +
  10 +html { font-size: 100%; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
  11 +body { margin: 0; font-size: 13px; line-height: 1.231; }
  12 +body, button, input, select, textarea { font-family: sans-serif; color: #222; }
  13 +
  14 +::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; }
  15 +::selection { background: #fe57a1; color: #fff; text-shadow: none; }
  16 +
  17 +a { color: #00e; }
  18 +a:hover { color: #06e; }
  19 +a:focus { outline: thin dotted; }
  20 +a:hover, a:active { outline: 0; }
  21 +
  22 +abbr[title] { border-bottom: 1px dotted; }
  23 +b, strong { font-weight: bold; }
  24 +blockquote { margin: 1em 40px; }
  25 +dfn { font-style: italic; }
  26 +hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
  27 +ins { background: #ff9; color: #000; text-decoration: none; }
  28 +mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; }
  29 +pre, code, kbd, samp { font-family: monospace, monospace; _font-family: 'courier new', monospace; font-size: 1em; }
  30 +pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
  31 +q { quotes: none; }
  32 +q:before, q:after { content: ""; content: none; }
  33 +small { font-size: 85%; }
  34 +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
  35 +sup { top: -0.5em; }
  36 +sub { bottom: -0.25em; }
  37 +ul, ol { margin: 1em 0; padding: 0 0 0 40px; }
  38 +dd { margin: 0 0 0 40px; }
  39 +nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; }
  40 +img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }
  41 +svg:not(:root) { overflow: hidden; }
  42 +figure { margin: 0; }
  43 +
  44 +form { margin: 0; }
  45 +fieldset { border: 0; margin: 0; padding: 0; }
  46 +label { cursor: pointer; }
  47 +legend { border: 0; *margin-left: -7px; padding: 0; }
  48 +button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; }
  49 +button, input { line-height: normal; *overflow: visible; }
  50 +table button, table input { *overflow: auto; }
  51 +button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; }
  52 +input[type="checkbox"], input[type="radio"] { box-sizing: border-box; }
  53 +input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
  54 +input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
  55 +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
  56 +textarea { overflow: auto; vertical-align: top; resize: vertical; }
  57 +input:valid, textarea:valid { }
  58 +input:invalid, textarea:invalid { background-color: #f0dddd; }
  59 +
  60 +table { border-collapse: collapse; border-spacing: 0; }
  61 +td { vertical-align: top; }
  62 +
  63 +
  64 +/* ==|== primary styles =====================================================
  65 + Author: Ricardo Rauch
  66 + ========================================================================== */
  67 +
  68 +/* 960gs */
  69 +/*
  70 + Variable Grid System (Fluid Version).
  71 + Learn more ~ http://www.spry-soft.com/grids/
  72 + Based on 960 Grid System - http://960.gs/ & 960 Fluid - http://www.designinfluences.com/
  73 +
  74 + Licensed under GPL and MIT.
  75 +*/
  76 +
  77 +
  78 +/* Containers
  79 +----------------------------------------------------------------------------------------------------*/
  80 +.container_3 {
  81 + width: 98%;
  82 + margin-left: 1%;
  83 + margin-right: 1%;
  84 +}
  85 +
  86 +/* Grid >> Global
  87 +----------------------------------------------------------------------------------------------------*/
  88 +
  89 +.grid_1,
  90 +.grid_2,
  91 +.grid_3 {
  92 + display:inline;
  93 + float: left;
  94 + position: relative;
  95 + margin-left: 1%;
  96 + margin-right: 1%;
  97 +}
  98 +
  99 +/* Grid >> Children (Alpha ~ First, Omega ~ Last)
  100 +----------------------------------------------------------------------------------------------------*/
  101 +
  102 +.alpha {
  103 + margin-left: 0;
  104 +}
  105 +
  106 +.omega {
  107 + margin-right: 0;
  108 +}
  109 +
  110 +/* Grid >> 3 Columns
  111 +----------------------------------------------------------------------------------------------------*/
  112 +
  113 +
  114 +.container_3 .grid_1 {
  115 + width:31.333%;
  116 +}
  117 +
  118 +.container_3 .grid_2 {
  119 + width:64.667%;
  120 +}
  121 +
  122 +.container_3 .grid_3 {
  123 + width:98.0%;
  124 +}
  125 +
  126 +
  127 +
  128 +/* Prefix Extra Space >> 3 Columns
  129 +----------------------------------------------------------------------------------------------------*/
  130 +
  131 +
  132 +.container_3 .prefix_1 {
  133 + padding-left:33.333%;
  134 +}
  135 +
  136 +.container_3 .prefix_2 {
  137 + padding-left:66.667%;
  138 +}
  139 +
  140 +
  141 +
  142 +/* Suffix Extra Space >> 3 Columns
  143 +----------------------------------------------------------------------------------------------------*/
  144 +
  145 +
  146 +.container_3 .suffix_1 {
  147 + padding-right:33.333%;
  148 +}
  149 +
  150 +.container_3 .suffix_2 {
  151 + padding-right:66.667%;
  152 +}
  153 +
  154 +
  155 +
  156 +/* Push Space >> 3 Columns
  157 +----------------------------------------------------------------------------------------------------*/
  158 +
  159 +
  160 +.container_3 .push_1 {
  161 + left:33.333%;
  162 +}
  163 +
  164 +.container_3 .push_2 {
  165 + left:66.667%;
  166 +}
  167 +
  168 +
  169 +
  170 +/* Pull Space >> 3 Columns
  171 +----------------------------------------------------------------------------------------------------*/
  172 +
  173 +
  174 +.container_3 .pull_1 {
  175 + left:-33.333%;
  176 +}
  177 +
  178 +.container_3 .pull_2 {
  179 + left:-66.667%;
  180 +}
  181 +
  182 +
  183 +
  184 +
  185 +/* Clear Floated Elements
  186 +----------------------------------------------------------------------------------------------------*/
  187 +
  188 +/* http://sonspring.com/journal/clearing-floats */
  189 +
  190 +.clear {
  191 + clear: both;
  192 + display: block;
  193 + overflow: hidden;
  194 + visibility: hidden;
  195 + width: 0;
  196 + height: 0;
  197 +}
  198 +
  199 +/* http://perishablepress.com/press/2008/02/05/lessons-learned-concerning-the-clearfix-css-hack */
  200 +
  201 +.clearfix:after {
  202 + clear: both;
  203 + content: ' ';
  204 + display: block;
  205 + font-size: 0;
  206 + line-height: 0;
  207 + visibility: hidden;
  208 + width: 0;
  209 + height: 0;
  210 +}
  211 +
  212 +.clearfix {
  213 + display: inline-block;
  214 +}
  215 +
  216 +* html .clearfix {
  217 + height: 1%;
  218 +}
  219 +
  220 +.clearfix {
  221 + display: block;
  222 +}/* eo 960gs*/
  223 +
  224 +
  225 +*{text-shadow: 0 1px 0 white}
  226 +body{font-size: 12px}
  227 +a{text-decoration: none; font-weight: bold; color: #333}
  228 +a:hover{color: #000}
  229 +/* Typography */
  230 +h1,h2,h3,h4,h5{font-weight: normal; color: #666}
  231 +/* eo Typography */
  232 +
  233 +/* Forms */
  234 +input[type="text"]:focus, input[type="password"]:focus { outline: none; }
  235 +input.text{border: 1px solid #ccc; border-radius: 4px; display: block; padding: 10px}
  236 +/* eo Forms */
  237 +
  238 +/* Buttons */
  239 +.grey-button{
  240 + border-radius: 5px;
  241 + font-size: 12px;
  242 + font-weight: bold;
  243 + padding: 6px 20px;
  244 + border: 1px solid #999;
  245 + color: #666;
  246 + box-shadow: 0 1px 2px rgba(0,0,0,.3);
  247 + background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #f7f7f7), to(#d5d5d5));
  248 + background-image: -webkit-linear-gradient(#f7f7f7 7.6%, #d5d5d5);
  249 + background-image: -moz-linear-gradient(#f7f7f7 7.6%, #d5d5d5);
  250 + background-image: -o-linear-gradient(#f7f7f7 7.6%, #d5d5d5);
  251 +}
  252 +
  253 +.button{
  254 + padding: 10px 20px;
  255 + text-align: center;
  256 + display: inline-block;
  257 + border-radius: 5px;
  258 + color: #578E91;
  259 + font-size: 12px;
  260 + text-transform: uppercase;
  261 + border: 1px solid #8CE2E6;
  262 + background-image: -webkit-gradient(linear, 0 0, 0 34, color-stop(0.794, #dbf5f6), to(#c5eef0));
  263 + background-image: -webkit-linear-gradient(#dbf5f6 79.4%, #c5eef0);
  264 + background-image: -moz-linear-gradient(#dbf5f6 79.4%, #c5eef0);
  265 + background-image: -o-linear-gradient(#dbf5f6 79.4%, #c5eef0);
  266 +}
  267 +
  268 +.button:hover{color: rgba(0,0,0,.8)}
  269 +
  270 +.button.green{
  271 + margin-right: 0;
  272 +}
  273 +
  274 +.button.yellow{
  275 + color: #908054;
  276 + border-color: #DDCDA1;
  277 + background-image: -webkit-gradient(linear, 0 0, 0 34, color-stop(0.794, #FFEFC3), to(#F3E3B7));
  278 + background-image: -webkit-linear-gradient(#FFEFC3 79.4%, #F3E3B7);
  279 + background-image: -moz-linear-gradient(#FFEFC3 79.4%, #F3E3B7);
  280 + background-image: -o-linear-gradient(#FFEFC3 79.4%, #F3E3B7);
  281 +}
  282 +
  283 +/* eo Buttons */
  284 +
  285 +/* UI Box */
  286 +.ui-box{border: 1px solid #DEDFE1; float: left; border-radius: 5px}
  287 +.ui-box h3{
  288 + background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8));
  289 + background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8);
  290 + background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8);
  291 + background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8);
  292 + margin: 0;
  293 + padding: 1em;
  294 + font-size: 12px;
  295 + font-weight: normal;
  296 + font-size: 16px;
  297 + border-bottom: 1px solid #DEDFE1;
  298 + -webkit-border-top-left-radius: 5px;
  299 + -webkit-border-top-right-radius: 5px;
  300 + -moz-border-radius-topleft: 5px;
  301 + -moz-border-radius-topright: 5px;
  302 + border-top-left-radius: 5px;
  303 + border-top-right-radius: 5px;
  304 +}
  305 +
  306 +.ui-box h3 a{font-weight: normal;}
  307 +
  308 +.ui-box .data{padding: .5em 1em}
  309 +
  310 +.ui-box .buttons{background-color: #f7f8f9; padding: 1em;
  311 + -webkit-border-bottom-right-radius: 5px;
  312 + -webkit-border-bottom-left-radius: 5px;
  313 + -moz-border-radius-bottomright: 5px;
  314 + -moz-border-radius-bottomleft: 5px;
  315 + border-bottom-right-radius: 5px;
  316 + border-bottom-left-radius: 5px;
  317 +}
  318 +
  319 +.ui-box:hover{box-shadow: 0 0 10px rgba(0,0,0,.1); border: 1px solid #ccc;
  320 +
  321 + -webkit-transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
  322 + -moz-transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
  323 + -o-transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
  324 + transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
  325 +}
  326 +
  327 +/* eo UI Box */
  328 +
  329 +/* Login Page */
  330 +body.login-page{background-color: #f1f1f1; padding-top: 10%}
  331 +
  332 +.login-box{
  333 + width: 304px;
  334 + position: relative;
  335 + border-radius: 5px;
  336 + margin: auto;
  337 + padding: 20px;
  338 + background: white;
  339 + box-shadow: rgba(0, 0, 0, 0.07) 0 1px 0,white 0 2px 0,rgba(0, 0, 0, 0.07) 0 3px 0,white 0 4px 0, rgba(0, 0, 0, 0.07) 0 5px 0;
  340 +}
  341 +
  342 +.login-box .login-logo{
  343 + margin: 10px 0 30px 0;
  344 + display: block;
  345 +}
  346 +
  347 +.login-box input.text{background-color: #f1f1f1; font-size: 16px; border-radius: 0; padding: 14px 10px; width: 280px}
  348 +
  349 +.login-box input.text.top{
  350 + -webkit-border-top-left-radius: 5px;
  351 + -webkit-border-top-right-radius: 5px;
  352 + -moz-border-radius-topleft: 5px;
  353 + -moz-border-radius-topright: 5px;
  354 + border-top-left-radius: 5px;
  355 + border-top-right-radius: 5px;
  356 +}
  357 +
  358 +.login-box input.text.bottom{
  359 + -webkit-border-bottom-right-radius: 5px;
  360 + -webkit-border-bottom-left-radius: 5px;
  361 + -moz-border-radius-bottomright: 5px;
  362 + -moz-border-radius-bottomleft: 5px;
  363 + border-bottom-right-radius: 5px;
  364 + border-bottom-left-radius: 5px;
  365 + border-top: 0;
  366 + margin-bottom: 20px;
  367 +}
  368 +
  369 +.login-box a.forgot{float: right; padding-top: 6px}
  370 +
  371 +
  372 +/* General */
  373 +header{background: #474D57 url('bg-header.png') repeat-x bottom; overflow: hidden; padding: 10px 2% 6px 2%}
  374 +header a{color: white; text-shadow: 0 -1px 0 black}
  375 +header a:hover{color: #f1f1f1}
  376 +header h1{
  377 + width: 65px;
  378 +}
  379 +header h1.logo{
  380 + background: url('images.png') no-repeat -3px -6px;
  381 + width: 65px;
  382 + height: 26px;
  383 + margin: 5px 0;
  384 + padding: 0;
  385 + float: left;
  386 + text-indent: -1000em;
  387 +}
  388 +header nav{border-radius: 4px; box-shadow: 0 1px 2px black; width: 321px; margin: auto;
  389 + background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #595d63), to(#31363e));
  390 + background-image: -webkit-linear-gradient(#595d63 6.6%, #31363e);
  391 + background-image: -moz-linear-gradient(#595d63 6.6%, #31363e);
  392 + background-image: -o-linear-gradient(#595d63 6.6%, #31363e);
  393 + margin-top: 2px;
  394 +}
  395 +header nav a{padding: 8px 12px 8px 34px; display: inline-block; color: #D6DADF; border-right: 1px solid #31363E; position: relative; box-shadow: 1px 0 0 rgba(255,255,255,.1); margin: 0}
  396 +header nav a span{width: 20px; height: 20px; display: inline-block; background: red; position: absolute; left: 8px; top: 6px;}
  397 +header nav a:last-child {border: 0; box-shadow: none}
  398 +header nav a:hover, header nav a.current{
  399 + background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #595d63), to(#2c2f35));
  400 + background-image: -webkit-linear-gradient(#595d63 6.6%, #2c2f35);
  401 + background-image: -moz-linear-gradient(#595d63 6.6%, #202227);
  402 + background-image: -o-linear-gradient(#595d63 6.6%, #202227);
  403 +}
  404 +
  405 +header nav a:active{
  406 + box-shadow: 0 1px 4px rgba(0,0,0,.8) inset;
  407 +}
  408 +
  409 +
  410 +header nav a.dashboard {
  411 + -webkit-border-top-left-radius: 4px;
  412 + -webkit-border-bottom-left-radius: 4px;
  413 + -moz-border-radius-topleft: 4px;
  414 + -moz-border-radius-bottomleft: 4px;
  415 + border-top-left-radius: 4px;
  416 + border-bottom-left-radius: 4px;
  417 +}
  418 +
  419 +header nav a.admin{
  420 + -webkit-border-top-right-radius: 4px;
  421 + -webkit-border-bottom-right-radius: 4px;
  422 + -moz-border-radius-topright: 4px;
  423 + -moz-border-radius-bottomright: 4px;
  424 + border-top-right-radius: 4px;
  425 + border-bottom-right-radius: 4px;
  426 +}
  427 +header nav a.dashboard span{background: url('images.png') no-repeat -161px -4px; width: 20px; height: 20px; }
  428 +header nav a.admin span{background: url('images.png') no-repeat -184px -4px; width: 20px; height: 20px;}
  429 +header nav a.project span{background: url('images.png') no-repeat -209px -5px; width: 20px; height: 18px; top: 7px}
  430 +
  431 +header .login-top{float: right; width: 180px;
  432 + background-image: -webkit-gradient(linear, 0 0, 0 62, color-stop(0.032, #464c56), to(#363c45));
  433 + background-image: -webkit-linear-gradient(#464c56 3.2%, #363c45);
  434 + background-image: -moz-linear-gradient(#464c56 3.2%, #363c45);
  435 + background-image: -o-linear-gradient(#464c56 3.2%, #363c45);
  436 + padding: 0 10px;
  437 + height: 44px;
  438 +}
  439 +header .login-top a{display: block;}
  440 +header .login-top a.pic{float: left; margin-right: 10px;
  441 + img{ height: 36px; width: 36px; border: 1px solid black}
  442 +}
  443 +header .login-top a.username{margin-bottom: 5px}
  444 +header .login-top a.logout{color: #ccc}
  445 +header{margin-bottom: 0; clear: both; }
  446 +
  447 +.page-title{background-color: #f1f1f1;display: block; float: left; clear: both; width: 98%; padding: 0 1%; border-bottom: 1px solid #ccc; box-shadow: 0 -1px 0 white inset; margin-bottom: 1.5em}
  448 +.page-title a.grey-button{float: right;}
  449 +
  450 +
  451 +
  452 +
  453 +/* Project Page */
  454 +.project-page .page-title{margin-bottom: 0}
  455 +.project-page .project-sidebar {width: 220px; margin-right: 1%; background: #f7f7f7; overflow: hidden; padding: 20px 0 20px 2%; margin: 0}
  456 +.project-page .project-sidebar input.text.git-url{width: 90%; box-shadow: 0 1px 2px rgba(0,0,0,.2) inset; padding: 3% 2%; margin: 0% 10% 7% 0}
  457 +.project-page .project-sidebar aside a{display: block; background: white; padding: 15px 10px; border-bottom: 1px solid #eee}
  458 +.project-page .project-sidebar aside a:first-child{
  459 + -webkit-border-top-left-radius: 5px;
  460 + -moz-border-radius-topleft: 5px;
  461 + border-top-left-radius: 5px;
  462 +}
  463 +.project-page .project-sidebar aside a:last-child{
  464 + -webkit-border-bottom-left-radius: 5px;
  465 + -moz-border-radius-bottomleft: 5px;
  466 + border-bottom-left-radius: 5px;
  467 +}
  468 +.project-page .project-sidebar aside a.current{background-color: #4bb8d2; color: white; text-shadow: none; border-color: transparent}
  469 +.project-page .project-content{ float: left; padding: 20px}
  470 +.project-page .project-content h2{margin-top: 0}
  471 +/* eo Project Page */
  472 +
  473 +/* Projects Page */
  474 +.project-box.ui-box .data .repository {margin-bottom: 20px}
  475 +.project-box.ui-box .data .title span{width: 80px; text-align: right; padding-right: 10px; display: inline-block; font-weight: bold;}
  476 +.project-box{width: 100%; margin-bottom: 3em}
  477 +.browse-code{margin-right: 10px}
  478 +/* eo Projects Page */
  479 +
  480 +
  481 +/* ==|== non-semantic helper classes ======================================== */
  482 +.ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; }
  483 +.ir br { display: none; }
  484 +.hidden { display: none !important; visibility: hidden; }
  485 +.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
  486 +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
  487 +.invisible { visibility: hidden; }
  488 +.clearfix:before, .clearfix:after { content: ""; display: table; }
  489 +.clearfix:after { clear: both; }
  490 +.clearfix { zoom: 1; }
  491 +
  492 +
  493 +/* ==|== media queries ====================================================== */
  494 +
  495 +@media only screen and (min-width: 480px) {
  496 +
  497 +
  498 +}
  499 +
  500 +@media only screen and (min-width: 768px) {
  501 +
  502 +}
  503 +
  504 +
  505 +
  506 +/* ==|== print styles ======================================================= */
  507 +
  508 +@media print {
  509 + * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; }
  510 + a, a:visited { text-decoration: underline; }
  511 + a[href]:after { content: " (" attr(href) ")"; }
  512 + abbr[title]:after { content: " (" attr(title) ")"; }
  513 + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
  514 + pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
  515 + thead { display: table-header-group; }
  516 + tr, img { page-break-inside: avoid; }
  517 + img { max-width: 100% !important; }
  518 + @page { margin: 0.5cm; }
  519 + p, h2, h3 { orphans: 3; widows: 3; }
  520 + h2, h3 { page-break-after: avoid; }
  521 +}
app/views/layouts/_head_panel.html.erb
1 -<div id="header-panel"> 1 +<!-- Page Header -->
  2 +<header>
  3 +<h1 class="logo">
  4 + <a href="/">GITLAB</a></h1>
  5 + <div class="login-top">
  6 + <%= link_to profile_path, :class => "pic" do %>
  7 + <%= image_tag gravatar_icon(current_user.email) %>
  8 + <% end %>
  9 + <%= link_to profile_path, :class => "username" do %>
  10 + <%= current_user.name %>
  11 + <% end %>
  12 + <%= link_to 'Logout', destroy_user_session_path, :class => "logout", :method => :delete %>
  13 + </div>
  14 + <!-- .login-top -->
  15 + <nav>
  16 + <%= link_to root_path, :class => current_page?(root_path) ? "current dashboard" : "dashboard" do %>
  17 + <span></span>Dashboard
  18 + <% end %>
  19 + <%= link_to projects_path, :class => current_page?(projects_path) ? "current project" : "project" do %>
  20 + <span></span>Projects
  21 + <% end %>
  22 + <%= link_to( admin_root_path, :class => admin_namespace? ? "current admin" : "admin" ) do %>
  23 + <span></span>Admin
  24 + <% end if current_user.is_admin? %>
  25 + </nav>
  26 +</header>
  27 +<!-- eo Page Header -->
  28 +
  29 +<div id="header-panel" style="display:none">
2 <div class="container"> 30 <div class="container">
3 <div class="span-24"> 31 <div class="span-24">
4 <div class="span-10"> 32 <div class="span-10">
5 - <%#= image_tag "git.png", :height => 40, :class => "left" %>  
6 - <%#= link_to "gitlab", root_path, :id => "logo" %>  
7 <span class="search-holder"> 33 <span class="search-holder">
8 <%= text_field_tag "search", nil, :placeholder => "Search" %> 34 <%= text_field_tag "search", nil, :placeholder => "Search" %>
9 </span> 35 </span>
10 </div> 36 </div>
11 <div class="right"> 37 <div class="right">
12 <%= link_to truncate(@project.name, :length => 20), project_path(@project), :class => "current button" if @project && !@project.new_record? %> 38 <%= link_to truncate(@project.name, :length => 20), project_path(@project), :class => "current button" if @project && !@project.new_record? %>
13 - <%= link_to 'Projects', projects_path, :class => current_page?(projects_path) ? "current button" : "button" %>  
14 - <%= link_to('Admin', admin_root_path, :class => admin_namespace? ? "current button" : "button" ) if current_user.is_admin? %>  
15 - <%= link_to profile_path, :class => ((controller.controller_name == "keys" || controller.controller_name == "profile") ? "current button" : "button") do %>  
16 - <%= image_tag gravatar_icon(current_user.email) %>  
17 - <%= current_user.name.split(" ").first %>  
18 - <% end %>  
19 - <%= link_to 'Logout', destroy_user_session_path, :style => "border-left: 1px solid #666;", :class => "button", :method => :delete %>  
20 </div> 39 </div>
21 </div> 40 </div>
22 </div> 41 </div>
app/views/layouts/_page_title.html.haml 0 → 100644
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +- if content_for?(:page_title)
  2 + = yield :page_title
  3 +- else
  4 + .page-title
  5 + .container_3
  6 + %h1= controller.controller_name.capitalize
app/views/layouts/application.html.haml
@@ -3,10 +3,10 @@ @@ -3,10 +3,10 @@
3 %head 3 %head
4 %title 4 %title
5 GitLab #{" - #{@project.name}" if @project && !@project.new_record?} 5 GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
6 - = stylesheet_link_tag 'blueprint/screen', :media => "screen, projection"  
7 - = stylesheet_link_tag 'blueprint/print', :media => "print"  
8 - = stylesheet_link_tag 'blueprint/plugins/buttons/screen', :media => "screen, projection"  
9 - = stylesheet_link_tag 'blueprint/plugins/link-icons/screen', :media => "screen, projection" 6 + -#= stylesheet_link_tag 'blueprint/screen', :media => "screen, projection"
  7 + -#= stylesheet_link_tag 'blueprint/print', :media => "print"
  8 + -#= stylesheet_link_tag 'blueprint/plugins/buttons/screen', :media => "screen, projection"
  9 + -#= stylesheet_link_tag 'blueprint/plugins/link-icons/screen', :media => "screen, projection"
10 = stylesheet_link_tag "application" 10 = stylesheet_link_tag "application"
11 = javascript_include_tag "application" 11 = javascript_include_tag "application"
12 = csrf_meta_tags 12 = csrf_meta_tags
@@ -15,14 +15,18 @@ @@ -15,14 +15,18 @@
15 REQ_URI = "#{request.env["REQUEST_URI"]}"; 15 REQ_URI = "#{request.env["REQUEST_URI"]}";
16 REQ_REFFER = "#{request.env["HTTP_REFERER"]}"; 16 REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
17 %body#thebody 17 %body#thebody
18 - = render :partial => "layouts/flash"  
19 - - if user_signed_in?  
20 - = render :partial => "layouts/head_panel"  
21 - .top_bar.container  
22 - = render :partial => "projects/top_menu" if @project && !@project.new_record?  
23 - = render :partial => "projects/projects_top_menu" if (controller.controller_name == "projects" && ["index", "new", "create"].include?(controller.action_name)) && !admin_namespace?  
24 - = render :partial => "profile/top_menu" if ["keys", "profile"].include?(controller.controller_name)  
25 - = render :partial => "admin/top_menu" if admin_namespace?  
26 - #content-container.container  
27 - .span-24  
28 - = yield 18 + #container
  19 + = render :partial => "layouts/flash"
  20 +
  21 + - if user_signed_in?
  22 + = render :partial => "layouts/head_panel"
  23 + = render :partial => "layouts/page_title"
  24 + - if @project && !@project.new_record?
  25 + .top_bar.container= render :partial => "projects/top_menu"
  26 + - if ["keys", "profile"].include?(controller.controller_name)
  27 + .top_bar.container= render :partial => "profile/top_menu"
  28 + - if admin_namespace?
  29 + .top_bar.container= render :partial => "admin/top_menu"
  30 + %div{ :id => "main", :role => "main", :class => "container_3" }
  31 + #content-container
  32 + = yield
app/views/projects/_tile.html.haml
1 - @projects.in_groups_of(3, false) do |projects| 1 - @projects.in_groups_of(3, false) do |projects|
2 - projects.each_with_index do |project, i| 2 - projects.each_with_index do |project, i|
3 - %div{ :class => "project_thumb round-borders", :style => i == 2 ? "" : "margin-right:30px;" }  
4 - %div{ :class => "project", :url => project_path(project) }  
5 - %h2  
6 - = image_tag gravatar_icon(project.name), :class => "left", :width => 40, :style => "padding-right:5px;"  
7 - = link_to ("/" + project.code), project_path(project), :style => "text-decoration:none"  
8 - %p= project.name  
9 - %p= project.url_to_repo  
10 - -#%p  
11 - Commit &ndash;  
12 - = last_commit(project)  
13 - %hr  
14 - = link_to "Browse Code", tree_project_path(project), :class => "lbutton"  
15 - = link_to "Commits", project_commits_path(project), :class => "lbutton", :style => "float:right;width:80px;"  
16 - .clear 3 + %div.grid_1
  4 + %div{ :class => "project-box ui-box ui-box-big", :style => i == 2 ? "" : "margin-right:30px;" }
  5 + = link_to project_path(project) do
  6 + %h3= project.name
  7 + .data
  8 + %p.title.repository
  9 + %span Repository:
  10 + = project.url_to_repo
  11 + %p.title.activity
  12 + %span Last Activity:
  13 + - last_note = project.notes.last
  14 + = last_note ? last_note.created_at.stamp("24 Aug, 2011") : "Never"
  15 + .buttons
  16 + %a.browse-code.button.yellow{:href => tree_project_path(project)} Browse code
  17 + %a.commits.button.green{:href => project_commits_path(project)} Commits
app/views/projects/index.html.haml
  1 +- content_for(:page_title) do
  2 + .page-title
  3 + .container_3
  4 + - if current_user.can_create_project?
  5 + %a.grey-button{:href => new_project_path} Create new project
  6 + %h1 Projects
  7 +
1 - unless @projects.empty? 8 - unless @projects.empty?
2 %div{:class => "tile", :style => view_mode_style("tile")} 9 %div{:class => "tile", :style => view_mode_style("tile")}
3 = render "tile" 10 = render "tile"