92 lines
3.8 KiB
HTML
92 lines
3.8 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="en">
|
||
|
|
<head>
|
||
|
|
<meta charset="UTF-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
||
|
|
<meta name="theme-color" content="#007acc">
|
||
|
|
<meta name="description" content="Remote macro control for your desktop">
|
||
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||
|
|
<meta name="apple-mobile-web-app-title" content="MacroPad">
|
||
|
|
|
||
|
|
<title>MacroPad</title>
|
||
|
|
|
||
|
|
<link rel="manifest" href="/manifest.json">
|
||
|
|
<link rel="icon" type="image/png" sizes="192x192" href="/static/icons/icon-192.png">
|
||
|
|
<link rel="apple-touch-icon" href="/static/icons/icon-192.png">
|
||
|
|
<link rel="stylesheet" href="/static/css/styles.css">
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
<!-- Header -->
|
||
|
|
<header class="header">
|
||
|
|
<h1>MacroPad</h1>
|
||
|
|
<div class="header-actions">
|
||
|
|
<div class="connection-status">
|
||
|
|
<div class="status-dot"></div>
|
||
|
|
<span>Disconnected</span>
|
||
|
|
</div>
|
||
|
|
<button class="header-btn secondary" onclick="app.refresh()">Refresh</button>
|
||
|
|
<button class="header-btn" onclick="app.openAddModal()">+ Add</button>
|
||
|
|
</div>
|
||
|
|
</header>
|
||
|
|
|
||
|
|
<!-- Tabs -->
|
||
|
|
<nav class="tabs" id="tabs-container">
|
||
|
|
<!-- Tabs rendered dynamically -->
|
||
|
|
</nav>
|
||
|
|
|
||
|
|
<!-- Macro Grid -->
|
||
|
|
<main class="macro-grid" id="macro-grid">
|
||
|
|
<div class="loading">
|
||
|
|
<div class="spinner"></div>
|
||
|
|
</div>
|
||
|
|
</main>
|
||
|
|
|
||
|
|
<!-- Modal -->
|
||
|
|
<div class="modal-overlay" id="modal-overlay" style="display: none;">
|
||
|
|
<div class="modal">
|
||
|
|
<div class="modal-header">
|
||
|
|
<h2 id="modal-title">Add Macro</h2>
|
||
|
|
<button class="modal-close" onclick="app.closeModal()">×</button>
|
||
|
|
</div>
|
||
|
|
<div class="modal-body">
|
||
|
|
<div class="form-group">
|
||
|
|
<label for="macro-name">Name</label>
|
||
|
|
<input type="text" id="macro-name" placeholder="Macro name">
|
||
|
|
</div>
|
||
|
|
<div class="form-group">
|
||
|
|
<label for="macro-category">Category (optional)</label>
|
||
|
|
<input type="text" id="macro-category" placeholder="Category">
|
||
|
|
</div>
|
||
|
|
<div class="form-group">
|
||
|
|
<label>Commands</label>
|
||
|
|
<div class="command-list" id="command-list">
|
||
|
|
<div class="empty-state"><p>No commands added yet</p></div>
|
||
|
|
</div>
|
||
|
|
<div class="add-command-btns">
|
||
|
|
<button class="add-command-btn" onclick="app.addCommand('text')">+ Text</button>
|
||
|
|
<button class="add-command-btn" onclick="app.addCommand('key')">+ Key</button>
|
||
|
|
<button class="add-command-btn" onclick="app.addCommand('hotkey')">+ Hotkey</button>
|
||
|
|
<button class="add-command-btn" onclick="app.addCommand('wait')">+ Wait</button>
|
||
|
|
<button class="add-command-btn" onclick="app.addCommand('app')">+ App</button>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
<div class="modal-footer">
|
||
|
|
<button class="btn btn-danger" id="delete-btn" style="display: none;"
|
||
|
|
onclick="app.deleteMacro(app.editingMacroId); app.closeModal();">
|
||
|
|
Delete
|
||
|
|
</button>
|
||
|
|
<button class="btn btn-secondary" onclick="app.closeModal()">Cancel</button>
|
||
|
|
<button class="btn btn-primary" onclick="app.saveMacro()">Save</button>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<!-- Toast Container -->
|
||
|
|
<div class="toast-container" id="toast-container"></div>
|
||
|
|
|
||
|
|
<script src="/static/js/app.js"></script>
|
||
|
|
</body>
|
||
|
|
</html>
|