drag
parent
22bccd2c31
commit
06c2feb619
|
|
@ -19,15 +19,34 @@
|
||||||
color: #e0e0e0;
|
color: #e0e0e0;
|
||||||
}
|
}
|
||||||
#tree-container {
|
#tree-container {
|
||||||
width: 15%;
|
width: 15%; /* Начальная ширина */
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border-right: 1px solid #ccc;
|
border-right: none; /* Убираем стандартную границу */
|
||||||
|
min-width: 150px; /* Минимальная ширина */
|
||||||
|
max-width: 50%; /* Максимальная ширина */
|
||||||
|
overflow: auto; /* Для длинных списков папок */
|
||||||
}
|
}
|
||||||
#tree-container.dark-theme { border-right-color: #444; }
|
#tree-container.dark-theme { border-right-color: #444; }
|
||||||
|
#splitter {
|
||||||
|
width: 5px;
|
||||||
|
background: #ccc;
|
||||||
|
cursor: col-resize;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
#splitter.dark-theme {
|
||||||
|
background: #444;
|
||||||
|
}
|
||||||
|
#splitter:hover {
|
||||||
|
background: #aaa;
|
||||||
|
}
|
||||||
|
#splitter.dark-theme:hover {
|
||||||
|
background: #666;
|
||||||
|
}
|
||||||
#installs-container {
|
#installs-container {
|
||||||
width: 60%;
|
flex: 1; /* Занимает оставшееся пространство */
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
min-width: 300px; /* Минимальная ширина для центральной части */
|
||||||
}
|
}
|
||||||
.install-item {
|
.install-item {
|
||||||
display: table;
|
display: table;
|
||||||
|
|
@ -330,6 +349,7 @@
|
||||||
<div id="folder-tree"></div>
|
<div id="folder-tree"></div>
|
||||||
<button onclick="addFolder()">Добавить папку</button>
|
<button onclick="addFolder()">Добавить папку</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="splitter"></div>
|
||||||
<div id="installs-container">
|
<div id="installs-container">
|
||||||
<h1 class="header-logo">
|
<h1 class="header-logo">
|
||||||
<img src="/icons/it-depo-logo.png" alt="АйТи-Депо логотип">
|
<img src="/icons/it-depo-logo.png" alt="АйТи-Депо логотип">
|
||||||
|
|
@ -429,6 +449,7 @@
|
||||||
document.getElementById('note-modal').classList.add('dark-theme');
|
document.getElementById('note-modal').classList.add('dark-theme');
|
||||||
document.getElementById('search-container').classList.add('dark-theme');
|
document.getElementById('search-container').classList.add('dark-theme');
|
||||||
document.getElementById('import-label').classList.add('dark-theme');
|
document.getElementById('import-label').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('.theme-toggle').textContent = 'Светлая тема';
|
||||||
document.querySelectorAll('.install-item').forEach(item => item.classList.add('dark-theme'));
|
document.querySelectorAll('.install-item').forEach(item => item.classList.add('dark-theme'));
|
||||||
|
|
@ -442,6 +463,36 @@
|
||||||
const install = allInstalls.find(i => i.id === installId);
|
const install = allInstalls.find(i => i.id === installId);
|
||||||
openNoteModal(installId, install?.note || '');
|
openNoteModal(installId, install?.note || '');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Логика изменения размера панели
|
||||||
|
const splitter = document.getElementById('splitter');
|
||||||
|
const treeContainer = document.getElementById('tree-container');
|
||||||
|
let isResizing = false;
|
||||||
|
|
||||||
|
splitter.addEventListener('mousedown', (e) => {
|
||||||
|
isResizing = true;
|
||||||
|
document.body.style.cursor = 'col-resize';
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('mousemove', (e) => {
|
||||||
|
if (!isResizing) return;
|
||||||
|
|
||||||
|
const containerRect = document.body.getBoundingClientRect();
|
||||||
|
let newWidth = e.clientX - containerRect.left;
|
||||||
|
const minWidth = parseInt(getComputedStyle(treeContainer).minWidth, 10);
|
||||||
|
const maxWidth = containerRect.width * 0.5; // Максимум 50% ширины окна
|
||||||
|
|
||||||
|
if (newWidth < minWidth) newWidth = minWidth;
|
||||||
|
if (newWidth > maxWidth) newWidth = maxWidth;
|
||||||
|
|
||||||
|
treeContainer.style.width = `${newWidth}px`;
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('mouseup', () => {
|
||||||
|
isResizing = false;
|
||||||
|
document.body.style.cursor = 'default';
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function toggleTheme() {
|
function toggleTheme() {
|
||||||
|
|
@ -452,6 +503,7 @@
|
||||||
const noteModal = document.getElementById('note-modal');
|
const noteModal = document.getElementById('note-modal');
|
||||||
const searchContainer = document.getElementById('search-container');
|
const searchContainer = document.getElementById('search-container');
|
||||||
const importLabel = document.getElementById('import-label');
|
const importLabel = document.getElementById('import-label');
|
||||||
|
const splitter = document.getElementById('splitter');
|
||||||
const themeToggle = document.querySelector('.theme-toggle');
|
const themeToggle = document.querySelector('.theme-toggle');
|
||||||
const header = document.querySelector('.header');
|
const header = document.querySelector('.header');
|
||||||
const installItems = document.querySelectorAll('.install-item');
|
const installItems = document.querySelectorAll('.install-item');
|
||||||
|
|
@ -465,6 +517,7 @@
|
||||||
noteModal.classList.remove('dark-theme');
|
noteModal.classList.remove('dark-theme');
|
||||||
searchContainer.classList.remove('dark-theme');
|
searchContainer.classList.remove('dark-theme');
|
||||||
importLabel.classList.remove('dark-theme');
|
importLabel.classList.remove('dark-theme');
|
||||||
|
splitter.classList.remove('dark-theme');
|
||||||
themeToggle.classList.remove('dark-theme');
|
themeToggle.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'));
|
||||||
|
|
@ -479,6 +532,7 @@
|
||||||
noteModal.classList.add('dark-theme');
|
noteModal.classList.add('dark-theme');
|
||||||
searchContainer.classList.add('dark-theme');
|
searchContainer.classList.add('dark-theme');
|
||||||
importLabel.classList.add('dark-theme');
|
importLabel.classList.add('dark-theme');
|
||||||
|
splitter.classList.add('dark-theme');
|
||||||
themeToggle.classList.add('dark-theme');
|
themeToggle.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'));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue