// Настройки Datatables var default_datatables_setting = { 'oLanguage': { 'sProcessing': 'Ожидание...', 'sLengthMenu': '_MENU_ результатов на странице', 'sZeroRecords': 'Нет результатов.', 'sInfo': 'Показано с _START_ по _END_ из _TOTAL_ записей', 'sInfoEmpty': 'Показано с 0 по 0 из 0 записей', 'sInfoFiltered': '(отфильтровано из _MAX_ записей)', 'sInfoPostFix': '', "sThousands": '.', "sInfoThousands": ".", 'sSearch': 'Поиск:', 'sUrl': '', 'oPaginate': { 'sFirst': 'Первая', 'sPrevious': 'Предыдущая', 'sNext': 'Следующая', 'sLast': 'Последняя' }, 'oAria': { 'sSortAscending': ': активировать сортировку столбца по возрастанию', 'sSortDescending': ': активировать сортировку столбца по убыванию' } }, 'bAutoWidth': false, 'sPaginationType': 'full_numbers', 'fnInitComplete': function (oSettings) { $(oSettings.nTableWrapper).find('.dataTables_filter input').addClass('form-control input-sm'); $(oSettings.nTableWrapper).find('.dataTables_length select').addClass('form-control input-sm'); } }; var push_message_timeout = 0; var ajax_result; $(document).delegate(".modal:visible","keyup",function(e) { if (e.keyCode == 27) { $('.close').click(); } if (e.ctrlKey && e.keyCode == 13) { $('button[type="submit"]').click(); } }); $(document).delegate(".url-control, .dataTables_length select","keyup change", function(){ change_url(); }); function change_url(reload){ var url = ''; $('.url-control, .dataTables_length select').each(function(i){ if($(this).val() != ''){ url += '&' + $(this).attr('name') + '=' + $(this).val(); } }); if($('.paginate_button.current').length){ url += '&page=' + $('.paginate_button.current').text(); } url = '?'+url.substring(1, url.length); window.history.pushState('backler', 'title' , url); if(reload) location.reload(); } //--------------------------------------------------------------------- // Elastic texarea form (autoheight) function elastic_textarea(){ $('textarea.elastic').each(function(){ $(this).elastic(); }); } // Make function Isset function isset(r) { return typeof r !== 'undefined'; } // Get-params from URL function getUrl(param){ url = window.location.href; gets = url.substr(url.indexOf('?')+1); if(url != gets){ gets = gets.split('&'); var getParams = new Array(); for(var i in gets) { var arr = gets[i].split('='); getParams[arr[0]] = arr[1]; } if(!param){ return getParams; } else { return getParams[param]; } } else { return ''; } } $(function () { if($.mask){ $.mask.definitions['9'] = ''; $.mask.definitions['d'] = '[0-9]'; } // Page on top $('#content').after(''); $('a#page_up').click(function(){ $('body,html').animate({scrollTop:0},800); }); $(window).scroll(function () { if ($(this).scrollTop() > 500){ $('a#page_up').fadeIn('fast'); } else { $('a#page_up').fadeOut('fast'); } }); elastic_textarea(); $('.nav-tabs li a').on('click',function(){ elastic_textarea(); }); $('.tab-pane').each(function(){ elastic_textarea(); }); // Select active elements in top vertical menu $('.main-menu').children('li').each(function(index, element) { var url = window.location.pathname; module = url.split('/'); var link = $(element).find('a').attr('href'); if(link == '/'+module[1]) $(element).addClass('active'); }); $( document ).ajaxError(function() { // viewPushMessage('error', ['Ошибка AJAX запроса']); viewFormMessage(forms, 'error', ['Ошибка AJAX запроса']); }); // forms.on('submit', function () { $('body').on('submit', 'form.ajaxForm', function (e) { var forms = $('form.ajaxForm'); var form_upload = $('#ajaxFormUpload'); var frame_upload_result = $('#ajaxFormUploadResult'); e.preventDefault(); var go_ok = true; if($('#ajax_confirm').length && $('#ajax_confirm').val()==1 && $('#permit').val()!='' && $('#permit').length) { go_ok = false; } if (go_ok == true) { var form = $(this); var submit = form.find("[type=submit]"); var file_inputs = form.find('input[form=ajaxFormUpload]'); submit.attr('disabled', 'disabled').addClass('disabled'); if (file_inputs.length) { form_upload.trigger('submit'); frame_upload_result.off('load'); frame_upload_result.on('load', function () { var files = JSON.parse($(this).contents().text().match(/\{.*\}$/)[0])['files']; var cntFiles = files.length; if(cntFiles > 0){ for (var i = 0; i < cntFiles; i++) { form.find('.temp_file[name='+files[i]['name']+']').each(function(){ element = $(this); fileID = element.val(); $.ajax({ url: '/files/delFileByID', type: 'post', data: {fileID:fileID}, method: 'post', success: function() { element.remove(); } }); }); form.append(''); } } form.trigger('sendAjaxForm'); }); } else { form.trigger('sendAjaxForm'); } return false; } else { return false; } }); // forms.on('sendAjaxForm', function () $('body').on('sendAjaxForm', 'form.ajaxForm', function () { var form = $(this); var submit = form.find("[type=submit]"); var data = form.serializeArray(); //Form data // data = new FormData(); // var form_data = form.serializeArray(); // $.each(form_data, function (key, input) { // data.append(input.name, input.value); // }); // $.each(form.find("input[type=file]")[0].files,function(key, input){ // data.append('files[]', input); // }); $.ajax({ 'url': form.attr('action'), 'type': form.attr('method'), 'data': data, //'contentType': false, //'processData': false, 'dataType': 'json', 'beforeSend': function(){ }, 'error': function (jqXHR, error, errorThrown) { // viewPushMessage('error', [error]); viewFormMessage(form, 'error', [error]); submit.removeAttr('disabled').removeClass('disabled'); }, 'success': function (data) { if (typeof(data.success) != 'undefined') { // viewPushMessage('success', data.success.message); viewFormMessage(form,'success', data.success.message); if (typeof(data.success.timeout) != 'undefined' && typeof(data.success.trigger) != 'undefined') { setTimeout(function () { if(data.success.trigger=='calendar'){ $('#calendar').fullCalendar( 'refetchEvents' ); $('.modal').find('.close').click(); } form.trigger(data.success.trigger, [data.success.data]); }, data.success.timeout); } else { submit.removeAttr('disabled').removeClass('disabled'); } } else if (typeof(data.errors) != 'undefined') { submit.removeAttr('disabled').removeClass('disabled'); var arrErrors = []; for (var i in data.errors) { arrErrors[arrErrors.length] = data.errors[i].message; } // viewPushMessage('error', arrErrors); viewFormMessage(form, 'error', arrErrors); } } }); return false; }); // forms.on('redirect', function (e, url) $('body').on('redirect', 'form.ajaxForm', function (e, url) { window.location = url; }); // forms.on('refresh', function (e, url) $('body').on('refresh', 'form.ajaxForm', function (e, url) { location.reload() }); if (typeof($.fn.dataTable) != 'undefined') { $.extend($.fn.dataTable.defaults, default_datatables_setting); $.fn.dataTableExt.oSort['hidden-asc'] = function(x,y) { x = $(x).find('input[type=hidden]:first').val(); y = $(y).find('input[type=hidden]:first').val(); return ((x < y) ? 1 : ((x > y) ? -1 : 0)); } $.fn.dataTableExt.oSort['hidden-desc'] = function(x,y) { x = $(x).find('input[type=hidden]:first').val(); y = $(y).find('input[type=hidden]:first').val(); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); } } if ($.fn.datepicker) { $.fn.datepicker.defaults.format = "dd.mm.yyyy"; $.fn.datepicker.defaults.language = "en"; $.fn.datepicker.defaults.weekStart = 1; } function viewPushMessage(type, message) { if ($(window).scrollTop() == 0) {$('body').stop(true, true).animate({'padding-top':$('#main_menu').height()}, 500);} $('#top').stop(true, true).animate({'top':- $('#push_panel').outerHeight()}, 500, function () { clearTimeout(push_message_timeout); $('#push_panel').removeAttr('class').hide().children('div').empty(); if (type == 'error') { $('#push_panel').addClass('error'); var cntError = message.length; for (var i = 0; i < cntError; i++) { $('#push_panel > div').append('
'+message[i]+'
'); } } else if (type == 'success') { $('#push_panel').addClass('success').children('div').html(message); } else if (type == 'info') { $('#push_panel').addClass('info').children('div').html(message); } $('#push_panel').show(); $('#top').css({'top':- $('#push_panel').outerHeight()}) $('#top').stop(true, true).animate({'top':0}, 500); if ($(window).scrollTop() == 0) {$('body').stop(true, true).animate({'padding-top':$('#top').height()}, 500)} push_message_timeout = setTimeout(function () { $('#top').stop(true, true).animate({'top':- $('#push_panel').outerHeight()}, 500); $('body').stop(true, true).animate({'padding-top':$('#main_menu').height()}, 500); }, 5000); }); } function viewFormMessage(form, type, message) { clearTimeout(push_message_timeout); $('#callback_panel').remove(); form.after('
'); if (type == 'error') { $('#callback_panel').addClass('alert-danger'); var cntError = message.length; for (var i = 0; i < cntError; i++) { $('#callback_panel').append('
'+message[i]+'
'); } } else if (type == 'success') { $('#callback_panel').addClass('alert-success').html(message); } else if (type == 'warning') { $('#callback_panel').addClass('alert-warning').html(message); } else if (type == 'info') { $('#callback_panel').addClass('alert-info').html(message); } $('#callback_panel').show(); push_message_timeout = setTimeout(function () { $('#callback_panel').fadeOut(500, function(){ $('#callback_panel').remove(); }); }, 5000); } function getProjectInfo(projectID) { result = $.ajax({ 'url' : '/projects/get_project_info', 'type' : 'post', 'async' : false, 'beforeSend' : function () { $(document).off('resultProjects'); $(document).on('resultProjects', function (e, data) { }); }, 'dataType' : 'json', 'data' : {'projectID' : projectID}, 'success' : function (data) { ajax_result = data; } }); return result.responseJSON; } function getTaskInfo(taskID) { } function getTimeInfo(timeID) { } // Подключение DatePicker и Masked к Input if ($('.datepicker').length) { $dp = $('.datepicker').datepicker().on('changeDate', function(ev){ $dp.datepicker('hide'); }).mask("dd.dd.dddd"); $('body').on('click',function(){ // $dp.datepicker('hide'); }); } // Устанавливаем формат телефона // if ($('#phone').length) // { // $('#phone').mask("8-ddd-ddd-dd-dd"); // } }); function floatval(mixed_var) { return (parseFloat(mixed_var) || 0); } function getDate(dateString) { var result = dateString.match(/(\d{2})\.(\d{2}).(\d{4})/); return new Date(result[3], result[2]-1, result[1]); } function dateFormat(date,format) { var day=date.getDate(); var month=date.getMonth(); var year=date.getFullYear(); var week=date.getDay(); var hour=date.getHours(); var minute=date.getMinutes(); var secound=date.getSeconds(); // var months1 = ['January','February','March','April','May','June','July','August','September','October','November','December']; // var months2 = ['january','february','march','april','may','june','july','august','september','october','november','december']; // var week1 = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; // var week2 = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; var months1 = ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь']; var months2 = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря']; var week1 = ['Воскресение', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота']; var week2 = ['воскресение', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота']; var returns = format; returns = returns.replace(/\hh\b/,(hour<10?'0'+hour:hour)); returns = returns.replace(/\min\b/,(minute<10?'0'+minute:minute)); returns = returns.replace(/\ss\b/,(secound<10?'0'+secound:secound)); returns = returns.replace(/\bdd\b/,(day<10?'0'+day:day)); returns = returns.replace(/\bd\b/,parseInt(day)); returns = returns.replace(/\bm\b/,month); returns = returns.replace(/\bM\b/,(month+1<10?'0'+(month+1):month+1)); returns = returns.replace(/\bMM\b/,months1[month]); returns = returns.replace(/\bmm\b/,months2[month]); returns = returns.replace(/\bw\b/,week); returns = returns.replace(/\bWW\b/,week1[week]); returns = returns.replace(/\bww\b/,week2[week]); returns = returns.replace(/\byyyy\b/,year); return returns; } function number_format(number, decimals, dec_point, thousands_sep) { number = (number + '').replace(/[^0-9+\-Ee.]/g, ''); var n = !isFinite(+number) ? 0 : +number, prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, dec = (typeof dec_point === 'undefined') ? '.' : dec_point, s = '', toFixedFix = function(n, prec) { var k = Math.pow(10, prec); return '' + (Math.round(n * k) / k) .toFixed(prec); }; // Fix for IE parseFloat(0.55).toFixed(0) = 0; s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)) .split('.'); if (s[0].length > 3) { s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep); } if ((s[1] || '') .length < prec) { s[1] = s[1] || ''; s[1] += new Array(prec - s[1].length + 1) .join('0'); } return s.join(dec); } /* Bootstrap Tooltip Init */ $(function () { if($('[data-toggle="tooltip"]').length){ $('[data-toggle="tooltip"]').tooltip(); } }) /* Mask function */ $(document).ready(function(){ if($.mask){ $.mask.definitions['9'] = ''; $.mask.definitions['d'] = '[0-9]'; } if ($('.mask-phone').length){ mask_phone(); } if ($('.mask-inn').length){ mask_inn(); } if ($('.mask-kpp').length){ mask_kpp(); } if ($('.mask-bank_bik').length){ mask_bank_bik(); } if ($('.mask-ogrn').length){ mask_ogrn(); } if ($('.mask-bank_rs').length){ mask_bank_rs(); } if ($('.mask-bank_ks').length){ mask_bank_ks(); } if ($('.mask-time').length){ mask_time(); } }); function mask_phone() { $('.mask-phone').mask("+d (ddd) ddd-dddd?ddddd"); }; function mask_time() { $('.mask-time').mask("dd.dd"); }; function mask_inn() { $('.mask-inn').mask("dddddddddd?dd"); }; function mask_kpp() { $('.mask-kpp').mask("ddddddddd"); }; function mask_bank_bik() { $('.mask-bank_bik').mask("ddddddddd"); }; function mask_ogrn() { $('.mask-ogrn').mask("ddddddddddddd?dd"); }; function mask_bank_rs() { $('.mask-bank_rs').mask("dddddddddddddddddddd"); }; function mask_bank_ks() { $('.mask-bank_ks').mask("dddddddddddddddddddd"); };