Commit fca1ffb888e506f7ab0551d01321e462c09d5112
1 parent
20721eff
Exists in
master
and in
4 other branches
Bootstrap: Issues, Merge Requests, SSH Key completed
Showing
32 changed files
with
213 additions
and
1010 deletions
Show diff stats
app/assets/stylesheets/buttons.scss
| ... | ... | @@ -1,118 +0,0 @@ |
| 1 | -/* Buttons */ | |
| 2 | -.grey-button{ | |
| 3 | - border-radius: 5px; | |
| 4 | - font-size: 12px; | |
| 5 | - font-weight: bold; | |
| 6 | - padding: 5px 17px; | |
| 7 | - border: 1px solid #999; | |
| 8 | - color: #666; | |
| 9 | - display: inline-block; | |
| 10 | - box-shadow: 0 1px 2px rgba(0,0,0,.3); | |
| 11 | - background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.192, #fff), to(#f4f4f4)); | |
| 12 | - background-image: -webkit-linear-gradient(#fff 19.2%, #f4f4f4); | |
| 13 | - background-image: -moz-linear-gradient(#fff 19.2%, #f4f4f4); | |
| 14 | - background-image: -o-linear-gradient(#fff 19.2%, #f4f4f4); | |
| 15 | -} | |
| 16 | - | |
| 17 | -.red-button{ | |
| 18 | - border-radius: 5px; | |
| 19 | - font-size: 12px; | |
| 20 | - font-weight: bold; | |
| 21 | - padding: 5px 17px; | |
| 22 | - border: 1px solid #999; | |
| 23 | - color: #666; | |
| 24 | - display: inline-block; | |
| 25 | - box-shadow: 0 1px 2px rgba(0,0,0,.3); | |
| 26 | - background: #D12F19; | |
| 27 | - color: white; | |
| 28 | -} | |
| 29 | - | |
| 30 | -.positive-button{ | |
| 31 | - border-radius: 5px; | |
| 32 | - font-size: 12px; | |
| 33 | - font-weight: bold; | |
| 34 | - padding: 5px 17px; | |
| 35 | - border: 1px solid #999; | |
| 36 | - color: #666; | |
| 37 | - display: inline-block; | |
| 38 | - box-shadow: 0 1px 2px rgba(0,0,0,.3); | |
| 39 | - background: #4A2; | |
| 40 | - color: white; | |
| 41 | -} | |
| 42 | - | |
| 43 | - | |
| 44 | -.lbutton, | |
| 45 | -.lite_button { | |
| 46 | - display:block; | |
| 47 | - float:left; | |
| 48 | - margin: 0px 5px 0px 0px; | |
| 49 | - padding:5px 10px; | |
| 50 | - | |
| 51 | - font-family:"Helvetica Neue", Arial, Helvetica, sans-serif; | |
| 52 | - border:1px solid #D3D3D3; | |
| 53 | - background:white; | |
| 54 | - font-size:12px !important; | |
| 55 | - line-height:130%; | |
| 56 | - text-decoration:none; | |
| 57 | - font-weight:bold; | |
| 58 | - color:#565656; | |
| 59 | - cursor:pointer; | |
| 60 | - | |
| 61 | - &:hover { | |
| 62 | - border:1px solid #C2E1EF; | |
| 63 | - color: #0099FF; | |
| 64 | - } | |
| 65 | - | |
| 66 | - &.hm { | |
| 67 | - margin: 0px 0px; | |
| 68 | - } | |
| 69 | - | |
| 70 | - &.vm { | |
| 71 | - margin: 5px 0px; | |
| 72 | - } | |
| 73 | -} | |
| 74 | - | |
| 75 | -a.button, input.button { | |
| 76 | - font-weight: bold; | |
| 77 | - padding: 10px 20px; | |
| 78 | - text-align: center; | |
| 79 | - display: inline-block; | |
| 80 | - border-radius: 5px; | |
| 81 | - color: #578E91; | |
| 82 | - font-size: 12px; | |
| 83 | - text-transform: uppercase; | |
| 84 | - border: 1px solid #8CE2E6; | |
| 85 | - background-image: -webkit-gradient(linear, 0 0, 0 34, color-stop(0.794, #dbf5f6), to(#c5eef0)); | |
| 86 | - background-image: -webkit-linear-gradient(#dbf5f6 79.4%, #c5eef0); | |
| 87 | - background-image: -moz-linear-gradient(#dbf5f6 79.4%, #c5eef0); | |
| 88 | - background-image: -o-linear-gradient(#dbf5f6 79.4%, #c5eef0); | |
| 89 | -} | |
| 90 | - | |
| 91 | -input.button{margin-bottom: 1.5em} | |
| 92 | - | |
| 93 | -.button:hover {color: rgba(0,0,0,.8)} | |
| 94 | - | |
| 95 | -.button.green {margin-right: 0; } | |
| 96 | - | |
| 97 | -.button.yellow{ | |
| 98 | - color: #908054; | |
| 99 | - border-color: #DDCDA1; | |
| 100 | - background-image: -webkit-gradient(linear, 0 0, 0 34, color-stop(0.794, #FFEFC3), to(#F3E3B7)); | |
| 101 | - background-image: -webkit-linear-gradient(#FFEFC3 79.4%, #F3E3B7); | |
| 102 | - background-image: -moz-linear-gradient(#FFEFC3 79.4%, #F3E3B7); | |
| 103 | - background-image: -o-linear-gradient(#FFEFC3 79.4%, #F3E3B7); | |
| 104 | -} | |
| 105 | - | |
| 106 | -.button.blue{ | |
| 107 | - color: #417E97; | |
| 108 | - border-color: #b2cdec; | |
| 109 | - background-image: -webkit-gradient(linear, 0 0, 0 34, color-stop(0.794, #dbe8f6), to(#c7daf1)); | |
| 110 | - background-image: -webkit-linear-gradient(#dbe8f6 79.4%, #c7daf1); | |
| 111 | - background-image: -moz-linear-gradient(#dbe8f6 79.4%, #c7daf1); | |
| 112 | - background-image: -o-linear-gradient(#dbe8f6 79.4%, #c7daf1); | |
| 113 | -} | |
| 114 | - | |
| 115 | -.button-small{ text-shadow: none; padding: 4px 10px; } | |
| 116 | -.button-green{background: #A6B807; color: white} | |
| 117 | - | |
| 118 | - |
app/assets/stylesheets/common.scss
| ... | ... | @@ -117,6 +117,7 @@ $blue_link: "#2fa0bb"; |
| 117 | 117 | margin:10px 0 0 0; |
| 118 | 118 | font-size:13px; |
| 119 | 119 | font-weight:bold; |
| 120 | + color:#444; | |
| 120 | 121 | } |
| 121 | 122 | } |
| 122 | 123 | |
| ... | ... | @@ -141,6 +142,12 @@ img.avatar { |
| 141 | 142 | border-radius: 4px; |
| 142 | 143 | } |
| 143 | 144 | |
| 145 | +img.lil_av { | |
| 146 | + padding-left: 5px; | |
| 147 | + position: relative; | |
| 148 | + top: 3px; | |
| 149 | +} | |
| 150 | + | |
| 144 | 151 | .media-grid { |
| 145 | 152 | h3, h2 , h4 { |
| 146 | 153 | &.media_h { |
| ... | ... | @@ -176,14 +183,6 @@ img.avatar { |
| 176 | 183 | @import "notes.css.scss"; |
| 177 | 184 | @import "login.scss"; |
| 178 | 185 | |
| 179 | -//@import "style.scss"; | |
| 180 | - | |
| 181 | -//@import "commits.css.scss"; | |
| 182 | - | |
| 183 | -//@import "dashboard.scss"; | |
| 184 | -//@import "tags.scss"; | |
| 185 | -//@import "buttons.scss"; | |
| 186 | - | |
| 187 | 186 | /** CODE HIGHTLIGHT **/ |
| 188 | 187 | @import "highlight.css.scss"; |
| 189 | 188 | @import "highlight.black.css.scss"; | ... | ... |
app/assets/stylesheets/dashboard.scss
| ... | ... | @@ -1,27 +0,0 @@ |
| 1 | -.application .news-feed{margin-left: 285px; min-height: 600px; margin-top: 20px; margin-right:2px; padding:20px;} | |
| 2 | -.application .application-content{ position: relative; float: left; width: 100%; height: 100%; } | |
| 3 | -.application .news-feed h2{float: left;} | |
| 4 | - | |
| 5 | -body.application aside{ | |
| 6 | - min-height: 820px; position: relative; top: 0; bottom: 0; right: 0; width: 260px; float: left; border-right: 1px solid $border_color; padding:20px; padding-right:0; | |
| 7 | - h4{margin: 0; border-bottom: 1px solid #ccc; padding: 20px 20px 20px 0px; font-size: 11px; font-weight: bold; text-transform: uppercase;} | |
| 8 | - .project-list {list-style: none; margin: 0; padding: 0;} | |
| 9 | - .project-list li a {background: white; color: #{$blue_link}; display: block; border-bottom: 1px solid $lite_border_color; padding: 14px 6% 14px 0px;} | |
| 10 | - .project-list li a span.project-name{font-size: 14px; display: block; margin-bottom: 8px} | |
| 11 | - .project-list li a span.time{color: #666; font-weight: normal; font-size: 11px} | |
| 12 | - .project-list li a span.arrow{float: right; background: #E3E5EA; padding: 10px; border-radius: 5px; margin-top: 2px; text-shadow: none; color: #999} | |
| 13 | -} | |
| 14 | - | |
| 15 | -body.application .news-feed .project-updates { | |
| 16 | - margin-bottom: 20px; display: block; width: 100%; | |
| 17 | - .data{ padding: 0} | |
| 18 | - a.project-update {padding: 10px; overflow: hidden; display: block;} | |
| 19 | - a.project-update:last-child{border-bottom: 0} | |
| 20 | - a.project-update img{float: left; margin-right: 10px;} | |
| 21 | - a.project-update span.update-title, .application .news-feed .project-updates li a span.update-author{display: block;} | |
| 22 | - a.project-update span.update-title{margin-bottom: 10px} | |
| 23 | - a.project-update span.update-author{color: #999; font-weight: normal; font-style: italic;} | |
| 24 | - a.project-update span.update-author strong{font-weight: bold; font-style: normal;} | |
| 25 | -} | |
| 26 | -/* eo Dashboard Page */ | |
| 27 | - |
app/assets/stylesheets/style.scss
| ... | ... | @@ -1,570 +0,0 @@ |
| 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 { | |
| 13 | - font-family: "helvetica", "arial", "freesans", "clean", sans-serif; | |
| 14 | -color: #222; } | |
| 15 | - | |
| 16 | -::-moz-selection { background: #79c3e0; color: #fff; text-shadow: none; } | |
| 17 | -::selection { background: #79c3e0; color: #fff; text-shadow: none; } | |
| 18 | - | |
| 19 | -a { color: #00e; } | |
| 20 | -a:hover { color: #06e; } | |
| 21 | -a:focus { outline: thin dotted; } | |
| 22 | -a:hover, a:active { outline: 0; } | |
| 23 | - | |
| 24 | -abbr[title] { border-bottom: 1px dotted; } | |
| 25 | -b, strong { font-weight: bold; } | |
| 26 | -blockquote { margin: 1em 40px; } | |
| 27 | -dfn { font-style: italic; } | |
| 28 | -hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } | |
| 29 | -ins { background: #ff9; color: #000; text-decoration: none; } | |
| 30 | -mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; } | |
| 31 | -pre, code, kbd, samp { font-family: monospace, monospace; _font-family: 'courier new', monospace; font-size: 1em; } | |
| 32 | -pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; } | |
| 33 | -q { quotes: none; } | |
| 34 | -q:before, q:after { content: ""; content: none; } | |
| 35 | -small { font-size: 85%; } | |
| 36 | -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } | |
| 37 | -sup { top: -0.5em; } | |
| 38 | -sub { bottom: -0.25em; } | |
| 39 | -ul, ol { margin: 1em 0; padding: 0 0 0 40px; } | |
| 40 | -dd { margin: 0 0 0 40px; } | |
| 41 | -nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; } | |
| 42 | -img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; } | |
| 43 | -svg:not(:root) { overflow: hidden; } | |
| 44 | -figure { margin: 0; } | |
| 45 | - | |
| 46 | -form { margin: 0; } | |
| 47 | -fieldset { border: 0; margin: 0; padding: 0; } | |
| 48 | -label { cursor: pointer; } | |
| 49 | -legend { border: 0; *margin-left: -7px; padding: 0; } | |
| 50 | -button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; } | |
| 51 | -button, input { line-height: normal; *overflow: visible; } | |
| 52 | -table button, table input { *overflow: auto; } | |
| 53 | -button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; } | |
| 54 | -input[type="checkbox"], input[type="radio"] { box-sizing: border-box; } | |
| 55 | -input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; } | |
| 56 | -input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } | |
| 57 | -button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } | |
| 58 | -textarea { overflow: auto; vertical-align: top; resize: vertical; } | |
| 59 | -input:valid, textarea:valid { } | |
| 60 | -input:invalid, textarea:invalid { background-color: #f0dddd; } | |
| 61 | - | |
| 62 | -table { border-collapse: collapse; border-spacing: 0; } | |
| 63 | -td { vertical-align: top; } | |
| 64 | - | |
| 65 | -/* ==|== primary styles ===================================================== | |
| 66 | - Author: Ricardo Rauch | |
| 67 | - ========================================================================== */ | |
| 68 | - | |
| 69 | -/* 960gs */ | |
| 70 | -.container_4{width:98%;margin-left:1%;margin-right:1%}.grid_1,.grid_2,.grid_3,.grid_4{display:inline;float:left;position:relative;margin-left:1%;margin-right:1%}.alpha{margin-left:0}.omega{margin-right:0}.container_4 .grid_1{width:23.0%}.container_4 .grid_2{width:48.0%}.container_4 .grid_3{width:73.0%}.container_4 .grid_4{width:98.0%}.container_4 .prefix_1{padding-left:25.0%}.container_4 .prefix_2{padding-left:50.0%}.container_4 .prefix_3{padding-left:75.0%}.container_4 .suffix_1{padding-right:25.0%}.container_4 .suffix_2{padding-right:50.0%}.container_4 .suffix_3{padding-right:75.0%}.container_4 .push_1{left:25.0%}.container_4 .push_2{left:50.0%}.container_4 .push_3{left:75.0%}.container_4 .pull_1{left:-25.0%}.container_4 .pull_2{left:-50.0%}.container_4 .pull_3{left:-75.0%}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:after{clear:both;content:' ';display:block;font-size:0;line-height:0;visibility:hidden;width:0;height:0}.clearfix{display:inline-block}* html .clearfix{height:1%}.clearfix{display:block} | |
| 71 | -/* eo 960gs*/ | |
| 72 | - | |
| 73 | - | |
| 74 | -html{ -webkit-font-smoothing:antialiased; } | |
| 75 | -body { | |
| 76 | - font-size: 12px; | |
| 77 | - background-color: #FFFFFF; | |
| 78 | -} | |
| 79 | -a{text-decoration: none; font-weight: bold; color: #444} | |
| 80 | -a:hover{color: #555} | |
| 81 | -/* Typography */ | |
| 82 | -h1,h2,h3,h4,h5{font-weight: normal; color: #666} | |
| 83 | -h2{margin: 1.5em 0} | |
| 84 | -/* eo Typography */ | |
| 85 | - | |
| 86 | -/* Forms */ | |
| 87 | -input[type="text"]:focus, input[type="password"]:focus { outline: none; } | |
| 88 | -input.text{border: 1px solid #ccc; border-radius: 4px; display: block; padding: 10px} | |
| 89 | - | |
| 90 | -.form-row{ | |
| 91 | - padding: 0px 0px 10px 0px; | |
| 92 | -} | |
| 93 | - | |
| 94 | -.form-row label{ | |
| 95 | - font-weight:bold; | |
| 96 | - display: inline-block; | |
| 97 | - padding: 0px 0px 5px 0px; | |
| 98 | -} | |
| 99 | - | |
| 100 | -/* eo Forms */ | |
| 101 | - | |
| 102 | -/* Tables */ | |
| 103 | -table {width:100%; border: 1px solid #DEE2E3; margin-bottom: 20px} | |
| 104 | -table thead{ | |
| 105 | - -webkit-border-top-left-radius: 5px; | |
| 106 | - -webkit-border-top-right-radius: 5px; | |
| 107 | - -moz-border-radius-topleft: 5px; | |
| 108 | - -moz-border-radius-topright: 5px; | |
| 109 | - border-top-left-radius: 5px; | |
| 110 | - border-top-right-radius: 5px; | |
| 111 | -} | |
| 112 | -table thead th{ | |
| 113 | - background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8)); | |
| 114 | - background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 115 | - background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 116 | - background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 117 | - margin: 0; | |
| 118 | - font-weight: normal; | |
| 119 | - font-weight: bold; | |
| 120 | - text-align: left; | |
| 121 | - color: #97A0A5; | |
| 122 | -} | |
| 123 | -td, th{ padding: .9em 1em; vertical-align: middle; } | |
| 124 | - | |
| 125 | -table thead .image{width:100px} | |
| 126 | -.listed_items tr.odd:hover{background-color:#FFFFCF} | |
| 127 | -/* eo Tables */ | |
| 128 | - | |
| 129 | - | |
| 130 | - | |
| 131 | -/* eo Buttons */ | |
| 132 | - | |
| 133 | -/* UI Box */ | |
| 134 | -//.ui-box{border: 1px solid #DEDFE1; float: left; border-radius: 5px} | |
| 135 | -.ui-box{float: left;} | |
| 136 | -.ui-box h3{ | |
| 137 | - background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8)); | |
| 138 | - background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 139 | - background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 140 | - background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 141 | - background:none; | |
| 142 | - margin: 0; | |
| 143 | - padding: 1em; | |
| 144 | - font-size: 12px; | |
| 145 | - font-weight: normal; | |
| 146 | - font-weight: bold; | |
| 147 | - font-size: 16px; | |
| 148 | - border-bottom: 1px solid #DEDFE1; | |
| 149 | - -webkit-border-top-left-radius: 5px; | |
| 150 | - -webkit-border-top-right-radius: 5px; | |
| 151 | - -moz-border-radius-topleft: 5px; | |
| 152 | - -moz-border-radius-topright: 5px; | |
| 153 | - border-top-left-radius: 5px; | |
| 154 | - border-top-right-radius: 5px; | |
| 155 | -} | |
| 156 | - | |
| 157 | -.ui-box.ui-box-small h3{ | |
| 158 | - padding: 8px 10px; | |
| 159 | - font-size: 12px; | |
| 160 | -} | |
| 161 | - | |
| 162 | -.ui-box .data{padding: .5em 1em} | |
| 163 | - | |
| 164 | -.ui-box .buttons{ | |
| 165 | - padding: 1em; | |
| 166 | - border-top:1px solid $lite_border_color; | |
| 167 | -} | |
| 168 | - | |
| 169 | -.ui-box .buttons .button{padding: 8px 9px; font-size: 11px} | |
| 170 | - | |
| 171 | -.ui-box.hover:hover{box-shadow: 0 0 10px rgba(0,0,0,.1); border: 1px solid #ccc; | |
| 172 | - | |
| 173 | - -webkit-transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715); | |
| 174 | - -moz-transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715); | |
| 175 | - -o-transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715); | |
| 176 | - transition: all 200ms cubic-bezier(0.470, 0.000, 0.745, 0.715); | |
| 177 | -} | |
| 178 | - | |
| 179 | -/* eo UI Box */ | |
| 180 | - | |
| 181 | - | |
| 182 | -/* Icons */ | |
| 183 | -.directory, .file{ | |
| 184 | - display: inline-block; | |
| 185 | - margin-right: 10px; | |
| 186 | - width: 14px; | |
| 187 | -} | |
| 188 | - | |
| 189 | -.directory{ | |
| 190 | - background: url('images.png') no-repeat -73px -26px; | |
| 191 | - height: 11px; | |
| 192 | - margin-bottom: -1px; | |
| 193 | -} | |
| 194 | - | |
| 195 | -.file{ | |
| 196 | - background: url('images.png') no-repeat -114px -24px; | |
| 197 | - height: 16px; | |
| 198 | - margin-bottom: -3px; | |
| 199 | -} | |
| 200 | - | |
| 201 | -/* eo Icons*/ | |
| 202 | - | |
| 203 | -/* Errors */ | |
| 204 | -#error_explanation{background: #ffe5eb; padding: 20px; margin-bottom: 20px; border-radius: 5px} | |
| 205 | -#error_explanation h2{margin: 0; margin-bottom: 20px; color: red} | |
| 206 | -#error_explanation ul li{margin-bottom: 10px} | |
| 207 | -#error_explanation ul li:last-child{margin-bottom: 0} | |
| 208 | -.field_with_errors { | |
| 209 | - input[type="text"], | |
| 210 | - input[type="password"], | |
| 211 | - textarea | |
| 212 | - { | |
| 213 | - border: 1px solid #D30 !important; | |
| 214 | - } | |
| 215 | -} | |
| 216 | -/* eo Errors */ | |
| 217 | - | |
| 218 | -/* Notices */ | |
| 219 | -#notice{background: #dfffe1; padding: 20px; margin-bottom: 20px; border-radius: 5px; color: green; font-size: 1.3em;} | |
| 220 | -/* eo Notices */ | |
| 221 | - | |
| 222 | -/* InfoBlock */ | |
| 223 | -#infoblock{ | |
| 224 | - background: #eeeeee; | |
| 225 | - padding: 20px; | |
| 226 | - margin-bottom: 20px; | |
| 227 | - border-radius: 5px; | |
| 228 | -} | |
| 229 | -/* eo InfoBlock */ | |
| 230 | - | |
| 231 | -/* Header */ | |
| 232 | -header{ | |
| 233 | - background: #474D57 url('bg-header.png') repeat-x bottom; | |
| 234 | - z-index: 10000; | |
| 235 | - height: 44px; | |
| 236 | - padding: 10px 2% 6px 2%; | |
| 237 | -} | |
| 238 | -header a:hover{color: #f1f1f1} | |
| 239 | -header h1{ | |
| 240 | - width: 65px; | |
| 241 | -} | |
| 242 | -header h1.logo{margin: 0; padding: 0} | |
| 243 | -header h1.logo a{ | |
| 244 | - background: url('images.png') no-repeat -3px -7px; | |
| 245 | - width: 65px; | |
| 246 | - height: 26px; | |
| 247 | - margin: 5px 0; | |
| 248 | - padding: 0; | |
| 249 | - display: block; | |
| 250 | - float: left; | |
| 251 | - text-indent: -1000em; | |
| 252 | -} | |
| 253 | - | |
| 254 | -header nav{border-radius: 4px; box-shadow: 0 1px 2px black; width: 294px; margin: auto; | |
| 255 | - background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #595d63), to(#31363e)); | |
| 256 | - background-image: -webkit-linear-gradient(#595d63 6.6%, #31363e); | |
| 257 | - background-image: -moz-linear-gradient(#595d63 6.6%, #31363e); | |
| 258 | - background-image: -o-linear-gradient(#595d63 6.6%, #31363e); | |
| 259 | - margin-top: 2px; | |
| 260 | - height:30px | |
| 261 | -} | |
| 262 | -header nav.shorter_nav{ | |
| 263 | - width: 207px; | |
| 264 | -} | |
| 265 | -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} | |
| 266 | -header nav a span{width: 20px; height: 20px; display: inline-block; background: red; position: absolute; left: 8px; top: 6px;} | |
| 267 | -header nav a:last-child {border: 0; box-shadow: none} | |
| 268 | -header nav a:hover, header nav a.current{ | |
| 269 | - background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #595d63), to(#2c2f35)); | |
| 270 | - background-image: -webkit-linear-gradient(#595d63 6.6%, #2c2f35); | |
| 271 | - background-image: -moz-linear-gradient(#595d63 6.6%, #202227); | |
| 272 | - background-image: -o-linear-gradient(#595d63 6.6%, #202227); | |
| 273 | -} | |
| 274 | - | |
| 275 | -header nav a:active{ | |
| 276 | - box-shadow: 0 1px 4px rgba(0,0,0,.8) inset; | |
| 277 | -} | |
| 278 | - | |
| 279 | -header nav a.dashboard { | |
| 280 | - -webkit-border-top-left-radius: 4px; | |
| 281 | - -webkit-border-bottom-left-radius: 4px; | |
| 282 | - -moz-border-radius-topleft: 4px; | |
| 283 | - -moz-border-radius-bottomleft: 4px; | |
| 284 | - border-top-left-radius: 4px; | |
| 285 | - border-bottom-left-radius: 4px; | |
| 286 | -} | |
| 287 | - | |
| 288 | -header nav a.last_elem{ | |
| 289 | - -webkit-border-top-right-radius: 4px; | |
| 290 | - -webkit-border-bottom-right-radius: 4px; | |
| 291 | - -moz-border-radius-topright: 4px; | |
| 292 | - -moz-border-radius-bottomright: 4px; | |
| 293 | - border-top-right-radius: 4px; | |
| 294 | - border-bottom-right-radius: 4px; | |
| 295 | -} | |
| 296 | - | |
| 297 | -header .search{ display: inline-block; float: right; margin-right: 90px} | |
| 298 | - | |
| 299 | -header nav a span{width: 20px; height: 20px; display: inline-block; background: red; position: absolute; left: 8px; top: 6px;} | |
| 300 | - | |
| 301 | -header nav a.dashboard span{background: url('images.png') no-repeat -161px 0;} | |
| 302 | -header nav a.admin span{background: url('images.png') no-repeat -184px 0;} | |
| 303 | -header nav a.project span{background: url('images.png') no-repeat -209px -1px; top: 7px} | |
| 304 | -header nav a.issues span{background: url('images.png') no-repeat -209px -1px; top: 7px} | |
| 305 | - | |
| 306 | -header .login-top{float: right; width: 180px; | |
| 307 | - background-image: -webkit-gradient(linear, 0 0, 0 62, color-stop(0.032, #464c56), to(#363c45)); | |
| 308 | - background-image: -webkit-linear-gradient(#464c56 3.2%, #363c45); | |
| 309 | - background-image: -moz-linear-gradient(#464c56 3.2%, #363c45); | |
| 310 | - background-image: -o-linear-gradient(#464c56 3.2%, #363c45); | |
| 311 | - padding: 0 10px; | |
| 312 | - height: 44px; | |
| 313 | -} | |
| 314 | -header .login-top a{display: block;} | |
| 315 | -header .login-top a.pic{float: left; margin-right: 10px; | |
| 316 | - img{ height: 36px; width: 36px; border: 1px solid black} | |
| 317 | -} | |
| 318 | -header .login-top a.username{margin-bottom: 5px} | |
| 319 | -header .login-top a.logout{color: #ccc} | |
| 320 | -header{margin-bottom: 0; clear: both; position:relative;} | |
| 321 | - | |
| 322 | -.page-title{background-color: #f1f1f1;display: block; float: left; clear: both; width: 98%; padding: 1% 1%; border-bottom: 1px solid #ccc; box-shadow: 0 -1px 0 white inset; margin-bottom: 1.5em} | |
| 323 | -.page-title h1{font-size: 20px; width: 400px; margin: 0; padding-top: 8px } | |
| 324 | -.page-title a.grey-button{float: right;} | |
| 325 | -.right{float: right;} | |
| 326 | - | |
| 327 | - | |
| 328 | -.big-message{ | |
| 329 | - background-image: -webkit-gradient(linear, 0 48, 0 0, color-stop(0.041, #eccb40), to(#ffee4d)); | |
| 330 | - background-image: -webkit-linear-gradient(90deg, #eccb40 4.1%, #ffee4d); | |
| 331 | - background-image: -moz-linear-gradient(90deg, #eccb40 4.1%, #ffee4d); | |
| 332 | - background-image: -o-linear-gradient(90deg, #eccb40 4.1%, #ffee4d); | |
| 333 | - text-align: center; | |
| 334 | - font-weight: bold; | |
| 335 | - padding: 10px 20px; | |
| 336 | - text-shadow: 0 1px 0 rgba(255,255,255,.3); | |
| 337 | - color: #333; | |
| 338 | - color: rgba(0,0,0,.7); | |
| 339 | - font-size: 14px; | |
| 340 | - box-shadow: 0 1px 2px rgba(0,0,0,.7); | |
| 341 | - z-index: 100000; | |
| 342 | - margin-bottom: 2px; | |
| 343 | -} | |
| 344 | - | |
| 345 | -.big-message a{color: #000; text-decoration: underline;} | |
| 346 | - | |
| 347 | -.big-message.error{ | |
| 348 | - background-color: #722523; | |
| 349 | - background-image: -webkit-gradient(linear, 0 49, 0 0, color-stop(0.04, #722523), to(#ad4846)); | |
| 350 | - background-image: -webkit-linear-gradient(90deg, #9b403f 4%, #c16765); | |
| 351 | - background-image: -moz-linear-gradient(90deg, #722523 4%, #ad4846); | |
| 352 | - background-image: -o-linear-gradient(90deg, #722523 4%, #ad4846); | |
| 353 | - color: #2E0D0C; | |
| 354 | -} | |
| 355 | - | |
| 356 | -.big-message.success{ | |
| 357 | - background-color: #7a9339; | |
| 358 | - background-image: -webkit-gradient(linear, 0 48, 0 0, color-stop(0.062, #7a9339), to(#93ae46)); | |
| 359 | - background-image: -webkit-linear-gradient(90deg, #7a9339 6.2%, #93ae46); | |
| 360 | - background-image: -moz-linear-gradient(90deg, #7a9339 6.2%, #93ae46); | |
| 361 | - background-image: -o-linear-gradient(90deg, #7a9339 6.2%, #93ae46) | |
| 362 | -} | |
| 363 | - | |
| 364 | -.big-message.success{ | |
| 365 | - background-color: #7a9339; | |
| 366 | - background-image: -webkit-gradient(linear, 0 48, 0 0, color-stop(0.062, #7a9339), to(#93ae46)); | |
| 367 | - background-image: -webkit-linear-gradient(90deg, #7a9339 6.2%, #93ae46); | |
| 368 | - background-image: -moz-linear-gradient(90deg, #7a9339 6.2%, #93ae46); | |
| 369 | - background-image: -o-linear-gradient(90deg, #7a9339 6.2%, #93ae46) | |
| 370 | -} | |
| 371 | - | |
| 372 | -.big-message.notice{ | |
| 373 | - background-image: -webkit-gradient(linear, 0 49, 0 0, color-stop(0.061, #447790), color-stop(0.897, #5da2bf)); | |
| 374 | - background-image: -webkit-linear-gradient(90deg, #447790 6.1%, #5da2bf 89.7%); | |
| 375 | - background-image: -moz-linear-gradient(90deg, #447790 6.1%, #5da2bf 89.7%); | |
| 376 | - background-image: -o-linear-gradient(90deg, #447790 6.1%, #5da2bf 89.7%) | |
| 377 | -} | |
| 378 | - | |
| 379 | -/* eo Account Box */ | |
| 380 | -input.search-input{ | |
| 381 | - float: left; | |
| 382 | - text-shadow: none; | |
| 383 | - width: 116px; | |
| 384 | - background-image: url('icon-search.png') ; | |
| 385 | - background-repeat: no-repeat; | |
| 386 | - background-position: 10px; | |
| 387 | - border-radius: 4px; | |
| 388 | - border: 1px solid #AAA; | |
| 389 | - background-color: #FFF; | |
| 390 | - padding: 5px; | |
| 391 | - padding-left: 26px; | |
| 392 | - margin-top: 2px; | |
| 393 | - margin-right: 10px; | |
| 394 | -} | |
| 395 | -/*input.search-input:focus{ background-color: white; width: 216px;}*/ | |
| 396 | -input.search-input::-webkit-input-placeholder {color: #666} | |
| 397 | -/* eo Header */ | |
| 398 | - | |
| 399 | -h2.icon{position: relative; padding-left: 40px; float: left; } | |
| 400 | -/*h2 a{font-weight: normal;}*/ | |
| 401 | -h2.icon span{background: #E3E5EA url('images.png'); height: 32px; width: 32px; left: 0; top: -5px; border-radius: 4px; display: inline-block; position: absolute} | |
| 402 | - | |
| 403 | -/* Dashboard Page */ | |
| 404 | -html, body { height: 100%; } | |
| 405 | - | |
| 406 | - | |
| 407 | - | |
| 408 | - | |
| 409 | -.grey-button.right{margin-top: 20px} | |
| 410 | - | |
| 411 | -/* Project Page */ | |
| 412 | -/* eo New Project Page */ | |
| 413 | - | |
| 414 | - | |
| 415 | -/* eo Project Page */ | |
| 416 | - | |
| 417 | -/* Projects Page */ | |
| 418 | -body.projects-page h2.icon span{background-position: -31px -70px;} | |
| 419 | -body.projects-page .project-box.ui-box .data .repository {margin-bottom: 20px} | |
| 420 | -body.projects-page .project-box.ui-box .data .title span{ font-weight: bold;} | |
| 421 | -body.projects-page .project-box{width: 100%; margin-bottom: 3em} | |
| 422 | -body.projects-page .browse-code{margin-right: 10px} | |
| 423 | -/* eo Projects Page */ | |
| 424 | - | |
| 425 | -/* ==|== non-semantic helper classes ======================================== */ | |
| 426 | -.ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; } | |
| 427 | -.ir br { display: none; } | |
| 428 | -.hidden { display: none !important; visibility: hidden; } | |
| 429 | -.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } | |
| 430 | -.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } | |
| 431 | -.invisible { visibility: hidden; } | |
| 432 | -.clearfix:before, .clearfix:after { content: ""; display: table; } | |
| 433 | -.clearfix:after { clear: both; } | |
| 434 | -.clearfix { zoom: 1; } | |
| 435 | - | |
| 436 | -/* ==|== media queries ====================================================== */ | |
| 437 | - | |
| 438 | -@media only screen and (min-width: 480px) { | |
| 439 | - | |
| 440 | -} | |
| 441 | - | |
| 442 | -@media only screen and (min-width: 768px) { | |
| 443 | - | |
| 444 | -} | |
| 445 | - | |
| 446 | -/* ==|== print styles ======================================================= */ | |
| 447 | - | |
| 448 | -@media print { | |
| 449 | - * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } | |
| 450 | - a, a:visited { text-decoration: underline; } | |
| 451 | - a[href]:after { content: " (" attr(href) ")"; } | |
| 452 | - abbr[title]:after { content: " (" attr(title) ")"; } | |
| 453 | - .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } | |
| 454 | - pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } | |
| 455 | - thead { display: table-header-group; } | |
| 456 | - tr, img { page-break-inside: avoid; } | |
| 457 | - img { max-width: 100% !important; } | |
| 458 | - @page { margin: 0.5cm; } | |
| 459 | - p, h2, h3 { orphans: 3; widows: 3; } | |
| 460 | - h2, h3 { page-break-after: avoid; } | |
| 461 | -} | |
| 462 | - | |
| 463 | -body, button, input, select, textarea { | |
| 464 | - font-family: "helvetica", "arial", "freesans", "clean", sans-serif; | |
| 465 | -} | |
| 466 | - | |
| 467 | - | |
| 468 | -.text_field { | |
| 469 | - width:400px; | |
| 470 | - padding:8px; | |
| 471 | - font-size:14px; | |
| 472 | - @include round-borders-all(4px); | |
| 473 | -} | |
| 474 | - | |
| 475 | -.input_button { | |
| 476 | - padding:8px; | |
| 477 | - font-size:14px; | |
| 478 | - cursor:pointer; | |
| 479 | - background-color: #F5F5F5; | |
| 480 | - border-color: #EEEEEE #DEDEDE #DEDEDE #EEEEEE; | |
| 481 | - border-right: 1px solid #DEDEDE; | |
| 482 | - border-style: solid; | |
| 483 | - border-width: 1px; | |
| 484 | -} | |
| 485 | - | |
| 486 | - | |
| 487 | - | |
| 488 | -.errors_holder { | |
| 489 | - background:#D30; | |
| 490 | - color:#fff; | |
| 491 | - @include round-borders-all(4px); | |
| 492 | - border:1px solid #a30; | |
| 493 | - padding:5px; | |
| 494 | - list-style:none; | |
| 495 | - font-weight: bold; | |
| 496 | - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | |
| 497 | - | |
| 498 | - li { | |
| 499 | - padding:10px; | |
| 500 | - } | |
| 501 | -} | |
| 502 | - | |
| 503 | -.notice_holder { | |
| 504 | - background:#DDF4FB; | |
| 505 | - color:#444; | |
| 506 | - border:1px solid #C6EDF9; | |
| 507 | - @include round-borders-all(4px); | |
| 508 | - padding:5px; | |
| 509 | - list-style:none; | |
| 510 | - font-weight: bold; | |
| 511 | - text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25); | |
| 512 | - | |
| 513 | - li { | |
| 514 | - padding:10px; | |
| 515 | - } | |
| 516 | -} | |
| 517 | - | |
| 518 | -.alert_holder { | |
| 519 | - background:#FDF5D9; | |
| 520 | - color:#444; | |
| 521 | - border:1px solid #FCEEC1; | |
| 522 | - @include round-borders-all(4px); | |
| 523 | - padding:5px; | |
| 524 | - list-style:none; | |
| 525 | - font-weight: bold; | |
| 526 | - text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25); | |
| 527 | - | |
| 528 | - li { | |
| 529 | - padding:10px; | |
| 530 | - } | |
| 531 | -} | |
| 532 | - | |
| 533 | -.help_content { | |
| 534 | - margin:20px; | |
| 535 | - margin-top:71px; | |
| 536 | - | |
| 537 | - h2 { | |
| 538 | - margin:0; | |
| 539 | - padding:0; | |
| 540 | - } | |
| 541 | - | |
| 542 | - .menu { | |
| 543 | - float:left; | |
| 544 | - width:20%; | |
| 545 | - | |
| 546 | - .active { | |
| 547 | - color: $active_bd_color; | |
| 548 | - } | |
| 549 | - } | |
| 550 | - | |
| 551 | - .content { | |
| 552 | - float:right; | |
| 553 | - width:78%; | |
| 554 | - } | |
| 555 | - | |
| 556 | - .bash { | |
| 557 | - @include round-borders-all(4px); | |
| 558 | - background:#eee; | |
| 559 | - padding:5px; | |
| 560 | - //overflow-x:scroll; | |
| 561 | - pre{ | |
| 562 | - padding:0; | |
| 563 | - line-height:2.0; | |
| 564 | - margin:0; | |
| 565 | - font-family: 'Courier New', 'andale mono','lucida console',monospace; | |
| 566 | - color: #333; | |
| 567 | - text-align:left; | |
| 568 | - } | |
| 569 | - } | |
| 570 | -} |
app/assets/stylesheets/tags.scss
| ... | ... | @@ -1,55 +0,0 @@ |
| 1 | -.tag { | |
| 2 | - @include round-borders-all(4px); | |
| 3 | - padding:2px 4px; | |
| 4 | - border:none; | |
| 5 | - text-shadow:none; | |
| 6 | - | |
| 7 | - &.inline { | |
| 8 | - display:inline; | |
| 9 | - } | |
| 10 | - | |
| 11 | - &.high, &.closed { | |
| 12 | - background: #D12F19; | |
| 13 | - color:white; | |
| 14 | - } | |
| 15 | - | |
| 16 | - &.today, &.open { | |
| 17 | - background: #44aa22; | |
| 18 | - color:white; | |
| 19 | - } | |
| 20 | - | |
| 21 | - &.yours { | |
| 22 | - background: #4466cc; | |
| 23 | - color:white; | |
| 24 | - } | |
| 25 | - &.normal { | |
| 26 | - background: #2c5ca6; | |
| 27 | - color:white; | |
| 28 | - } | |
| 29 | - &.notes { | |
| 30 | - background: #2c5c66; | |
| 31 | - color:white; | |
| 32 | - } | |
| 33 | - | |
| 34 | - &.note { | |
| 35 | - background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8)); | |
| 36 | - background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 37 | - background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 38 | - background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 39 | - color: #777; | |
| 40 | - border: 1px solid #DEDFE1; | |
| 41 | - } | |
| 42 | - &.issue { | |
| 43 | - background: #D12F19; | |
| 44 | - color:white; | |
| 45 | - } | |
| 46 | - &.commit { | |
| 47 | - background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8)); | |
| 48 | - background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 49 | - background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 50 | - background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8); | |
| 51 | - color: #777; | |
| 52 | - border: 1px solid #DEDFE1; | |
| 53 | - } | |
| 54 | -} | |
| 55 | - |
app/assets/stylesheets/top_panel.scss
app/controllers/admin/projects_controller.rb
| ... | ... | @@ -52,6 +52,12 @@ class Admin::ProjectsController < ApplicationController |
| 52 | 52 | def update |
| 53 | 53 | @admin_project = Project.find_by_code(params[:id]) |
| 54 | 54 | |
| 55 | + owner_id = params[:project][:owner_id] | |
| 56 | + | |
| 57 | + if owner_id | |
| 58 | + @admin_project.owner = User.find(owner_id) | |
| 59 | + end | |
| 60 | + | |
| 55 | 61 | if @admin_project.update_attributes(params[:project]) |
| 56 | 62 | redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.' |
| 57 | 63 | else | ... | ... |
app/controllers/keys_controller.rb
app/views/admin/projects/_form.html.haml
| ... | ... | @@ -6,28 +6,24 @@ |
| 6 | 6 | - @admin_project.errors.full_messages.each do |msg| |
| 7 | 7 | %li= msg |
| 8 | 8 | |
| 9 | - .form-row | |
| 9 | + .clearfix | |
| 10 | 10 | = f.label :name |
| 11 | - %br | |
| 12 | - = f.text_field :name | |
| 13 | - .form-row | |
| 11 | + .input= f.text_field :name | |
| 12 | + .clearfix | |
| 14 | 13 | = f.label :code |
| 15 | - %br | |
| 16 | - = f.text_field :code | |
| 17 | - .form-row | |
| 14 | + .input= f.text_field :code | |
| 15 | + .clearfix | |
| 18 | 16 | = f.label :path |
| 19 | - %br | |
| 20 | - = f.text_field :path | |
| 17 | + .input= f.text_field :path | |
| 21 | 18 | |
| 22 | - .form-row | |
| 23 | - = f.label :tag_list | |
| 24 | - %br | |
| 25 | - = f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field | |
| 19 | + - unless @admin_project.new_record? | |
| 20 | + .clearfix | |
| 21 | + = f.label :owner_id | |
| 22 | + .input= f.select :owner_id, User.all.map { |user| [user.name, user.id] } | |
| 26 | 23 | |
| 27 | - .form-row | |
| 24 | + .clearfix | |
| 28 | 25 | = f.label :description |
| 29 | - %br | |
| 30 | - = f.text_area :description | |
| 26 | + .input= f.text_area :description | |
| 31 | 27 | .clear |
| 32 | 28 | %br |
| 33 | 29 | .actions |
| ... | ... | @@ -36,4 +32,5 @@ |
| 36 | 32 | :javascript |
| 37 | 33 | $(function(){ |
| 38 | 34 | taggifyForm(); |
| 35 | + $('#project_owner_id').chosen(); | |
| 39 | 36 | }) | ... | ... |
app/views/admin/users/_form.html.haml
| ... | ... | @@ -2,48 +2,41 @@ |
| 2 | 2 | = form_for [:admin, @admin_user] do |f| |
| 3 | 3 | -if @admin_user.errors.any? |
| 4 | 4 | #error_explanation |
| 5 | - %h2= "#{pluralize(@admin_user.errors.count, "error")} prohibited this admin_user from being saved:" | |
| 6 | 5 | %ul |
| 7 | 6 | - @admin_user.errors.full_messages.each do |msg| |
| 8 | 7 | %li= msg |
| 9 | 8 | |
| 10 | - .form-row | |
| 9 | + .clearfix | |
| 11 | 10 | = f.label :name |
| 12 | - %br | |
| 13 | - = f.text_field :name | |
| 14 | - .form-row | |
| 11 | + .input= f.text_field :name | |
| 12 | + .clearfix | |
| 15 | 13 | = f.label :email |
| 16 | - %br | |
| 17 | - = f.text_field :email | |
| 18 | - .form-row | |
| 14 | + .input= f.text_field :email | |
| 15 | + .clearfix | |
| 19 | 16 | = f.label :password |
| 20 | - %br | |
| 21 | - = f.password_field :password | |
| 22 | - .form-row | |
| 17 | + .input= f.password_field :password | |
| 18 | + .clearfix | |
| 23 | 19 | = f.label :password_confirmation |
| 24 | - %br | |
| 25 | - = f.password_field :password_confirmation | |
| 26 | - .form-row | |
| 20 | + .input= f.password_field :password_confirmation | |
| 21 | + .clearfix | |
| 27 | 22 | = f.check_box :admin |
| 28 | 23 | = f.label :admin |
| 29 | 24 | |
| 30 | - .form-row | |
| 31 | - = f.text_field :projects_limit, :class => "small_input" | |
| 25 | + .clearfix | |
| 32 | 26 | = f.label :projects_limit |
| 27 | + .input= f.text_field :projects_limit, :class => "small_input" | |
| 33 | 28 | |
| 34 | - .form-row | |
| 29 | + .clearfix | |
| 35 | 30 | = f.label :skype |
| 36 | - %br | |
| 37 | - = f.text_field :skype | |
| 38 | - .form-row | |
| 31 | + .input= f.text_field :skype | |
| 32 | + .clearfix | |
| 39 | 33 | = f.label :linkedin |
| 40 | - %br | |
| 41 | - = f.text_field :linkedin | |
| 42 | - .form-row | |
| 34 | + .input= f.text_field :linkedin | |
| 35 | + .clearfix | |
| 43 | 36 | = f.label :twitter |
| 44 | - %br | |
| 45 | - = f.text_field :twitter | |
| 37 | + .input= f.text_field :twitter | |
| 46 | 38 | .clear |
| 47 | 39 | %br |
| 48 | 40 | .actions |
| 49 | - = f.submit 'Save', :class => "btn" | |
| 41 | + = f.submit 'Save', :class => "btn primary" | |
| 42 | + = link_to 'Cancel', admin_users_path, :class => "btn" | ... | ... |
app/views/admin/users/new.html.haml
app/views/commits/index.html.haml
app/views/dashboard/_merge_requests_feed.html.haml
app/views/issues/_show.html.haml
| 1 | 1 | %li.wll{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(issue.project, issue) } |
| 2 | - = image_tag gravatar_icon(issue.author_email), :class => "avatar" | |
| 2 | + = image_tag gravatar_icon(issue.assignee_email), :class => "avatar" | |
| 3 | 3 | %span.update-author |
| 4 | + assigned to | |
| 4 | 5 | %strong |
| 5 | 6 | = link_to project_team_member_path(@project, @project.team_member_by_id(issue.author_id)), :class => "author_link" do |
| 6 | - = issue.author_name | |
| 7 | - authored | |
| 8 | - = time_ago_in_words(issue.created_at) | |
| 9 | - ago | |
| 7 | + = issue.assignee_name | |
| 10 | 8 | - if issue.critical |
| 11 | 9 | %span.label.important critical |
| 12 | 10 | - if issue.today? | ... | ... |
app/views/issues/index.html.haml
| 1 | -- if current_user.private_token | |
| 2 | - = content_for :rss_icon do | |
| 3 | - .rss-icon | |
| 4 | - = link_to project_issues_path(@project, :atom, { :private_token => current_user.private_token }) do | |
| 5 | - = image_tag "Rss-UI.PNG", :width => 22, :title => "feed" | |
| 6 | - | |
| 7 | - | |
| 8 | 1 | .issues_content |
| 9 | 2 | %h3 |
| 10 | 3 | Issues |
| 4 | + %span.rss-icon | |
| 5 | + = link_to project_issues_path(@project, :atom, { :private_token => current_user.private_token }) do | |
| 6 | + = image_tag "Rss-UI.PNG", :width => 22, :title => "feed" | |
| 7 | + | |
| 11 | 8 | - if can? current_user, :write_issue, @project |
| 12 | 9 | = link_to new_project_issue_path(@project), :class => "right btn small", :title => "New Issue", :remote => true do |
| 13 | 10 | New Issue | ... | ... |
app/views/issues/index.js.haml
app/views/issues/show.html.haml
| 1 | 1 | %h3 |
| 2 | 2 | Issue ##{@issue.id} |
| 3 | + %small | |
| 4 | + created at | |
| 5 | + = @issue.created_at.stamp("Aug 21, 2011") | |
| 3 | 6 | |
| 4 | 7 | %span.right |
| 5 | 8 | - if can?(current_user, :admin_project, @project) || @issue.author == current_user |
| ... | ... | @@ -20,21 +23,18 @@ |
| 20 | 23 | |
| 21 | 24 | %div.well |
| 22 | 25 | %div |
| 23 | - %span.entity-info | |
| 24 | - = image_tag gravatar_icon(@issue.author_email), :class => "left", :width => 40, :style => "padding-right:5px;" | |
| 25 | - %span.commit-title | |
| 26 | - %strong | |
| 27 | - %span.commit-author | |
| 28 | - %strong | |
| 29 | - = link_to project_team_member_path(@project, @project.team_member_by_id(@issue.author.id)) do | |
| 30 | - %span.author= @issue.author_name | |
| 31 | - → | |
| 32 | - = link_to project_team_member_path(@project, @project.team_member_by_id(@issue.assignee.id)) do | |
| 33 | - %span.author= @issue.assignee_name | |
| 34 | - %br | |
| 35 | - .cgray= @issue.created_at.stamp("Aug 21, 2011 9:23pm") | |
| 26 | + %cite.cgray Created by | |
| 27 | + = image_tag gravatar_icon(@issue.author_email), :width => 16, :class => "lil_av" | |
| 28 | + = link_to project_team_member_path(@project, @project.team_member_by_id(@issue.author.id)) do | |
| 29 | + %strong.author= @issue.author_name | |
| 30 | + | |
| 31 | + %cite.cgray and currently assigned to | |
| 32 | + = image_tag gravatar_icon(@issue.assignee_email), :width => 16, :class => "lil_av" | |
| 33 | + = link_to project_team_member_path(@project, @project.team_member_by_id(@issue.assignee.id)) do | |
| 34 | + %strong.author= @issue.assignee_name | |
| 35 | + | |
| 36 | + %hr | |
| 36 | 37 | |
| 37 | - | |
| 38 | 38 | %div= simple_format @issue.title |
| 39 | 39 | |
| 40 | 40 | ... | ... |
app/views/keys/_form.html.haml
| 1 | 1 | %div |
| 2 | - = form_for @key, :remote => true do |f| | |
| 2 | + = form_for @key do |f| | |
| 3 | 3 | -if @key.errors.any? |
| 4 | - %ul | |
| 5 | - - @key.errors.full_messages.each do |msg| | |
| 6 | - %li= msg | |
| 4 | + .alert-message.block-message.error | |
| 5 | + %ul | |
| 6 | + - @key.errors.full_messages.each do |msg| | |
| 7 | + %li= msg | |
| 7 | 8 | |
| 8 | - .form-row | |
| 9 | + .clearfix | |
| 9 | 10 | = f.label :title |
| 10 | - = f.text_field :title, :style => "width:300px" | |
| 11 | - .form-row | |
| 11 | + .input= f.text_field :title | |
| 12 | + .clearfix | |
| 12 | 13 | = f.label :key |
| 13 | - = f.text_area :key, :style => "width:300px; height:130px" | |
| 14 | - .form-row | |
| 15 | - = f.submit 'Save', :class => "grey-button" | |
| 14 | + .input= f.text_area :key, :class => "xlarge" | |
| 15 | + .actions | |
| 16 | + = f.submit 'Save', :class => "primary btn" | |
| 17 | + = link_to "Cancel", keys_path, :class => "btn" | |
| 16 | 18 | ... | ... |
app/views/keys/_show.html.haml
| 1 | -%a.update-item{:href => key_path(key)} | |
| 2 | - %span.update-title | |
| 3 | - = key.title | |
| 4 | - %span.update-author | |
| 5 | - Added | |
| 6 | - = time_ago_in_words(key.created_at) | |
| 7 | - ago | |
| 1 | +%li.entry | |
| 2 | + = link_to key_path(key) do | |
| 3 | + %strong= key.title | |
| 4 | + %span.right.cgray | |
| 5 | + Added | |
| 6 | + = time_ago_in_words(key.created_at) | |
| 7 | + ago | ... | ... |
app/views/keys/index.html.haml
| 1 | -%h2.icon | |
| 2 | - %span> | |
| 1 | +%h3 | |
| 3 | 2 | SSH Keys |
| 4 | -%div#new-key-holder.right | |
| 5 | - = link_to "Add new", new_key_path, :remote => true, :class => "grey-button" | |
| 6 | -%br | |
| 3 | + = link_to "Add new", new_key_path, :class => "btn small right" | |
| 4 | + | |
| 5 | +%hr | |
| 7 | 6 | |
| 8 | 7 | %div#keys-table{ :class => "update-data ui-box ui-box-small ui-box-big" } |
| 9 | - .data | |
| 8 | + %ul.unstyled | |
| 10 | 9 | - @keys.each do |key| |
| 11 | 10 | = render(:partial => 'show', :locals => {:key => key}) |
| 12 | - | |
| 13 | -:javascript | |
| 14 | - $('.delete-key').live('ajax:success', function() { | |
| 15 | - $(this).closest('.update-item').fadeOut(); }); | |
| 16 | - | ... | ... |
app/views/keys/new.html.haml
app/views/keys/show.html.haml
| 1 | -.ui-box.width-100p | |
| 2 | - %h3= @key.title | |
| 3 | - .data | |
| 4 | - %pre= @key.key | |
| 5 | - .clear | |
| 6 | - .buttons | |
| 7 | - = link_to 'Remove', @key, :confirm => 'Are you sure?', :method => :delete, :class => "red-button delete-key right" | |
| 8 | - .clear | |
| 1 | +%h3= @key.title | |
| 2 | +%hr | |
| 3 | +%pre= @key.key | |
| 4 | +.actions | |
| 5 | + = link_to 'Remove', @key, :confirm => 'Are you sure?', :method => :delete, :class => "btn danger delete-key" | |
| 9 | 6 | |
| 10 | 7 | ... | ... |
app/views/layouts/_head_panel.html.haml
| ... | ... | @@ -11,10 +11,6 @@ |
| 11 | 11 | = truncate @project.name, :length => 28 |
| 12 | 12 | .git_url_wrapper |
| 13 | 13 | %input.git-url.text{:id => "", :name => "", :readonly => "", :type => "text", :value => @project.url_to_repo, :class => "one_click_select"} |
| 14 | - -#- if @project.repo_exists? | |
| 15 | - .left{:style => "margin-left:5px;"} | |
| 16 | - = render :partial => "projects/refs", :locals => { :destination => controller.controller_name == "commits" ? "commits" : "tree" } | |
| 17 | - = yield :rss_icon | |
| 18 | 14 | |
| 19 | 15 | |
| 20 | 16 | .account-box | ... | ... |
app/views/layouts/_project_side.html.haml
| ... | ... | @@ -6,14 +6,14 @@ |
| 6 | 6 | |
| 7 | 7 | - if @project.repo_exists? |
| 8 | 8 | = link_to "Repository", project_repository_path(@project), :class => repository_tab_class |
| 9 | - = link_to "Tree", tree_project_ref_path(@project, @project.root_ref), :class => tree_tab_class | |
| 9 | + = link_to "Code", tree_project_ref_path(@project, @project.root_ref), :class => tree_tab_class | |
| 10 | 10 | = link_to "Commits", project_commits_path(@project), :class => (controller.controller_name == "commits") ? "current" : nil |
| 11 | 11 | = link_to "Network", graph_project_path(@project), :class => current_page?(:controller => "projects", :action => "graph", :id => @project) ? "current" : nil |
| 12 | 12 | = link_to project_issues_filter_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do |
| 13 | 13 | Issues |
| 14 | + = link_to project_merge_requests_path(@project), :class => (controller.controller_name == "merge_requests") ? "current" : nil do | |
| 15 | + Merge Requests | |
| 14 | 16 | = link_to wall_project_path(@project), :class => current_page?(:controller => "projects", :action => "wall", :id => @project) ? "current" : nil do |
| 15 | - Wall | |
| 17 | + @Wall | |
| 16 | 18 | - if @project.common_notes.today.count > 0 |
| 17 | 19 | %span.label= @project.common_notes.today.count |
| 18 | - = link_to project_merge_requests_path(@project), :class => (controller.controller_name == "merge_requests") ? "current" : nil do | |
| 19 | - Requests | ... | ... |
app/views/layouts/profile.html.haml
| ... | ... | @@ -13,13 +13,15 @@ |
| 13 | 13 | = render :partial => "layouts/head_panel" |
| 14 | 14 | .container-fluid |
| 15 | 15 | .sidebar |
| 16 | - .fixed | |
| 17 | - %aside | |
| 18 | - = link_to "Profile", profile_path, :class => current_page?(:controller => "profile", :action => :show) ? "current" : nil | |
| 19 | - = link_to "Password & token", profile_password_path, :class => current_page?(:controller => "profile", :action => :password) ? "current" : nil | |
| 20 | - = link_to "Design", profile_design_path, :class => current_page?(:controller => "profile", :action => :design) ? "current" : nil | |
| 21 | - = link_to keys_path, :class => controller.controller_name == "keys" ? "current" : nil do | |
| 22 | - Keys | |
| 23 | - - unless current_user.keys.empty? | |
| 24 | - %span{ :class => "number" }= current_user.keys.count | |
| 25 | - .content= yield | |
| 16 | + %aside | |
| 17 | + = link_to "Profile", profile_path, :class => current_page?(:controller => "profile", :action => :show) ? "current" : nil | |
| 18 | + = link_to "Password & token", profile_password_path, :class => current_page?(:controller => "profile", :action => :password) ? "current" : nil | |
| 19 | + = link_to "Design", profile_design_path, :class => current_page?(:controller => "profile", :action => :design) ? "current" : nil | |
| 20 | + = link_to keys_path, :class => controller.controller_name == "keys" ? "current" : nil do | |
| 21 | + Keys | |
| 22 | + - unless current_user.keys.empty? | |
| 23 | + %span.label= current_user.keys.count | |
| 24 | + .content | |
| 25 | + .row | |
| 26 | + .span10= yield | |
| 27 | + .span4= render "layouts/projects_side" | ... | ... |
app/views/merge_requests/show.html.haml
| ... | ... | @@ -5,6 +5,10 @@ |
| 5 | 5 | → |
| 6 | 6 | %span.label= @merge_request.target_branch |
| 7 | 7 | |
| 8 | + %small | |
| 9 | + created at | |
| 10 | + = @merge_request.created_at.stamp("Aug 21, 2011") | |
| 11 | + | |
| 8 | 12 | %span.right |
| 9 | 13 | - if can?(current_user, :admin_project, @project) || @merge_request.author == current_user |
| 10 | 14 | - if @merge_request.closed |
| ... | ... | @@ -24,19 +28,17 @@ |
| 24 | 28 | |
| 25 | 29 | %div.well |
| 26 | 30 | %div |
| 27 | - %span.entity-info | |
| 28 | - = image_tag gravatar_icon(@merge_request.author_email), :class => "left", :width => 40, :style => "padding-right:5px;" | |
| 29 | - %span.commit-title | |
| 30 | - %strong | |
| 31 | - %span.commit-author | |
| 32 | - %strong | |
| 33 | - = link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.author.id)) do | |
| 34 | - %span.author= @merge_request.author_name | |
| 35 | - → | |
| 36 | - = link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.assignee.id)) do | |
| 37 | - %span.author= @merge_request.assignee_name | |
| 38 | - %br | |
| 39 | - .cgray= @merge_request.created_at.stamp("Aug 21, 2011 9:23pm") | |
| 31 | + %cite.cgray Created by | |
| 32 | + = image_tag gravatar_icon(@merge_request.author_email), :width => 16, :class => "lil_av" | |
| 33 | + = link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.author.id)) do | |
| 34 | + %strong.author= @merge_request.author_name | |
| 35 | + | |
| 36 | + %cite.cgray and currently assigned to | |
| 37 | + = image_tag gravatar_icon(@merge_request.assignee_email), :width => 16, :class => "lil_av" | |
| 38 | + = link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.assignee.id)) do | |
| 39 | + %strong.author= @merge_request.assignee_name | |
| 40 | + | |
| 41 | + %hr | |
| 40 | 42 | |
| 41 | 43 | |
| 42 | 44 | %div= simple_format @merge_request.title |
| ... | ... | @@ -56,7 +58,7 @@ |
| 56 | 58 | %img{:src => "/assets/ajax-loader-facebook.gif", :class => "dashboard-loader"} |
| 57 | 59 | |
| 58 | 60 | .merge-request-notes |
| 59 | - .issue_notes= render "notes/notes" | |
| 61 | + .merge_request_notes= render "notes/notes" | |
| 60 | 62 | .loading{ :style => "display:none;"} |
| 61 | 63 | %center= image_tag "ajax-loader.gif" |
| 62 | 64 | .clear | ... | ... |
app/views/profile/design.html.haml
| 1 | -.ui-box.width-100p | |
| 2 | - %h3 Design | |
| 3 | - = form_for @user, :url => profile_update_path, :method => :put do |f| | |
| 4 | - .data | |
| 5 | - .left.dark_scheme_box | |
| 6 | - %label{:for => "user_dark_scheme_false"} | |
| 7 | - = image_tag "white.png", :width => 310, :height => 212 | |
| 8 | - %center | |
| 9 | - %h4 | |
| 10 | - = f.radio_button :dark_scheme, false | |
| 11 | - White code preview | |
| 12 | - .right.dark_scheme_box | |
| 13 | - %label{:for => "user_dark_scheme_true"} | |
| 14 | - = image_tag "dark.png", :width => 310, :height => 212 | |
| 15 | - %center | |
| 16 | - %h4 | |
| 17 | - = f.radio_button :dark_scheme, true | |
| 18 | - Dark code preview | |
| 19 | - .clear | |
| 20 | - .buttons | |
| 21 | - = f.submit 'Save', :class => "btn" | |
| 1 | +%h3 Design | |
| 2 | +%hr | |
| 3 | += form_for @user, :url => profile_update_path, :method => :put do |f| | |
| 4 | + .row | |
| 5 | + %label.span4{:for => "user_dark_scheme_false"} | |
| 6 | + = image_tag "white.png", :width => 210 | |
| 7 | + %center | |
| 8 | + %h4 | |
| 9 | + = f.radio_button :dark_scheme, false | |
| 10 | + White code preview | |
| 11 | + %label.span4{:for => "user_dark_scheme_true"} | |
| 12 | + = image_tag "dark.png", :width => 210 | |
| 13 | + %center | |
| 14 | + %h4 | |
| 15 | + = f.radio_button :dark_scheme, true | |
| 16 | + Dark code preview | |
| 17 | + .clearfix | |
| 18 | + .actions | |
| 19 | + = f.submit 'Save', :class => "btn" | |
| 22 | 20 | ... | ... |
app/views/profile/password.html.haml
| 1 | -.ui-box.width-100p.append-bottom-20 | |
| 2 | - %h3 Password | |
| 3 | - = form_for @user, :url => profile_password_path, :method => :put do |f| | |
| 4 | - .data | |
| 5 | - %p After successfull password update you will be redirected to login page where you should login with new password | |
| 6 | - -if @user.errors.any? | |
| 7 | - #error_explanation | |
| 8 | - %ul | |
| 9 | - - @user.errors.full_messages.each do |msg| | |
| 10 | - %li= msg | |
| 1 | +%h3 Password | |
| 2 | +%hr | |
| 3 | += form_for @user, :url => profile_password_path, :method => :put do |f| | |
| 4 | + .data | |
| 5 | + %p After successfull password update you will be redirected to login page where you should login with new password | |
| 6 | + -if @user.errors.any? | |
| 7 | + #error_explanation | |
| 8 | + %ul | |
| 9 | + - @user.errors.full_messages.each do |msg| | |
| 10 | + %li= msg | |
| 11 | 11 | |
| 12 | - .form-row | |
| 13 | - = f.label :password | |
| 14 | - %br | |
| 15 | - = f.password_field :password | |
| 16 | - .form-row | |
| 17 | - = f.label :password_confirmation | |
| 18 | - %br | |
| 19 | - = f.password_field :password_confirmation | |
| 20 | - .buttons | |
| 21 | - = f.submit 'Save', :class => "btn" | |
| 22 | -.clear | |
| 23 | - | |
| 24 | -.ui-box.width-100p | |
| 25 | - %h3 | |
| 26 | - Private token | |
| 27 | - %em.cred.right | |
| 28 | - keep it in secret! | |
| 29 | - = form_for @user, :url => profile_reset_private_token_path, :method => :put do |f| | |
| 30 | - .data | |
| 31 | - %p Private token used to access application resources without authentication. | |
| 32 | - %p For example its required to access commits feed. | |
| 33 | - %hr | |
| 34 | - %p.cgray | |
| 35 | - - if current_user.private_token | |
| 36 | - = text_field_tag "token", current_user.private_token | |
| 37 | - - else | |
| 38 | - You don`t have one yet. Click generate to fix it. | |
| 39 | - .buttons | |
| 12 | + .clearfix | |
| 13 | + = f.label :password | |
| 14 | + .input= f.password_field :password | |
| 15 | + .clearfix | |
| 16 | + = f.label :password_confirmation | |
| 17 | + .input= f.password_field :password_confirmation | |
| 18 | + .actions | |
| 19 | + = f.submit 'Save', :class => "btn" | |
| 20 | + | |
| 21 | +%h3 | |
| 22 | + Private token | |
| 23 | + %span.cred.right | |
| 24 | + keep it in secret! | |
| 25 | +%hr | |
| 26 | += form_for @user, :url => profile_reset_private_token_path, :method => :put do |f| | |
| 27 | + .data | |
| 28 | + %p Private token used to access application resources without authentication. | |
| 29 | + %p For example its required to access commits feed. | |
| 30 | + %hr | |
| 31 | + %p.cgray | |
| 40 | 32 | - if current_user.private_token |
| 41 | - = f.submit 'Reset', :confirm => "Are you sure?", :class => "grey-button" | |
| 33 | + = text_field_tag "token", current_user.private_token | |
| 42 | 34 | - else |
| 43 | - = f.submit 'Generate', :class => "btn" | |
| 35 | + You don`t have one yet. Click generate to fix it. | |
| 36 | + .actions | |
| 37 | + - if current_user.private_token | |
| 38 | + = f.submit 'Reset', :confirm => "Are you sure?", :class => "btn" | |
| 39 | + - else | |
| 40 | + = f.submit 'Generate', :class => "btn" | |
| 44 | 41 | ... | ... |
app/views/profile/show.html.haml
spec/requests/dashboard_merge_requests_spec.rb
| ... | ... | @@ -34,14 +34,7 @@ describe "User MergeRequests" do |
| 34 | 34 | |
| 35 | 35 | it { should have_content(@merge_request1.title[0..10]) } |
| 36 | 36 | it { should have_content(@merge_request1.project.name) } |
| 37 | - it { should have_content(@merge_request1.target_branch) } | |
| 38 | - it { should have_content(@merge_request1.source_branch) } | |
| 39 | - it { should have_content(@merge_request1.assignee.name) } | |
| 40 | - | |
| 41 | 37 | it { should have_content(@merge_request2.title[0..10]) } |
| 42 | 38 | it { should have_content(@merge_request2.project.name) } |
| 43 | - it { should have_content(@merge_request2.target_branch) } | |
| 44 | - it { should have_content(@merge_request2.source_branch) } | |
| 45 | - it { should have_content(@merge_request2.assignee.name) } | |
| 46 | 39 | end |
| 47 | 40 | end | ... | ... |
spec/requests/issues_spec.rb
| ... | ... | @@ -51,17 +51,17 @@ describe "Issues" do |
| 51 | 51 | # admin access to remove issue |
| 52 | 52 | @user.users_projects.destroy_all |
| 53 | 53 | project.add_access(@user, :read, :write, :admin) |
| 54 | - visit project_issues_path(project) | |
| 54 | + visit edit_project_issue_path(project, @issue) | |
| 55 | 55 | end |
| 56 | 56 | |
| 57 | 57 | it "should remove entry" do |
| 58 | 58 | expect { |
| 59 | - click_link "destroy_issue_#{@issue.id}" | |
| 59 | + click_link "Remove" | |
| 60 | 60 | }.to change { Issue.count }.by(-1) |
| 61 | 61 | end |
| 62 | 62 | end |
| 63 | 63 | |
| 64 | - describe "statuses", :js => true do | |
| 64 | + describe "statuses" do | |
| 65 | 65 | before do |
| 66 | 66 | @closed_issue = Factory :issue, |
| 67 | 67 | :author => @user, |
| ... | ... | @@ -76,13 +76,13 @@ describe "Issues" do |
| 76 | 76 | end |
| 77 | 77 | |
| 78 | 78 | it "should show only closed" do |
| 79 | - choose "closed_issues" | |
| 79 | + click_link "Closed" | |
| 80 | 80 | should have_no_content(@issue.title) |
| 81 | 81 | should have_content(@closed_issue.title[0..25]) |
| 82 | 82 | end |
| 83 | 83 | |
| 84 | 84 | it "should show all" do |
| 85 | - choose "all_issues" | |
| 85 | + click_link "All" | |
| 86 | 86 | should have_content(@issue.title[0..25]) |
| 87 | 87 | should have_content(@closed_issue.title[0..25]) |
| 88 | 88 | end |
| ... | ... | @@ -182,7 +182,6 @@ describe "Issues" do |
| 182 | 182 | :assignee => @user, |
| 183 | 183 | :project => project |
| 184 | 184 | visit project_issues_path(project) |
| 185 | - page.execute_script("$('.action-links').css('display', 'block');") | |
| 186 | 185 | click_link "Edit" |
| 187 | 186 | end |
| 188 | 187 | |
| ... | ... | @@ -200,7 +199,6 @@ describe "Issues" do |
| 200 | 199 | it "should update issue fields" do |
| 201 | 200 | click_button "Save" |
| 202 | 201 | |
| 203 | - page.should_not have_content("Issue ##{@issue.id}") | |
| 204 | 202 | page.should have_content @user.name |
| 205 | 203 | page.should have_content "bug 345" |
| 206 | 204 | page.should have_content project.name |
| ... | ... | @@ -226,7 +224,7 @@ describe "Issues" do |
| 226 | 224 | @issue.save |
| 227 | 225 | |
| 228 | 226 | visit project_issues_path(project) |
| 229 | - choose 'closed_issues' | |
| 227 | + click_link 'Closed' | |
| 230 | 228 | fill_in 'issue_search', :with => 'foobar' |
| 231 | 229 | |
| 232 | 230 | page.should have_content 'foobar' | ... | ... |
spec/requests/projects_spec.rb
| ... | ... | @@ -5,7 +5,7 @@ describe "Projects" do |
| 5 | 5 | |
| 6 | 6 | describe "GET /projects" do |
| 7 | 7 | before do |
| 8 | - @project = Factory :project | |
| 8 | + @project = Factory :project, :owner => @user | |
| 9 | 9 | @project.add_access(@user, :read) |
| 10 | 10 | visit projects_path |
| 11 | 11 | end |
| ... | ... | @@ -15,7 +15,7 @@ describe "Projects" do |
| 15 | 15 | end |
| 16 | 16 | |
| 17 | 17 | it "should have link to new project" do |
| 18 | - page.should have_content("Create new project") | |
| 18 | + page.should have_content("New Project") | |
| 19 | 19 | end |
| 20 | 20 | |
| 21 | 21 | it "should have project" do |
| ... | ... | @@ -26,7 +26,7 @@ describe "Projects" do |
| 26 | 26 | describe "GET /projects/new" do |
| 27 | 27 | before do |
| 28 | 28 | visit projects_path |
| 29 | - click_link "Create new project" | |
| 29 | + click_link "New Project" | |
| 30 | 30 | end |
| 31 | 31 | |
| 32 | 32 | it "should be correct path" do |
| ... | ... | @@ -68,7 +68,7 @@ describe "Projects" do |
| 68 | 68 | |
| 69 | 69 | describe "GET /projects/show" do |
| 70 | 70 | before do |
| 71 | - @project = Factory :project | |
| 71 | + @project = Factory :project, :owner => @user | |
| 72 | 72 | @project.add_access(@user, :read) |
| 73 | 73 | |
| 74 | 74 | visit project_path(@project) |
| ... | ... | @@ -128,7 +128,7 @@ describe "Projects" do |
| 128 | 128 | |
| 129 | 129 | describe "PUT /projects/:id" do |
| 130 | 130 | before do |
| 131 | - @project = Factory :project | |
| 131 | + @project = Factory :project, :owner => @user | |
| 132 | 132 | @project.add_access(@user, :admin, :read) |
| 133 | 133 | |
| 134 | 134 | visit edit_project_path(@project) | ... | ... |