v0.0.4
+ Реализовано: обновление/добавление/удаление номера + Добавлена кнопка обновления активной вкладки - Доработать проверки на обновление/добавление/удаление номера
This commit is contained in:
		
							parent
							
								
									c0290cd753
								
							
						
					
					
						commit
						de17e88d37
					
				
					 13 changed files with 283 additions and 56 deletions
				
			
		
							
								
								
									
										116
									
								
								js/script.js
									
										
									
									
									
								
							
							
						
						
									
										116
									
								
								js/script.js
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -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);
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue