From adf1c642b1aba06c8bed3aa0652433dd9b885b38 Mon Sep 17 00:00:00 2001 From: diana Date: Thu, 23 Feb 2023 22:59:30 +0500 Subject: [PATCH 01/23] edit HTML --- src/main/webapp/html/my.html | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index eb66ac55..acdb74a0 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -2,10 +2,43 @@ RPG +

RPG admin panel

+ + + + + + + + + + + + + + + + + + + + + +
#NameTitleRaceProfessionLevelBirthdayBanned
\ No newline at end of file From 1867b57518d0a0b9ce518a4780b1f5322e71224d Mon Sep 17 00:00:00 2001 From: diana Date: Sun, 26 Feb 2023 21:05:49 +0500 Subject: [PATCH 02/23] add version table --- src/main/webapp/css/my.css | 40 ++++++++++++++++++++++++ src/main/webapp/html/my.html | 59 +++++++++++++++++++++++++----------- 2 files changed, 81 insertions(+), 18 deletions(-) diff --git a/src/main/webapp/css/my.css b/src/main/webapp/css/my.css index e69de29b..b154e3f9 100644 --- a/src/main/webapp/css/my.css +++ b/src/main/webapp/css/my.css @@ -0,0 +1,40 @@ + +.table { + border-collapse: collapse; + border: 1px solid black; +} + +th, td { + border: 1px solid black; +} + +tr:first-child th { + border-top: none; +} + +tr:last-child td { + border-bottom: none; +} + +tr td:first-child { + border-left: none; +} + +tr td:last-child { + border-right: none; +} + +td.edit { + background-image: url("/img/edit.png"); + background-position: center center; + background-repeat: no-repeat; + background-size: 25px 25px; +} + +td.delete { + background-image: url("/img/delete.png"); + background-position: center center; + background-repeat: no-repeat; + background-size: 25px 25px; +} + diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index acdb74a0..a0a5abb2 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -4,11 +4,31 @@ From 278f14151d411cc712a667dbfa8ae5165a5ab822 Mon Sep 17 00:00:00 2001 From: diana Date: Sun, 26 Feb 2023 21:39:27 +0500 Subject: [PATCH 05/23] refactoring v2 --- src/main/webapp/html/my.html | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index cfeac25e..5cafa81f 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -17,13 +17,12 @@ }); $(document).ready(function () { - const dropdown = document.getElementById("myDropdown"); - dropdown.addEventListener("click", function () { - const selectedNumber = dropdown.options[dropdown.selectedIndex].value; - $.get("/rest/players/?pageNumber=0&pageSize=" + selectedNumber + "", function (data) { - var table = $("#my-table"); - const t = document.getElementById("t-body"); - t.innerHTML = ""; + $('#myDropdown').click(() => { + var pageSize = $('#myDropdown').val(); + $.get('/rest/players/?pageNumber=0&pageSize=' + pageSize + '', function (data) { + var table = $('#my-table'); + const t = document.getElementById('t-body'); + t.innerHTML = ''; $.each(data, function (i, members) { var row = $("" + (i + 1) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); From 967e74055dbcd5c01a1036c080bf95cb146c98a2 Mon Sep 17 00:00:00 2001 From: diana Date: Sun, 26 Feb 2023 22:06:06 +0500 Subject: [PATCH 06/23] add page numbers v1 --- src/main/webapp/html/my.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index 5cafa81f..436f3896 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -11,6 +11,11 @@ table.append(row); }); }); + $.get('/rest/players/count', function (data) { + for (let i = 1; i <= data; i++) { + $('#page-number').append(''); + } + }); $(document).ready(function () { $("#my-table").addClass("table"); @@ -66,7 +71,7 @@

Accounts list:

Pages: - +
\ No newline at end of file From d3babdedafa4faab5ef6aff60a565bd9f5a3365a Mon Sep 17 00:00:00 2001 From: diana Date: Mon, 27 Feb 2023 15:54:19 +0500 Subject: [PATCH 07/23] fixed page-number --- src/main/webapp/css/my.css | 1 + src/main/webapp/html/my.html | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/webapp/css/my.css b/src/main/webapp/css/my.css index b154e3f9..70620936 100644 --- a/src/main/webapp/css/my.css +++ b/src/main/webapp/css/my.css @@ -38,3 +38,4 @@ td.delete { background-size: 25px 25px; } + diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index 436f3896..55a2dba2 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -11,15 +11,6 @@ table.append(row); }); }); - $.get('/rest/players/count', function (data) { - for (let i = 1; i <= data; i++) { - $('#page-number').append(''); - } - }); - - $(document).ready(function () { - $("#my-table").addClass("table"); - }); $(document).ready(function () { $('#myDropdown').click(() => { @@ -34,6 +25,16 @@ table.append(row); }); }); + + $.get('/rest/players/count', function (data) { + let pageSize = $('#myDropdown').val(); + let chunk = Math.ceil(data / pageSize); + const numberButton = document.getElementById('page-number'); + numberButton.innerHTML = ''; + for (let i = 1; i <= chunk; i++) { + $('#page-number').append(''); + } + }); }); }); @@ -52,7 +53,7 @@

Accounts list:

- +
From 6b50765cf86ca637d9d2ebd31c553bdcadfcb89f Mon Sep 17 00:00:00 2001 From: diana Date: Mon, 27 Feb 2023 22:51:06 +0500 Subject: [PATCH 08/23] fixed page-number --- src/main/webapp/html/my.html | 52 +++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index 55a2dba2..7cfbd3d7 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -3,7 +3,7 @@ RPG @@ -46,14 +74,14 @@

RPG admin panel

Accounts list:

- + + + + -
#
Count per page:
+
@@ -66,13 +94,13 @@

Accounts list:

- +
# Banned
Pages: -
+
\ No newline at end of file From 04b6b5bf26f86685335e5425ef9d0d3c6d69efe1 Mon Sep 17 00:00:00 2001 From: diana Date: Sun, 5 Mar 2023 22:18:00 +0500 Subject: [PATCH 09/23] save changes --- src/main/webapp/html/my.html | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index 7cfbd3d7..6dd7f3fd 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -54,18 +54,22 @@ }); }); - $('#page-number').click(() => { + $('#page-number').on('click', 'button', function() { let pageSize = $('#myDropdown').val(); - let pageNumber = $('#b-num').attr('value'); - console.log($(this)); - console.log(pageNumber); + let pageNumber = $(this).val() - 1; $.get('/rest/players/?pageNumber=' + pageNumber + '&pageSize=' + pageSize + '', function (data) { - console.log(data); - console.log(pageNumber); + var table = $('#my-table'); + const t = document.getElementById('t-body'); + t.innerHTML = ''; + $.each(data, function (i, members) { + console.log(data); + var row = $("" + (i + data[0].id) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + + members.level + "" + members.birthday + "" + members.banned + ""); + table.append(row); + }); }); }); }); - From 46c17cecaf65969e92d0e9b2c85c8f48c1675eea Mon Sep 17 00:00:00 2001 From: diana Date: Sun, 5 Mar 2023 22:47:17 +0500 Subject: [PATCH 10/23] move jquery code to separate file --- src/main/java/com/game/config/WebConfig.java | 1 + src/main/webapp/html/my.html | 70 +------------------- src/main/webapp/script/script.js | 63 ++++++++++++++++++ 3 files changed, 65 insertions(+), 69 deletions(-) create mode 100644 src/main/webapp/script/script.js diff --git a/src/main/java/com/game/config/WebConfig.java b/src/main/java/com/game/config/WebConfig.java index 7a324807..758a7688 100644 --- a/src/main/java/com/game/config/WebConfig.java +++ b/src/main/java/com/game/config/WebConfig.java @@ -49,6 +49,7 @@ public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/html/**").addResourceLocations("/html/"); registry.addResourceHandler("/css/**").addResourceLocations("/css/"); registry.addResourceHandler("/img/**").addResourceLocations("/img/"); + registry.addResourceHandler("/script/**").addResourceLocations("/script/"); } @Bean diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index 6dd7f3fd..8110203a 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -2,75 +2,7 @@ RPG - + diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js new file mode 100644 index 00000000..f879346d --- /dev/null +++ b/src/main/webapp/script/script.js @@ -0,0 +1,63 @@ +$(document).ready(function () { + $.get("/rest/players/?pageNumber=0&pageSize=5", function (data) { + var table = $("#t-body"); + $.each(data, function (i, members) { + var row = $("" + (i + 1) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); + table.append(row); + }); + }); + + $.get('/rest/players/count', function (data) { + let pageSize = $('#myDropdown').val(); + let chunk = Math.ceil(data / pageSize); + const numberButton = document.getElementById('page-number'); + numberButton.innerHTML = ''; + for (let i = 1; i <= chunk; i++) { + let button = $(''); + $('#page-number').append(button); + button.attr('id', 'b-num'); + button.attr('value', i); + } + }); + $('#myDropdown').click(() => { + + let pageSize = $('#myDropdown').val(); + + $.get('/rest/players/?pageNumber=0&pageSize=' + pageSize + '', function (data) { + var table = $('#my-table'); + const t = document.getElementById('t-body'); + t.innerHTML = ''; + $.each(data, function (i, members) { + var row = $("" + (i + 1) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); + table.append(row); + }); + }); + + $.get('/rest/players/count', function (data) { + let chunk = Math.ceil(data / pageSize); + const numberButton = document.getElementById('page-number'); + numberButton.innerHTML = ''; + for (let i = 1; i <= chunk; i++) { + let button = $(''); + $('#page-number').append(button); + button.attr('id', 'b-num'); + button.attr('value', i); + } + }); + }); + + $('#page-number').on('click', 'button', function () { + let pageSize = $('#myDropdown').val(); + let pageNumber = $(this).val() - 1; + $.get('/rest/players/?pageNumber=' + pageNumber + '&pageSize=' + pageSize + '', function (data) { + var table = $('#my-table'); + const t = document.getElementById('t-body'); + t.innerHTML = ''; + $.each(data, function (i, members) { + console.log(data); + var row = $("" + (i + data[0].id) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); + table.append(row); + }); + }); + }); +}); From ebf6eac5d0ce744c395c3e44673944c2dbea3af0 Mon Sep 17 00:00:00 2001 From: diana Date: Sun, 5 Mar 2023 23:40:31 +0500 Subject: [PATCH 11/23] refactoring --- src/main/webapp/html/my.html | 2 +- src/main/webapp/script/script.js | 83 +++++++++++++++++++------------- 2 files changed, 50 insertions(+), 35 deletions(-) diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index 8110203a..c42c643b 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -10,7 +10,7 @@

RPG admin panel

Accounts list:

Count per page: - diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index f879346d..bf584333 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -1,61 +1,76 @@ $(document).ready(function () { - $.get("/rest/players/?pageNumber=0&pageSize=5", function (data) { - var table = $("#t-body"); - $.each(data, function (i, members) { - var row = $("" + (i + 1) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); - table.append(row); + const table = $("#my-table"); + const tableBody = $("#t-body"); + const dropDown = $("#my-dropdown"); + const pageNumber = $("#page-number"); + + function renderTable(pageSize, pageNumber) { + $.get("/rest/players/?pageNumber=0&pageSize=5", function (data) { + $.each(data, function (i, member) { + const row = ` + ${i + 1} + ${member.name} + ${member.title} + ${member.race} + ${member.profession} + ${member.level} + ${member.birthday} + ${member.banned} + `; + table.append(row); + }); }); - }); + } - $.get('/rest/players/count', function (data) { - let pageSize = $('#myDropdown').val(); - let chunk = Math.ceil(data / pageSize); - const numberButton = document.getElementById('page-number'); - numberButton.innerHTML = ''; - for (let i = 1; i <= chunk; i++) { - let button = $(''); - $('#page-number').append(button); - button.attr('id', 'b-num'); - button.attr('value', i); - } - }); - $('#myDropdown').click(() => { + function renderPaginationButtons() { + $.get('/rest/players/count', function (data) { + let pageSize = dropDown.val(); + let chunk = Math.ceil(data / pageSize); + pageNumber.empty(); + for (let i = 1; i <= chunk; i++) { + let button = $(''); + pageNumber.append(button); + button.attr('id', 'b-num'); + button.attr('value', i); + } + }); + } + + renderTable(5, 0); + renderPaginationButtons(); + + + dropDown.click(() => { - let pageSize = $('#myDropdown').val(); + let pageSize = dropDown.val(); $.get('/rest/players/?pageNumber=0&pageSize=' + pageSize + '', function (data) { - var table = $('#my-table'); - const t = document.getElementById('t-body'); - t.innerHTML = ''; + tableBody.empty(); $.each(data, function (i, members) { - var row = $("" + (i + 1) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); + const row = $("" + (i + 1) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); table.append(row); }); }); $.get('/rest/players/count', function (data) { let chunk = Math.ceil(data / pageSize); - const numberButton = document.getElementById('page-number'); - numberButton.innerHTML = ''; + pageNumber.empty(); for (let i = 1; i <= chunk; i++) { let button = $(''); - $('#page-number').append(button); + pageNumber.append(button); button.attr('id', 'b-num'); button.attr('value', i); } }); }); - $('#page-number').on('click', 'button', function () { - let pageSize = $('#myDropdown').val(); + pageNumber.on('click', 'button', function () { + let pageSize = dropDown.val(); let pageNumber = $(this).val() - 1; $.get('/rest/players/?pageNumber=' + pageNumber + '&pageSize=' + pageSize + '', function (data) { - var table = $('#my-table'); - const t = document.getElementById('t-body'); - t.innerHTML = ''; + tableBody.empty(); $.each(data, function (i, members) { - console.log(data); - var row = $("" + (i + data[0].id) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); + const row = $("" + (i + data[0].id) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); table.append(row); }); }); From c2c0dd0e05e7b31bbc858fd3b08c0c1ee5fa13de Mon Sep 17 00:00:00 2001 From: diana Date: Sun, 5 Mar 2023 23:58:13 +0500 Subject: [PATCH 12/23] refactoring --- src/main/webapp/script/script.js | 36 ++++++-------------------------- 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index bf584333..3ea97612 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -5,10 +5,11 @@ $(document).ready(function () { const pageNumber = $("#page-number"); function renderTable(pageSize, pageNumber) { - $.get("/rest/players/?pageNumber=0&pageSize=5", function (data) { + $.get(`/rest/players/?pageNumber=${pageNumber}&pageSize=${pageSize}`, function (data) { + tableBody.empty(); $.each(data, function (i, member) { const row = ` - ${i + 1} + ${i + data[0].id} ${member.name} ${member.title} ${member.race} @@ -39,40 +40,15 @@ $(document).ready(function () { renderTable(5, 0); renderPaginationButtons(); - dropDown.click(() => { - let pageSize = dropDown.val(); - - $.get('/rest/players/?pageNumber=0&pageSize=' + pageSize + '', function (data) { - tableBody.empty(); - $.each(data, function (i, members) { - const row = $("" + (i + 1) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); - table.append(row); - }); - }); - - $.get('/rest/players/count', function (data) { - let chunk = Math.ceil(data / pageSize); - pageNumber.empty(); - for (let i = 1; i <= chunk; i++) { - let button = $(''); - pageNumber.append(button); - button.attr('id', 'b-num'); - button.attr('value', i); - } - }); + renderTable(pageSize, 0); + renderPaginationButtons(); }); pageNumber.on('click', 'button', function () { let pageSize = dropDown.val(); let pageNumber = $(this).val() - 1; - $.get('/rest/players/?pageNumber=' + pageNumber + '&pageSize=' + pageSize + '', function (data) { - tableBody.empty(); - $.each(data, function (i, members) { - const row = $("" + (i + data[0].id) + "" + members.name + "" + members.title + "" + members.race + "" + members.profession + "" + members.level + "" + members.birthday + "" + members.banned + ""); - table.append(row); - }); - }); + renderTable(pageSize, pageNumber); }); }); From 616cac325150fce135f2c1da7918d3d783dff8f1 Mon Sep 17 00:00:00 2001 From: diana Date: Tue, 7 Mar 2023 17:10:56 +0500 Subject: [PATCH 13/23] add columns and icons --- src/main/webapp/css/my.css | 4 ++++ src/main/webapp/html/my.html | 29 +++++++++++++++++++---------- src/main/webapp/script/script.js | 15 ++++++++++++++- 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/main/webapp/css/my.css b/src/main/webapp/css/my.css index 70620936..6b7739c3 100644 --- a/src/main/webapp/css/my.css +++ b/src/main/webapp/css/my.css @@ -38,4 +38,8 @@ td.delete { background-size: 25px 25px; } +#page-number button.active-page { + background-color: red; +} + diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index c42c643b..9ea9e9b2 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -19,16 +19,19 @@

Accounts list:

- - - - - - - - - - + + + + + + + + + + + + + @@ -38,5 +41,11 @@

Accounts list:

+ + \ No newline at end of file diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index 3ea97612..aca4b190 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -17,6 +17,7 @@ $(document).ready(function () { + `; table.append(row); }); @@ -33,6 +34,18 @@ $(document).ready(function () { pageNumber.append(button); button.attr('id', 'b-num'); button.attr('value', i); + // Подкрасим номер текущей страницы + if (i === pageNumber) { + button.addClass('active-page'); + } + button.click(function () { + // Находим текущую активную страницу и снимаем с нее выделение + $('#page-number .active-page').removeClass('active-page'); + // Изменяем фон только у кнопки, на которую кликнули + $(this).addClass('active-page'); + // Вызываем функцию для загрузки данных для новой страницы + loadAccounts(pageSize, $(this).val()); + }); } }); } @@ -51,4 +64,4 @@ $(document).ready(function () { let pageNumber = $(this).val() - 1; renderTable(pageSize, pageNumber); }); -}); +}); \ No newline at end of file From 400594dda2773db081302426bb35facc997d120c Mon Sep 17 00:00:00 2001 From: diana Date: Thu, 9 Mar 2023 22:26:45 +0500 Subject: [PATCH 14/23] refactoring --- src/main/webapp/script/script.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index aca4b190..5a6bf325 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -15,9 +15,10 @@ $(document).ready(function () { - + - + + `; table.append(row); }); @@ -34,6 +35,7 @@ $(document).ready(function () { pageNumber.append(button); button.attr('id', 'b-num'); button.attr('value', i); + // Подкрасим номер текущей страницы if (i === pageNumber) { button.addClass('active-page'); From 6911e34aedb8cace1eb526474ffd64963665dc94 Mon Sep 17 00:00:00 2001 From: diana Date: Fri, 17 Mar 2023 19:59:05 +0500 Subject: [PATCH 15/23] fix pagination style in my html --- src/main/webapp/css/my.css | 4 ++-- src/main/webapp/html/my.html | 6 ------ src/main/webapp/script/script.js | 14 +++++--------- 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/main/webapp/css/my.css b/src/main/webapp/css/my.css index 6b7739c3..8438ab14 100644 --- a/src/main/webapp/css/my.css +++ b/src/main/webapp/css/my.css @@ -38,8 +38,8 @@ td.delete { background-size: 25px 25px; } -#page-number button.active-page { - background-color: red; +.active-page { + color: red; } diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index 9ea9e9b2..a9a04338 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -41,11 +41,5 @@

Accounts list:

- - \ No newline at end of file diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index 5a6bf325..da453980 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -18,7 +18,7 @@ $(document).ready(function () { - + `; table.append(row); }); @@ -31,22 +31,17 @@ $(document).ready(function () { let chunk = Math.ceil(data / pageSize); pageNumber.empty(); for (let i = 1; i <= chunk; i++) { - let button = $(''); + let button = $(''); pageNumber.append(button); button.attr('id', 'b-num'); button.attr('value', i); - // Подкрасим номер текущей страницы if (i === pageNumber) { - button.addClass('active-page'); + button.find('span').addClass('active-page'); } button.click(function () { - // Находим текущую активную страницу и снимаем с нее выделение $('#page-number .active-page').removeClass('active-page'); - // Изменяем фон только у кнопки, на которую кликнули - $(this).addClass('active-page'); - // Вызываем функцию для загрузки данных для новой страницы - loadAccounts(pageSize, $(this).val()); + $(this).find('span').addClass('active-page'); }); } }); @@ -66,4 +61,5 @@ $(document).ready(function () { let pageNumber = $(this).val() - 1; renderTable(pageSize, pageNumber); }); + }); \ No newline at end of file From ca5b1e4e01aa316321656a19e26f4a6e356379ec Mon Sep 17 00:00:00 2001 From: diana Date: Sun, 19 Mar 2023 18:33:46 +0500 Subject: [PATCH 16/23] fix bugs that appeared after delete operation --- src/main/webapp/script/script.js | 36 ++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index da453980..b8deb44a 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -3,13 +3,14 @@ $(document).ready(function () { const tableBody = $("#t-body"); const dropDown = $("#my-dropdown"); const pageNumber = $("#page-number"); + let pageNum = pageNumber.val(); function renderTable(pageSize, pageNumber) { $.get(`/rest/players/?pageNumber=${pageNumber}&pageSize=${pageSize}`, function (data) { tableBody.empty(); $.each(data, function (i, member) { const row = ` - + @@ -17,8 +18,8 @@ $(document).ready(function () { - - + + `; table.append(row); }); @@ -36,12 +37,13 @@ $(document).ready(function () { button.attr('id', 'b-num'); button.attr('value', i); - if (i === pageNumber) { + if (i === pageNum + 1) { button.find('span').addClass('active-page'); } button.click(function () { $('#page-number .active-page').removeClass('active-page'); $(this).find('span').addClass('active-page'); + }); } }); @@ -56,10 +58,32 @@ $(document).ready(function () { renderPaginationButtons(); }); + function deleteAccount(id) { + const btn = $(this); + $.ajax({ + url: `/rest/players/${id}`, + type: 'DELETE', + success: function () { + btn.closest('tr').remove(); + renderTable(dropDown.val(), pageNum); + renderPaginationButtons(); + console.log(`User with id: ${id} deleted successfully`); + }, + error: function (error) { + alert(`Error deleting user: ${error}`); + } + }); + } + + tableBody.on('click', '.btn-delete', function () { + const id = $(this).data('id'); + deleteAccount(id); + }); + pageNumber.on('click', 'button', function () { let pageSize = dropDown.val(); - let pageNumber = $(this).val() - 1; - renderTable(pageSize, pageNumber); + pageNum = $(this).val() - 1; + renderTable(pageSize, pageNum); }); }); \ No newline at end of file From 700f97849f48160852fc017f14b213fd21e32e4e Mon Sep 17 00:00:00 2001 From: diana Date: Tue, 21 Mar 2023 16:33:16 +0500 Subject: [PATCH 17/23] changed edit button to save button --- src/main/webapp/script/script.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index b8deb44a..58e4a0e3 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -80,10 +80,13 @@ $(document).ready(function () { deleteAccount(id); }); + tableBody.on('click', '.btn-edit', function () { + $(this).find('img').attr('src','img/save.png'); + }); + pageNumber.on('click', 'button', function () { let pageSize = dropDown.val(); pageNum = $(this).val() - 1; renderTable(pageSize, pageNum); }); - }); \ No newline at end of file From 495e74446b604c6c140695ea65346078ecce1b72 Mon Sep 17 00:00:00 2001 From: diana Date: Tue, 21 Mar 2023 19:02:35 +0500 Subject: [PATCH 18/23] add toggle --- src/main/webapp/script/script.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index 58e4a0e3..2705ee28 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -19,7 +19,7 @@ $(document).ready(function () { - + `; table.append(row); }); @@ -81,7 +81,8 @@ $(document).ready(function () { }); tableBody.on('click', '.btn-edit', function () { - $(this).find('img').attr('src','img/save.png'); + $(this).find('img').attr('src', 'img/save.png'); + $(this).closest('tr').find('.btn-delete').toggle(); }); pageNumber.on('click', 'button', function () { From 4eeb982895c217f9bf3a7fdd683ef032fde84dae Mon Sep 17 00:00:00 2001 From: diana Date: Wed, 22 Mar 2023 19:01:50 +0500 Subject: [PATCH 19/23] add edit implementation --- src/main/webapp/html/my.html | 50 +++++++++++++++++++++++ src/main/webapp/script/script.js | 70 ++++++++++++++++++++++++++++---- 2 files changed, 112 insertions(+), 8 deletions(-) diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index a9a04338..c2ad2d79 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -41,5 +41,55 @@

Accounts list:

+
+

Create new account:

+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ \ No newline at end of file diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index 2705ee28..68205835 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -10,15 +10,15 @@ $(document).ready(function () { tableBody.empty(); $.each(data, function (i, member) { const row = ` - - - - - + + + + + - - + + `; table.append(row); @@ -70,7 +70,13 @@ $(document).ready(function () { console.log(`User with id: ${id} deleted successfully`); }, error: function (error) { - alert(`Error deleting user: ${error}`); + if (error.status === 404) { + alert(`Error deleting user: ${error}. Player is not found.`); + } else if (error.status === 400) { + alert(`Error deleting user: ${error}. Invalid ID.`); + } else { + alert(`Error deleting user: ${error}`); + } } }); } @@ -83,6 +89,54 @@ $(document).ready(function () { tableBody.on('click', '.btn-edit', function () { $(this).find('img').attr('src', 'img/save.png'); $(this).closest('tr').find('.btn-delete').toggle(); + + const row = $(this).closest('tr'); + const id = row.attr('data-id'); + const name = row.find('.name').text(); + const title = row.find('.title').text(); + const race = row.find('.race').text(); + const profession = row.find('.profession').text(); + const banned = row.find('.banned').text() === 'true'; + + let val_name = row.find('.name').html(``); + let val_title = row.find('.title').html(``); + let val_race = row.find('.race').html(``); + let val_profession = row.find('.profession').html(``); + let val_banned = row.find('.banned').html(` + + `); + + $('.btn-edit').off('click').on('click', function () { + var id = $(this).data('id'); + $.ajax({ + url: `/rest/players/${id}`, + type: 'POST', + contentType: 'application/json', + data: JSON.stringify({ + name: val_name.find('input').val(), + title: val_title.find('input').val(), + race: val_race.find('input').val(), + profession: val_profession.find('input').val(), + banned: val_banned.find('select').val() === 'true' + }), + success: function () { + renderTable(dropDown.val(), pageNum); + renderPaginationButtons(); + }, + error: function (error) { + if (error.status === 404) { + alert(`Error editing user: ${error}. Player is not found in the database.`); + } else if (error.status === 400) { + alert(`Error deleting user: ${error}. Invalid ID.`); + } else { + alert(`Error deleting user: ${error}`); + } + } + }); + }); }); pageNumber.on('click', 'button', function () { From c84ed7b36377006ce38241080a23ff6b9f97f9d4 Mon Sep 17 00:00:00 2001 From: diana Date: Wed, 22 Mar 2023 19:16:39 +0500 Subject: [PATCH 20/23] refactoring --- src/main/webapp/script/script.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index 68205835..98d57ddf 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -15,8 +15,8 @@ $(document).ready(function () { - - + + @@ -130,9 +130,9 @@ $(document).ready(function () { if (error.status === 404) { alert(`Error editing user: ${error}. Player is not found in the database.`); } else if (error.status === 400) { - alert(`Error deleting user: ${error}. Invalid ID.`); + alert(`Error editing user: ${error}. Invalid ID.`); } else { - alert(`Error deleting user: ${error}`); + alert(`Error editing user: ${error}`); } } }); From d1798a39b6471d4244227ac672611eaac474e712 Mon Sep 17 00:00:00 2001 From: diana Date: Wed, 22 Mar 2023 21:15:55 +0500 Subject: [PATCH 21/23] refactoring --- src/main/webapp/html/my.html | 2 +- src/main/webapp/script/script.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index c2ad2d79..0a2236d7 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -90,6 +90,6 @@

Create new account:

- + \ No newline at end of file diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index 98d57ddf..bc15d579 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -91,7 +91,6 @@ $(document).ready(function () { $(this).closest('tr').find('.btn-delete').toggle(); const row = $(this).closest('tr'); - const id = row.attr('data-id'); const name = row.find('.name').text(); const title = row.find('.title').text(); const race = row.find('.race').text(); From 87e63751e37af3f16c5da68c7ee07fa6d5d43060 Mon Sep 17 00:00:00 2001 From: diana Date: Thu, 23 Mar 2023 18:03:40 +0500 Subject: [PATCH 22/23] refactoring --- src/main/webapp/html/my.html | 31 +++++++------ src/main/webapp/script/script.js | 79 ++++++++++++++++++++++++-------- 2 files changed, 75 insertions(+), 35 deletions(-) diff --git a/src/main/webapp/html/my.html b/src/main/webapp/html/my.html index 0a2236d7..0cbab7f2 100644 --- a/src/main/webapp/html/my.html +++ b/src/main/webapp/html/my.html @@ -43,28 +43,29 @@

Accounts list:

Create new account:

- - + +
- - + +
- - - > + + >
- - @@ -76,16 +77,16 @@

Create new account:

- - + +
- - + +
- - diff --git a/src/main/webapp/script/script.js b/src/main/webapp/script/script.js index bc15d579..1c0207ef 100644 --- a/src/main/webapp/script/script.js +++ b/src/main/webapp/script/script.js @@ -61,15 +61,12 @@ $(document).ready(function () { function deleteAccount(id) { const btn = $(this); $.ajax({ - url: `/rest/players/${id}`, - type: 'DELETE', - success: function () { + url: `/rest/players/${id}`, type: 'DELETE', success: function () { btn.closest('tr').remove(); renderTable(dropDown.val(), pageNum); renderPaginationButtons(); console.log(`User with id: ${id} deleted successfully`); - }, - error: function (error) { + }, error: function (error) { if (error.status === 404) { alert(`Error deleting user: ${error}. Player is not found.`); } else if (error.status === 400) { @@ -97,11 +94,11 @@ $(document).ready(function () { const profession = row.find('.profession').text(); const banned = row.find('.banned').text() === 'true'; - let val_name = row.find('.name').html(``); - let val_title = row.find('.title').html(``); - let val_race = row.find('.race').html(``); - let val_profession = row.find('.profession').html(``); - let val_banned = row.find('.banned').html(` + let new_name = row.find('.name').html(``); + let new_title = row.find('.title').html(``); + let new_race = row.find('.race').html(``); + let new_profession = row.find('.profession').html(``); + let new_banned = row.find('.banned').html(`
#NameTitleRaceProfessionLevelBirthdayBanned
#NameTitleRaceProfessionLevelBirthdayBannedEditDelete
Pages:
${member.level} ${member.birthday} ${member.banned}Edit
${member.race} ${member.profession} ${member.level}${member.birthday}${new Date(member.birthday).toLocaleDateString()} ${member.banned}Edit
Pages:
${new Date(member.birthday).toLocaleDateString()} ${member.banned}
${i + data[0].id}${member.id} ${member.name} ${member.title} ${member.race}${member.level} ${new Date(member.birthday).toLocaleDateString()} ${member.banned}
${new Date(member.birthday).toLocaleDateString()} ${member.banned}
Pages:
${member.id}${member.name}${member.title}${member.race}${member.profession}${member.id}${member.name}${member.title}>${member.race}>${member.profession} ${member.level} ${new Date(member.birthday).toLocaleDateString()}${member.banned}${member.banned}
${member.title}> ${member.race}> ${member.profession}${member.level}${new Date(member.birthday).toLocaleDateString()}${member.level}${new Date(member.birthday).toLocaleDateString()} ${member.banned}