(function() { $(document).ready(function () { $('.delete_license').click(function (e) { e.preventDefault(); var accountID = $(this).data('id'); $('#dialogs').html('Удалить счет на оплату?'); $('#dialogs').dialog({ buttons: { "Да": function () { $.post('/my/delete_license/' + accountID + '/', function () { $("[data-id='" + accountID + "']")[0].remove() }); $(this).dialog("close"); }, "Нет": function () { $(this).dialog("close"); } } }) }); var filterLinks = document.getElementsByClassName('filter__link'); var filterPeriodLinks = document.getElementsByClassName('period__link'); var filterPeriod = false; var filterStatus = false; var filterType = false; var options = { valueNames: [ {data: ['id']}, 'order-date', {data: ['type']}, {data: ['status']} ] }; var today = new Date(); var dd = today.getDate(); var month = today.getMonth() + 1; var year = today.getFullYear(); var quarter, prevMonth, prevMonthYear, prevQuarter, prevYear; var orderList = new List('listData', options); if (dd < 10) { dd = '0' + dd } if (month < 10) { month = '0' + month } function getPrevMonth(d) { var result; d = d || new Date(); result = d.getMonth(); if (result === 0) { result = 12 } if (result < 10) { result = '0' + result } return result } function getPrevMonthYear(d) { var result; d = d || new Date(); var currMon = d.getMonth(); if (currMon === 0) { result = d.getFullYear() - 1 } else { result = d.getFullYear() } return result } function getQuarter(d) { var result; d = d || new Date(); var m = Math.floor(d.getMonth() / 3) + 2; result = m > 4 ? m - 4 : m; return result - 1 } function getQuarterForStrDate(strDate) { var parts = strDate.split('.'); var resDate = new Date(parts[2], parts[1] - 1, parts[0]); return getQuarter(resDate) } function getPrevQuarter() { var result; if (quarter === 1) { result = 4 } else { result = quarter - 1 } return result; } quarter = getQuarter(); prevMonth = getPrevMonth(); prevMonthYear = getPrevMonthYear(); prevQuarter = getPrevQuarter(); prevYear = year - 1; $('#filterNone').click(function () { filterPeriod = false; filterStatus = false; filterType = false; orderList.filter(); resetAllFilterStatus(); return false; }); $('#filterAccountsNone').click(function () { filterStatus = false; filterType = 'account'; filterItems(); return false; }); $('#filterAccountsPay').click(function () { filterStatus = ['2']; filterType = 'account'; filterItems(); return false; }); $('#filterAccountsWaitPay').click(function () { filterStatus = ['0']; filterType = 'account'; filterItems(); return false; }); $('#filterAccountsFreezePay').click(function () { filterStatus = ['4']; filterType = 'account'; filterItems(); return false; }); $('#filterLicenseNone').click(function () { filterStatus = false; filterType = 'license'; filterItems(); return false; }); $('#filterLicenseNow').click(function () { filterStatus = ['-1', '2']; filterType = 'license'; filterItems(); return false; }); $('#filterLicenseOld').click(function () { filterStatus = ['3']; filterType = 'license'; filterItems(); return false; }); $('#filterPeriodNone').click(function () { filterPeriod = false; filterItems(); return false; }); $('#filterPeriodThisMonth').click(function () { filterPeriod = 1; filterItems(); return false; }); $('#filterPeriodPrevMonth').click(function () { filterPeriod = 2; filterItems(); return false; }); $('#filterPeriodThisQuarter').click(function () { filterPeriod = 3; filterItems(); return false; }); $('#filterPeriodPrevQuarter').click(function () { filterPeriod = 4; filterItems(); return false; }); $('#filterPeriodThisYear').click(function () { filterPeriod = 5; filterItems(); return false; }); $('#filterPeriodPrevYear').click(function () { filterPeriod = 6; filterItems(); return false; }); function filterItemsDontPeriod() { orderList.filter(function (item) { if (!filterType && !filterStatus) { return true } if (filterType && filterStatus) { return item.values().type === filterType && filterStatus.includes(item.values().status); } if (filterType) { return item.values().type === filterType; } }); } function filterItemsMonth() { orderList.filter(function (item) { if (!filterType && !filterStatus) { return item.values()['order-date'].split('.')[1] === month.toString() && item.values()['order-date'].split('.')[2] === year.toString(); } if (filterType && filterStatus) { return item.values()['order-date'].split('.')[1] === month.toString() && item.values()['order-date'].split('.')[2] === year.toString() && item.values().type === filterType && filterStatus.includes(item.values().status); } if (filterType) { return item.values()['order-date'].split('.')[1] === month.toString() && item.values()['order-date'].split('.')[2] === year.toString() && item.values().type === filterType; } }); } function filterItemsPrevMonth() { orderList.filter(function (item) { if (!filterType && !filterStatus) { return item.values()['order-date'].split('.')[1] === prevMonth.toString() && item.values()['order-date'].split('.')[2] === prevMonthYear.toString(); } if (filterType && filterStatus) { return item.values()['order-date'].split('.')[1] === prevMonth.toString() && item.values()['order-date'].split('.')[2] === prevMonthYear.toString() && item.values().type === filterType && filterStatus.includes(item.values().status); } if (filterType) { return item.values()['order-date'].split('.')[1] === prevMonth.toString() && item.values()['order-date'].split('.')[2] === prevMonthYear.toString() && item.values().type === filterType; } }); } function filterItemsThisQuarter() { orderList.filter(function (item) { if (!filterType && !filterStatus) { return getQuarterForStrDate(item.values()['order-date']) === quarter } if (filterType && filterStatus) { return getQuarterForStrDate(item.values()['order-date']) === quarter && item.values().type === filterType && filterStatus.includes(item.values().status); } if (filterType) { return getQuarterForStrDate(item.values()['order-date']) === quarter && item.values().type === filterType; } }); } function filterItemsPrevQuarter() { orderList.filter(function (item) { if (!filterType && !filterStatus) { return getQuarterForStrDate(item.values()['order-date']) === prevQuarter } if (filterType && filterStatus) { return getQuarterForStrDate(item.values()['order-date']) === prevQuarter && item.values().type === filterType && filterStatus.includes(item.values().status); } if (filterType) { return getQuarterForStrDate(item.values()['order-date']) === prevQuarter && item.values().type === filterType; } }); } function filterItemsThisYear() { orderList.filter(function (item) { if (!filterType && !filterStatus) { return item.values()['order-date'].split('.')[2] === year.toString() } if (filterType && filterStatus) { return item.values()['order-date'].split('.')[2] === year.toString() && item.values().type === filterType && filterStatus.includes(item.values().status); } if (filterType) { return item.values()['order-date'].split('.')[2] === year.toString() && item.values().type === filterType; } }); } function filterItemsPrevYear() { orderList.filter(function (item) { if (!filterType && !filterStatus) { return item.values()['order-date'].split('.')[2] === prevYear.toString() } if (filterType && filterStatus) { return item.values()['order-date'].split('.')[2] === prevYear.toString() && item.values().type === filterType && filterStatus.includes(item.values().status); } if (filterType) { return item.values()['order-date'].split('.')[2] === prevYear.toString() && item.values().type === filterType; } }); } function filterItems() { if (!filterPeriod) { filterItemsDontPeriod() } if (filterPeriod === 1) { filterItemsMonth() } if (filterPeriod === 2) { filterItemsPrevMonth() } if (filterPeriod === 3) { filterItemsThisQuarter() } if (filterPeriod === 4) { filterItemsPrevQuarter() } if (filterPeriod === 5) { filterItemsThisYear() } if (filterPeriod === 6) { filterItemsPrevYear() } } function removeClass(obj, cls) { var classes = obj.className.split(' '); for (var i = 0; i < classes.length; i++) { if (classes[i] === cls) { classes.splice(i, 1); i--; } } obj.className = classes.join(' '); } function setActive(element) { element.className += ' is_active_filter'; } function resetAllFilterStatus() { for (var i = 0; i < filterLinks.length; i++) { if (filterLinks[i].classList.contains('is_active_filter')) { removeClass(filterLinks[i], 'is_active_filter') } } for (var j = 0; j < filterPeriodLinks.length; j++) { if (filterPeriodLinks[j].classList.contains('is_active_filter')) { removeClass(filterPeriodLinks[j], 'is_active_filter') } } } function resetAnotherFilterStatus(element, typeLinks) { if (typeLinks === 'type') { for (var i = 0; i < filterLinks.length; i++) { if (filterLinks[i] === element) { // console.log(filterLinks[i]); } else { if (filterLinks[i].classList.contains('is_active_filter')) { removeClass(filterLinks[i], 'is_active_filter') } } } } else { for (var j = 0; j < filterPeriodLinks.length; j++) { if (filterPeriodLinks[j] === element) { // console.log(filterLinks[i]); } else { if (filterPeriodLinks[j].classList.contains('is_active_filter')) { removeClass(filterPeriodLinks[j], 'is_active_filter') } } } } } for (var i = 0; i < filterLinks.length; i++) { filterLinks[i].addEventListener('click', function () { setActive(this); resetAnotherFilterStatus(this, 'type'); }) } for (var j = 0; j < filterPeriodLinks.length; j++) { filterPeriodLinks[j].addEventListener('click', function () { setActive(this); resetAnotherFilterStatus(this, 'period'); }) } }); })();