]> BookStack Code Mirror - bookstack/blob - resources/assets/js/jquery-extensions.js
Added AJAX-based search to books, Fixes #15
[bookstack] / resources / assets / js / jquery-extensions.js
1
2 jQuery.fn.smoothScrollTo = function() {
3     if(this.length === 0) return;
4     $('body').animate({
5         scrollTop: this.offset().top - 60 // Adjust to change final scroll position top margin
6     }, 800); // Adjust to change animations speed (ms)
7     return this;
8 };
9 $.expr[":"].contains = $.expr.createPseudo(function(arg) {
10     return function( elem ) {
11         return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
12     };
13 });
14
15 jQuery.fn.showSuccess = function (message) {
16     var elem = $(this);
17     var success = $('<div class="text-pos" style="display:none;"><i class="zmdi zmdi-check-circle"></i>' + message + '</div>');
18     elem.after(success);
19     success.slideDown(400, function () {
20         setTimeout(function () {
21             success.slideUp(400, function () {
22                 success.remove();
23             })
24         }, 2000);
25     });
26 };
27
28 jQuery.fn.showFailure = function (messageMap) {
29     var elem = $(this);
30     $.each(messageMap, function (key, messages) {
31         var input = elem.find('[name="' + key + '"]').last();
32         var fail = $('<div class="text-neg" style="display:none;"><i class="zmdi zmdi-alert-circle"></i>' + messages.join("\n") + '</div>');
33         input.after(fail);
34         fail.slideDown(400, function () {
35             setTimeout(function () {
36                 fail.slideUp(400, function () {
37                     fail.remove();
38                 })
39             }, 2000);
40         });
41     });
42
43 };