notes fix2
parent
e78f7cd456
commit
778e2e47fb
|
|
@ -10,7 +10,7 @@
|
||||||
<style>
|
<style>
|
||||||
body { display: flex; font-family: Arial, sans-serif; }
|
body { display: flex; font-family: Arial, sans-serif; }
|
||||||
#tree-container { width: 30%; padding: 10px; border-right: 1px solid #ccc; }
|
#tree-container { width: 30%; padding: 10px; border-right: 1px solid #ccc; }
|
||||||
#installs-container { width: 70%; padding: 10px; position: relative; }
|
#installs-container { width: 40%; padding: 10px; position: relative; }
|
||||||
.install-item { padding: 5px; margin: 2px; border: 1px solid #ddd; cursor: move; }
|
.install-item { padding: 5px; margin: 2px; border: 1px solid #ddd; cursor: move; }
|
||||||
.form-container { margin-bottom: 20px; }
|
.form-container { margin-bottom: 20px; }
|
||||||
.jstree-node { position: relative; }
|
.jstree-node { position: relative; }
|
||||||
|
|
@ -30,9 +30,11 @@
|
||||||
#import-label:hover { background: #0056b3; }
|
#import-label:hover { background: #0056b3; }
|
||||||
.folder-select { margin: 5px 0; }
|
.folder-select { margin: 5px 0; }
|
||||||
.time-hint { font-size: 12px; color: #666; margin-top: 5px; }
|
.time-hint { font-size: 12px; color: #666; margin-top: 5px; }
|
||||||
#notes-panel { width: 100%; padding: 10px; border-left: 1px solid #ccc; background: #f9f9f9; min-height: 200px; }
|
#notes-panel { width: 30%; padding: 10px; border-left: 1px solid #ccc; background: #f9f9f9; min-height: 200px; margin-top: 60px; } /* Сужаем и смещаем вниз */
|
||||||
#notes-content { margin-top: 10px; }
|
#notes-content { margin-top: 10px; }
|
||||||
#note-modal { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; padding: 20px; border: 1px solid #ccc; box-shadow: 0 0 10px rgba(0,0,0,0.3); z-index: 1000; width: 500px; }
|
#note-modal { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; padding: 20px; border: 1px solid #ccc; box-shadow: 0 0 10px rgba(0,0,0,0.3); z-index: 1000; width: 500px; }
|
||||||
|
#note-modal .markdown-buttons { margin-bottom: 10px; }
|
||||||
|
#note-modal .markdown-buttons button { margin-right: 5px; padding: 5px 10px; }
|
||||||
#note-modal textarea { width: 100%; height: 200px; margin-bottom: 10px; }
|
#note-modal textarea { width: 100%; height: 200px; margin-bottom: 10px; }
|
||||||
#note-modal button { margin-right: 10px; }
|
#note-modal button { margin-right: 10px; }
|
||||||
#modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 999; }
|
#modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 999; }
|
||||||
|
|
@ -99,6 +101,11 @@
|
||||||
<div id="modal-overlay"></div>
|
<div id="modal-overlay"></div>
|
||||||
<div id="note-modal">
|
<div id="note-modal">
|
||||||
<h3>Редактировать заметку</h3>
|
<h3>Редактировать заметку</h3>
|
||||||
|
<div class="markdown-buttons">
|
||||||
|
<button onclick="formatBold()">Жирный</button>
|
||||||
|
<button onclick="formatItalic()">Курсив</button>
|
||||||
|
<button onclick="formatLink()">Ссылка</button>
|
||||||
|
</div>
|
||||||
<textarea id="note-textarea" placeholder="Введите заметку (Markdown поддерживается)"></textarea>
|
<textarea id="note-textarea" placeholder="Введите заметку (Markdown поддерживается)"></textarea>
|
||||||
<button onclick="saveNote()">Сохранить</button>
|
<button onclick="saveNote()">Сохранить</button>
|
||||||
<button onclick="closeNoteModal()">Закрыть</button>
|
<button onclick="closeNoteModal()">Закрыть</button>
|
||||||
|
|
@ -501,6 +508,46 @@
|
||||||
selectedInstallId = $(this).data('id');
|
selectedInstallId = $(this).data('id');
|
||||||
updateNotesPanel();
|
updateNotesPanel();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Функции для форматирования Markdown
|
||||||
|
function formatBold() {
|
||||||
|
const textarea = $('#note-textarea');
|
||||||
|
const start = textarea[0].selectionStart;
|
||||||
|
const end = textarea[0].selectionEnd;
|
||||||
|
const text = textarea.val();
|
||||||
|
const selected = text.substring(start, end);
|
||||||
|
const newText = `**${selected}**`;
|
||||||
|
textarea.val(text.substring(0, start) + newText + text.substring(end));
|
||||||
|
textarea[0].selectionStart = start;
|
||||||
|
textarea[0].selectionEnd = start + newText.length - 4; // Учитываем длину ** и **
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatItalic() {
|
||||||
|
const textarea = $('#note-textarea');
|
||||||
|
const start = textarea[0].selectionStart;
|
||||||
|
const end = textarea[0].selectionEnd;
|
||||||
|
const text = textarea.val();
|
||||||
|
const selected = text.substring(start, end);
|
||||||
|
const newText = `*${selected}*`;
|
||||||
|
textarea.val(text.substring(0, start) + newText + text.substring(end));
|
||||||
|
textarea[0].selectionStart = start;
|
||||||
|
textarea[0].selectionEnd = start + newText.length - 2; // Учитываем длину * и *
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatLink() {
|
||||||
|
const textarea = $('#note-textarea');
|
||||||
|
const start = textarea[0].selectionStart;
|
||||||
|
const end = textarea[0].selectionEnd;
|
||||||
|
const text = textarea.val();
|
||||||
|
const selected = text.substring(start, end) || 'текст';
|
||||||
|
const url = prompt('Введите URL ссылки:', 'https://example.com');
|
||||||
|
if (url) {
|
||||||
|
const newText = `[${selected}](${url})`;
|
||||||
|
textarea.val(text.substring(0, start) + newText + text.substring(end));
|
||||||
|
textarea[0].selectionStart = start;
|
||||||
|
textarea[0].selectionEnd = start + newText.length - (selected ? 0 : '[текст]'.length); // Учитываем длину [текст](URL)
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Loading…
Reference in New Issue