jQuery(window).load(function() { // Page Preloader jQuery('#status').fadeOut(); jQuery('#preloader').delay(350).fadeOut(function(){ jQuery('body').delay(350).css({'overflow':'visible'}); }); }); // Altrimenti non mette le scroolbars jQuery('body').delay(350).css({'overflow':'visible'}); jQuery(document).ready(function() { // Toggle Left Menu jQuery('.leftpanel .nav-parent > a').live('click', function() { var parent = jQuery(this).parent(); var sub = parent.find('> ul'); // Dropdown works only when leftpanel is not collapsed if(!jQuery('body').hasClass('leftpanel-collapsed')) { if(sub.is(':visible')) { sub.slideUp(200, function(){ parent.removeClass('nav-active'); jQuery('.mainpanel').css({height: ''}); adjustmainpanelheight(); }); } else { closeVisibleSubMenu(); parent.addClass('nav-active'); sub.slideDown(200, function(){ adjustmainpanelheight(); }); } } return false; }); function closeVisibleSubMenu() { jQuery('.leftpanel .nav-parent').each(function() { var t = jQuery(this); if(t.hasClass('nav-active')) { t.find('> ul').slideUp(200, function(){ t.removeClass('nav-active'); }); } }); } function adjustmainpanelheight() { // Adjust mainpanel height var docHeight = jQuery(document).height(); if(docHeight > jQuery('.mainpanel').height()) jQuery('.mainpanel').height(docHeight); } adjustmainpanelheight(); // Tooltip jQuery('.tooltips').tooltip({ container: 'body'}); // Popover jQuery('.popovers').popover(); // Close Button in Panels jQuery('.panel .panel-close').click(function(){ jQuery(this).closest('.panel').fadeOut(200); return false; }); // Form Toggles jQuery('.toggle').toggles({on: true}); jQuery('.toggle-chat1').toggles({on: false}); // Sparkline jQuery('#sidebar-chart').sparkline([4,3,3,1,4,3,2,2,3,10,9,6], { type: 'bar', height:'30px', barColor: '#428BCA' }); jQuery('#sidebar-chart2').sparkline([1,3,4,5,4,10,8,5,7,6,9,3], { type: 'bar', height:'30px', barColor: '#D9534F' }); jQuery('#sidebar-chart3').sparkline([5,9,3,8,4,10,8,5,7,6,9,3], { type: 'bar', height:'30px', barColor: '#1CAF9A' }); jQuery('#sidebar-chart4').sparkline([4,3,3,1,4,3,2,2,3,10,9,6], { type: 'bar', height:'30px', barColor: '#428BCA' }); jQuery('#sidebar-chart5').sparkline([1,3,4,5,4,10,8,5,7,6,9,3], { type: 'bar', height:'30px', barColor: '#F0AD4E' }); // Minimize Button in Panels jQuery('.minimize').click(function(){ var t = jQuery(this); var p = t.closest('.panel'); if(!jQuery(this).hasClass('maximize')) { p.find('.panel-body, .panel-footer').slideUp(200); t.addClass('maximize'); t.html('+'); } else { p.find('.panel-body, .panel-footer').slideDown(200); t.removeClass('maximize'); t.html('−'); } return false; }); // Add class everytime a mouse pointer hover over it jQuery('.nav-bracket > li').hover(function(){ jQuery(this).addClass('nav-hover'); }, function(){ jQuery(this).removeClass('nav-hover'); }); // Menu Toggle jQuery('.menutoggle').click(function(){ var body = jQuery('body'); var bodypos = body.css('position'); if(bodypos != 'relative') { if(!body.hasClass('leftpanel-collapsed')) { body.addClass('leftpanel-collapsed'); jQuery('.nav-bracket ul').attr('style',''); jQuery(this).addClass('menu-collapsed'); } else { body.removeClass('leftpanel-collapsed chat-view'); jQuery('.nav-bracket li.active ul').css({display: 'block'}); jQuery(this).removeClass('menu-collapsed'); } } else { if(body.hasClass('leftpanel-show')) body.removeClass('leftpanel-show'); else body.addClass('leftpanel-show'); adjustmainpanelheight(); } }); // Chat View jQuery('#chatview').click(function(){ var body = jQuery('body'); var bodypos = body.css('position'); if(bodypos != 'relative') { if(!body.hasClass('chat-view')) { body.addClass('leftpanel-collapsed chat-view'); jQuery('.nav-bracket ul').attr('style',''); } else { body.removeClass('chat-view'); if(!jQuery('.menutoggle').hasClass('menu-collapsed')) { jQuery('body').removeClass('leftpanel-collapsed'); jQuery('.nav-bracket li.active ul').css({display: 'block'}); } else { } } } else { if(!body.hasClass('chat-relative-view')) { body.addClass('chat-relative-view'); body.css({left: ''}); } else { body.removeClass('chat-relative-view'); } } }); reposition_topnav(); reposition_searchform(); jQuery(window).resize(function(){ if(jQuery('body').css('position') == 'relative') { jQuery('body').removeClass('leftpanel-collapsed chat-view'); } else { jQuery('body').removeClass('chat-relative-view'); jQuery('body').css({left: '', marginRight: ''}); } reposition_searchform(); reposition_topnav(); }); /* This function will reposition search form to the left panel when viewed * in screens smaller than 767px and will return to top when viewed higher * than 767px */ function reposition_searchform() { if(jQuery('.searchform').css('position') == 'relative') { jQuery('.searchform').insertBefore('.leftpanelinner .userlogged'); } else { jQuery('.searchform').insertBefore('.header-right'); } } /* This function allows top navigation menu to move to left navigation menu * when viewed in screens lower than 1024px and will move it back when viewed * higher than 1024px */ function reposition_topnav() { if(jQuery('.nav-horizontal').length > 0) { // top navigation move to left nav // .nav-horizontal will set position to relative when viewed in screen below 1024 if(jQuery('.nav-horizontal').css('position') == 'relative') { if(jQuery('.leftpanel .nav-bracket').length == 2) { jQuery('.nav-horizontal').insertAfter('.nav-bracket:eq(1)'); } else { // only add to bottom if .nav-horizontal is not yet in the left panel if(jQuery('.leftpanel .nav-horizontal').length == 0) jQuery('.nav-horizontal').appendTo('.leftpanelinner'); } jQuery('.nav-horizontal').css({display: 'block'}) .addClass('nav-pills nav-stacked nav-bracket'); jQuery('.nav-horizontal .children').removeClass('dropdown-menu'); jQuery('.nav-horizontal > li').each(function() { jQuery(this).removeClass('open'); jQuery(this).find('a').removeAttr('class'); jQuery(this).find('a').removeAttr('data-toggle'); }); if(jQuery('.nav-horizontal li:last-child').has('form')) { jQuery('.nav-horizontal li:last-child form').addClass('searchform').appendTo('.topnav'); jQuery('.nav-horizontal li:last-child').hide(); } } else { // move nav only when .nav-horizontal is currently from leftpanel // that is viewed from screen size above 1024 if(jQuery('.leftpanel .nav-horizontal').length > 0) { jQuery('.nav-horizontal').removeClass('nav-pills nav-stacked nav-bracket') .appendTo('.topnav'); jQuery('.nav-horizontal .children').addClass('dropdown-menu').removeAttr('style'); jQuery('.nav-horizontal li:last-child').show(); jQuery('.searchform').removeClass('searchform').appendTo('.nav-horizontal li:last-child .dropdown-menu'); jQuery('.nav-horizontal > li > a').each(function() { jQuery(this).parent().removeClass('nav-active'); if(jQuery(this).parent().find('.dropdown-menu').length > 0) { jQuery(this).attr('class','dropdown-toggle'); jQuery(this).attr('data-toggle','dropdown'); } }); } } } } // Sticky Header if(jQuery.cookie('sticky-header')) jQuery('body').addClass('stickyheader'); // Sticky Left Panel if(jQuery.cookie('sticky-leftpanel')) { jQuery('body').addClass('stickyheader'); jQuery('.leftpanel').addClass('sticky-leftpanel'); } // Left Panel Collapsed if(jQuery.cookie('leftpanel-collapsed')) { jQuery('body').addClass('leftpanel-collapsed'); jQuery('.menutoggle').addClass('menu-collapsed'); } // Changing Skin var c = jQuery.cookie('change-skin'); if(c) { jQuery('head').append(''); } // Changing Font var fnt = jQuery.cookie('change-font'); if(fnt) { jQuery('head').append(''); } // Check if leftpanel is collapsed if(jQuery('body').hasClass('leftpanel-collapsed')) jQuery('.nav-bracket .children').css({display: ''}); // Handles form inside of dropdown jQuery('.dropdown-menu').find('form').click(function (e) { e.stopPropagation(); }); // LM: Allow change of data in BS modal window removing previous (cached) data and cleaning the internal elements $('body').on('hidden.bs.modal', '#myAjaxModal', function () { $(this).removeData('bs.modal'); $('#myAjaxModal .modal-content').empty(); }); jQuery.extend({ getUrlVars: function(){ var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; }, lmGetUrlVars: function () { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for (var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); if (typeof hash[1] !== 'undefined') { vars[hash[0]] = hash[1]; } } return vars; }, getUrlVar: function(name){ return jQuery.getUrlVars()[name]; }, lmGetQueryParamString: function (arrQueryParams) { // LM: create the URL query string let strQueryString = jQuery.param(arrQueryParams, false); // for jQuery 3.x compatibility explicit the value of the 2nd 'traditional' argument return ( strQueryString.length ? '?' + strQueryString : ''); }, lmTransformToSerializeArrayFormat: function (urlParams) { // LM: transform to serializeArray format (used also from jQuery 'param' function) // Note: passing only parameters with assigned value (so it does allow to remove/reset old filters in URL) let arrNewQueryParams = []; Object.keys(urlParams).forEach(function(key) { // key: the name of the object key if (urlParams[key]) { arrNewQueryParams.push({name: key, value: urlParams[key]}) } }); return arrNewQueryParams; }, lmGetHostAndPathName: function () { return 'https://' + $(location).attr('hostname') + $(location).attr('pathname'); } }); /* --- LM: get URL query parameters --- */ arrUrlParams = jQuery.lmGetUrlVars(); /* --- LM: end of get query parameters --- */ /* --- DataRangePicker --- */ if (window.moment) { //moment.lang('it'); // Check for parameters $getDateStart = arrUrlParams['date_start']; $getDateEnd = arrUrlParams['date_end']; if ( moment($getDateStart, 'YYYYMMDD').isValid() && moment($getDateEnd, 'YYYYMMDD').isValid() ) { $myMomentDateStart = moment($getDateStart, 'YYYYMMDD'); $myMomentDateEnd = moment($getDateEnd, 'YYYYMMDD'); } else { $myMomentDateStart = moment().subtract(29, 'days'); $myMomentDateEnd = moment(); } $myMomentDateStart.locale('it_IT'); $myMomentDateEnd.locale('it_IT'); var cb = function(start, end, label) { console.log(start.toISOString(), end.toISOString(), label); console.log(label); start.locale('it_IT'); end.locale('it_IT'); if (label !== 'Personalizzato') { $('#reportrange span').html(start.format('ddd D MMMM YYYY') + ' - ' + end.format('ddd D MMMM YYYY')); } }; var optionSet1 = { // startDate: moment().subtract(29, 'days'), // endDate: moment(), startDate: $myMomentDateStart, endDate: $myMomentDateEnd, minDate: '01/01/2012', maxDate: moment(), //dateLimit: { days: 60 }, showDropdowns: true, showWeekNumbers: false, timePicker: false, timePickerIncrement: 1, timePicker12Hour: true, ranges: { // 'Oggi': [moment(), moment()], 'Ieri': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 'Ultimi 7 Giorni': [moment().subtract(6, 'days'), moment()], 'Settimana Scorsa': [moment().startOf('week').subtract(1, 'week'), moment().startOf('week').subtract(1, 'day')], 'Ultimi 30 Giorni': [moment().subtract(29, 'days'), moment()], 'Questo Mese': [moment().startOf('month'), moment().endOf('month')], 'Mese Scorso': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] }, opens: 'left', buttonClasses: ['btn btn-default'], applyClass: 'btn-small btn-success', cancelClass: 'btn-small', format: 'DD/MM/YYYY', separator: ' to ', locale: { applyLabel: 'Applica', cancelLabel: 'Cancella', format: 'DD/MM/YYYY', fromLabel: 'Da', toLabel: 'A', customRangeLabel: 'Personalizzato', daysOfWeek: [ 'Do', 'Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa' ], monthNames: [ 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre' ], firstDay: 1 }, linkedCalendars: false }; // $('#reportrange span').html(moment().subtract(29, 'days').format('ddd D MMMM YYYY') + ' - ' + moment().format('ddd D MMMM YYYY')); $('#reportrange span').html($myMomentDateStart.format('ddd D MMMM YYYY') + ' - ' + $myMomentDateEnd.format('ddd D MMMM YYYY')); $('#reportrange').daterangepicker(optionSet1, cb); $('#reportrange').on('show.daterangepicker', function() { console.log("show event fired"); }); $('#reportrange').on('hide.daterangepicker', function() { console.log("hide event fired"); }); $('#reportrange').on('cancel.daterangepicker', function(ev, picker) { console.log("cancel event fired"); }); $('#reportrange').on('apply.daterangepicker', function(ev, picker) { console.log("apply event fired, start/end dates are " + picker.startDate.format('MMMM D, YYYY') + " to " + picker.endDate.format('MMMM D, YYYY')); arrUrlParams['date_start'] = picker.startDate.format('YYYYMMDD'); arrUrlParams['date_end'] = picker.endDate.format('YYYYMMDD'); // LM: transform to serializeArray format (used also from jQuery 'param' function) // Note: passing only parameters with assigned value (so it does allow to remove/reset old filters in URL) let arrNewQueryParams = jQuery.lmTransformToSerializeArrayFormat(arrUrlParams); let $newUrl = jQuery.lmGetHostAndPathName() + jQuery.lmGetQueryParamString(arrNewQueryParams); console.log($newUrl); window.location.href = $newUrl; }); } /* --- End of DataRangePicker --- */ /* --- Flot Defaults --- */ $flotColors = ['#058DC7', '#50B432', '#ED561B', '#EDEF00', '#24CBE5', '#64E572', '#FFF263', '#6AF9C4', '#B2DEFF']; $flotDayNames = ["dom", "lun", "mar", "mer", "gio", "ven", "sab"]; $flotMonthNames = ["gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "ott", "nov", "dic"]; /* --- End of Flot Defaults --- */ /* --- Export Table --- */ // For CSV exporting: Handle Btn Clicks jQuery('.export-tabledata-btn, .export-tabledata-hidden-btn').click(function(event) { event.preventDefault(); var $body = jQuery('body'); var nSerial = $body.data('serial'); var sDateStart = $body.data('date-start'); var sDateEnd = $body.data('date-end'); var sTitle = $body.data('title'); var sRows = ''; if (this.className == 'export-tabledata-hidden-btn') { option = { 'delivery': 'value', showHiddenRows: true }; sRows = 'all-rows-'; } else { option = { 'delivery': 'value', showHiddenRows: false }; } csv = jQuery('#table1').TableCSVExport(option); csv = csv.replace(/€/g, 'Euro'); console.log(csv); // Proceed if csv data was loaded if (csv.length > 0) { var sFilename = nSerial + '-' + sDateStart + '-' + sDateEnd + '-' + sTitle + '-' + sRows; sFilename = sFilename + 'vending-data'; jQuery('body').append(jQuery('
') .attr({'action': 'functions/export_tabledata.php', 'method': 'post', 'id': 'csv-submitter'}) .append(jQuery('