fix button

main
Satur@it-depot.ru 2025-03-06 17:16:09 +03:00
parent 3a8f8e246d
commit 27eb79f91f
1 changed files with 49 additions and 4 deletions

View File

@ -351,6 +351,32 @@
.export-import-container button { .export-import-container button {
margin-left: 10px; margin-left: 10px;
} }
#add-record-button {
display: block;
margin: 20px auto;
width: 250px;
height: 60px;
font-size: 18px;
font-weight: bold;
color: #fff;
background: linear-gradient(90deg, #4facfe 0%, #00f2fe 100%);
border: none;
border-radius: 30px;
cursor: pointer;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
transition: all 0.3s ease;
}
#add-record-button:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
background: linear-gradient(90deg, #3d9afe 0%, #00d4fe 100%);
}
#add-record-button.dark-theme {
background: linear-gradient(90deg, #2a6eb4 0%, #1e90ff 100%);
}
#add-record-button.dark-theme:hover {
background: linear-gradient(90deg, #1e5ea4 0%, #1c7ed6 100%);
}
</style> </style>
</head> </head>
<body> <body>
@ -379,7 +405,7 @@
<option value="">Все папки</option> <option value="">Все папки</option>
</select> </select>
</div> </div>
<button onclick="openAddModal()">Добавить запись</button> <button id="add-record-button" onclick="openAddModal()">Добавить запись</button>
<div class="header"> <div class="header">
<div onclick="sortInstalls('computer_name')">Имя компьютера<span class="sort-arrow"></span></div> <div onclick="sortInstalls('computer_name')">Имя компьютера<span class="sort-arrow"></span></div>
<div onclick="sortInstalls('rust_id')">ID подключения<span class="sort-arrow"></span></div> <div onclick="sortInstalls('rust_id')">ID подключения<span class="sort-arrow"></span></div>
@ -468,7 +494,7 @@
document.getElementById('import-label').classList.add('dark-theme'); document.getElementById('import-label').classList.add('dark-theme');
document.getElementById('splitter').classList.add('dark-theme'); document.getElementById('splitter').classList.add('dark-theme');
document.querySelector('.theme-toggle').classList.add('dark-theme'); document.querySelector('.theme-toggle').classList.add('dark-theme');
document.querySelector('.theme-toggle').textContent = 'Светлая тема'; document.querySelector('#add-record-button').classList.add('dark-theme');
document.querySelectorAll('.install-item').forEach(item => item.classList.add('dark-theme')); document.querySelectorAll('.install-item').forEach(item => item.classList.add('dark-theme'));
document.querySelector('.header').classList.add('dark-theme'); document.querySelector('.header').classList.add('dark-theme');
$('#folder-tree').addClass('jstree-default-dark'); $('#folder-tree').addClass('jstree-default-dark');
@ -532,6 +558,7 @@
$('.install-item').removeClass('selected'); $('.install-item').removeClass('selected');
$(items[currentIndex]).addClass('selected'); $(items[currentIndex]).addClass('selected');
updateNotesPanel(); updateNotesPanel();
$(items[currentIndex])[0].scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}); });
}); });
@ -546,6 +573,7 @@
const importLabel = document.getElementById('import-label'); const importLabel = document.getElementById('import-label');
const splitter = document.getElementById('splitter'); const splitter = document.getElementById('splitter');
const themeToggle = document.querySelector('.theme-toggle'); const themeToggle = document.querySelector('.theme-toggle');
const addRecordButton = document.getElementById('add-record-button');
const header = document.querySelector('.header'); const header = document.querySelector('.header');
const installItems = document.querySelectorAll('.install-item'); const installItems = document.querySelectorAll('.install-item');
const folderTree = $('#folder-tree'); const folderTree = $('#folder-tree');
@ -561,6 +589,7 @@
importLabel.classList.remove('dark-theme'); importLabel.classList.remove('dark-theme');
splitter.classList.remove('dark-theme'); splitter.classList.remove('dark-theme');
themeToggle.classList.remove('dark-theme'); themeToggle.classList.remove('dark-theme');
addRecordButton.classList.remove('dark-theme');
header.classList.remove('dark-theme'); header.classList.remove('dark-theme');
installItems.forEach(item => item.classList.remove('dark-theme')); installItems.forEach(item => item.classList.remove('dark-theme'));
folderTree.removeClass('jstree-default-dark'); folderTree.removeClass('jstree-default-dark');
@ -577,6 +606,7 @@
importLabel.classList.add('dark-theme'); importLabel.classList.add('dark-theme');
splitter.classList.add('dark-theme'); splitter.classList.add('dark-theme');
themeToggle.classList.add('dark-theme'); themeToggle.classList.add('dark-theme');
addRecordButton.classList.add('dark-theme');
header.classList.add('dark-theme'); header.classList.add('dark-theme');
installItems.forEach(item => item.classList.add('dark-theme')); installItems.forEach(item => item.classList.add('dark-theme'));
folderTree.addClass('jstree-default-dark'); folderTree.addClass('jstree-default-dark');
@ -706,6 +736,11 @@
let filtered = folderId ? data.filter(i => i.folder_id == folderId && i.folder_id !== null) : data; let filtered = folderId ? data.filter(i => i.folder_id == folderId && i.folder_id !== null) : data;
displayInstalls(filtered); displayInstalls(filtered);
updateNotesPanel(); updateNotesPanel();
// Восстанавливаем выделение после перерендера
if (selectedInstallId) {
const items = $('#installs-list .install-item');
$(`#installs-list .install-item[data-id="${selectedInstallId}"]`).addClass('selected');
}
}).fail(function(jqxhr, textStatus, error) { }).fail(function(jqxhr, textStatus, error) {
console.error("Error loading installs:", textStatus, error); console.error("Error loading installs:", textStatus, error);
$('#installs-list').html('<p>Ошибка загрузки данных. Проверьте консоль.</p>'); $('#installs-list').html('<p>Ошибка загрузки данных. Проверьте консоль.</p>');
@ -754,6 +789,10 @@
`).join('')); `).join(''));
} }
updateSortArrows(); updateSortArrows();
// Восстанавливаем выделение после перерендера
if (selectedInstallId) {
$(`#installs-list .install-item[data-id="${selectedInstallId}"]`).addClass('selected');
}
} }
function selectInstall(installId, rustId, protocol) { function selectInstall(installId, rustId, protocol) {
@ -1079,6 +1118,7 @@
const note = $('#note-textarea').val() || ''; const note = $('#note-textarea').val() || '';
const install = allInstalls.find(i => i.id === selectedInstallId); const install = allInstalls.find(i => i.id === selectedInstallId);
if (install) { if (install) {
const currentSelectedId = selectedInstallId; // Сохраняем текущий selectedInstallId
$.ajax({ $.ajax({
url: `${API_URL}/install/${selectedInstallId}`, url: `${API_URL}/install/${selectedInstallId}`,
type: 'PUT', type: 'PUT',
@ -1093,8 +1133,13 @@
}), }),
success: function () { success: function () {
console.log('Note saved successfully'); console.log('Note saved successfully');
loadInstalls(selectedFolderId); loadInstalls(selectedFolderId); // Перезагружаем список
closeNoteModal(); selectedInstallId = currentSelectedId; // Восстанавливаем selectedInstallId
closeNoteModal(); // Закрываем модальное окно
// Восстанавливаем выделение
const items = $('#installs-list .install-item');
$(`#installs-list .install-item[data-id="${selectedInstallId}"]`).addClass('selected');
updateNotesPanel();
}, },
error: function (xhr, status, error) { error: function (xhr, status, error) {
console.error("Ошибка сохранения заметки:", status, error); console.error("Ошибка сохранения заметки:", status, error);