bookends 0.5.2 → 0.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4d32726c8ea41db71974f1274b8ac7799aca24ce
4
- data.tar.gz: 0e01d59b583a88fb6cb9b1c8b82bb38f07d65b35
3
+ metadata.gz: 0afe580982cefaaaf366a337b970d463e012a6de
4
+ data.tar.gz: 7310cdefffb24ae207aa3e133c5cdf8246f7e468
5
5
  SHA512:
6
- metadata.gz: c1d3f7e4e5e1e12ca803fd9d2c91d3c44cadff460844e6ecf4fdc27d8c35d9bd9672aa845f76aabc2d33d2ef946d9ce62561d9788073600f8f74108339ec67d1
7
- data.tar.gz: 52273def94416f1ddcddb7c1e1cec51b994f6a9d1e34bf1efd9582af3a40669293dff71e1d077a530760884b5418a4907e3be7a78a692d07bb31a83927fb0f5e
6
+ metadata.gz: b65d2c5be5360dc30775c6702dfa156ed6117b4c77ffd53b1068b8a0465412387f25a87904e004e5ff8e1e2eec880db293e57392d9ca01b96b79203760627bc0
7
+ data.tar.gz: cddf3716609911800f7a7507383e8c62ac1afb0c0ea56bc80c6f60a15d876d89c25841399c0152acc6e745600ec4e9ebd8cae0c156f38a2945bca0bc0097241e
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # Bookends
2
2
  Shared footer (and eventually header) for Heroku properties.
3
3
 
4
+ ## Requirements
5
+ Bookends assumes the presence of:
6
+ * jQuery
7
+
4
8
  ## Installation
5
9
 
6
10
  Add this line to your application's Gemfile:
@@ -16,8 +20,10 @@ And then execute:
16
20
  ## Usage
17
21
 
18
22
  * `rails g bookends:install`
19
- * add `@import 'bookends/footer';` to your application.css.scss
23
+ * add `@import 'bookends/footer';` to your application.scss
20
24
  * add `<%= render 'bookends/footer' %>` to your layout where you want the footer.
25
+ * ensure that your JavaScript manifest includes the bookends JavaScript
26
+ * e.g. `//= require_tree ./bookends`
21
27
 
22
28
  ## Development
23
29
 
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
25
  spec.add_development_dependency "rspec"
26
26
  spec.add_development_dependency "sqlite3"
27
+ spec.add_development_dependency "jquery-rails"
27
28
  end
@@ -1,3 +1,3 @@
1
1
  module Bookends
2
- VERSION = "0.5.2"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -12,7 +12,8 @@ module Bookends
12
12
  FileUtils.mkdir_p 'app/views/bookends'
13
13
 
14
14
  copy_file 'footer.html.erb', 'app/views/bookends/_footer.html.erb'
15
- copy_file 'footer.css.scss', 'app/assets/stylesheets/bookends/_footer.css.scss'
15
+ copy_file 'footer.scss', 'app/assets/stylesheets/bookends/_footer.scss'
16
+ copy_file 'newsletter.js', 'app/assets/javascripts/bookends/newsletter.js'
16
17
  directory 'footer_images' , 'app/assets/images/bookends/footer/'
17
18
  end
18
19
  end
@@ -43,7 +43,13 @@
43
43
  </div>
44
44
  <div class="col heroku-footer-social">
45
45
  <h3><span class="heroku-footer-icon-newsletter"></span>Subscribe to our monthly newsletter</h3>
46
- <iframe src="https://go.pardot.com/l/36622/2015-07-20/5l8m8r" name="footer-newsletter" width="100%" height="80" type="text/html" frameborder="0" allowTransparency="true" scrolling="no"></iframe>
46
+ <form id="bookends-newsletter" accept-charset="UTF-8" action="https://www.heroku.com/newsletter_signups" method="post">
47
+ <input name="utf8" type="hidden" value="✓">
48
+ <input type="text" name="website" id="bookends-website" placeholder="do not fill this in" tabindex="-1">
49
+ <input type="email" name="newsletter_signup[email]" id="newsletter_signup_email" placeholder="Your email address" required="required">
50
+ <input type="submit" name="commit" value="Go">
51
+ <p id="bookends-newsletter-result" class="hide"></p>
52
+ </form>
47
53
  <ul class="social-list">
48
54
  <li><a class="heroku-footer-icon-rss" href="http://feeds2.feedburner.com/heroku" target="_blank">RSS Feed</a></li>
49
55
  <li><a class="heroku-footer-icon-twitter" href="https://twitter.com/heroku" target="_blank">Twitter</a></li>
@@ -1,4 +1,12 @@
1
1
  #heroku-footer {
2
+ #bookends-website { //honeypot
3
+ position: absolute;
4
+ left: -9999px;
5
+ }
6
+
7
+ .hide {
8
+ display: none;
9
+ }
2
10
 
3
11
  $asset-path: 'bookends/footer';
4
12
 
@@ -189,53 +197,76 @@
189
197
  }
190
198
  }
191
199
 
192
- // This has been commented out because the form is styled inside of Pardot.
193
- // See template "Newsletter Signup - WWW Footer" to style the newsletter form.
194
-
195
- // form {
196
- // $input-height: 40px;
197
-
198
- // position: relative;
199
- // width: 100%;
200
- // padding-bottom: 10px;
201
- // @include screen(min-width, $threshold-tablet) {
202
- // border-bottom: 1px solid $color-border;
203
- // }
204
-
205
- // input[type="text"],
206
- // input[type="email"], {
207
- // -webkit-appearance: none;
208
- // width: 100%;
209
- // height: $input-height;
210
- // padding: 0 10px;
211
- // border-radius: 4px;
212
- // border: 1px solid $color-border;
213
- // box-shadow: 0 0 4px fade-out($color-purple, 1);
214
- // transition: all .2s ease;
215
- // -webkit-transition: all .2s ease;
216
- // &:focus {
217
- // outline: none;
218
- // box-shadow: 0 0 4px fade-out($color-purple, .5);
219
- // border-color: $color-purple;
220
- // }
221
- // }
222
-
223
- // button {
224
- // -webkit-appearance: none;
225
- // position: absolute;
226
- // top: 0;
227
- // right: 0;
228
- // width: $input-height;
229
- // height: $input-height;
230
- // border: 0;
231
- // background-color: transparent;
232
- // border-radius: 3px;
233
- // &:focus {
234
- // outline: none;
235
- // border: 1px solid fade-out($color-purple, .5);
236
- // }
237
- // }
238
- // }
200
+ #bookends-newsletter {
201
+ $input-height: 40px;
202
+
203
+ position: relative;
204
+ width: 100%;
205
+ padding-bottom: 10px;
206
+ @include screen(min-width, $threshold-tablet) {
207
+ border-bottom: 1px solid $color-border;
208
+ }
209
+
210
+ input[type="text"],
211
+ input[type="email"], {
212
+ -webkit-appearance: none;
213
+ width: 100%;
214
+ height: $input-height;
215
+ padding: 0 10px;
216
+ border-radius: 4px;
217
+ border: 1px solid $color-border;
218
+ box-shadow: 0 0 4px fade-out($color-purple, 1);
219
+ transition: all .2s ease;
220
+ -webkit-transition: all .2s ease;
221
+
222
+ &:focus {
223
+ outline: none;
224
+ box-shadow: 0 0 4px fade-out($color-purple, .5);
225
+ border-color: $color-purple;
226
+ }
227
+ }
228
+
229
+ input[type="submit"] {
230
+ -webkit-appearance: none;
231
+ position: absolute;
232
+ top: 0;
233
+ right: 0;
234
+ margin: 5px;
235
+ width: $input-height;
236
+ height: ($input-height - 10);
237
+ border: 0;
238
+ background-color: $color-purple;
239
+ border-radius: 3px;
240
+ text-transform: uppercase;
241
+ letter-spacing: .05em;
242
+ font-weight: bold;
243
+ text-align: center;
244
+ color: #fff;
245
+
246
+ &:focus {
247
+ outline: none;
248
+ border: 1px solid fade-out($color-purple, .5);
249
+ }
250
+
251
+ &:hover {
252
+ background-color: darken($color-purple, 5%);
253
+ }
254
+ }
255
+
256
+ p {
257
+ margin: 6px 0;
258
+ padding: 8px;
259
+ border-radius: 3px;
260
+ font-size: 11px;
261
+ text-align: left;
262
+ background-color: #fff;
263
+ height: $input-height;
264
+
265
+ &.error {
266
+ background-color: tomato;
267
+ }
268
+ }
269
+ }
239
270
 
240
271
  .social-list {
241
272
  margin: 0;
@@ -0,0 +1,58 @@
1
+ var Heroku = Heroku || {};
2
+ var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
3
+
4
+ Heroku.NewsletterSignup = (function() {
5
+ function NewsletterSignup() {
6
+ this.handleSubmit = bind(this.handleSubmit, this);
7
+ this.$container = $("#bookends-newsletter");
8
+ this.$honeyPot = this.$container.find("#bookends-website");
9
+ this.$input = this.$container.find("input[type=email]");
10
+ this.$submit = this.$container.find(":submit");
11
+ this.$resultContainer = $("#bookends-newsletter-result");
12
+
13
+ this.$container.on("submit", this.handleSubmit);
14
+ }
15
+
16
+ NewsletterSignup.prototype.handleSubmit = function(e) {
17
+ var val;
18
+ var self;
19
+
20
+ e.preventDefault();
21
+ if(this.$honeyPot.val() !== "") {
22
+ return this.handleSuccess();
23
+ }
24
+
25
+ val = this.$input.val();
26
+ self = this;
27
+ $.ajax({
28
+ url: "https://www.heroku.com/newsletter_signups",
29
+ type: "POST",
30
+ crossDomain: true,
31
+ data: { newsletter_signup: { email: val } }
32
+ })
33
+ .done(function(res) {
34
+ return self.handleSuccess();
35
+ })
36
+ .fail(function(err) {
37
+ return self.handleFailure();
38
+ });
39
+ };
40
+
41
+ NewsletterSignup.prototype.handleSuccess = function() {
42
+ this.$input.replaceWith("<p>Check your email now to confirm your sign-up.</p>");
43
+ };
44
+
45
+ NewsletterSignup.prototype.handleFailure = function() {
46
+ this.$input.val("");
47
+ this.$resultContainer
48
+ .removeClass("hide")
49
+ .text("There was an error registering you. Please refresh.");
50
+ };
51
+
52
+ return NewsletterSignup;
53
+
54
+ })();
55
+
56
+ $(function() {
57
+ return window.Heroku.newsletterSignup = new Heroku.NewsletterSignup();
58
+ });
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bookends
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marketing Web Ops at heroku
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-13 00:00:00.000000000 Z
11
+ date: 2015-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: jquery-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: an engine to abstract common html/css elements across Heroku properties
98
112
  email:
99
113
  - max.beizer@gmail.com
@@ -115,11 +129,12 @@ files:
115
129
  - lib/bookends/engine.rb
116
130
  - lib/bookends/version.rb
117
131
  - lib/generators/bookends/install/install_generator.rb
118
- - lib/generators/bookends/install/templates/footer.css.scss
119
132
  - lib/generators/bookends/install/templates/footer.html.erb
133
+ - lib/generators/bookends/install/templates/footer.scss
120
134
  - lib/generators/bookends/install/templates/footer_images/footer_sprite.png
121
135
  - lib/generators/bookends/install/templates/footer_images/footer_sprite@2x.png
122
136
  - lib/generators/bookends/install/templates/footer_images/salesforce_heroku_gray.png
137
+ - lib/generators/bookends/install/templates/newsletter.js
123
138
  homepage: https://www.heroku.com
124
139
  licenses: []
125
140
  metadata: {}