var numbers = []; $(document).ready(function () { noticer = new Noticer; $("button").button(); $("#tabs").tabs(); // $(".addNumber").click(() => { // numberAdd() // }); $("body").fadeTo(500, 1); $(".search").on("input", function () { showNumbers( $("#accordion-numbers .ui-accordion-content-active"), numbers.filter(e => e.number.includes($(this).val())) ) }).on("focus", function () { if ($(this).val()) showNumbers( $("#accordion-numbers .ui-accordion-content-active"), numbers.filter(e => e.number.includes($(this).val())) ); }).keydown(function (e) { e.key == "Escape" && ($(this).val(""), showNumbers($("#accordion-numbers .ui-accordion-content-active"))) }); loadData(); }) async function request(query, type, queryData = {}) { let response = await fetch('.', { method: 'POST', headers: { 'Content-Type': 'application/json;charset=utf-8' }, body: JSON.stringify({ ...queryData, query: query }) }); if (!response.ok) throw new Error(`Произошла неизвестаня ошибка: ${response.status}`); const data = await response[type](); return data; } function isJSON(str) { try { return (JSON.parse(str) && !!str); } catch (e) { return false; } } function loadData() { request('listsgroups', 'text').then(data => { data.error ? noticer.error(data.message) : generateListsGroups(data); }).catch(error => { noticer.error(error.message); }); } function generateListsGroups(data) { $("#tabs-numbers").html(data); $("#accordion-numbers").accordion({ heightStyle: "content", create: function( event, ui ) { generateGroupNumbers(ui.panel); }, beforeActivate: function( event, ui ) { generateGroupNumbers(ui.newPanel); } }); } function generateGroupNumbers(panel) { request('groupnumbers', 'json', { group: panel.data("group-name") }).then(data => { if (isJSON(data) && JSON.parse(data).error) noticer.error(JSON.parse(data).message); else { numbers = data; showNumbers(panel); } }).catch(error => { noticer.error(error.message); }); } function showNumbers(panel, data = numbers) { (new divNotFoundNumbers).remove(); let body = panel.find('.body').html(''); $(data).each((i, j) => { let row = $(`