forked from mrjoelkemp/assets-lib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshowMessages.js
64 lines (49 loc) · 1.4 KB
/
showMessages.js
1
2
3
4
5
6
7
8
9
10
11
12
13
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
62
63
64
define(['jquery'], function($) {
'use strict';
function showMessages($form, messages, options) {
options = $.extend({
fade: true,
floating: false,
prepend: false
}, options);
var $container = $form.find('.messages'),
msgs = [];
if (!$container.length) {
$container = $('<div class="messages"></div>').hide().addClass(options.classes || '');
if (options.floating) {
$container.addClass('messages-floating');
}
if (options.prepend) {
$container.prependTo($form);
}
else {
$container.appendTo($form);
}
}
messages.forEach(function(msg) {
msg.type = msg.type || 'message';
var msg_str;
switch (msg.type) {
case 'error':
case 'message':
case 'success':
break;
default :
throw ('"' + msg.type + '" is not a valid message type');
}
if (msg.fade === false) {
options.fade = false;
}
msg_str = '<div class="' + msg.type + '" data-message-type="' + msg.type + '">' +
'<span class="icon-status-' + msg.type + ' icon sprite-site-elements"></span>' +
msg.message +
'</div>';
msgs.push(msg_str);
});
$container.html(msgs.join('')).show();
if (options.fade) {
$container.delay(5000).fadeOut(1000);
}
}
return showMessages;
});