etsy-deployinator 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+