unobtrusive_flash 2.1.0 → 3.0.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 +5 -13
- data/CHANGELOG.md +9 -0
- data/README.markdown +10 -6
- data/lib/assets/javascripts/unobtrusive_flash.js +8 -4
- data/lib/assets/javascripts/unobtrusive_flash_bootstrap.js +10 -4
- data/lib/assets/javascripts/unobtrusive_flash_ui.js +3 -3
- data/lib/unobtrusive_flash/version.rb +1 -1
- metadata +14 -19
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NGE5MWVkZWVhODFlZGNmYWM1YzRhZWZkNDczYWQ3YWFlY2FkYmEzYw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: dcf558cc6c7773077a8b0e9b02a16d747785424c
|
4
|
+
data.tar.gz: 572d0ec1cddc18f14f601738a12e62b17a012d30
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
ZTJlOWJlZjdjNzllMTdmOTYxMWI5OWI5YWY5ZGQ3MDRkMmVkNmNkNDg1NTdh
|
11
|
-
NTUwNmM1YTRjNWM5Y2FjNzJiOTg5YjQ2YmYwNDc4Mzk0OGJmNjE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MzU3YTc0NDI5OGI2NjY2MjEzZjI3NmNmODlmYmE4OWRmNTRjNmE5MTY5OTk4
|
14
|
-
Nzc1NDI3OWUwNzk1YjMzNWY0Njg5YmU3OWYyN2VlNDNkM2FlMzhkMWZkYjEz
|
15
|
-
NjY2NWZkOTZlMTFjNzI2NTI1NTRhYWY4MTA3NTQzMmU0OWY0NDk=
|
6
|
+
metadata.gz: a158ce2b5636919e08e3bbfcb9c0bb1070c3064416353b84edca1f3ac42cb8fab19ad24ab3354ba3b2fc59180fdb8515905d50c2e7cf8d67aa1f0263b7a6ce72
|
7
|
+
data.tar.gz: 75aa65125e9e74ab6dc6785a61f8b14f31acb28bde4cba869f1642303e738a8250b77e109707a206141869d48a515d72b8c430c81780b4cf7b8c251e9cb62393
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## 2014-03-07 3.0.0
|
2
|
+
|
3
|
+
* Moved Javascript methods to an `UnobtrusiveFlash` module. This breaks calling `$.showFlashMessage`, hence another major release [#11]
|
4
|
+
* Make sure that the flash events are invoked after a handler had a chance to bind [#10]
|
5
|
+
* Changed default alerts to never autohide [#6]
|
6
|
+
* Bootstrap handler: All conventional Rails notices are correctly styled by @conzett [#12]
|
7
|
+
* Turbolinks are supported thanks to @yoyos [#13]
|
8
|
+
* Fixes to cookie nuking by @asaletnik [#7]
|
9
|
+
|
1
10
|
## 2013-12-21 2.1.0
|
2
11
|
|
3
12
|
* Changed message escaping logic to use the Rails html_safe conventions (Possibly breaking change)
|
data/README.markdown
CHANGED
@@ -9,7 +9,7 @@ Ever got tired of writing custom code to handle flash messages passed in AJAX re
|
|
9
9
|
Here comes the solution.
|
10
10
|
|
11
11
|
`unobtrusive_flash` takes your flash messages for the backend and automagically passes them to the frontend via
|
12
|
-
HTTP cookies. This works with both regular page loads
|
12
|
+
HTTP cookies. This works with both **regular page loads**, **jQuery AJAX requests**, and **turbolinks** (from v3), does not tamper with the page body and requires
|
13
13
|
about 3 extra lines of code in your app - how's that for unobtrusive?
|
14
14
|
|
15
15
|
You can pass up to 4K of text into flash this way, and you don't need to worry about cookie size since they are
|
@@ -25,14 +25,14 @@ Tested in:
|
|
25
25
|
|
26
26
|
## Requirements
|
27
27
|
|
28
|
-
* Rails 3
|
28
|
+
* Rails >=3
|
29
29
|
* jQuery (tested with v1.10)
|
30
30
|
|
31
31
|
## Usage
|
32
32
|
|
33
33
|
1. Add the `unobtrusive_flash` gem to your Gemfile.
|
34
34
|
|
35
|
-
gem 'unobtrusive_flash', '
|
35
|
+
gem 'unobtrusive_flash', '>=3'
|
36
36
|
|
37
37
|
2. Add the following to the controllers that generate flash messages (or better, to the `ApplicationController`):
|
38
38
|
|
@@ -66,16 +66,20 @@ Unobtrusive Flash triggers jQuery events when flash is received. If you want to
|
|
66
66
|
|
67
67
|
$(window).bind('rails:flash', flashHandler);
|
68
68
|
|
69
|
+
|
70
|
+
## Using UnobtrusiveFlash with a frontend framework that doesn't use jQuery for AJAX
|
71
|
+
|
72
|
+
Call `UnobtrusiveFlash.showFlashFromCookies()` in your Javascript after a completed request.
|
69
73
|
|
70
74
|
## Bonus: show 'flash messages' from the front-end
|
71
75
|
|
72
76
|
Both Bootstrap and non-Bootstrap versions contain a function to display flash messages:
|
73
77
|
|
74
78
|
// Shown for 5 seconds (default)
|
75
|
-
|
79
|
+
UnobtrusiveFlash.showFlashMessage('Hello World', {type: 'notice'})
|
76
80
|
// Shown forever
|
77
|
-
|
81
|
+
UnobtrusiveFlash.showFlashMessage('Error', {type: 'error', timeout: 0})
|
78
82
|
|
79
83
|
* * *
|
80
84
|
|
81
|
-
© 2010-
|
85
|
+
© 2010-2014 Leonid Shevtsov, released under the MIT license
|
@@ -6,6 +6,7 @@ $(function() {
|
|
6
6
|
yesterday.setDate(yesterday.getDate() - 1);
|
7
7
|
var hostParts = window.location.host.split('.').reverse();
|
8
8
|
var expireHost = hostParts.shift();
|
9
|
+
expireHost = expireHost.replace(/^([a-z]{1,})\:[0-9]{1,5}/, '$1');
|
9
10
|
$.each(hostParts, function(i,part) {
|
10
11
|
expireHost = part + '.' + expireHost;
|
11
12
|
document.cookie = cookieName+'=; path=/;expires='+yesterday+'; domain='+expireHost;
|
@@ -42,7 +43,8 @@ $(function() {
|
|
42
43
|
}
|
43
44
|
|
44
45
|
// Reads flash messages from cookies and fires corresponding events
|
45
|
-
|
46
|
+
window.UnobtrusiveFlash = {}
|
47
|
+
window.UnobtrusiveFlash['showFlashFromCookies'] = function() {
|
46
48
|
var flashMessages = extractFlashFromCookies();
|
47
49
|
if (flashMessages !== null) {
|
48
50
|
$.each(flashMessages, function(_, flashMessage) {
|
@@ -51,11 +53,13 @@ $(function() {
|
|
51
53
|
}
|
52
54
|
}
|
53
55
|
|
54
|
-
$(function() {
|
55
|
-
showFlashFromCookies();
|
56
|
+
$(window).load(function() {
|
57
|
+
UnobtrusiveFlash.showFlashFromCookies();
|
56
58
|
});
|
57
59
|
|
60
|
+
$(document).on('page:change page:load', UnobtrusiveFlash.showFlashFromCookies);
|
61
|
+
|
58
62
|
$(document).ajaxSuccess(function(event,request,options) {
|
59
|
-
showFlashFromCookies();
|
63
|
+
UnobtrusiveFlash.showFlashFromCookies();
|
60
64
|
});
|
61
65
|
});
|
@@ -6,11 +6,17 @@
|
|
6
6
|
$(function() {
|
7
7
|
var $flashContainer = $($('.unobtrusive-flash-container')[0] || $('.container')[0] || $('.container-fluid')[0] || $('body')[0]);
|
8
8
|
|
9
|
-
|
10
|
-
options = $.extend({type: 'notice', timeout:
|
9
|
+
UnobtrusiveFlash.showFlashMessage = function(message, options) {
|
10
|
+
options = $.extend({type: 'notice', timeout: 0}, options);
|
11
11
|
|
12
12
|
// Workaround for common Rails flash type to match common Bootstrap alert type
|
13
|
-
if (options.type=='notice')
|
13
|
+
if (options.type=='notice') {
|
14
|
+
options.type = 'info';
|
15
|
+
} else if(options.type=='alert') {
|
16
|
+
options.type = 'warning';
|
17
|
+
} else if(options.type=='error') {
|
18
|
+
options.type = 'danger';
|
19
|
+
}
|
14
20
|
|
15
21
|
var $flash = $('<div class="alert alert-'+options.type+'"><button type="button" class="close" data-dismiss="alert">×</button>'+message+'</div>');
|
16
22
|
|
@@ -28,7 +34,7 @@ $(function() {
|
|
28
34
|
};
|
29
35
|
|
30
36
|
flashHandler = function(e, params) {
|
31
|
-
|
37
|
+
UnobtrusiveFlash.showFlashMessage(params.message, {type: params.type});
|
32
38
|
};
|
33
39
|
|
34
40
|
$(window).bind('rails:flash', flashHandler);
|
@@ -11,8 +11,8 @@ $(function() {
|
|
11
11
|
});
|
12
12
|
}
|
13
13
|
|
14
|
-
|
15
|
-
options = $.extend({type: 'notice', timeout:
|
14
|
+
UnobtrusiveFlash.showFlashMessage = function(message, options) {
|
15
|
+
options = $.extend({type: 'notice', timeout: 0}, options);
|
16
16
|
|
17
17
|
var $flash = $('<div class="unobtrusive-flash-message-wrapper unobtrusive-flash-'+options.type+'"><div class="unobtrusive-flash-message">'+message+'</div></div>');
|
18
18
|
|
@@ -31,7 +31,7 @@ $(function() {
|
|
31
31
|
};
|
32
32
|
|
33
33
|
flashHandler = function(e, params) {
|
34
|
-
|
34
|
+
UnobtrusiveFlash.showFlashMessage(params.message, {type: params.type});
|
35
35
|
};
|
36
36
|
|
37
37
|
$(window).bind('rails:flash', flashHandler);
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unobtrusive_flash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonid Shevtsov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -42,39 +42,34 @@ dependencies:
|
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
description:
|
70
|
-
passes them to the frontend via HTTP cookies.
|
71
|
-
|
72
|
-
|
73
|
-
the page body and requires about 3 extra
|
74
|
-
|
75
|
-
lines of code in your app - how''s that for unobtrusive?
|
76
|
-
|
77
|
-
'
|
69
|
+
description: |
|
70
|
+
unobtrusive_flash takes your flash messages for the backend and automagically passes them to the frontend via HTTP cookies.
|
71
|
+
This works with both regular page loads and AJAX requests, does not tamper with the page body and requires about 3 extra
|
72
|
+
lines of code in your app - how's that for unobtrusive?
|
78
73
|
email:
|
79
74
|
- leonid@shevtsov.me
|
80
75
|
executables: []
|
@@ -106,12 +101,12 @@ require_paths:
|
|
106
101
|
- lib
|
107
102
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
103
|
requirements:
|
109
|
-
- -
|
104
|
+
- - '>='
|
110
105
|
- !ruby/object:Gem::Version
|
111
106
|
version: '0'
|
112
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
108
|
requirements:
|
114
|
-
- -
|
109
|
+
- - '>='
|
115
110
|
- !ruby/object:Gem::Version
|
116
111
|
version: '0'
|
117
112
|
requirements: []
|