rails_wink 0.1.0
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.
- data/LICENSE +20 -0
- data/README.md +37 -0
- data/Rakefile +25 -0
- data/app/assets/javascripts/rails_wink/application.js +3 -0
- data/app/assets/javascripts/rails_wink/wink_modernizr.js +713 -0
- data/app/assets/stylesheets/rails_wink/application.css +4 -0
- data/app/assets/stylesheets/rails_wink/bootstrap.min.css +202 -0
- data/app/controllers/rails_wink/application_controller.rb +4 -0
- data/app/controllers/rails_wink/wink_controller.rb +28 -0
- data/app/mailers/rails_wink/wink_mailer.rb +19 -0
- data/app/views/layouts/rails_wink/application.html.erb +21 -0
- data/app/views/rails_wink/wink/index.html.erb +67 -0
- data/app/views/rails_wink/wink/submit.html.erb +1 -0
- data/app/views/rails_wink/wink_mailer/report.text.erb +7 -0
- data/config/routes.rb +5 -0
- data/lib/generators/rails_wink/config_generator.rb +13 -0
- data/lib/generators/rails_wink/templates/wink.yml +2 -0
- data/lib/rails_wink/engine.rb +11 -0
- data/lib/rails_wink/version.rb +3 -0
- data/lib/rails_wink.rb +13 -0
- metadata +90 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap v2.0.3
|
|
3
|
+
*
|
|
4
|
+
* Copyright 2012 Twitter, Inc
|
|
5
|
+
* Licensed under the Apache License v2.0
|
|
6
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
*
|
|
8
|
+
* Designed and built with all the love in the world @twitter by @mdo and @fat.
|
|
9
|
+
*/
|
|
10
|
+
.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
|
|
11
|
+
.clearfix:after{clear:both;}
|
|
12
|
+
.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
|
|
13
|
+
.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
|
|
14
|
+
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
|
|
15
|
+
audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
|
|
16
|
+
audio:not([controls]){display:none;}
|
|
17
|
+
html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
|
|
18
|
+
a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
|
|
19
|
+
a:hover,a:active{outline:0;}
|
|
20
|
+
sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
|
|
21
|
+
sup{top:-0.5em;}
|
|
22
|
+
sub{bottom:-0.25em;}
|
|
23
|
+
img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
|
|
24
|
+
button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
|
|
25
|
+
button,input{*overflow:visible;line-height:normal;}
|
|
26
|
+
button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
|
|
27
|
+
button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
|
|
28
|
+
input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
|
|
29
|
+
input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
|
|
30
|
+
textarea{overflow:auto;vertical-align:top;}
|
|
31
|
+
body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;}
|
|
32
|
+
a{color:#0088cc;text-decoration:none;}
|
|
33
|
+
a:hover{color:#005580;text-decoration:underline;}
|
|
34
|
+
.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";}
|
|
35
|
+
.container:after{clear:both;}
|
|
36
|
+
.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";}
|
|
37
|
+
.container-fluid:after{clear:both;}
|
|
38
|
+
p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;}
|
|
39
|
+
.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;}
|
|
40
|
+
h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;}
|
|
41
|
+
h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;}
|
|
42
|
+
h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;}
|
|
43
|
+
h3{font-size:18px;line-height:27px;}h3 small{font-size:14px;}
|
|
44
|
+
h4,h5,h6{line-height:18px;}
|
|
45
|
+
h4{font-size:14px;}h4 small{font-size:12px;}
|
|
46
|
+
h5{font-size:12px;}
|
|
47
|
+
h6{font-size:11px;color:#999999;text-transform:uppercase;}
|
|
48
|
+
.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;}
|
|
49
|
+
.page-header h1{line-height:1;}
|
|
50
|
+
ul,ol{padding:0;margin:0 0 9px 25px;}
|
|
51
|
+
ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
|
|
52
|
+
ul{list-style:disc;}
|
|
53
|
+
ol{list-style:decimal;}
|
|
54
|
+
li{line-height:18px;}
|
|
55
|
+
ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
|
|
56
|
+
dl{margin-bottom:18px;}
|
|
57
|
+
dt,dd{line-height:18px;}
|
|
58
|
+
dt{font-weight:bold;line-height:17px;}
|
|
59
|
+
dd{margin-left:9px;}
|
|
60
|
+
.dl-horizontal dt{float:left;width:120px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
61
|
+
.dl-horizontal dd{margin-left:130px;}
|
|
62
|
+
hr{margin:18px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
|
|
63
|
+
strong{font-weight:bold;}
|
|
64
|
+
em{font-style:italic;}
|
|
65
|
+
.muted{color:#999999;}
|
|
66
|
+
abbr[title]{cursor:help;border-bottom:1px dotted #ddd;}
|
|
67
|
+
abbr.initialism{font-size:90%;text-transform:uppercase;}
|
|
68
|
+
blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;}
|
|
69
|
+
blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
|
|
70
|
+
blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
|
|
71
|
+
q:before,q:after,blockquote:before,blockquote:after{content:"";}
|
|
72
|
+
address{display:block;margin-bottom:18px;font-style:normal;line-height:18px;}
|
|
73
|
+
small{font-size:100%;}
|
|
74
|
+
cite{font-style:normal;}
|
|
75
|
+
form{margin:0 0 18px;}
|
|
76
|
+
fieldset{padding:0;margin:0;border:0;}
|
|
77
|
+
legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;}legend small{font-size:13.5px;color:#999999;}
|
|
78
|
+
label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px;}
|
|
79
|
+
input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
|
|
80
|
+
label{display:block;margin-bottom:5px;color:#333333;}
|
|
81
|
+
input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;background-color:#ffffff;border:1px solid #cccccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
|
|
82
|
+
.uneditable-textarea{width:auto;height:auto;}
|
|
83
|
+
label input,label textarea,label select{display:block;}
|
|
84
|
+
input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;background-color:transparent;border:0 \9;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
|
|
85
|
+
input[type="image"]{border:0;}
|
|
86
|
+
input[type="file"]{width:auto;padding:initial;line-height:initial;background-color:#ffffff;background-color:initial;border:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
|
87
|
+
input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;}
|
|
88
|
+
select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;}
|
|
89
|
+
input[type="file"]{line-height:18px \9;}
|
|
90
|
+
select{width:220px;background-color:#ffffff;}
|
|
91
|
+
select[multiple],select[size]{height:auto;}
|
|
92
|
+
input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
|
93
|
+
textarea{height:auto;}
|
|
94
|
+
input[type="hidden"]{display:none;}
|
|
95
|
+
.radio,.checkbox{min-height:18px;padding-left:18px;}
|
|
96
|
+
.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px;}
|
|
97
|
+
.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
|
|
98
|
+
.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
|
|
99
|
+
.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
|
|
100
|
+
input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;}
|
|
101
|
+
input:focus,textarea:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);}
|
|
102
|
+
input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
|
103
|
+
.input-mini{width:60px;}
|
|
104
|
+
.input-small{width:90px;}
|
|
105
|
+
.input-medium{width:150px;}
|
|
106
|
+
.input-large{width:210px;}
|
|
107
|
+
.input-xlarge{width:270px;}
|
|
108
|
+
.input-xxlarge{width:530px;}
|
|
109
|
+
input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;}
|
|
110
|
+
input,textarea,.uneditable-input{margin-left:0;}
|
|
111
|
+
input.span12, textarea.span12, .uneditable-input.span12{width:930px;}
|
|
112
|
+
input.span11, textarea.span11, .uneditable-input.span11{width:850px;}
|
|
113
|
+
input.span10, textarea.span10, .uneditable-input.span10{width:770px;}
|
|
114
|
+
input.span9, textarea.span9, .uneditable-input.span9{width:690px;}
|
|
115
|
+
input.span8, textarea.span8, .uneditable-input.span8{width:610px;}
|
|
116
|
+
input.span7, textarea.span7, .uneditable-input.span7{width:530px;}
|
|
117
|
+
input.span6, textarea.span6, .uneditable-input.span6{width:450px;}
|
|
118
|
+
input.span5, textarea.span5, .uneditable-input.span5{width:370px;}
|
|
119
|
+
input.span4, textarea.span4, .uneditable-input.span4{width:290px;}
|
|
120
|
+
input.span3, textarea.span3, .uneditable-input.span3{width:210px;}
|
|
121
|
+
input.span2, textarea.span2, .uneditable-input.span2{width:130px;}
|
|
122
|
+
input.span1, textarea.span1, .uneditable-input.span1{width:50px;}
|
|
123
|
+
input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;border-color:#ddd;}
|
|
124
|
+
input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;}
|
|
125
|
+
.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
|
|
126
|
+
.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e;}
|
|
127
|
+
.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
|
|
128
|
+
.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
|
|
129
|
+
.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;}
|
|
130
|
+
.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
|
|
131
|
+
.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
|
|
132
|
+
.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b;}
|
|
133
|
+
.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
|
|
134
|
+
input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
|
|
135
|
+
.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";}
|
|
136
|
+
.form-actions:after{clear:both;}
|
|
137
|
+
.uneditable-input{overflow:hidden;white-space:nowrap;cursor:not-allowed;background-color:#ffffff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);}
|
|
138
|
+
:-moz-placeholder{color:#999999;}
|
|
139
|
+
::-webkit-input-placeholder{color:#999999;}
|
|
140
|
+
.help-block,.help-inline{color:#555555;}
|
|
141
|
+
.help-block{display:block;margin-bottom:9px;}
|
|
142
|
+
.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
|
|
143
|
+
.input-prepend,.input-append{margin-bottom:5px;}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:middle;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{z-index:2;}
|
|
144
|
+
.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;}
|
|
145
|
+
.input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;height:18px;min-width:16px;padding:4px 5px;font-weight:normal;line-height:18px;text-align:center;text-shadow:0 1px 0 #ffffff;vertical-align:middle;background-color:#eeeeee;border:1px solid #ccc;}
|
|
146
|
+
.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
|
|
147
|
+
.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;}
|
|
148
|
+
.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
|
|
149
|
+
.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
|
150
|
+
.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
|
151
|
+
.input-append .uneditable-input{border-right-color:#ccc;border-left-color:#eee;}
|
|
152
|
+
.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
|
|
153
|
+
.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
|
|
154
|
+
.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
|
155
|
+
.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
|
|
156
|
+
.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;}
|
|
157
|
+
.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;}
|
|
158
|
+
.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
|
|
159
|
+
.form-search label,.form-inline label{display:inline-block;}
|
|
160
|
+
.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
|
|
161
|
+
.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
|
|
162
|
+
.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;}
|
|
163
|
+
.control-group{margin-bottom:9px;}
|
|
164
|
+
legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate;}
|
|
165
|
+
.form-horizontal .control-group{margin-bottom:18px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";}
|
|
166
|
+
.form-horizontal .control-group:after{clear:both;}
|
|
167
|
+
.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right;}
|
|
168
|
+
.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:160px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:160px;}
|
|
169
|
+
.form-horizontal .help-block{margin-top:9px;margin-bottom:0;}
|
|
170
|
+
.form-horizontal .form-actions{padding-left:160px;}
|
|
171
|
+
.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:13px;line-height:18px;*line-height:20px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #cccccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
|
|
172
|
+
.btn:active,.btn.active{background-color:#cccccc \9;}
|
|
173
|
+
.btn:first-child{*margin-left:0;}
|
|
174
|
+
.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
|
|
175
|
+
.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
|
|
176
|
+
.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
|
|
177
|
+
.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
|
178
|
+
.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
|
|
179
|
+
.btn-large [class^="icon-"]{margin-top:1px;}
|
|
180
|
+
.btn-small{padding:5px 9px;font-size:11px;line-height:16px;}
|
|
181
|
+
.btn-small [class^="icon-"]{margin-top:-1px;}
|
|
182
|
+
.btn-mini{padding:2px 6px;font-size:11px;line-height:14px;}
|
|
183
|
+
.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
|
|
184
|
+
.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
|
|
185
|
+
.btn{border-color:#ccc;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
|
|
186
|
+
.btn-primary{background-color:#0074cc;background-image:-moz-linear-gradient(top, #0088cc, #0055cc);background-image:-ms-linear-gradient(top, #0088cc, #0055cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));background-image:-webkit-linear-gradient(top, #0088cc, #0055cc);background-image:-o-linear-gradient(top, #0088cc, #0055cc);background-image:linear-gradient(top, #0088cc, #0055cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);border-color:#0055cc #0055cc #003580;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0055cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0055cc;*background-color:#004ab3;}
|
|
187
|
+
.btn-primary:active,.btn-primary.active{background-color:#004099 \9;}
|
|
188
|
+
.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505;}
|
|
189
|
+
.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
|
|
190
|
+
.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a;}
|
|
191
|
+
.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
|
|
192
|
+
.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249;}
|
|
193
|
+
.btn-success:active,.btn-success.active{background-color:#408140 \9;}
|
|
194
|
+
.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0;}
|
|
195
|
+
.btn-info:active,.btn-info.active{background-color:#24748c \9;}
|
|
196
|
+
.btn-inverse{background-color:#414141;background-image:-moz-linear-gradient(top, #555555, #222222);background-image:-ms-linear-gradient(top, #555555, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));background-image:-webkit-linear-gradient(top, #555555, #222222);background-image:-o-linear-gradient(top, #555555, #222222);background-image:linear-gradient(top, #555555, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222222;*background-color:#151515;}
|
|
197
|
+
.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
|
|
198
|
+
button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
|
|
199
|
+
button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
|
|
200
|
+
button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
|
|
201
|
+
button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
|
|
202
|
+
@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top,.navbar-fixed-bottom{margin-left:-20px;margin-right:-20px;} .container-fluid{padding:0;} .dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} .dl-horizontal dd{margin-left:0;} .container{width:auto;} .row-fluid{width:100%;} .row,.thumbnails{margin-left:0;} [class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:auto;margin-left:0;} .input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.762430939%;*margin-left:2.709239449638298%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .span12{width:99.999999993%;*width:99.9468085036383%;} .row-fluid .span11{width:91.436464082%;*width:91.38327259263829%;} .row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%;} .row-fluid .span9{width:74.30939226%;*width:74.25620077063829%;} .row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%;} .row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%;} .row-fluid .span6{width:48.618784527%;*width:48.5655930376383%;} .row-fluid .span5{width:40.055248616%;*width:40.0020571266383%;} .row-fluid .span4{width:31.491712705%;*width:31.4385212156383%;} .row-fluid .span3{width:22.928176794%;*width:22.874985304638297%;} .row-fluid .span2{width:14.364640883%;*width:14.311449393638298%;} .row-fluid .span1{width:5.801104972%;*width:5.747913482638298%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:714px;} input.span11, textarea.span11, .uneditable-input.span11{width:652px;} input.span10, textarea.span10, .uneditable-input.span10{width:590px;} input.span9, textarea.span9, .uneditable-input.span9{width:528px;} input.span8, textarea.span8, .uneditable-input.span8{width:466px;} input.span7, textarea.span7, .uneditable-input.span7{width:404px;} input.span6, textarea.span6, .uneditable-input.span6{width:342px;} input.span5, textarea.span5, .uneditable-input.span5{width:280px;} input.span4, textarea.span4, .uneditable-input.span4{width:218px;} input.span3, textarea.span3, .uneditable-input.span3{width:156px;} input.span2, textarea.span2, .uneditable-input.span2{width:94px;} input.span1, textarea.span1, .uneditable-input.span1{width:32px;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564%;*margin-left:2.510911074638298%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%;} .row-fluid .span10{width:82.905982906%;*width:82.8527914166383%;} .row-fluid .span9{width:74.358974359%;*width:74.30578286963829%;} .row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%;} .row-fluid .span7{width:57.264957265%;*width:57.2117657756383%;} .row-fluid .span6{width:48.717948718%;*width:48.6647572286383%;} .row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%;} .row-fluid .span4{width:31.623931624%;*width:31.5707401346383%;} .row-fluid .span3{width:23.076923077%;*width:23.0237315876383%;} .row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%;} .row-fluid .span1{width:5.982905983%;*width:5.929714493638298%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:1160px;} input.span11, textarea.span11, .uneditable-input.span11{width:1060px;} input.span10, textarea.span10, .uneditable-input.span10{width:960px;} input.span9, textarea.span9, .uneditable-input.span9{width:860px;} input.span8, textarea.span8, .uneditable-input.span8{width:760px;} input.span7, textarea.span7, .uneditable-input.span7{width:660px;} input.span6, textarea.span6, .uneditable-input.span6{width:560px;} input.span5, textarea.span5, .uneditable-input.span5{width:460px;} input.span4, textarea.span4, .uneditable-input.span4{width:360px;} input.span3, textarea.span3, .uneditable-input.span3{width:260px;} input.span2, textarea.span2, .uneditable-input.span2{width:160px;} input.span1, textarea.span1, .uneditable-input.span1{width:60px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;} .row-fluid .thumbnails{margin-left:0;}}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module RailsWink
|
|
2
|
+
class WinkController < ApplicationController
|
|
3
|
+
def index
|
|
4
|
+
@email = params[:email] || ''
|
|
5
|
+
|
|
6
|
+
render
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def submit
|
|
10
|
+
email = params[:email_addr]
|
|
11
|
+
description = params[:desc]
|
|
12
|
+
jsobj = params[:json]
|
|
13
|
+
|
|
14
|
+
@msg = 'Thanks, that should help!'
|
|
15
|
+
|
|
16
|
+
if jsobj.nil?
|
|
17
|
+
@msg = "Unfortunately that didn't work."
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
if jsobj && jsobj = JSON.parse(jsobj)
|
|
21
|
+
WinkMailer.report(jsobj, description, email).deliver
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
render
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module RailsWink
|
|
2
|
+
class WinkMailer < ActionMailer::Base
|
|
3
|
+
default :from => 'none@localhost'
|
|
4
|
+
|
|
5
|
+
def report(datadump, desc = '[No description provided]', from = nil)
|
|
6
|
+
@datadump = datadump
|
|
7
|
+
@desc = desc
|
|
8
|
+
@from = from
|
|
9
|
+
|
|
10
|
+
subject = ''.tap do |sub|
|
|
11
|
+
sub << "#{RailsWink.config[:prefix]}: " if RailsWink.config[:prefix]
|
|
12
|
+
sub << "Bug Report"
|
|
13
|
+
sub << " (from #{@from})" if !@from.nil?
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
mail :to => RailsWink.config[:to], :subject => subject, :from => @from
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>RailsWink</title>
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">
|
|
7
|
+
<%= stylesheet_link_tag "rails_wink/application", :media => "all" %>
|
|
8
|
+
<%= javascript_include_tag "rails_wink/application" %>
|
|
9
|
+
<%= csrf_meta_tags %>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<div class="container">
|
|
13
|
+
<div class="page-header">
|
|
14
|
+
<h1>Report A Bug</h1>
|
|
15
|
+
</div>
|
|
16
|
+
<div>
|
|
17
|
+
<%= yield %>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</body>
|
|
21
|
+
</html>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<form method="POST" action="<%= url_for submit_url %>" class="form-horizontal">
|
|
2
|
+
<fieldset>
|
|
3
|
+
<div class="control-group">
|
|
4
|
+
<label class="control-label" for="email_addr">Your E-mail:</label>
|
|
5
|
+
<div class="controls">
|
|
6
|
+
<input type="email" id="email_addr" name="email_addr" class="input-xlarge" value="<%= @email %>">
|
|
7
|
+
<p class="help-block">Optional. This allows us to contact you for follow-up.</p>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="control-group">
|
|
11
|
+
<label class="control-label" for="desc">Description:</label>
|
|
12
|
+
<div class="controls">
|
|
13
|
+
<textarea id="desc" class="input-xlarge" name="desc" rows="3"></textarea>
|
|
14
|
+
<p class="help-block">Please describe the bug you encountered.</p>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="control-group">
|
|
18
|
+
<div class="controls">
|
|
19
|
+
<label class="checkbox">
|
|
20
|
+
<input type="checkbox" id="show_json">
|
|
21
|
+
Show me what information is being collected
|
|
22
|
+
</label>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="control-group" id="json_data">
|
|
26
|
+
<div class="controls">
|
|
27
|
+
<textarea id="json" class="input-xlarge" name="json" rows="10" readonly></textarea>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="form-actions">
|
|
31
|
+
<button type="submit" class="btn btn-primary">Submit Report</button>
|
|
32
|
+
<button class="btn">Cancel</button>
|
|
33
|
+
</div>
|
|
34
|
+
</fieldset>
|
|
35
|
+
</form>
|
|
36
|
+
|
|
37
|
+
<script>
|
|
38
|
+
$(function() {
|
|
39
|
+
var chk = $('#show_json');
|
|
40
|
+
|
|
41
|
+
chk.bind('change', function() {
|
|
42
|
+
$('#json_data').toggle();
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
if (!chk.is(':checked')) {
|
|
46
|
+
$('#json_data').hide();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
var profile = {
|
|
50
|
+
screen: {},
|
|
51
|
+
browser: {},
|
|
52
|
+
modernizr: {}
|
|
53
|
+
};
|
|
54
|
+
profile.screen.width = window.screen.width;
|
|
55
|
+
profile.screen.height = window.screen.height;
|
|
56
|
+
|
|
57
|
+
profile.browser.userAgent = window.navigator.userAgent;
|
|
58
|
+
profile.browser.width = window.innerWidth;
|
|
59
|
+
profile.browser.height = window.innerHeight;
|
|
60
|
+
profile.browser.availWidth = window.screen.availWidth;
|
|
61
|
+
profile.browser.availHeight = window.screen.availHeight;
|
|
62
|
+
|
|
63
|
+
profile.modernizr = winkModernizr;
|
|
64
|
+
|
|
65
|
+
$('#json').val(JSON.stringify(profile, undefined, 4));
|
|
66
|
+
});
|
|
67
|
+
</script>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<h2><%= @msg %></h2>
|
data/config/routes.rb
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'rails/generators'
|
|
2
|
+
|
|
3
|
+
module RailsWink
|
|
4
|
+
module Generators
|
|
5
|
+
class ConfigGenerator < Rails::Generators::Base
|
|
6
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
7
|
+
|
|
8
|
+
def wink_mailer_config
|
|
9
|
+
copy_file "wink.yml", "config/wink.yml"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module RailsWink
|
|
2
|
+
class Engine < ::Rails::Engine
|
|
3
|
+
isolate_namespace RailsWink
|
|
4
|
+
engine_name :rails_wink
|
|
5
|
+
|
|
6
|
+
initializer 'rails_wink.parse_config' do |app|
|
|
7
|
+
ymlfile = YAML::load_file(Rails.root.join('config', 'wink.yml'))
|
|
8
|
+
RailsWink.parse_config ymlfile
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
data/lib/rails_wink.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rails_wink
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- Darryl Pogue
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2012-05-28 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: rails
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
18
|
+
requirements:
|
|
19
|
+
- - ~>
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: 3.2.3
|
|
22
|
+
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ~>
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: 3.2.3
|
|
30
|
+
description: ! "Wink is a simple, open-source tool for web developers built to save
|
|
31
|
+
them time and to spare their clients the painful exercise of providing browser details
|
|
32
|
+
during debugging.\n\n Originally written for PHP by Denim&Steel, this is a Rails
|
|
33
|
+
3 mountable engine that can be used as part of any Rails application.\n "
|
|
34
|
+
email:
|
|
35
|
+
- darryl@dpogue.ca
|
|
36
|
+
executables: []
|
|
37
|
+
extensions: []
|
|
38
|
+
extra_rdoc_files: []
|
|
39
|
+
files:
|
|
40
|
+
- app/mailers/rails_wink/wink_mailer.rb
|
|
41
|
+
- app/views/layouts/rails_wink/application.html.erb
|
|
42
|
+
- app/views/rails_wink/wink/index.html.erb
|
|
43
|
+
- app/views/rails_wink/wink/submit.html.erb
|
|
44
|
+
- app/views/rails_wink/wink_mailer/report.text.erb
|
|
45
|
+
- app/controllers/rails_wink/application_controller.rb
|
|
46
|
+
- app/controllers/rails_wink/wink_controller.rb
|
|
47
|
+
- app/assets/javascripts/rails_wink/wink_modernizr.js
|
|
48
|
+
- app/assets/javascripts/rails_wink/application.js
|
|
49
|
+
- app/assets/stylesheets/rails_wink/bootstrap.min.css
|
|
50
|
+
- app/assets/stylesheets/rails_wink/application.css
|
|
51
|
+
- config/routes.rb
|
|
52
|
+
- lib/generators/rails_wink/config_generator.rb
|
|
53
|
+
- lib/generators/rails_wink/templates/wink.yml
|
|
54
|
+
- lib/rails_wink.rb
|
|
55
|
+
- lib/rails_wink/engine.rb
|
|
56
|
+
- lib/rails_wink/version.rb
|
|
57
|
+
- LICENSE
|
|
58
|
+
- Rakefile
|
|
59
|
+
- README.md
|
|
60
|
+
homepage: https://github.com/dpogue/rails_wink
|
|
61
|
+
licenses: []
|
|
62
|
+
post_install_message:
|
|
63
|
+
rdoc_options: []
|
|
64
|
+
require_paths:
|
|
65
|
+
- lib
|
|
66
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
67
|
+
none: false
|
|
68
|
+
requirements:
|
|
69
|
+
- - ! '>='
|
|
70
|
+
- !ruby/object:Gem::Version
|
|
71
|
+
version: '0'
|
|
72
|
+
segments:
|
|
73
|
+
- 0
|
|
74
|
+
hash: 3061369675981755533
|
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
|
+
none: false
|
|
77
|
+
requirements:
|
|
78
|
+
- - ! '>='
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: '0'
|
|
81
|
+
segments:
|
|
82
|
+
- 0
|
|
83
|
+
hash: 3061369675981755533
|
|
84
|
+
requirements: []
|
|
85
|
+
rubyforge_project:
|
|
86
|
+
rubygems_version: 1.8.22
|
|
87
|
+
signing_key:
|
|
88
|
+
specification_version: 3
|
|
89
|
+
summary: Wink allows users to easily provide browser details for debugging.
|
|
90
|
+
test_files: []
|