etsy-deployinator 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +368 -0
  5. data/Rakefile +16 -0
  6. data/bin/deployinator-tailer.rb +78 -0
  7. data/deployinator.gemspec +31 -0
  8. data/lib/deployinator.rb +114 -0
  9. data/lib/deployinator/app.rb +204 -0
  10. data/lib/deployinator/base.rb +58 -0
  11. data/lib/deployinator/config.rb +7 -0
  12. data/lib/deployinator/controller.rb +147 -0
  13. data/lib/deployinator/helpers.rb +610 -0
  14. data/lib/deployinator/helpers/deploy.rb +68 -0
  15. data/lib/deployinator/helpers/dsh.rb +42 -0
  16. data/lib/deployinator/helpers/git.rb +348 -0
  17. data/lib/deployinator/helpers/plugin.rb +50 -0
  18. data/lib/deployinator/helpers/stack-tail.rb +32 -0
  19. data/lib/deployinator/helpers/version.rb +62 -0
  20. data/lib/deployinator/helpers/view.rb +67 -0
  21. data/lib/deployinator/logging.rb +16 -0
  22. data/lib/deployinator/plugin.rb +7 -0
  23. data/lib/deployinator/stack-tail.rb +34 -0
  24. data/lib/deployinator/static/css/diff_style.css +283 -0
  25. data/lib/deployinator/static/css/highlight.css +235 -0
  26. data/lib/deployinator/static/css/style.css +1223 -0
  27. data/lib/deployinator/static/js/flot/jquery.flot.min.js +1 -0
  28. data/lib/deployinator/static/js/flot/jquery.flot.selection.js +299 -0
  29. data/lib/deployinator/static/js/jquery-1.8.3.min.js +2 -0
  30. data/lib/deployinator/static/js/jquery-ui-1.8.24.min.js +5 -0
  31. data/lib/deployinator/static/js/jquery.timed_bar.js +36 -0
  32. data/lib/deployinator/tasks/initialize.rake +84 -0
  33. data/lib/deployinator/tasks/tests.rake +22 -0
  34. data/lib/deployinator/templates/deploys_status.mustache +42 -0
  35. data/lib/deployinator/templates/generic_single_push.mustache +64 -0
  36. data/lib/deployinator/templates/index.mustache +12 -0
  37. data/lib/deployinator/templates/layout.mustache +604 -0
  38. data/lib/deployinator/templates/log.mustache +24 -0
  39. data/lib/deployinator/templates/log_table.mustache +90 -0
  40. data/lib/deployinator/templates/messageboxes.mustache +29 -0
  41. data/lib/deployinator/templates/run_logs.mustache +15 -0
  42. data/lib/deployinator/templates/scroll_control.mustache +8 -0
  43. data/lib/deployinator/templates/stream.mustache +13 -0
  44. data/lib/deployinator/version.rb +3 -0
  45. data/lib/deployinator/views/deploys_status.rb +22 -0
  46. data/lib/deployinator/views/index.rb +14 -0
  47. data/lib/deployinator/views/layout.rb +48 -0
  48. data/lib/deployinator/views/log.rb +12 -0
  49. data/lib/deployinator/views/log_table.rb +35 -0
  50. data/lib/deployinator/views/run_logs.rb +32 -0
  51. data/templates/app.rb.erb +7 -0
  52. data/templates/config.ru.erb +10 -0
  53. data/templates/helper.rb.erb +15 -0
  54. data/templates/stack.rb.erb +17 -0
  55. data/templates/template.mustache +1 -0
  56. data/templates/view.rb.erb +7 -0
  57. data/test/unit/helpers_dsh_test.rb +40 -0
  58. data/test/unit/helpers_test.rb +77 -0
  59. data/test/unit/version_test.rb +104 -0
  60. metadata +245 -0
@@ -0,0 +1,235 @@
1
+ .gist{color:#000;}
2
+ .gist div{padding:0;margin:0;}
3
+ .gist .gist-file{border:1px solid #dedede;font-family:Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;margin-bottom:1em;}
4
+ .gist .gist-file .gist-meta{overflow:hidden;font-size:85%;padding:.5em;color:#666;background-color:#eaeaea;}
5
+ .gist .gist-file .gist-meta a{color:#369;}
6
+ .gist .gist-file .gist-meta a:visited{color:#737;}
7
+ .gist .gist-file .gist-data{overflow:auto;background-color:#f8f8ff;border-bottom:1px solid #ddd;font-size:100%;}
8
+ .gist .gist-file .gist-data pre{font-family:'Bitstream Vera Sans Mono','Courier',monospace;background:transparent!important;margin:0!important;border:none!important;padding:.25em .5em .5em .5em!important;}
9
+ .gist .gist-file .gist-data .gist-highlight{background:transparent!important;}
10
+ .gist .gist-file .gist-data .gist-line-numbers{background-color:#ececec;color:#aaa;border-right:1px solid #ddd;text-align:right;}
11
+ .gist .gist-file .gist-data .gist-line-numbers span{clear:right;display:block;}
12
+ .gist-syntax{background:#fff;}
13
+ .c{color:#998;font-style:italic;}
14
+ .err{color:#a61717;background-color:#e3d2d2;}
15
+ .k{color:#000;font-weight:bold;}
16
+ .o{color:#000;font-weight:bold;}
17
+ .cm{color:#998;font-style:italic;}
18
+ .cp{color:#999;font-weight:bold;}
19
+ .c1{color:#998;font-style:italic;}
20
+ .cs{color:#999;font-weight:bold;font-style:italic;}
21
+ .gd{color:#000;background-color:#fdd;}
22
+ .gd .x{color:#000;background-color:#faa;}
23
+ .ge{color:#000;font-style:italic;}
24
+ .gr{color:#a00;}
25
+ .gh{color:#999;}
26
+ .gi{color:#000;background-color:#dfd;}
27
+ .gi .x{color:#000;background-color:#afa;}
28
+ .go{color:#888;}
29
+ .gp{color:#555;}
30
+ .gs{font-weight:bold;}
31
+ .gu{color:#aaa;}
32
+ .gt{color:#a00;}
33
+ .kc{color:#000;font-weight:bold;}
34
+ .kd{color:#000;font-weight:bold;}
35
+ .kp{color:#000;font-weight:bold;}
36
+ .kr{color:#000;font-weight:bold;}
37
+ .kt{color:#458;font-weight:bold;}
38
+ .m{color:#099;}
39
+ .s{color:#d14;}
40
+ .na{color:#008080;}
41
+ .nb{color:#0086B3;}
42
+ .nc{color:#458;font-weight:bold;}
43
+ .no{color:#008080;}
44
+ .ni{color:#800080;}
45
+ .ne{color:#900;font-weight:bold;}
46
+ .nf{color:#900;font-weight:bold;}
47
+ .nn{color:#555;}
48
+ .nt{color:#000080;}
49
+ .nv{color:#008080;}
50
+ .ow{color:#000;font-weight:bold;}
51
+ .w{color:#bbb;}
52
+ .mf{color:#099;}
53
+ .mh{color:#099;}
54
+ .mi{color:#099;}
55
+ .mo{color:#099;}
56
+ .sb{color:#d14;}
57
+ .sc{color:#d14;}
58
+ .sd{color:#d14;}
59
+ .s2{color:#d14;}
60
+ .se{color:#d14;}
61
+ .sh{color:#d14;}
62
+ .si{color:#d14;}
63
+ .sx{color:#d14;}
64
+ .sr{color:#009926;}
65
+ .s1{color:#d14;}
66
+ .ss{color:#990073;}
67
+ .bp{color:#999;}
68
+ .vc{color:#008080;}
69
+ .vg{color:#008080;}
70
+ .vi{color:#008080;}
71
+ .il{color:#099;}
72
+ .site{margin:0 auto;padding:0 3em;text-align:left;overflow:hidden;min-width:920px;}
73
+ #main{min-height:100%;height:auto!important;height:100%;margin:0 auto -8.6em;}
74
+ .push{height:8.6em;padding-bottom:4em;}
75
+ h2{margin:0 0 15px 0;font-size:24px;}
76
+ h3{margin:1em 0 .5em 0;border-bottom:1px solid #ddd;}
77
+ #header{height:80px;margin-bottom:20px;}
78
+ .main{width:68%;overflow:hidden;}
79
+ .secondary{float:right;width:30%;}
80
+ #delete_link{float:right;text-align:right;}
81
+ #delete_link a{font-size:90%;color:#d00;text-decoration:underline;}
82
+ #deleted_message{font-size:200%;color:#d44;margin:30px;text-align:center;}
83
+ .warning{padding:10px;color:#833;border:1px solid #833;background:#fee;margin-bottom:10px;}
84
+ #repos{margin-bottom:1em;}
85
+ #repos h1{font-size:160%;}
86
+ #repos h1 a{font-size:70%;font-weight:normal;}
87
+ #repos .repo{margin:0 0 1em 0;padding:.1em .5em .1em .5em;}
88
+ #repos .public{border:1px solid #d8d8d8;background-color:#f0f0f0;}
89
+ #repos .private{border:1px solid #f7ca75;background-color:#fffeeb;}
90
+ #repos .repo .title{overflow:hidden;}
91
+ #repos .repo .title .path{float:left;font-size:140%;}
92
+ #repos .repo .title .path img{vertical-align:middle;}
93
+ #repos .repo .title .path .button{margin-left:.25em;vertical-align:-12%;}
94
+ #repos .repo .title .path span a{font-size:75%;font-weight:normal;}
95
+ #repos .repo .title .security{float:right;text-align:right;font-weight:bold;padding-top:.3em;}
96
+ #repos .repo .title .security *{vertical-align:middle;}
97
+ #repos .repo .title .security img{position:relative;top:-1px;}
98
+ #repos .repo .meta{margin:.2em 0 0 0;overflow:hidden;}
99
+ #repos .repo .meta table{float:left;max-width:48em;}
100
+ #repos .repo .meta table td.label{color:#888;padding-right:.25em;vertical-align:top;}
101
+ #repos .repo .meta table td span.editarea input{margin-top:.5em;margin-right:.5em;}
102
+ #repos .repo .meta table td textarea{display:block;clear:right;}
103
+ #repos .repo .meta table td.url{color:#4183c4;}
104
+ #repos .repo .meta table td.blank{color:#bbb;}
105
+ .file{margin:0 0 10px 0;border:1px solid #d9d9d9;background:#f5f5f5;}
106
+ .file .meta{padding:7px 10px;background:#e9e9e9;color:#666;font-size:12px;border-bottom:1px solid #d9d9d9;}
107
+ .file .meta input.gist-name-textbox{width:200px;padding:2px;color:#666;background:#f9f9f9;font-family:Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;border:1px solid #ddd;}
108
+ .file .meta input.gist-name-textbox.notnative.placeholder{background:url(/images/modules/gist/filename_placeholder.gif) 5px 50% #f9f9f9 no-repeat;}
109
+ .file .meta input.gist-name-textbox:focus{background:#fff;border-color:#ccc;}
110
+ .file .meta .name{float:left;}
111
+ .file .meta .language{text-align:right;}
112
+ .file .meta .gist-lang-desc{padding-top:2px;}
113
+ .file .input textarea{font-family:Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;font-size:12px;margin:10px;width:97.5%;height:300px;border:1px solid #ccc;border-right-color:#ddd;border-bottom-color:#ddd;}
114
+ .file .input textarea:focus{border-color:#aaa;border-right-color:#bbb;border-bottom-color:#bbb;}
115
+ .file .meta .info,.file .meta .actions{margin-bottom:-1px;}
116
+ #files .file.private{border:1px solid #f7ca75;}
117
+ #files .file.private .meta{background-color:#fffeeb;border-bottom:1px solid #f7ca75;}
118
+ #files .file .meta .info{float:left;}
119
+ #files .file .meta .info span{margin-right:1em;}
120
+ #files .file .meta .gravatar{float:right;padding:1px;background-color:white;border:1px solid #ccc;margin-left:1em;}
121
+ #files .file .meta .date{float:right;padding-top:.2em;}
122
+ #files .file .meta .actions{float:right;text-align:right;}
123
+ #files .file .meta .actions a{margin-left:2em;}
124
+ #files .file .data{font-size:80%;overflow:auto;background-color:#f8f8ff;}
125
+ #files .file .input .remove{font-size:80%;padding:5px;padding-top:0;text-align:right;}
126
+ #files .file .removed{padding:5px;color:#955;text-align:center;}
127
+ #files .image{padding:1.2em;text-align:center;}
128
+ #files .file .data pre{font-family:'Bitstream Vera Sans Mono','Courier',monospace;}
129
+ #files .file .data .highlight{padding:1em 0;}
130
+ .file .data .highlight div{padding-left:1em;}
131
+ .file .type-diff .highlight div{padding-left:0;}
132
+ .file .type-diff .highlight div span{padding-left:1em;}
133
+ #files .file .data .line_numbers{background-color:#ececec;color:#aaa;padding:1em .5em;border-right:1px solid #ddd;text-align:right;}
134
+ #files .file .data .line_numbers span,#files .file .data .line_numbers a{color:#aaa;cursor:pointer;}
135
+ #files .bubble{background:url(/images/modules/commit/comment_bubble.png) no-repeat;color:white;height:1.4em;margin:-0.2em 0 0 -9.6em;padding:.1em .8em 0 0;padding-left:0!important;position:absolute;width:1.5em;cursor:pointer;}
136
+ #files .empty{background:none;}
137
+ #files .bubble span{display:block;line-height:1.4em;text-align:center;}
138
+ .form-actions{margin:15px 0 0 0;color:#888;text-align:right;}
139
+ .form-actions .optional{display:block;padding-top:8px;float:left;}
140
+ .form-actions .optional span{padding:0 3px;}
141
+ .form-actions .optional input{position:relative;top:-1px;}
142
+ .form-actions .button{float:right;text-align:right;}
143
+ .add_file{display:block;height:30px;padding:0 10px 0 32px;line-height:32px;color:#4183c4;font-size:12px;font-weight:bold;background:url(/images/modules/gist/new_file.png) 10px 50% no-repeat #f5f5f5;border:1px solid #d9d9d9;cursor:pointer;}
144
+ .add_file:hover{color:#fff;background-color:#4183c4;border-color:#175790;}
145
+ #options h3{border-bottom:1px solid #bbb;margin-bottom:.5em;}
146
+ #options .private{font-size:110%;color:#666;}
147
+ #options .private input{position:relative;top:.05em;}
148
+ #options .private img{margin-right:.2em;}
149
+ #files .data .newGist{width:100%;height:300px;}
150
+ #files .data .tags{width:50%;}
151
+ .gistSubmit{float:right;padding:5px 10px;}
152
+ #instructions h3{border-bottom:1px solid #bbb;margin-bottom:.5em;}
153
+ #instructions .instruct{padding:5px 0;color:#333;border-bottom:1px dashed #eee;}
154
+ #control{margin-bottom:2em;}
155
+ .fork-info{margin-bottom:1.5em;}
156
+ .fork-info h3{border-bottom:1px solid #ddd;margin-bottom:.2em;}
157
+ #owner{margin-bottom:1.5em;}
158
+ #owner h3{border-bottom:1px solid #ddd;margin-bottom:.2em;}
159
+ #owner p.claim{font-style:italic;color:#666;}
160
+ #revisions h3{border-bottom:1px solid #ddd;margin-bottom:.5em;}
161
+ #revisions ul{list-style-type:none;}
162
+ #revisions ul li{padding:.1em .25em;}
163
+ #revisions ul li.current{border:1px solid #9DFF9D;background-color:#EBFFEB;}
164
+ #revisions ul li *{vertical-align:middle;}
165
+ #revisions ul li img{padding-right:1px;}
166
+ #revisions a.id{font-family:Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;font-size:70%;}
167
+ #revisions a.author{color:black;font-weight:bold;}
168
+ #revisions span.date{color:#777;}
169
+ #footer{height:8.6em;background:#bbccd9 url(/images/modules/footer/bg.png) 0 0 repeat-x;overflow:hidden;color:#cadcea;}
170
+ #footer a{color:white;text-decoration:underline;}
171
+ #footer .info{padding:2.9em 0 3.3em 0;float:left;}
172
+ #footer .info .logo{float:left;margin-right:1.5em;margin-top:-.5em;}
173
+ #footer .info .more{float:left;}
174
+ #footer .info .links{padding-bottom:.4em;border-bottom:3px solid #5c8ab3;}
175
+ #footer .info .company{padding-top:.4em;}
176
+ #footer .sponsor{padding:2.75em 0 1em 0;float:right;width:25em;}
177
+ #footer .sponsor img{float:right;margin:.5em .5em 0 0;}
178
+ #footer .sponsor a{text-decoration:none;}
179
+ #footer .sponsor div{float:right;font-size:.9em;margin-top:.7em;}
180
+ #footer .sponsor span{font-size:60%;position:relative;top:-.75em;}
181
+ #login{width:31em;}
182
+ .standard_form{margin:3em auto 0 auto;width:60em;background-color:#eaf2f5;padding:2em 2em 1em 2em;border:20px solid #ddd;}
183
+ .standard_form h1{font-size:160%;margin-bottom:1em;}
184
+ .standard_form h1 a{font-size:70%;font-weight:normal;}
185
+ .standard_form p{margin:.5em 0;}
186
+ .standard_form p.note{color:#a00;}
187
+ .standard_form form label,.standard_form form .label{font-size:110%;color:#666;display:block;margin:0;margin-top:1em;}
188
+ .standard_form form label a{font-size:90%;}
189
+ .standard_form form label.error{color:#a00;}
190
+ .standard_form form .label label{margin:0;color:black;font-size:95%;}
191
+ .standard_form form .label span{font-size:90%;color:#888;}
192
+ .standard_form form input.text,.standard_form form textarea{padding:5px;border:1px solid #888;}
193
+ .standard_form form input.text{font-size:110%;}
194
+ .standard_form form input.submit{font-size:120%;padding:.1em 1em;}
195
+ .standard_form form label.error input.text,.standard_form form label.error textarea{border:1px solid #a00;background-color:#f2e1e1;}
196
+ .pagination{padding:.3em;margin:.3em;}
197
+ .pagination a{padding:.1em .3em;margin:.2em;border:1px solid #aad;text-decoration:none;color:#369;}
198
+ .pagination a:hover,.pagination a:active{border:1px solid #369;color:#000;}
199
+ .pagination span.current{padding:.1em .3em;margin:.2em;border:1px solid #369;font-weight:bold;background-color:#369;color:#FFF;}
200
+ .pagination span.disabled{padding:.1em .3em;margin:.2em;border:1px solid #eee;color:#ddd;}
201
+ .wikistyle h1{font-size:170%;border-top:4px solid #aaa;padding-top:.5em;}
202
+ .wikistyle h2{font-size:150%;margin-top:1.5em;border-top:4px solid #e0e0e0;padding-top:.5em;}
203
+ .wikistyle h3{margin-top:1em;}
204
+ .wikistyle p{margin:1em 0;line-height:1.5em;}
205
+ .wikistyle ul{margin:1em 0 1em 1em;}
206
+ .wikistyle ol{margin:1em 0 1em 1.5em;}
207
+ .wikistyle blockquote{margin:1em 0;border-left:5px solid #ddd;padding-left:.6em;color:#555;}
208
+ .wikistyle table{margin:1em 0;}
209
+ .wikistyle table th{border-bottom:1px solid #bbb;padding:.2em 1em;}
210
+ .wikistyle table td{border-bottom:1px solid #ddd;padding:.2em 1em;}
211
+ .wikistyle pre{margin:1em 0;font-size:90%;background-color:#f8f8ff;border:1px solid #dedede;padding:.5em;line-height:1.5em;color:#444;}
212
+ .wikistyle pre code{padding:0;font-size:100%;background-color:#f8f8ff;border:none;}
213
+ .wikistyle code{font-size:90%;background-color:#f8f8ff;color:#444;padding:0 .2em;border:1px solid #dedede;}
214
+ .wikistyle pre.console{margin:1em 0;font-size:90%;background-color:black;padding:.5em;line-height:1.5em;color:white;}
215
+ .wikistyle pre.console code{padding:0;font-size:100%;background-color:black;border:none;color:white;}
216
+ .wikistyle pre.console span{color:#888;}
217
+ .wikistyle pre.console span.command{color:yellow;}
218
+ .topsearch{margin-top:10px;width:700px;}
219
+ .topsearch ul.nav{margin-top:2px;}
220
+ .topsearch form input.search.notnative{background-image:url(/images/modules/gist/search_field.gif);}
221
+ body:first-of-type .topsearch input.search{position:relative;top:-1px;}
222
+ .infobox{margin-left:-2px;margin-bottom:20px;width:100%;padding:0 2px;border-top:1px solid #f1f1f1;background:url(/images/modules/gist/infobox-left.gif) 0 100% no-repeat;}
223
+ .infobox .inner{margin-left:-2px;width:100%;padding:12px 2px 14px 2px;background:url(/images/modules/gist/infobox-right.gif) 100% 100% no-repeat;}
224
+ .infobox p{margin:0 12px;font-size:12px;color:#333;}
225
+ .actor{padding:5px;background:#EAF2F5;border:1px solid #BEDCE7;}
226
+ .actor .gravatar{display:inline-block;padding:2px;background:#fff;border:1px solid #ccd2d5;}
227
+ .actor .gravatar img{vertical-align:middle;}
228
+ .actor .name{position:relative;top:1px;display:inline;padding-left:5px;color:#9ca1a3;text-shadow:1px 1px 1px #fff;}
229
+ .actor .name a,.actor .name em{font-weight:bold;font-style:normal;color:#000;}
230
+ ul.gists{margin:0;}
231
+ ul.gists li{list-style-type:none;margin:0;padding:3px 0 3px 20px;font-size:12px;color:#999;border-bottom:1px solid #ddd;background:url(/images/modules/gist/paste.png) 0 4px no-repeat;}
232
+ ul.forks li,ul.gists li.fork{background-image:url(/images/modules/gist/paste_forked.png);}
233
+ ul.gists small{display:block;font-size:11px;color:#666;}
234
+ .type-diff .line span{display:block;}
235
+ .syntax .gu{background-color:#EAF2F5;color:#999;}
@@ -0,0 +1,1223 @@
1
+ /**
2
+ * html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
3
+ * v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark
4
+ * html5doctor.com/html-5-reset-stylesheet/
5
+ */
6
+ html,body,div,span,object,iframe,
7
+ h1,h2,h3,h4,h5,h6,p,blockquote,pre,
8
+ abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,
9
+ small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,
10
+ fieldset,form,label,legend,
11
+ table,caption,tbody,tfoot,thead,tr,th,td,
12
+ article,aside,canvas,details,figcaption,figure,
13
+ footer,header,hgroup,menu,nav,section,summary,
14
+ time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}
15
+ article,aside,details,figcaption,figure,
16
+ footer,header,hgroup,menu,nav,section{display:block;}
17
+ blockquote,q{quotes:none;}
18
+ blockquote:before,blockquote:after,
19
+ q:before,q:after{content:"";content:none;}
20
+ ins{background-color:#ff9;color:#000;text-decoration:none;}
21
+ mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold;}
22
+ del{text-decoration:line-through;}
23
+ abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help;}
24
+ table{border-collapse:collapse;border-spacing:0;}
25
+ hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0;}
26
+ input,select{vertical-align:middle;}
27
+ /*Clear Fix*/
28
+ .clearfix:before,.clearfix:after{content:"\0020";display:block;height:0;overflow:hidden;}
29
+ .clearfix:after{clear:both;}
30
+ .clearfix{zoom:1;}
31
+ .hide {display:none;}
32
+
33
+
34
+ /*Common*/
35
+ html{overflow-y:scroll;}
36
+ body{font-family:Helvetica, Arial, sans-serif;font-size:12px;line-height:16px;background-color: #eee;}
37
+ body,select,input,textarea{color:#666;}
38
+ pre,code,kbd,samp{font-family:monospace,sans-serif;}
39
+ a, a:active{
40
+ color: #7fbf4d;
41
+ text-decoration: none;
42
+ }
43
+ a:hover{
44
+ text-decoration: underline;
45
+ }
46
+ input, textarea{
47
+ padding: 6px 6px;
48
+ font: normal 12px Helvetica, Arial, sans-serif;
49
+ border-right-width: 1px;
50
+ border-style: solid;
51
+ border-color: #D3D3D3 #ddd #ddd;
52
+ -webkit-box-shadow: inset 0 1px 2px 0 #E8E8E8;
53
+ -moz-box-shadow: inset 0 1px 2px 0 #E8E8E8;
54
+ -ms-box-shadow: inset 0 1px 2px 0 #E8E8E8;
55
+ -o-box-shadow: inset 0 1px 2px 0 #E8E8E8;
56
+ box-shadow: inset 0 1px 2px 0 #E8E8E8;
57
+ }
58
+ /*button*/
59
+ button.button,
60
+ button.error-button{
61
+ -webkit-border-radius: 3px;
62
+ -moz-border-radius: 3px;
63
+ -ms-border-radius: 3px;
64
+ -o-border-radius: 3px;
65
+ border-radius: 3px;
66
+ color: #fff;
67
+ font: bold 14px Helvetica, Arial, sans-serif;
68
+ line-height: 14px;
69
+ padding: 10px 0 8px 0;
70
+ text-align: center;
71
+ }
72
+ button.error-button{
73
+ background-color: #ff1717;
74
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ff1717), to(#cc1212));
75
+ background-image: -webkit-linear-gradient(top, #ff1717, #cc1212);
76
+ background-image: -moz-linear-gradient(top, #ff1717, #cc1212);
77
+ background-image: -ms-linear-gradient(top, #ff1717, #cc1212);
78
+ background-image: -o-linear-gradient(top, #ff1717, #cc1212);
79
+ background-image: linear-gradient(top, #ff1717, #cc1212);
80
+ border: 1px solid #cc1212;
81
+ border-bottom: 1px solid #ca6d6d;
82
+ -webkit-box-shadow: inset 0 1px 0 0 #ca6d6d;
83
+ -moz-box-shadow: inset 0 1px 0 0 #ca6d6d;
84
+ -ms-box-shadow: inset 0 1px 0 0 #ca6d6d;
85
+ -o-box-shadow: inset 0 1px 0 0 #ca6d6d;
86
+ box-shadow: inset 0 1px 0 0 #ca6d6d;
87
+ text-shadow: 0 -1px 0 #902121;
88
+ }
89
+ button.button{
90
+ background-color: #7fbf4d;
91
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#7fbf4d), to(#63a62f));
92
+ background-image: -webkit-linear-gradient(top, #7fbf4d, #63a62f);
93
+ background-image: -moz-linear-gradient(top, #7fbf4d, #63a62f);
94
+ background-image: -ms-linear-gradient(top, #7fbf4d, #63a62f);
95
+ background-image: -o-linear-gradient(top, #7fbf4d, #63a62f);
96
+ background-image: linear-gradient(top, #7fbf4d, #63a62f);
97
+ border: 1px solid #63a62f;
98
+ border-bottom: 1px solid #5b992b;
99
+ -webkit-box-shadow: inset 0 1px 0 0 #96ca6d;
100
+ -moz-box-shadow: inset 0 1px 0 0 #96ca6d;
101
+ -ms-box-shadow: inset 0 1px 0 0 #96ca6d;
102
+ -o-box-shadow: inset 0 1px 0 0 #96ca6d;
103
+ box-shadow: inset 0 1px 0 0 #96ca6d;
104
+ text-shadow: 0 -1px 0 #4c9021;
105
+ }
106
+ button.button-disabled, .stack-push button.button-disabled:hover, button.button-disabled:active {
107
+ background-color: #bbb;
108
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#bbb), to(#aaa));
109
+ background-image: -webkit-linear-gradient(top, #bbb, #aaa);
110
+ background-image: -moz-linear-gradient(top, #bbb, #aaa);
111
+ background-image: -ms-linear-gradient(top, #bbb, #aaa);
112
+ background-image: -o-linear-gradient(top, #bbb, #aaa);
113
+ background-image: linear-gradient(top, #bbb, #aaa);
114
+ border: 1px solid #ababab;
115
+ -webkit-box-shadow: inset 0 1px 0 0 #CFCECE;
116
+ -moz-box-shadow: inset 0 1px 0 0 #CFCECE;
117
+ -ms-box-shadow: inset 0 1px 0 0 #CFCECE;
118
+ -o-box-shadow: inset 0 1px 0 0 #CFCECE;
119
+ box-shadow: inset 0 1px 0 0 #CFCECE;
120
+ color: #e0e0e0;
121
+ text-shadow: none;
122
+ cursor: default;
123
+ }
124
+
125
+ button.button:hover{
126
+ background-color: #76b347;
127
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#76b347), to(#5e9e2e));
128
+ background-image: -webkit-linear-gradient(top, #76b347, #5e9e2e);
129
+ background-image: -moz-linear-gradient(top, #76b347, #5e9e2e);
130
+ background-image: -ms-linear-gradient(top, #76b347, #5e9e2e);
131
+ background-image: -o-linear-gradient(top, #76b347, #5e9e2e);
132
+ background-image: linear-gradient(top, #76b347, #5e9e2e);
133
+ -webkit-box-shadow: inset 0 1px 0 0 #8dbf67;
134
+ -moz-box-shadow: inset 0 1px 0 0 #8dbf67;
135
+ -ms-box-shadow: inset 0 1px 0 0 #8dbf67;
136
+ -o-box-shadow: inset 0 1px 0 0 #8dbf67;
137
+ box-shadow: inset 0 1px 0 0 #8dbf67;
138
+ cursor: pointer;
139
+ }
140
+
141
+ button.button:active{
142
+ border: 1px solid #5b992b;
143
+ border-bottom: 1px solid #538c27;
144
+ -webkit-box-shadow: inset 0 0 8px 4px #548c29, 0 1px 0 0 #eeeeee;
145
+ -moz-box-shadow: inset 0 0 8px 4px #548c29, 0 1px 0 0 #eeeeee;
146
+ -ms-box-shadow: inset 0 0 8px 4px #548c29, 0 1px 0 0 #eeeeee;
147
+ -o-box-shadow: inset 0 0 8px 4px #548c29, 0 1px 0 0 #eeeeee;
148
+ box-shadow: inset 0 0 8px 4px #548c29, 0 1px 0 0 #eeeeee;
149
+ }
150
+ button.small {
151
+ font-size: 12px;
152
+ padding: 5px 10px;
153
+ }
154
+ .push-progress {
155
+ background-color: #bbb;
156
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#bbb), to(#aaa));
157
+ background-image: -webkit-linear-gradient(top, #bbb, #aaa);
158
+ background-image: -moz-linear-gradient(top, #bbb, #aaa);
159
+ background-image: -ms-linear-gradient(top, #bbb, #aaa);
160
+ background-image: -o-linear-gradient(top, #bbb, #aaa);
161
+ background-image: linear-gradient(top, #bbb, #aaa);
162
+ -webkit-border-radius: 3px;
163
+ -moz-border-radius: 3px;
164
+ -ms-border-radius: 3px;
165
+ -o-border-radius: 3px;
166
+ border: 1px solid #ababab;
167
+ -webkit-box-shadow: inset 0 1px 0 0 #CFCECE;
168
+ -moz-box-shadow: inset 0 1px 0 0 #CFCECE;
169
+ -ms-box-shadow: inset 0 1px 0 0 #CFCECE;
170
+ -o-box-shadow: inset 0 1px 0 0 #CFCECE;
171
+ box-shadow: inset 0 1px 0 0 #CFCECE;
172
+ margin: 18px 0 0 -3px;
173
+ width: 207px;
174
+ height: 34px;
175
+ position: relative;
176
+ }
177
+ .push-progress .bar{
178
+ background-color: #7fbf4d;
179
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#7fbf4d), to(#63a62f));
180
+ background-image: -webkit-linear-gradient(top, #7fbf4d, #63a62f);
181
+ background-image: -moz-linear-gradient(top, #7fbf4d, #63a62f);
182
+ background-image: -ms-linear-gradient(top, #7fbf4d, #63a62f);
183
+ background-image: -o-linear-gradient(top, #7fbf4d, #63a62f);
184
+ background-image: linear-gradient(top, #7fbf4d, #63a62f);
185
+ -moz-border-radius: 3px;
186
+ -webkit-border-radius: 3px;
187
+ border-radius: 3px;
188
+ }
189
+ .push-progress .deploying{
190
+ position: absolute;
191
+ width: 100%;
192
+ left: 0;
193
+ color: #fff;
194
+ font: bold 14px Helvetica, Arial, sans-serif;
195
+ line-height: 14px;
196
+ padding: 10px 0 8px 0;
197
+ text-align: center;
198
+ }
199
+
200
+ /*Layout*/
201
+
202
+ * html div#content {
203
+ width: expression( document.body.clientWidth < 981 ? "981px" : "auto" );
204
+ }
205
+ div#content {
206
+ margin: 0 auto;
207
+ padding: 0 30px;
208
+ min-width: 980px;
209
+ }
210
+
211
+ #error_report, #warning_report {
212
+ background-color: white;
213
+ border: 1px solid #DDD;
214
+ padding:10px;
215
+ display: none;
216
+ margin-bottom:10px;
217
+ margin-left:0px;
218
+ min-height:150px;
219
+ }
220
+ #error_report h1, #warning_report h1 {
221
+ color:#EC592A;
222
+ font-size:16px;
223
+ padding: 14px 20px;
224
+ font-weight: bold;
225
+ border-bottom: 1px solid #ccc;
226
+ margin-bottom: 20px;
227
+ }
228
+ #error_report div, #warning_report div {
229
+ margin: 10px;
230
+ color: #666;
231
+ font-size: 13px;
232
+ }
233
+ #error_report span, #warning_report span {
234
+ display:block;
235
+ margin:5px 0;
236
+ }
237
+ #info_msg_report {
238
+ background-color: white;
239
+ border: 1px solid #DDD;
240
+ padding:10px;
241
+ display: none;
242
+ margin-bottom:10px;
243
+ margin-left:0px;
244
+ min-height:150px;
245
+ }
246
+ #info_msg_report h1 {
247
+ color:#477EE0;
248
+ font-size:16px;
249
+ padding: 14px 20px;
250
+ font-weight: bold;
251
+ border-bottom: 1px solid #ccc;
252
+ margin-bottom: 20px;
253
+ }
254
+ #info_msg_report h3 {
255
+ font-weight: bold;
256
+ margin:10px;
257
+ font-size: 14px;
258
+ }
259
+ #info_msg_report div {
260
+ margin:10px;
261
+ color:#666;
262
+ font-size:13px;
263
+ }
264
+ #info_msg_report span {
265
+ display:block;
266
+ margin:5px 0;
267
+ }
268
+
269
+ /*Header*/
270
+
271
+ header{
272
+ height: 100px;
273
+ background-color: #FA6900;
274
+ padding: 20px 30px;
275
+ margin: 0 -30px 0;
276
+ font-size: 14px;
277
+ line-height: 18px;
278
+ }
279
+ header a {
280
+ text-decoration: none;
281
+ color: #fff;
282
+ }
283
+ header a:hover {
284
+ color: #fff;
285
+ }
286
+
287
+ #dna{
288
+ margin: 0;
289
+ float: right;
290
+ }
291
+ #dna a{
292
+ font-size: 12px;
293
+ line-height: 12px;
294
+ font-weight: bold;
295
+ display: block;
296
+ white-space: pre;
297
+ font-family: monospace;
298
+ color: #fff;
299
+ }
300
+ #dna a:hover {
301
+ text-decoration: none;
302
+ color: #333;
303
+ }
304
+
305
+ #user{
306
+ float: left;
307
+ width: 340px;
308
+ margin: 1px 0 0 0;
309
+ padding: 10px;
310
+ background: #FFF8EC;
311
+ border: 2px solid #AF3030;
312
+ }
313
+
314
+ #user .line {
315
+ font-size: 14px;
316
+ color: #555;
317
+ line-height:20px;
318
+ }
319
+
320
+ #user .line .label {
321
+ font-weight: bold;
322
+ }
323
+
324
+ #user .line a {
325
+ color: #3277CF;
326
+ }
327
+ .stacks {
328
+ margin-top: 5px;
329
+ }
330
+ #dev {
331
+ position:fixed;
332
+ top:0;
333
+ width:100%;
334
+ background-color: #FF9;
335
+ color: red;
336
+ padding: 2px;
337
+ text-align: center;
338
+ font-weight: 500;
339
+ font-size: 16px;
340
+ line-height: 32px;
341
+ border-bottom: 2px solid;
342
+ z-index:100;
343
+ }
344
+
345
+ #dev + #content {
346
+ margin-top: 36px;
347
+ }
348
+
349
+ /*search haeder*/
350
+ header.search{
351
+ background:url(/images/search-header.png) no-repeat right -40px #EE2A7B;
352
+ }
353
+ header.search #dna a{
354
+ text-shadow: 1px 1px 2px #981348;
355
+ }
356
+
357
+ /******************************************
358
+ search specific header style
359
+ *******************************************/
360
+ header.search{
361
+ height: 98px;
362
+ position: relative;
363
+ background:url(/images/search-header.png) no-repeat right -40px #EE2A7B;
364
+ }
365
+ header.search.search-flip {
366
+ background: #e9f6fc url(/images/bgr-search-flip.png) no-repeat right top ;
367
+ }
368
+ header.search.search-flop {
369
+ background: #0c2158 url(/images/bgr-search-flop.png) no-repeat right top;
370
+ }
371
+ header.search #user {
372
+ margin-top: 0;
373
+ position: relative;
374
+ top: -10px;
375
+ }
376
+ header.search #dna{
377
+ position: absolute;
378
+ left: 30px;
379
+ top: 60px;
380
+ }
381
+ header.search #user p,
382
+ header.search #user a,
383
+ header.search #dna a,
384
+ header.search .username,
385
+ header.search .stacks{
386
+ color: #ff6b04 !important;
387
+ }
388
+ header.search #dna a{
389
+ font-size: 8px;
390
+ }
391
+ header.search #user h1{
392
+ display: none;
393
+ }
394
+ /*warning message for search*/
395
+ section.incomplete {
396
+ color: red;
397
+ font-size: 30px;
398
+ line-height: 30px;
399
+ font-weight: bold;
400
+ padding:2px;
401
+ text-align:center;
402
+ }
403
+ /*another warning message for search*/
404
+ section.searchusingdark {
405
+ color: red;
406
+ font-size: 30px;
407
+ line-height: 30px;
408
+ font-weight: bold;
409
+ padding:2px;
410
+ text-align:center;
411
+ }
412
+ /*more search stuff*/
413
+ .cluster_name {
414
+ font-style: italic;
415
+ margin-left: 0px;
416
+ }
417
+ .xsearch .selectors {
418
+ padding-top: 8px;
419
+ }
420
+
421
+ .xsearch .selectors label {
422
+ font-weight: bold;
423
+ text-transform: uppercase;
424
+ }
425
+
426
+ .xsearch .selectors select {
427
+ display: block;
428
+ }
429
+
430
+ /*Info Bar*/
431
+ section#info-bar{
432
+ clear: both;
433
+ padding: 10px 30px;
434
+ border-top: 1px solid #ccc;
435
+ border-bottom: 1px solid #ccc;
436
+ margin: 0 -30px 20px;
437
+ }
438
+ #info-bar ul{
439
+ list-style: none;
440
+ }
441
+
442
+ #info-bar ul li{
443
+ float: left;
444
+ display: inline-block;
445
+ padding-right: 20px;
446
+ }
447
+ #info-bar ul li.heading{
448
+ font-weight: bold;
449
+ padding-right: 10px;
450
+ }
451
+ #info-bar ul li span{
452
+ color: #333;
453
+ font-family: monospace;
454
+ font-size: 12px;
455
+ }
456
+
457
+ /*Main Content*/
458
+ section#main, .display-panel {
459
+ margin-left: 320px;
460
+ background-color: #fff;
461
+ border: 1px solid #ddd;
462
+ margin-bottom: 20px;
463
+ -webkit-box-shadow: 0 2px 0 0 #E7E7E7;
464
+ -moz-box-shadow: 0 2px 0 0 #E7E7E7;
465
+ -ms-box-shadow: 0 2px 0 0 #E7E7E7;
466
+ -o-box-shadow: 0 2px 0 0 #E7E7E7;
467
+ box-shadow: 0 2px 0 0 #E7E7E7;
468
+ -moz-border-radius: 3px;
469
+ -webkit-border-radius: 3px;
470
+ border-radius: 3px;
471
+ }
472
+ #main .heading{
473
+ padding: 4px 20px;
474
+ height: 16px;
475
+ font-weight: normal;
476
+ border-bottom: 1px solid #ccc;
477
+ }
478
+ #main .heading h2{
479
+ font-size: 16px;
480
+ float: left;
481
+ color: #333;
482
+ }
483
+ #main .heading .option{
484
+ float: right;
485
+ font-weight: normal;
486
+ color: #888;
487
+ }
488
+ #main .heading .option input{
489
+ margin: 0 2px 1px 0;
490
+ padding: 0;
491
+ }
492
+
493
+ #main .deploy-panel {
494
+ min-height:150px;
495
+ margin-bottom:20px;
496
+ }
497
+
498
+ .push-topic{
499
+ background-color: #ffffff;
500
+ padding: 5px 12px 20px;
501
+ border: 2px solid #e8e8e8;
502
+ color: #333;
503
+ position: relative;
504
+ margin-bottom:10px;
505
+ }
506
+ .push-topic.hold {
507
+ background-color: #cc0000;
508
+ color: #ccc;
509
+ }
510
+ .push-topic.hold .title span {
511
+ color: white;
512
+ }
513
+ .push-topic.hold .watch A {
514
+ color: yellow;
515
+ }
516
+
517
+ #queue-on-hold {
518
+ text-align: center;
519
+ font-size: 18px;
520
+ font-weight: bold;
521
+ }
522
+
523
+ #main.info {
524
+ padding:10px 10px 0 10px;
525
+ }
526
+ #main.info h2 {
527
+ font-size: 16px;
528
+ font-weight:bold;
529
+ color: black;
530
+
531
+ }
532
+
533
+ .deploy-panel .progress-panel .run-log-console {
534
+ padding-top: 10px
535
+ }
536
+
537
+ .deploy-panel .complete-panel .complete-msg {
538
+ padding-left:150px;
539
+ height:150px;
540
+ }
541
+
542
+
543
+ .deploy-panel .complete-panel .complete-msg .image {
544
+ float:left;
545
+ width:129px;
546
+ height:100px;
547
+ margin-left:-150px;
548
+ background: url('/images/done.jpg');
549
+ }
550
+
551
+ .deploy-panel .complete-panel .complete-msg .message {
552
+ float:left;
553
+ width:100%;
554
+ padding-top:30px;
555
+ font-size:14px;
556
+ line-height:20px;
557
+ }
558
+
559
+
560
+ .push-topic .title{
561
+ margin-right: 125px;
562
+ display: inline-block;
563
+ }
564
+ .push-topic .title span{
565
+ font-weight: bold;
566
+ color: #333;
567
+ }
568
+ .push-topic .waiters {
569
+ display: inline;
570
+ padding-left:7px;
571
+ }
572
+ .log-run{
573
+ position: absolute;
574
+ top: 50%;
575
+ margin-top: -14px;
576
+ right: 20px;
577
+ }
578
+
579
+ #main .log-main{
580
+ padding: 0 0 20px 0;
581
+ }
582
+ .log-msg{
583
+ padding: 16px 20px 20px;
584
+ border-top: 1px solid #ddd;
585
+ }
586
+ .log-msg h3{
587
+ margin-bottom: 5px;
588
+ }
589
+ .log-msg input{
590
+ margin-right: 3px;
591
+ width: 450px;
592
+ }
593
+ #log{
594
+ list-style: none;
595
+ border-top: 1px solid #eee;
596
+ }
597
+ #log li{
598
+ padding: 12px 20px 11px;
599
+ border-bottom: 1px solid #eee;
600
+ }
601
+ #log li a{
602
+ font-weight: bold;
603
+ margin-left: 5px;
604
+ background: #EAF5E0;
605
+ padding: 1px 4px 2px;
606
+ border-radius: 4px;
607
+ text-transform: uppercase;
608
+ font-size: 10px;
609
+ }
610
+ #log li.PRODUCTION{
611
+ background-color: #FAFFEB;
612
+ border-left: 2px solid #7FBF4D;
613
+ padding-left: 18px;
614
+ }
615
+ #log li.CONFIG.PRODUCTION{
616
+ background-color: #F6F6F6;
617
+ border-left: 2px solid #7FBF4D;
618
+ padding-left: 18px;
619
+ }
620
+ #log li.GLOBAL{
621
+ background-color: #FFEFE7;
622
+ border-left: 2px solid #E37757;
623
+ padding-left: 18px;
624
+ }
625
+ #log li .timestamp{
626
+ color: #8594B5;
627
+ background-color: #F1FAFB;
628
+ padding: 3px 4px 1px;
629
+ }
630
+ #log li .env{
631
+ font-weight: bold;
632
+ }
633
+ .log-more{
634
+ padding: 0 20px 20px;
635
+ }
636
+ .log-more a{
637
+ display: block;
638
+ }
639
+ /*Side*/
640
+ aside{
641
+ float: left;
642
+ width: 300px;
643
+ }
644
+ .littleYesno-wrap{
645
+ height: 118px;
646
+ }
647
+ .littleYesno a{
648
+ background-color: #DFFCC0;
649
+ border: 1px solid #BEE69A;
650
+ margin-bottom: 20px;
651
+ -webkit-box-shadow: 0 2px 0 0 #E7E7E7;
652
+ -moz-box-shadow: 0 2px 0 0 #E7E7E7;
653
+ -ms-box-shadow: 0 2px 0 0 #E7E7E7;
654
+ -o-box-shadow: 0 2px 0 0 #E7E7E7;
655
+ box-shadow: 0 2px 0 0 #E7E7E7;
656
+ -moz-border-radius: 3px;
657
+ -webkit-border-radius: 3px;
658
+ border-radius: 3px;
659
+ padding: 16px 20px 16px 47px;
660
+ font-size: 16px;
661
+ font-weight: bold;
662
+ display: block;
663
+ color: #469A03;
664
+ }
665
+ .littleYesno a:hover{
666
+ background-color: #D4F7B1;
667
+ border: 1px solid #BEE69A;
668
+ text-decoration: none;
669
+ }
670
+ .littleYesno .small{
671
+ padding-top: 8px;
672
+ font-size: 12px;
673
+ color: #333;
674
+ }
675
+ .littleYesno .small span{
676
+ display: block;
677
+ font-weight: bold;
678
+ margin-top: 8px;
679
+ }
680
+ .littleYesno .small span.metadata{
681
+ font-weight: normal;
682
+ margin: 0;
683
+ }
684
+ .littleYesno .red a{
685
+ background-color: #FFD7D7;
686
+ border: 1px solid #E6B69A;
687
+ color: #CF4B4B;
688
+ }
689
+ .littleYesno .red a:hover {
690
+ background-color: #FFBCBC;
691
+ border: 1px solid #E69C7D;
692
+ text-decoration: none;
693
+ }
694
+ .littleYesno .black a{
695
+ background-color: #ffcc00;
696
+ border: 1px solid #C6C6C6;
697
+ color: #333;
698
+ }
699
+ .littleYesno .black a:hover {
700
+ background-color: #ffff00;
701
+ border: 1px solid #990000;
702
+ text-decoration: none;
703
+ }
704
+
705
+ .stack-box{
706
+ position: relative;
707
+ background-color: #fff;
708
+ border: 1px solid #ddd;
709
+ margin-bottom: 20px;
710
+ padding: 20px 20px 20px 47px;
711
+ -webkit-box-shadow: 0 2px 0 0 #E7E7E7;
712
+ -moz-box-shadow: 0 2px 0 0 #E7E7E7;
713
+ -ms-box-shadow: 0 2px 0 0 #E7E7E7;
714
+ -o-box-shadow: 0 2px 0 0 #E7E7E7;
715
+ box-shadow: 0 2px 0 0 #E7E7E7;
716
+ -moz-border-radius: 3px;
717
+ -webkit-border-radius: 3px;
718
+ border-radius: 3px;
719
+ }
720
+ .stack-box.princess,
721
+ .stack-box.config_princess {
722
+ background: url('/images/princess.gif') 219px 8px no-repeat #fff;
723
+ }
724
+ .stack-box.last{
725
+ margin-bottom: 80px;
726
+ }
727
+ .stack-box .arrow{
728
+ position: absolute;
729
+ background: url('/images/arrow.png') -15px -13px no-repeat transparent;
730
+ bottom: -15px;
731
+ height: 15px;
732
+ width: 30px;
733
+ left: 130px;
734
+ }
735
+ .stack-box h2{
736
+ font-size: 16px;
737
+ margin-bottom: 5px;
738
+ }
739
+ .stack-box h2 span{
740
+ color: #333;
741
+ font-weight: bold;
742
+ width: 27px;
743
+ display: inline-block;
744
+ margin-left: -27px;
745
+ }
746
+ .stack-box .msg-form{
747
+ margin-top: 8px;
748
+ }
749
+ .stack-box .or {
750
+ text-align:center;
751
+ margin-left:-35px;
752
+ }
753
+ .msg-form label{
754
+ display: inline-block;
755
+ font-weight: bold;
756
+ padding-right: 4px;
757
+ }
758
+
759
+ .stack-box .stack-status{
760
+ font-family: monospace;
761
+ font-size: 14px;
762
+ }
763
+ .stack-push{
764
+ margin: 18px 0 0 -3px;
765
+ }
766
+ .stack-push button{
767
+ width: 209px;
768
+ }
769
+ /*links*/
770
+ .links{
771
+ margin-top: 18px;
772
+ }
773
+ .links h2{
774
+ font-size: 16px;
775
+ margin-bottom: 18px;
776
+ }
777
+ .links li {
778
+ list-style-type: none;
779
+ }
780
+ .links a {
781
+ color: #999;
782
+ }
783
+
784
+ /* host lists */
785
+ .hosts{
786
+ margin-top: 18px;
787
+ }
788
+ .hosts h3{
789
+ font-size: 14px;
790
+ margin-bottom: 4px;
791
+ }
792
+ .hosts li {
793
+ list-style-type: none;
794
+ margin-left: 10px;
795
+ }
796
+ .hosts a {
797
+ color: #999;
798
+ }
799
+
800
+ /*clear template*/
801
+ .stack-box#clear-templates{
802
+ background: #F4F4F4;
803
+ }
804
+
805
+ footer{
806
+ width: 100%;
807
+ clear: left;
808
+ float: left;
809
+ margin: 10px 0 30px;
810
+ padding-top: 20px;
811
+ border-top: 1px solid #ccc;
812
+ }
813
+ footer .etsy{
814
+ float: left;
815
+ width: 320px;
816
+ }
817
+ footer .source{
818
+ float: left;
819
+ }
820
+
821
+ /*log table*/
822
+
823
+ table#log{
824
+ width: 100%;
825
+ background-color: #FFFFFF;
826
+ border: 1px solid #DDDDDD;
827
+ border-radius: 3px 3px 3px 3px;
828
+ box-shadow: 0 2px 0 0 #E7E7E7;
829
+ margin-bottom: 20px;
830
+ }
831
+ table#log th, td{
832
+ text-align: left;
833
+ padding: 8px 8px;
834
+ border-bottom: 1px solid #eee;
835
+ }
836
+ table#log th{
837
+ font-weight: bold;
838
+ color: #333;
839
+ padding: 14px 8px;
840
+ border-bottom: 1px solid #ddd;
841
+
842
+ }
843
+ table#log .timestamp{
844
+ background-color: #F1FAFB;
845
+ color: #8594B5;
846
+ padding: 3px 4px 1px;
847
+ }
848
+ table#log .PRODUCTION{
849
+ background-color: #FAFFEB;
850
+ border-left: 2px solid #7FBF4D;
851
+ padding-left: 18px;
852
+ }
853
+ table#log .CONFIG.PRODUCTION{
854
+ background-color: #F6F6F6;
855
+ border-left: 2px solid #7FBF4D;
856
+ padding-left: 18px;
857
+ }
858
+ table#log .GLOBAL {
859
+ background-color: #FFEFE7;
860
+ border-left: 2px solid #E37757;
861
+ padding-left: 18px;
862
+ }
863
+
864
+ /*Run log*/
865
+ .run-log-normal{
866
+ padding: 18px 20px 18px;
867
+ }
868
+ #run-log{
869
+ width: 100%;
870
+ background-color: #FFFFFF;
871
+ border: 1px solid #DDDDDD;
872
+ border-radius: 3px 3px 3px 3px;
873
+ box-shadow: 0 2px 0 0 #E7E7E7;
874
+ margin-bottom: 20px;
875
+ list-style: none;
876
+ }
877
+ #run-log li{
878
+ text-align: left;
879
+ padding: 8px 20px;
880
+ border-bottom: 1px solid #eee;
881
+ }
882
+ #run-log .timestamp-normal{
883
+ background-color: #F1FAFB;
884
+ color: #8594B5;
885
+ padding: 3px 4px 1px;
886
+ }
887
+
888
+ /*stats*/
889
+ section#main.stats{
890
+ margin-left: 0;
891
+ }
892
+ .stats-main{
893
+ padding: 20px;
894
+ }
895
+ .stats-main p#choices {
896
+ padding-top:20px;
897
+ }
898
+ .stats-main .holder {
899
+ height:360px;
900
+ overflow:auto;
901
+ padding-top:20px;
902
+ }
903
+ .stats-main #choices h3 ,
904
+ .stats-main .holder div.stats {
905
+ display:inline-block;
906
+ width:180px;
907
+ }
908
+ .stats h3 {
909
+ text-transform:capitalize;
910
+ color:black;
911
+ border-bottom:1px solid black;
912
+ font-size:14px;
913
+ font-weight:bold;
914
+ }
915
+
916
+ /*config*/
917
+ section#main.config{
918
+ margin-left: 0;
919
+ }
920
+ .config .pushers{
921
+ padding: 20px;
922
+ }
923
+ .config .pushers p{
924
+ font-size: 16px;
925
+ font-weight: bold;
926
+ margin-bottom: 20px;
927
+ }
928
+ .config .pushers h3{
929
+ margin-bottom: 18px;
930
+ }
931
+ .pushers textarea#production{
932
+ font: normal 12px monospace;
933
+ line-height: 16px;
934
+ width: auto;
935
+ }
936
+ .config .pushers button{
937
+ padding-left: 20px;
938
+ padding-right: 20px;
939
+ }
940
+
941
+ /*consol*/
942
+ .code {
943
+ background-color: #222;
944
+ color: #ccc;
945
+ font-family: monospace;
946
+ padding: 8px;
947
+ }
948
+
949
+ .code .command {
950
+ border-top: 1px solid #555;
951
+ padding: 20px 0;
952
+ }
953
+ .code .command h4 {
954
+ color: #fff;
955
+ font-weight: normal;
956
+ }
957
+ .code .command p {
958
+ margin: 10px;
959
+ }
960
+ .code .stderr {
961
+ color: #EE3434;
962
+ font-size: 12px;
963
+ white-space: pre;
964
+ }
965
+ .code .info_msg {
966
+ color: #FFFFFF;
967
+ font-size: 12px;
968
+ white-space: pre;
969
+ }
970
+ .hidden {
971
+ display:none;
972
+ }
973
+ span.watch {
974
+ float:right;
975
+ width: 70px;
976
+ }
977
+
978
+
979
+ button#unlockstack {
980
+ color: white;
981
+ font-weight:bold;
982
+ background-color:red;
983
+ border:1px solid white;
984
+ font-size:12px;
985
+ float: right;
986
+ }
987
+
988
+ .runlogpane {
989
+ width: 100%;
990
+ background-color: black;
991
+ margin-bottom: 10px;
992
+ }
993
+
994
+ #diff h3 {
995
+ font-size:18px;
996
+ font-weight: bold;
997
+ color: gray;
998
+ }
999
+ #diff .codediff {
1000
+ padding: 10px;
1001
+ border:1px solid #ddd;
1002
+ }
1003
+ span.diffinfo {
1004
+ margin-bottom:8px;
1005
+ display:block;
1006
+ }
1007
+
1008
+ div.pending-diff {
1009
+ background-color: white;
1010
+ padding:5px;
1011
+ margin-bottom:10px;
1012
+ }
1013
+
1014
+ div#override_msg a {
1015
+ text-decoration: underline;
1016
+ }
1017
+
1018
+ div#override_msg strong {
1019
+ font-weight: bold;
1020
+ }
1021
+ div#override_msg.floater{
1022
+ z-index: 1000;
1023
+ position: fixed;
1024
+ top: 210px;
1025
+ left: 340px;
1026
+ width: 500px;
1027
+ height: 300px;
1028
+ background-color:white;
1029
+ border:5px solid red;
1030
+ padding:10px;
1031
+
1032
+ font-size: 200%;
1033
+ line-height: 200%;
1034
+ }
1035
+
1036
+ div#override_msg div.closer {
1037
+ font-size:14px;
1038
+ text-align:center;
1039
+ text-decoration: underline;
1040
+ }
1041
+
1042
+ div#not-allowed-to-prod {
1043
+ background:#454545;
1044
+ color:white;
1045
+ text-align:center;
1046
+ font-size:32px;
1047
+ line-height:1.3;
1048
+ padding:1em;
1049
+ }
1050
+
1051
+
1052
+ div#not-allowed-to-prod span {
1053
+ display:inline;
1054
+ font-family: monospace, monaco;
1055
+ color:#aaa;
1056
+ }
1057
+
1058
+ div.lockbox {
1059
+ text-align: center;
1060
+ padding:8px 8px;
1061
+ color: black;
1062
+ margin-bottom: 10px;
1063
+ background-color: white;
1064
+ }
1065
+
1066
+
1067
+ div.lockbox button.button {
1068
+
1069
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#990000), to(#5e9e2e));
1070
+ background-image: -webkit-linear-gradient(top, #cc0000, #990000);
1071
+ background-image: -moz-linear-gradient(top, #cc0000, #990000);
1072
+ background-image: -ms-linear-gradient(top, #990007, #cc0000);
1073
+ background-image: -o-linear-gradient(top, #cc0000, #990000);
1074
+ background-image: linear-gradient(top, #cc0000, #990000);
1075
+ border: 0;
1076
+
1077
+ }
1078
+ div.lockbox a {
1079
+ color: #333;
1080
+ }
1081
+
1082
+ div.tests_are_running {
1083
+ padding:2px 0;
1084
+ height: 20px;
1085
+ line-height: 16px;
1086
+ font-size: 14px;
1087
+ background-color: #ffcc00;
1088
+ color: black;
1089
+ font-weight: bold;
1090
+ text-align: center;
1091
+ margin: 0 0 -17px -3px;
1092
+
1093
+ border-radius: 3px;
1094
+ -moz-border-radius: 3px;
1095
+ -webkit-border-radius: 3px;
1096
+
1097
+ }
1098
+
1099
+ div.tests_are_running img {
1100
+ margin-top:1px;
1101
+ display:inline-block;
1102
+ height:16px;
1103
+ width: 16px;
1104
+ padding: 0;
1105
+ border:0;
1106
+
1107
+ }
1108
+ div.lockbox p.red {
1109
+ font-weight: bold;
1110
+ background-color: #FFD7D7;
1111
+
1112
+ padding: 8px;
1113
+ }
1114
+ div.lockbox p.red {
1115
+ font-size: 14px;
1116
+ background-color: #FFD7D7;
1117
+ border: 1px solid #E6B69A;
1118
+ color: #CF4B4B;
1119
+ }
1120
+ div.lockbox p.red span.small {
1121
+ font-size: 11px;
1122
+ }
1123
+
1124
+ p.red {
1125
+ color: #CF4B4B;
1126
+ }
1127
+
1128
+ header.web_config {
1129
+ background-color: #3b5998;
1130
+ }
1131
+
1132
+ /* Stack Index Page */
1133
+
1134
+ .stack-list {
1135
+ margin-top: 20px;
1136
+ -webkit-column-width: 220px;
1137
+ -moz-column-width: 220px;
1138
+ height: 420px;
1139
+ }
1140
+
1141
+ .pinned-stack-list {
1142
+ font-size: 28px;
1143
+ line-height: 32px;
1144
+ margin-right: 28px;
1145
+ padding-left: 20px;
1146
+ }
1147
+
1148
+ .pinned-stack-list li {
1149
+ list-style: none;
1150
+ border-bottom: 1px solid rgb(221,221,221);
1151
+ margin-bottom: 10px;
1152
+ }
1153
+
1154
+ .pinned-stack-list li.last {
1155
+ border-bottom: none
1156
+ }
1157
+
1158
+ .pinned-stack-list h1 a {
1159
+ display: block;
1160
+ margin-bottom: 7px;
1161
+ border-radius: 3px;
1162
+ padding-left: 7px;
1163
+ }
1164
+
1165
+ .pinned-stack-list h1 a:hover {
1166
+ text-decoration: none;
1167
+ text-shadow: 1px 1px 2px #CCC;
1168
+ background-color: #D4FCC0;
1169
+ }
1170
+
1171
+ .stack-list.stack-box {
1172
+ padding-left: 20px;
1173
+ }
1174
+
1175
+ .stack-list li {
1176
+ font-size: 18px;
1177
+ line-height: 28px;
1178
+ list-style: none;
1179
+ }
1180
+
1181
+ .stack-list a {
1182
+ display: block;
1183
+ border-radius: 3px;
1184
+ padding-left: 7px;
1185
+ }
1186
+
1187
+ .stack-list a:hover {
1188
+ text-decoration: none;
1189
+ text-shadow: 1px 1px 2px #CCC;
1190
+ background-color: #D4FCC0;
1191
+ }
1192
+
1193
+ .index-side {
1194
+ float: left;
1195
+ }
1196
+
1197
+ .index-side .littleYesno {
1198
+ width: 170px;
1199
+ line-height: 18px;
1200
+ }
1201
+
1202
+ .index-side .littleYesno a {
1203
+ padding-left: 20px;
1204
+ }
1205
+
1206
+ /* deploys_status page */
1207
+ .deploys-listing-heading{
1208
+ font-weight: bold;
1209
+ }
1210
+
1211
+ .extraction_in_progress {
1212
+ background-color: #ff2626;
1213
+ color: #ffffff !important;
1214
+ font-size: 14px;
1215
+ font-weight: bold;
1216
+ padding-left: 20px;
1217
+ margin-bottom: 10px;
1218
+ }
1219
+
1220
+ .extraction_in_progress ul {
1221
+ margin-left: 50px;
1222
+ }
1223
+