+ Реализовано: обновление/добавление/удаление номера
+ Добавлена кнопка обновления активной вкладки
- Доработать проверки на обновление/добавление/удаление номера
This commit is contained in:
Alexander Zhirov 2023-06-02 00:36:21 +03:00
parent c0290cd753
commit de17e88d37
13 changed files with 283 additions and 56 deletions

View file

@ -6,23 +6,32 @@ $(document).ready(function () {
$("button").button();
$("#tabs").tabs();
// $(".addNumber").click(() => {
// numberAdd()
// });
$("#update").button("option", "icon", "ui-icon-refresh");
$("#add-number").button("option", "icon", "ui-icon-plusthick");
$("#logout").button("option", "icon", "ui-icon-power");
// За каждым индексом закреплена функция для выполнения действия
// на активной вкладке при нажатии на кнопку обновления
$("#update").click(() => {
({
0: () => { generateGroupNumbers($("#accordion-numbers .ui-accordion-content-active")) },
1: () => { noticer.success('Вкладка "SMS"') },
2: () => { noticer.success('Вкладка "USSD"') },
3: () => { noticer.success('Вкладка "Сервер"') }
})[$("#tabs").tabs( "option", "active" )]()
});
$("#add-number").click(() => {
addNumber($("#accordion-numbers .ui-accordion-content-active"))
});
$("body").fadeTo(500, 1);
$(".search").on("input", function () {
$("#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")))
});
@ -91,7 +100,7 @@ function generateGroupNumbers(panel) {
});
}
function showNumbers(panel, data = numbers) {
function showNumbers(panel, data = numbers.filter(e => e.number.includes($("#search").val()))) {
(new divNotFoundNumbers).remove();
let body = panel.find('.body').html('');
$(data).each((i, j) => {
@ -105,7 +114,7 @@ function showNumbers(panel, data = numbers) {
body.append(row);
row.click(function() {
numberEdit($(this).data('number'));
editNumber(panel, $(this).data('number'));
});
});
@ -134,7 +143,7 @@ function divNotFoundNumbers() {
}
}
function numberEdit(number) {
function editNumber(panel, number) {
request('editnumber', 'text', {number: number}).then(data => {
if (isJSON(data) && JSON.parse(data).error)
noticer.error(JSON.parse(data).message);
@ -145,7 +154,7 @@ function numberEdit(number) {
text: "Сохранить",
icon: "ui-icon-check",
click: function() {
actionNumber($(this), 'update');
actionNumber(panel, $(this), 'updatenumber');
}
},
{
@ -153,7 +162,7 @@ function numberEdit(number) {
text: "Удалить",
icon: "ui-icon-trash",
click: function() {
// removeNumber($(this));
delNumber(panel, $(this));
}
}
], `Редактирование номера ${number}`);
@ -170,8 +179,6 @@ function showEditNumber(data, actionButton, title) {
title: title,
height: 'auto',
width: 'auto',
maxHeight: 500,
minHeight: 50,
resizable: false,
modal: true,
show: { effect: "fade", duration: 500 },
@ -195,7 +202,10 @@ function showEditNumber(data, actionButton, title) {
});
}
function actionNumber(currentWindow, query) {
function actionNumber(panel, currentWindow, query) {
// Только числа, начинающие с >0 или только 0
let regexp = /^(?=\d)(\d|([^0]\d+))$/g;
let number = $('#number-number').val();
let group = $('#number-group').val();
let list = $('#number-list').val();
@ -203,5 +213,75 @@ function actionNumber(currentWindow, query) {
let white_cc = $('#number-white-cc').val();
let black_cc = $('#number-black-cc').val();
let comment = $('#number-comment').val();
let error = false;
if (!number.length) { noticer.warning('Номер не может быть пуст'); error = true; }
if (all_cc.match(regexp) === null) { noticer.warning("Не верно указано общее количество звонков"); error = true; }
if (white_cc.match(regexp) === null) { noticer.warning("Не верно указано белое количество звонков"); error = true; }
if (black_cc.match(regexp) === null) { noticer.warning("Не верно указано черное количество звонков"); error = true; }
if (error) return;
request(query, 'json', {
number: number,
group: group,
list: list,
all_cc: parseInt(all_cc),
white_cc: parseInt(white_cc),
black_cc: parseInt(black_cc),
comment: comment
}).then(data => {
if (data.error)
noticer.error(data.message);
else
{
query == 'write' ? noticer.success(`Номер ${number} был добавлен`) : noticer.success(`Номер ${number} был обновлен`);
generateGroupNumbers(panel);
currentWindow.dialog("close");
}
}).catch(error => {
noticer.error(error.message);
});
}
function addNumber(panel) {
request('addnumber', 'text', { group: panel.data("group-name") }).then(data => {
if (isJSON(data) && JSON.parse(data).error)
noticer.error(JSON.parse(data).message);
else {
showEditNumber(data, [{
id: "btnSave",
text: "Добавить",
icon: "ui-icon-check",
click: function() {
actionNumber(panel, $(this), 'writenumber');
}
}], "Добавление нового номера");
}
}).catch(error => {
noticer.error(error.message);
});
}
function delNumber(panel, currentWindow) {
let number = $('#number-number').val();
let error = false;
if (!number.length) { noticer.warning('Номер не может быть пуст'); error = true; }
if (error) return;
request('delnumber', 'json', {
number: number
}).then(data => {
if (data.error)
noticer.error(data.message);
else {
noticer.success(`Номер ${number} был удален`);
generateGroupNumbers(panel);
currentWindow.dialog("close");
}
}).catch(error => {
noticer.error(error.message);
});
}