humane-rails 2.2.6.0.1.0 → 2.7.1.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/README.md +17 -1
- data/lib/humane-rails/version.rb +1 -1
- data/vendor/assets/javascripts/humane.jquery.js +193 -192
- data/vendor/assets/stylesheets/bigbox.css +1 -5
- data/vendor/assets/stylesheets/boldlight.css +1 -5
- data/vendor/assets/stylesheets/jackedup.css +1 -5
- data/vendor/assets/stylesheets/libnotify.css +1 -5
- data/vendor/assets/stylesheets/original.css +1 -5
- metadata +3 -8
data/README.md
CHANGED
@@ -8,14 +8,30 @@
|
|
8
8
|
|
9
9
|
This is a gemified version of Marc Harter's humane-js library. See http://wavded.github.com/humane-js/ for more details.
|
10
10
|
|
11
|
+
[](http://travis-ci.org/harrigan/humane-rails)
|
12
|
+
|
11
13
|
## Instructions
|
12
14
|
|
13
15
|
Add the following to your Gemfile:
|
16
|
+
|
14
17
|
`gem "humane-rails"`
|
15
18
|
|
16
|
-
Then add the following to your application.js
|
19
|
+
Then add the following to your application.js:
|
20
|
+
|
17
21
|
`//= require humane`
|
18
22
|
|
23
|
+
and one of the following to your application.css:
|
24
|
+
|
25
|
+
`*= require original`
|
26
|
+
|
27
|
+
`*= require libnotify`
|
28
|
+
|
29
|
+
`*= require bigbox`
|
30
|
+
|
31
|
+
`*= require boldlight`
|
32
|
+
|
33
|
+
`*= require jackedup`
|
34
|
+
|
19
35
|
Don't forget to run `bundle update` after upgrading to the latest gem version to ensure it's used by your Rails app.
|
20
36
|
|
21
37
|
## License
|
data/lib/humane-rails/version.rb
CHANGED
@@ -1,206 +1,207 @@
|
|
1
1
|
/**
|
2
|
-
*
|
2
|
+
* humane.js
|
3
3
|
* Humanized Messages for Notifications
|
4
4
|
* @author Marc Harter (@wavded)
|
5
|
-
* @contributers
|
6
|
-
* Alexander (@bga_)
|
7
|
-
* Jose (@joseanpg)
|
8
|
-
* Will McKenzie (@OiNutter)
|
9
5
|
* @example
|
10
6
|
* humane('hello world');
|
11
7
|
* See more usage examples at: http://wavded.github.com/humane-js/
|
12
8
|
*/
|
13
9
|
;(function (win,doc) {
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
}
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
if (humaneEl.style[vendor + 'TransitionProperty'] !== undefined)
|
62
|
-
eventPrefix = vendors[vendor];
|
63
|
-
}
|
64
|
-
isSetup = true;
|
65
|
-
}
|
66
|
-
|
67
|
-
function remove() {
|
68
|
-
off (doc.body,'mousemove',remove);
|
69
|
-
off (doc.body,'click',remove);
|
70
|
-
off (doc.body,'keypress',remove);
|
71
|
-
off (doc.body,'touchstart',remove);
|
72
|
-
eventing = false;
|
73
|
-
if (humane.clickToClose) { off (humaneEl,'click',remove); off (humaneEl, 'touchstart', remove); }
|
74
|
-
if (animationInProgress) animate(0);
|
75
|
-
}
|
76
|
-
|
77
|
-
function run() {
|
78
|
-
if (animationInProgress && !win.humane.forceNew) return;
|
79
|
-
if (!queue.length) { remove(); return; }
|
80
|
-
after = null;
|
81
|
-
animationInProgress = true;
|
82
|
-
if (timeout) {
|
83
|
-
clearTimeout(timeout);
|
84
|
-
timeout = null;
|
85
|
-
}
|
86
|
-
timeout = setTimeout(function(){ // allow notification to stay alive for timeout
|
87
|
-
if (!eventing) {
|
88
|
-
on (doc.body,'mousemove',remove);
|
89
|
-
on (doc.body,'click',remove);
|
90
|
-
on (doc.body,'keypress',remove);
|
91
|
-
on (doc.body,'touchstart',remove);
|
92
|
-
eventing = true;
|
93
|
-
if(!win.humane.waitForMove) remove();
|
10
|
+
|
11
|
+
var humane, on, off, isArray,
|
12
|
+
eventing = false,
|
13
|
+
useTransitions = false,
|
14
|
+
animationInProgress = false,
|
15
|
+
humaneEl = null,
|
16
|
+
timeout = null,
|
17
|
+
useFilter = /msie [678]/i.test(navigator.userAgent), // sniff, sniff
|
18
|
+
vendors = { Webkit: 'webkit', Moz: '', O: 'o', ms: 'MS' },
|
19
|
+
eventPrefix = "",
|
20
|
+
isSetup = false,
|
21
|
+
currentMessage = {},
|
22
|
+
noop = function(){},
|
23
|
+
events = { 'add': noop, 'show': noop, 'hide': noop },
|
24
|
+
queue = [];
|
25
|
+
|
26
|
+
if ('addEventListener' in win) {
|
27
|
+
on = function (obj,type,fn) { obj.addEventListener(type,fn,false) };
|
28
|
+
off = function (obj,type,fn) { obj.removeEventListener(type,fn,false) };
|
29
|
+
}
|
30
|
+
else {
|
31
|
+
on = function (obj,type,fn) { obj.attachEvent('on'+type,fn) };
|
32
|
+
off = function (obj,type,fn) { obj.detachEvent('on'+type,fn) };
|
33
|
+
}
|
34
|
+
|
35
|
+
isArray = Array.isArray || function (obj) { return Object.prototype.toString.call(obj) === '[object Array]' };
|
36
|
+
|
37
|
+
function normalizeEvent(name) {
|
38
|
+
return eventPrefix ? eventPrefix + name : name.toLowerCase();
|
39
|
+
}
|
40
|
+
|
41
|
+
function getConfig(type, config) {
|
42
|
+
return win.humane[type][config] !== void 0 ? win.humane[type][config] : win.humane[config];
|
43
|
+
}
|
44
|
+
|
45
|
+
on (win,'load', setup);
|
46
|
+
|
47
|
+
function setup() {
|
48
|
+
humaneEl = doc.createElement('div');
|
49
|
+
humaneEl.id = 'humane';
|
50
|
+
humaneEl.className = 'humane';
|
51
|
+
doc.body.appendChild(humaneEl);
|
52
|
+
for (vendor in vendors) {
|
53
|
+
if (vendor + 'TransitionProperty' in humaneEl.style) {
|
54
|
+
eventPrefix = vendors[vendor];
|
55
|
+
useTransitions = true;
|
56
|
+
}
|
94
57
|
}
|
95
|
-
|
96
|
-
|
97
|
-
if (humane.clickToClose) { on (humaneEl,'click',remove); on (humaneEl, 'touchstart', remove); }
|
98
|
-
|
99
|
-
var next = queue.shift(),
|
100
|
-
type = next[0],
|
101
|
-
content = next[1],
|
102
|
-
callback = next[2];
|
103
|
-
|
104
|
-
after = callback;
|
105
|
-
if ( isArray(content) ) content = '<ul><li>' + content.join('<li>') + '</ul>';
|
106
|
-
|
107
|
-
humaneEl.innerHTML = content;
|
108
|
-
animate(type,1);
|
109
|
-
}
|
110
|
-
|
111
|
-
function animate (type,level) {
|
112
|
-
if(level === 1){
|
113
|
-
humaneEl.className = "humane humane-" + type + " humane-animate";
|
114
|
-
}
|
115
|
-
else {
|
116
|
-
humaneEl.className = humaneEl.className.replace(" humane-animate","");
|
117
|
-
if(after!=null)
|
118
|
-
on(humaneEl,normalizeEvent('TransitionEnd'),after);
|
119
|
-
end();
|
120
|
-
}
|
121
|
-
}
|
122
|
-
|
123
|
-
function end(){
|
124
|
-
setTimeout(function(){
|
125
|
-
animationInProgress = false;
|
58
|
+
if (!useTransitions) animate = jsAnimateOpacity; // use js animation when no transition support
|
59
|
+
isSetup = true;
|
126
60
|
run();
|
127
|
-
|
128
|
-
|
61
|
+
}
|
62
|
+
|
63
|
+
function run() {
|
64
|
+
if (animationInProgress) return;
|
65
|
+
if (!queue.length) return;
|
66
|
+
|
67
|
+
after = null;
|
68
|
+
animationInProgress = true;
|
69
|
+
if (timeout) {
|
70
|
+
clearTimeout(timeout);
|
71
|
+
timeout = null;
|
72
|
+
}
|
73
|
+
|
74
|
+
var next = queue.shift();
|
75
|
+
currentMessage = { type: next[0], message: next[1], callback: next[2] };
|
76
|
+
var content = currentMessage.message,
|
77
|
+
type = currentMessage.type;
|
78
|
+
|
79
|
+
if ( getConfig(type, 'clickToClose') === true ) {
|
80
|
+
on (humaneEl, 'click', remove);
|
81
|
+
on (humaneEl, 'touchstart', remove);
|
82
|
+
}
|
129
83
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
84
|
+
var timeoutInMillis = getConfig(type, 'timeout');
|
85
|
+
|
86
|
+
if (timeoutInMillis > 0) {
|
87
|
+
timeout = setTimeout(function(){ // allow notification to stay alive for timeout
|
88
|
+
if (!eventing) {
|
89
|
+
on (doc.body, 'mousemove', remove);
|
90
|
+
on (doc.body, 'click', remove);
|
91
|
+
on (doc.body, 'keypress', remove);
|
92
|
+
on (doc.body, 'touchstart', remove);
|
93
|
+
eventing = true;
|
94
|
+
if( getConfig(type, 'waitForMove') !== true ) remove();
|
95
|
+
}
|
96
|
+
}, timeoutInMillis);
|
97
|
+
}
|
98
|
+
|
99
|
+
events['show'](type,content,'show');
|
100
|
+
if ( isArray(content) ) content = '<ul><li>' + content.join('<li>') + '</ul>';
|
101
|
+
|
102
|
+
humaneEl.innerHTML = content;
|
103
|
+
humaneEl.style.display = 'block';
|
104
|
+
setTimeout(function(){ animate(1,type); },50) // prevent queueing display in animation
|
105
|
+
}
|
135
106
|
|
107
|
+
function animate (level,type) {
|
108
|
+
if (level === 1) {
|
109
|
+
humaneEl.className = "humane humane-" + type + " humane-animate";
|
136
110
|
}
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
humaneEl
|
150
|
-
|
151
|
-
|
152
|
-
if (
|
153
|
-
|
154
|
-
|
155
|
-
|
111
|
+
else {
|
112
|
+
humaneEl.className = humaneEl.className.replace(" humane-animate","");
|
113
|
+
on ( humaneEl, normalizeEvent('TransitionEnd'), end );
|
114
|
+
}
|
115
|
+
}
|
116
|
+
|
117
|
+
function remove() {
|
118
|
+
off (doc.body, 'mousemove', remove);
|
119
|
+
off (doc.body, 'click', remove);
|
120
|
+
off (doc.body, 'keypress', remove);
|
121
|
+
off (doc.body, 'touchstart', remove);
|
122
|
+
// remove click and touchstart in case clickToClose was added
|
123
|
+
off (humaneEl, 'click', remove);
|
124
|
+
off (humaneEl, 'touchstart', remove);
|
125
|
+
eventing = false;
|
126
|
+
if (animationInProgress) animate(0);
|
127
|
+
}
|
128
|
+
|
129
|
+
|
130
|
+
function end() {
|
131
|
+
// turn off animation event if supported, a little trigger happy
|
132
|
+
if (useTransitions) off ( humaneEl, normalizeEvent('TransitionEnd'), end );
|
133
|
+
animationInProgress = false;
|
134
|
+
if (currentMessage.callback) currentMessage.callback();
|
135
|
+
events['hide'](currentMessage.type, currentMessage.message,'hide');
|
136
|
+
humaneEl.style.display = 'none';
|
137
|
+
run();
|
138
|
+
}
|
139
|
+
|
140
|
+
var setOpacity = useFilter
|
141
|
+
? function (opacity) { humaneEl.filters.item('DXImageTransform.Microsoft.Alpha').Opacity = opacity*100; }
|
142
|
+
: function (opacity) { humaneEl.style.opacity = String(opacity); }
|
143
|
+
|
144
|
+
function jsAnimateOpacity (level,type) {
|
145
|
+
var interval;
|
146
|
+
var opacity;
|
147
|
+
|
148
|
+
if (level === 1) {
|
149
|
+
opacity = 0;
|
150
|
+
humaneEl.className = "humane humane-js-animate humane-" + type;
|
151
|
+
if (useFilter) setOpacity(0); // reset value so hover states work
|
152
|
+
humaneEl.style.zIndex = 1000000;
|
153
|
+
|
154
|
+
interval = setInterval(function(){
|
155
|
+
if (opacity < 1) {
|
156
|
+
opacity += 0.1;
|
157
|
+
if (opacity > 1) opacity = 1;
|
158
|
+
setOpacity(opacity);
|
159
|
+
}
|
160
|
+
else {
|
161
|
+
clearInterval(interval);
|
162
|
+
}
|
163
|
+
}, 100 / 20);
|
164
|
+
}
|
165
|
+
else {
|
166
|
+
opacity = 1;
|
167
|
+
interval = setInterval(function(){
|
168
|
+
if(opacity > 0) {
|
169
|
+
opacity -= 0.1;
|
170
|
+
if (opacity < 0) opacity = 0;
|
171
|
+
setOpacity(opacity);
|
172
|
+
}
|
173
|
+
else {
|
174
|
+
humaneEl.className = humaneEl.className.replace(" humane-js-animate","");
|
175
|
+
humaneEl.style.zIndex = -1;
|
176
|
+
clearInterval(interval);
|
177
|
+
end();
|
178
|
+
}
|
179
|
+
}, 100 / 20);
|
180
|
+
}
|
181
|
+
}
|
182
|
+
|
183
|
+
function notifier (type) {
|
184
|
+
return function (message, cb) {
|
185
|
+
queue.push( [type, message, cb] );
|
186
|
+
events['add'](type,message,'add');
|
187
|
+
if (isSetup) run();
|
156
188
|
}
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
else {
|
177
|
-
humaneEl.className = humaneEl.className.replace(" humane-js-animate","");
|
178
|
-
clearInterval(interval);
|
179
|
-
if(after!=null)
|
180
|
-
after();
|
181
|
-
end();
|
182
|
-
}
|
183
|
-
}, 100 / 20);
|
184
|
-
}
|
185
|
-
}
|
186
|
-
|
187
|
-
function notifier (type) {
|
188
|
-
return function (message,callback) {
|
189
|
-
queue.push( [type, message,callback] );
|
190
|
-
if(isSetup) run();
|
191
|
-
}
|
192
|
-
}
|
193
|
-
|
194
|
-
win.humane = notifier('log');
|
195
|
-
|
196
|
-
win.humane.log = notifier('log');
|
197
|
-
win.humane.error = notifier('error');
|
198
|
-
win.humane.info = notifier('info');
|
199
|
-
win.humane.success = notifier('success');
|
200
|
-
|
201
|
-
win.humane.timeout = 2500;
|
202
|
-
win.humane.waitForMove = false;
|
203
|
-
win.humane.forceNew = false;
|
204
|
-
win.humane.clickToClose = false;
|
205
|
-
|
206
|
-
}( window, document));
|
189
|
+
}
|
190
|
+
|
191
|
+
// types
|
192
|
+
humane = notifier('log');
|
193
|
+
humane.log = notifier('log');
|
194
|
+
humane.error = notifier('error');
|
195
|
+
humane.info = notifier('info');
|
196
|
+
humane.success = notifier('success');
|
197
|
+
humane.remove = remove;
|
198
|
+
|
199
|
+
// options
|
200
|
+
humane.timeout = 2500;
|
201
|
+
humane.waitForMove = false;
|
202
|
+
humane.clickToClose = false;
|
203
|
+
|
204
|
+
// events
|
205
|
+
humane.on = function(type, handler){ events[type] = handler; };
|
206
|
+
win.humane = humane;
|
207
|
+
})( window, document );
|
@@ -9,10 +9,6 @@ body {
|
|
9
9
|
-ms-transition: all 0.3s ease-out;
|
10
10
|
-o-transition: all 0.3s ease-out;
|
11
11
|
transition: all 0.3s ease-out;
|
12
|
-
z-index: -1;
|
13
|
-
}
|
14
|
-
.humane.humane-animate,
|
15
|
-
.humane.humane-js-animate {
|
16
12
|
z-index: 100000;
|
17
13
|
}
|
18
14
|
.humane {
|
@@ -121,4 +117,4 @@ body {
|
|
121
117
|
.humane.humane-js-animate:hover {
|
122
118
|
opacity: 0.6;
|
123
119
|
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
|
124
|
-
}
|
120
|
+
}
|
@@ -9,10 +9,6 @@ body {
|
|
9
9
|
-ms-transition: all 0.3s ease-out;
|
10
10
|
-o-transition: all 0.3s ease-out;
|
11
11
|
transition: all 0.3s ease-out;
|
12
|
-
z-index: -1;
|
13
|
-
}
|
14
|
-
.humane.humane-animate,
|
15
|
-
.humane.humane-js-animate {
|
16
12
|
z-index: 100000;
|
17
13
|
}
|
18
14
|
.humane {
|
@@ -120,4 +116,4 @@ body {
|
|
120
116
|
.humane.humane-js-animate:hover {
|
121
117
|
opacity: 0.4;
|
122
118
|
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
|
123
|
-
}
|
119
|
+
}
|
@@ -9,10 +9,6 @@ body {
|
|
9
9
|
-ms-transition: all 0.6s ease-in-out;
|
10
10
|
-o-transition: all 0.6s ease-in-out;
|
11
11
|
transition: all 0.6s ease-in-out;
|
12
|
-
z-index: -1;
|
13
|
-
}
|
14
|
-
.humane.humane-animate,
|
15
|
-
.humane.humane-js-animate {
|
16
12
|
z-index: 100000;
|
17
13
|
}
|
18
14
|
.humane {
|
@@ -121,4 +117,4 @@ body {
|
|
121
117
|
.humane.humane-js-animate:hover {
|
122
118
|
opacity: 0.7;
|
123
119
|
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
|
124
|
-
}
|
120
|
+
}
|
@@ -9,10 +9,6 @@ body {
|
|
9
9
|
-ms-transition: all 0.3s ease-out;
|
10
10
|
-o-transition: all 0.3s ease-out;
|
11
11
|
transition: all 0.3s ease-out;
|
12
|
-
z-index: -1;
|
13
|
-
}
|
14
|
-
.humane.humane-animate,
|
15
|
-
.humane.humane-js-animate {
|
16
12
|
z-index: 100000;
|
17
13
|
}
|
18
14
|
.humane {
|
@@ -113,4 +109,4 @@ body {
|
|
113
109
|
.humane.humane-js-animate:hover {
|
114
110
|
opacity: 0.2;
|
115
111
|
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=20);
|
116
|
-
}
|
112
|
+
}
|
@@ -9,10 +9,6 @@ body {
|
|
9
9
|
-ms-transition: all 0.2s ease-out;
|
10
10
|
-o-transition: all 0.2s ease-out;
|
11
11
|
transition: all 0.2s ease-out;
|
12
|
-
z-index: -1;
|
13
|
-
}
|
14
|
-
.humane.humane-animate,
|
15
|
-
.humane.humane-js-animate {
|
16
12
|
z-index: 100000;
|
17
13
|
}
|
18
14
|
.humane {
|
@@ -67,4 +63,4 @@ body {
|
|
67
63
|
.humane.humane-js-animate:hover {
|
68
64
|
opacity: 0.6;
|
69
65
|
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
|
70
|
-
}
|
66
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: humane-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.1.0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-02-08 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A gemified version of Marc Harter's humane-js.
|
15
15
|
email:
|
@@ -45,18 +45,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
45
45
|
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
|
-
segments:
|
49
|
-
- 0
|
50
|
-
hash: -190101333893275154
|
51
48
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
49
|
none: false
|
53
50
|
requirements:
|
54
51
|
- - ! '>='
|
55
52
|
- !ruby/object:Gem::Version
|
56
53
|
version: '0'
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
hash: -190101333893275154
|
60
54
|
requirements: []
|
61
55
|
rubyforge_project: humane-rails
|
62
56
|
rubygems_version: 1.8.11
|
@@ -64,3 +58,4 @@ signing_key:
|
|
64
58
|
specification_version: 3
|
65
59
|
summary: A gemified version of Marc Harter's humane-js.
|
66
60
|
test_files: []
|
61
|
+
has_rdoc:
|