var numbers = []; $(document).ready(function () { message = new Message; $("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 ? message.error(data.message) : generateListsGroups(data); }).catch(error => { message.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); } }); } async function generateGroupNumbers(panel) { request('groupnumbers', 'json', { group: panel.data("group-name") }).then(data => { if (isJSON(data) && JSON.parse(data).error) message.error(JSON.parse(data).message); else { numbers = data; showNumbers(panel); } }).catch(error => { message.error(error.message); }); } function showNumbers(panel, data = numbers) { (new divNotFoundNumbers).remove(); let body = panel.find('.body').html(''); $(data).each((i, j) => { let row = $(``); row.append(`${j.number}`); row.append(`${j.list}`); row.append(`${j.all_cc}`); row.append(`${j.white_cc}`); row.append(`${j.black_cc}`); row.append(`${j.comment}`); body.append(row); row.click(function(){ // numberEdit($(this).data('number')); }); }); if (!body.children().length) (new divNotFoundNumbers).push(); } function divNotFoundNumbers() { let notFound = $('.failNumbers'); let divTable = $('.body-rows'); let divFound = $('
'); divFound.css({ "color": "#333", "text-align": "center", "padding": "20px 0 20px 0" }); this.push = function(text = 'Нет номеров') { divTable.append(divFound.html(text)); } this.remove = function() { notFound.remove(); } }