aboutsummaryrefslogtreecommitdiff
path: root/js/businessadmin.js
blob: 34b20fbb9eb1f6ce5c74dc4034189933e1b284f7 (plain) (blame)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/**
 * BusinessAdmin: administrative software for small companies
 * Copyright (C) 2015 Camil Staps (ViviSoft)
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

$(document).ready(function(){
	// Use the plugin bootstrapValidator (a form validator) for all forms with class bootstrapValidator
	// The input elements should have data attributes containing all necessary information
	$('.bootstrapValidator').bootstrapValidator({
		feedbackIcons: {
		    valid: 'glyphicon glyphicon-ok',
		    invalid: 'glyphicon glyphicon-remove',
		    validating: 'glyphicon glyphicon-refresh'
        }
    });

    // Use the plugin form (to ajax-ify forms) for all forms with class ajaxify
    $('.ajaxify').each(function(){
    	var options = jQuery.extend(
    		{dataType: 'json'}, 
    		$(this).data('ajaxify-options')
    	);
    	if (options.success != undefined)
    		options.success = window[options.success];
    	if (options.error != undefined)
    		options.error = window[options.error];
    	if (options.beforeSubmit != undefined)
    		options.beforeSubmit = window[options.beforeSubmit];
    	$(this).ajaxForm(options);
    });

    // Use the plugin X-editable for .editable elements
    // Editables are disabled by default
    $('.editable').editable().editable('disable');
    // Open the editable on double click
    $('.editable').dblclick(function(){
        if ($(this).hasClass('editable-disabled')) {
            $(this).editable('enable').editable('show').editable('activate');
        }
    // Disable the editable again when it's hidden
    }).on('hidden', function(e, reason){
        $(this).editable('disable');
    }).click(function(e){
        e.preventDefault();
    });

    // Use the bootstrap-select plugin on all selects
    $('select').selectpicker();

    // Use the MixItUp plugin for sorting tables
    $('.mixitup').mixItUp({
        animation: {
            duration: 200,
            effects: 'fade'
        },
        layout: {
            display: 'table-row'
        }
    });
    $('.mixitup .mixitup-sort').click(function(){
        var mapping = {
            desc: 'asc',
            asc: 'desc'
        }
        $(this).data('sort', $(this).data('sort').replace(/asc|desc/gi, function(m){ return mapping[m]; }));
        $(this).closest('.mixitup').mixItUp('sort', $(this).data('sort'));
        var sorting = $(this).data('sort').substring($(this).data('sort').indexOf(':') + 1);
        
        $(this).parent().find('.mixitup-sort').removeClass('active sorting_asc sorting_desc').addClass('sorting');
        $(this).addClass('active sorting_' + sorting).removeClass('sorting');
    });

    // Collapse menu 
    var collapsed = false;
    $('#collapse-menu').click(function(){
        if (!collapsed)
            $('.nav-title').hide();
        $('.sidebar').animate({
            width: collapsed ? 250 : 50
        }, 200);
        $('#page-wrapper').animate({
            marginLeft: collapsed ? 250 : 50
        }, 200);
        if (collapsed)
            $('.nav-title').delay(200).queue(function(){$(this).show()});
        $(this).find('i.fa').removeClass('fa-caret-square-o-left fa-caret-square-o-right').addClass('fa-caret-square-o-' + (collapsed ? 'left' : 'right'));
        collapsed = !collapsed;
        return true;
    });
});