Move settings to extra pages
This commit is contained in:
parent
aa42223fc9
commit
b1f7938b37
4 changed files with 69 additions and 44 deletions
59
index.html
59
index.html
|
|
@ -14,11 +14,11 @@
|
||||||
<body>
|
<body>
|
||||||
<script defer>
|
<script defer>
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
document.querySelectorAll(".dots").forEach(el => {
|
document.querySelectorAll(".dots").forEach(el => {
|
||||||
el.classList.add("animate");
|
el.classList.add("animate");
|
||||||
});
|
});
|
||||||
}, 100);
|
}, 100);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<div class="app-container no-active-chat">
|
<div class="app-container no-active-chat">
|
||||||
|
|
@ -121,34 +121,33 @@
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Settings Modal -->
|
<section class="extra-page" id="settings-page">
|
||||||
<div class="modal-overlay hidden" id="settings-modal">
|
<div class="modal-content">
|
||||||
<div class="modal-content">
|
<header class="modal-header">
|
||||||
<header class="modal-header">
|
<h2>SETTINGS</h2>
|
||||||
<h2>SETTINGS</h2>
|
</header>
|
||||||
</header>
|
<div class="modal-body">
|
||||||
<div class="modal-body">
|
<div class="form-group">
|
||||||
<div class="form-group">
|
<label for="settings-waha-url">WAHA Server URL</label>
|
||||||
<label for="settings-waha-url">WAHA Server URL</label>
|
<input type="text" id="settings-waha-url" placeholder="http://localhost:3100">
|
||||||
<input type="text" id="settings-waha-url" placeholder="http://localhost:3100">
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="settings-session">Session ID</label>
|
||||||
|
<input type="text" id="settings-session" placeholder="session_01...">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="settings-api-key">API Key (X-API-KEY)</label>
|
||||||
|
<input type="password" id="settings-api-key" placeholder="Enter API Key">
|
||||||
|
</div>
|
||||||
|
<p class="settings-warning">Note: Requests are sent directly from your browser to the WAHA server. Make sure CORS is enabled on your WAHA instance.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<footer class="modal-footer">
|
||||||
<label for="settings-session">Session ID</label>
|
<button class="btn secondary-btn" id="cancel-settings">Cancel</button>
|
||||||
<input type="text" id="settings-session" placeholder="session_01...">
|
<button class="btn primary-btn" id="save-settings">Save Config</button>
|
||||||
</div>
|
</footer>
|
||||||
<div class="form-group">
|
|
||||||
<label for="settings-api-key">API Key (X-API-KEY)</label>
|
|
||||||
<input type="password" id="settings-api-key" placeholder="Enter API Key">
|
|
||||||
</div>
|
|
||||||
<p class="settings-warning">Note: Requests are sent directly from your browser to the WAHA server. Make sure CORS is enabled on your WAHA instance.</p>
|
|
||||||
</div>
|
</div>
|
||||||
<footer class="modal-footer">
|
</section>
|
||||||
<button class="btn secondary-btn" id="cancel-settings">Cancel</button>
|
|
||||||
<button class="btn primary-btn" id="save-settings">Save Config</button>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Client-side script loaded as ES Module -->
|
<!-- Client-side script loaded as ES Module -->
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,9 @@ let activeChatState = null;
|
||||||
const messageTone = new Audio("./message.ogg");
|
const messageTone = new Audio("./message.ogg");
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', async () => {
|
document.addEventListener('DOMContentLoaded', async () => {
|
||||||
|
elements.inputApiKey.value = config.apiKey;
|
||||||
|
elements.inputWahaUrl.value = config.wahaUrl;
|
||||||
|
elements.inputSession.value = config.session;
|
||||||
await updateOnlineStatus();
|
await updateOnlineStatus();
|
||||||
setupEventListeners();
|
setupEventListeners();
|
||||||
try {
|
try {
|
||||||
|
|
@ -381,9 +384,7 @@ async function sendFileMessage(file) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function openSettings() {
|
function openSettings() {
|
||||||
elements.inputWahaUrl.value = config.wahaUrl;
|
|
||||||
elements.inputSession.value = config.session;
|
|
||||||
elements.inputApiKey.value = config.apiKey;
|
|
||||||
ui.toggleModal(true);
|
ui.toggleModal(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
6
js/ui.js
6
js/ui.js
|
|
@ -20,7 +20,7 @@ export const elements = {
|
||||||
backToSidebarBtn: document.querySelector('.chat-header'),
|
backToSidebarBtn: document.querySelector('.chat-header'),
|
||||||
sidebar: document.querySelector('.sidebar'),
|
sidebar: document.querySelector('.sidebar'),
|
||||||
appContainer: document.querySelector('.app-container'),
|
appContainer: document.querySelector('.app-container'),
|
||||||
settingsModal: document.getElementById('settings-modal'),
|
settingsModal: document.getElementById('settings-page'),
|
||||||
settingsIconBtn: document.querySelector('.header-actions button[title="Settings"]'),
|
settingsIconBtn: document.querySelector('.header-actions button[title="Settings"]'),
|
||||||
cancelSettingsBtn: document.getElementById('cancel-settings'),
|
cancelSettingsBtn: document.getElementById('cancel-settings'),
|
||||||
saveSettingsBtn: document.getElementById('save-settings'),
|
saveSettingsBtn: document.getElementById('save-settings'),
|
||||||
|
|
@ -41,9 +41,9 @@ export const ui = {
|
||||||
*/
|
*/
|
||||||
toggleModal(show) {
|
toggleModal(show) {
|
||||||
if (show) {
|
if (show) {
|
||||||
elements.settingsModal.classList.remove('hidden');
|
elements.settingsModal.scrollTo();
|
||||||
} else {
|
} else {
|
||||||
elements.settingsModal.classList.add('hidden');
|
elements.sidebar.scrollTo();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
25
style.css
25
style.css
|
|
@ -738,6 +738,16 @@ input:focus {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Extra Pages */
|
||||||
|
.extra-page {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.extra-page-content {
|
||||||
|
padding: 24px;
|
||||||
|
color: var(--text-secondary);
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.app-container {
|
.app-container {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
@ -783,6 +793,21 @@ input:focus {
|
||||||
scroll-snap-stop: always;
|
scroll-snap-stop: always;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.extra-page {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
flex: 0 0 100%;
|
||||||
|
position: relative;
|
||||||
|
left: auto;
|
||||||
|
top: auto;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 1;
|
||||||
|
scroll-snap-align: start;
|
||||||
|
scroll-snap-stop: always;
|
||||||
|
background-color: var(--bg-main);
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
/* Disable scrolling to active chat if none is selected */
|
/* Disable scrolling to active chat if none is selected */
|
||||||
/* .app-container.no-active-chat .chat-area {
|
/* .app-container.no-active-chat .chat-area {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue