bootstrap-growl-rails 2.0.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -3
- data/lib/bootstrap/growl/rails/version.rb +1 -1
- data/vendor/assets/javascripts/bootstrap-notify.js +333 -0
- data/vendor/assets/stylesheets/animate.css +3181 -0
- metadata +4 -3
- data/vendor/assets/javascripts/bootstrap-growl.js +0 -257
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap-growl-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dennis Baskin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -48,7 +48,8 @@ extra_rdoc_files: []
|
|
48
48
|
files:
|
49
49
|
- lib/bootstrap/growl/rails/version.rb
|
50
50
|
- lib/bootstrap/growl/rails.rb
|
51
|
-
- vendor/assets/javascripts/bootstrap-
|
51
|
+
- vendor/assets/javascripts/bootstrap-notify.js
|
52
|
+
- vendor/assets/stylesheets/animate.css
|
52
53
|
- LICENSE.txt
|
53
54
|
- README.md
|
54
55
|
homepage: https://github.com/dennisbaskin/bootstrap-growl-rails
|
@@ -1,257 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Project: Bootstrap Growl - v2.0.0
|
3
|
-
* Description: Turns standard Bootstrap alerts into "Growl-like" notifications.
|
4
|
-
* Author: Mouse0270 aka Robert McIntosh
|
5
|
-
* License: MIT License
|
6
|
-
* Website: https://github.com/mouse0270/bootstrap-growl
|
7
|
-
*/
|
8
|
-
;(function ( $, window, document, undefined ) {
|
9
|
-
// Create the defaults once
|
10
|
-
var pluginName = "growl",
|
11
|
-
dataKey = "plugin_" + pluginName,
|
12
|
-
defaults = {
|
13
|
-
element: 'body',
|
14
|
-
type: "info",
|
15
|
-
allow_dismiss: true,
|
16
|
-
placement: {
|
17
|
-
from: "top",
|
18
|
-
align: "right"
|
19
|
-
},
|
20
|
-
offset: 20,
|
21
|
-
spacing: 10,
|
22
|
-
z_index: 1031,
|
23
|
-
delay: 5000,
|
24
|
-
timer: 1000,
|
25
|
-
url_target: '_blank',
|
26
|
-
mouse_over: false,
|
27
|
-
animate: {
|
28
|
-
enter: 'animated fadeInDown',
|
29
|
-
exit: 'animated fadeOutUp'
|
30
|
-
},
|
31
|
-
icon_type: 'class',
|
32
|
-
template: '<div data-growl="container" class="alert" role="alert"><button type="button" class="close" data-growl="dismiss"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button><span data-growl="icon"></span><span data-growl="title"></span><span data-growl="message"></span><a href="#" data-growl="url"></a></div>'
|
33
|
-
};
|
34
|
-
|
35
|
-
// The actual plugin constructor
|
36
|
-
var setDefaults = function(element, options) {
|
37
|
-
defaults = $.extend(true, {}, defaults, options);
|
38
|
-
},
|
39
|
-
Plugin = function (element, content, options) {
|
40
|
-
var content = {
|
41
|
-
content: {
|
42
|
-
message: typeof content == 'object' ? content.message : content,
|
43
|
-
title: content.title ? content.title : null,
|
44
|
-
icon: content.icon ? content.icon : null,
|
45
|
-
url: content.url ? content.url : null
|
46
|
-
}
|
47
|
-
};
|
48
|
-
|
49
|
-
options = $.extend(true, {}, content, options);
|
50
|
-
this.settings = $.extend(true, {}, defaults, options);
|
51
|
-
plugin = this;
|
52
|
-
init(options, this.settings, plugin);
|
53
|
-
this.$template = $template;
|
54
|
-
},
|
55
|
-
init = function (options, settings, plugin) {
|
56
|
-
|
57
|
-
var base = {
|
58
|
-
settings: settings,
|
59
|
-
$element: $(settings.element),
|
60
|
-
template: settings.template
|
61
|
-
};
|
62
|
-
|
63
|
-
$template = buildGrowl(base);
|
64
|
-
addContent($template, base.settings);
|
65
|
-
placement($template, base.settings);
|
66
|
-
bindControls($template, base.settings,plugin);
|
67
|
-
},
|
68
|
-
buildGrowl = function(base) {
|
69
|
-
|
70
|
-
var $template = $(base.settings.template);
|
71
|
-
|
72
|
-
$template.addClass('alert-' + base.settings.type);
|
73
|
-
$template.attr('data-growl-position', base.settings.placement.from + '-' + base.settings.placement.align);
|
74
|
-
|
75
|
-
$template.find('[data-growl="dismiss"]').css('display', 'none');
|
76
|
-
if (base.settings.allow_dismiss) {
|
77
|
-
$template.find('[data-growl="dismiss"]').css('display', 'inline-block');
|
78
|
-
}
|
79
|
-
|
80
|
-
return $template;
|
81
|
-
},
|
82
|
-
addContent = function($template, settings) {
|
83
|
-
|
84
|
-
$template.find('[data-growl="dismiss"]').css({
|
85
|
-
'position': 'absolute',
|
86
|
-
'top': '5px',
|
87
|
-
'right': '10px',
|
88
|
-
'z-index': ((settings.z_index-1) >= 1 ? (settings.z_index-1) : 1)
|
89
|
-
});
|
90
|
-
|
91
|
-
if (settings.content.icon) {
|
92
|
-
if (settings.icon_type.toLowerCase() == 'class') {
|
93
|
-
$template.find('[data-growl="icon"]').addClass(settings.content.icon);
|
94
|
-
}else{
|
95
|
-
if ($template.find('[data-growl="icon"]').is('img')) {
|
96
|
-
$template.find('[data-growl="icon"]').attr('src', settings.content.icon);
|
97
|
-
}else{
|
98
|
-
$template.find('[data-growl="icon"]').append('<img src="'+settings.content.icon+'" />');
|
99
|
-
}
|
100
|
-
}
|
101
|
-
}
|
102
|
-
|
103
|
-
if (settings.content.title) {
|
104
|
-
$template.find('[data-growl="title"]').html(settings.content.title);
|
105
|
-
}
|
106
|
-
|
107
|
-
if (settings.content.message) {
|
108
|
-
$template.find('[data-growl="message"]').html(settings.content.message);
|
109
|
-
}
|
110
|
-
|
111
|
-
if (settings.content.url) {
|
112
|
-
$template.find('[data-growl="url"]').attr('href', settings.content.url).attr('target', settings.url_target);
|
113
|
-
$template.find('[data-growl="url"]').css({
|
114
|
-
'position': 'absolute',
|
115
|
-
'top': '0px',
|
116
|
-
'left': '0px',
|
117
|
-
'width': '100%',
|
118
|
-
'height': '100%',
|
119
|
-
'z-index': ((settings.z_index-2) >= 1 ? (settings.z_index-2) : 1)
|
120
|
-
});
|
121
|
-
}
|
122
|
-
},
|
123
|
-
placement = function($template, settings) {
|
124
|
-
var offsetAmt = settings.offset,
|
125
|
-
gCSS = {
|
126
|
-
'position': (settings.element === 'body' ? 'fixed' : 'absolute'),
|
127
|
-
'margin': 0,
|
128
|
-
'z-index': settings.z_index,
|
129
|
-
'display': 'inline-block'
|
130
|
-
}
|
131
|
-
|
132
|
-
$('[data-growl-position="' + settings.placement.from + '-' + settings.placement.align + '"]').each(function() {
|
133
|
-
return offsetAmt = Math.max(offsetAmt, parseInt($(this).css(settings.placement.from)) + $(this).outerHeight() + settings.spacing);
|
134
|
-
});
|
135
|
-
|
136
|
-
gCSS[settings.placement.from] = offsetAmt + "px";
|
137
|
-
$template.css(gCSS);
|
138
|
-
$(settings.element).append($template);
|
139
|
-
|
140
|
-
switch (settings.placement.align) {
|
141
|
-
case 'center':
|
142
|
-
$template.css({
|
143
|
-
'left': '50%',
|
144
|
-
'marginLeft': -($template.outerWidth() / 2) + 'px'
|
145
|
-
});
|
146
|
-
break;
|
147
|
-
case 'left':
|
148
|
-
$template.css('left', settings.offset + 'px');
|
149
|
-
break;
|
150
|
-
case 'right':
|
151
|
-
$template.css('right', settings.offset + 'px');
|
152
|
-
break;
|
153
|
-
}
|
154
|
-
$template.addClass('growl-animated');
|
155
|
-
},
|
156
|
-
bindControls = function($template, settings, plugin) {
|
157
|
-
$template.addClass(settings.animate.enter);
|
158
|
-
|
159
|
-
$template.find('[data-growl="dismiss"]').on('click', function() {
|
160
|
-
plugin.close();
|
161
|
-
});
|
162
|
-
|
163
|
-
$template.on('mouseover', function(e) {
|
164
|
-
$template.addClass('hovering');
|
165
|
-
}).on('mouseout', function() {
|
166
|
-
$template.removeClass('hovering');
|
167
|
-
});
|
168
|
-
|
169
|
-
if (settings.delay >= 1) {
|
170
|
-
$template.data('growl-delay', settings.delay);
|
171
|
-
var timer = setInterval(function() {
|
172
|
-
|
173
|
-
var delay = parseInt($template.data('growl-delay')) - settings.timer;
|
174
|
-
if ((!$template.hasClass('hovering') && settings.mouse_over == 'pause') || settings.mouse_over != 'pause') {
|
175
|
-
$template.data('growl-delay', delay);
|
176
|
-
}
|
177
|
-
|
178
|
-
if (delay <= 0) {
|
179
|
-
clearInterval(timer);
|
180
|
-
plugin.close();
|
181
|
-
}
|
182
|
-
}, settings.timer);
|
183
|
-
}
|
184
|
-
};
|
185
|
-
|
186
|
-
// Avoid Plugin.prototype conflicts
|
187
|
-
Plugin.prototype = {
|
188
|
-
update: function(command, update) {
|
189
|
-
switch (command) {
|
190
|
-
case 'icon':
|
191
|
-
if (this.settings.icon_type.toLowerCase() == 'class') {
|
192
|
-
this.$template.find('[data-growl="icon"]').removeClass(this.settings.content.icon);
|
193
|
-
this.$template.find('[data-growl="icon"]').addClass(update);
|
194
|
-
}else{
|
195
|
-
if (this.$template.find('[data-growl="icon"]').is('img')) {
|
196
|
-
this.$template.find('[data-growl="icon"]')
|
197
|
-
}else{
|
198
|
-
this.$template.find('[data-growl="icon"]').find('img').attr().attr('src', update);
|
199
|
-
}
|
200
|
-
}
|
201
|
-
break;
|
202
|
-
case 'url':
|
203
|
-
this.$template.find('[data-growl="url"]').attr('href', update);
|
204
|
-
break;
|
205
|
-
case 'type':
|
206
|
-
this.$template.removeClass('alert-' + this.settings.type);
|
207
|
-
this.$template.addClass('alert-' + update);
|
208
|
-
break;
|
209
|
-
default:
|
210
|
-
this.$template.find('[data-growl="' + command +'"]').html(update);
|
211
|
-
}
|
212
|
-
|
213
|
-
return this;
|
214
|
-
},
|
215
|
-
close: function() {
|
216
|
-
var base = this.$template,
|
217
|
-
settings = this.settings,
|
218
|
-
posX = base.css(settings.placement.from),
|
219
|
-
hasAnimation = false;
|
220
|
-
|
221
|
-
base.addClass(this.settings.animate.exit);
|
222
|
-
|
223
|
-
base.nextAll('[data-growl-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]').each(function() {
|
224
|
-
$(this).css(settings.placement.from, posX);
|
225
|
-
posX = (parseInt(posX)+(settings.spacing)) + $(this).outerHeight();
|
226
|
-
});
|
227
|
-
|
228
|
-
base.one('webkitAnimationStart oanimationstart MSAnimationStart animationstart', function(event) {
|
229
|
-
hasAnimation = true;
|
230
|
-
});
|
231
|
-
|
232
|
-
base.one('webkitAnimationEnd oanimationend MSAnimationEnd animationend', function(event) {
|
233
|
-
$(this).remove();
|
234
|
-
});
|
235
|
-
|
236
|
-
setTimeout(function() {
|
237
|
-
if (!hasAnimation) {
|
238
|
-
base.remove();
|
239
|
-
}
|
240
|
-
}, 100);
|
241
|
-
|
242
|
-
return this;
|
243
|
-
}
|
244
|
-
};
|
245
|
-
|
246
|
-
// A really lightweight plugin wrapper around the constructor,
|
247
|
-
// preventing against multiple instantiations
|
248
|
-
$.growl = function ( content, options ) {
|
249
|
-
if (content == false) {
|
250
|
-
setDefaults(this, options);
|
251
|
-
return false;
|
252
|
-
}
|
253
|
-
var plugin = new Plugin( this, content, options );
|
254
|
-
return plugin;
|
255
|
-
};
|
256
|
-
|
257
|
-
})( jQuery, window, document );
|