/** * 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 . */ $(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(e, p){ var animation = 200; if (typeof p != 'undefined' && p.load) animation = 0; if (!collapsed) $('.nav-title').finish().hide(); $('.sidebar').animate({ width: collapsed ? 250 : 50 }, animation); $('#page-wrapper').animate({ marginLeft: collapsed ? 250 : 50 }, animation); if (collapsed) $('.nav-title').finish().delay(animation).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; $.ajax({ url: const_url_external + 'ajax/collapse', method: 'GET', crossDomain: true, cache: false, xhrFields: { withCredentials: true }, data: { setting: collapsed } }); return true; }); });