diff options
Diffstat (limited to 'internal/admin/templates')
| -rw-r--r-- | internal/admin/templates/duplicate-rooms.html | 5 | ||||
| -rw-r--r-- | internal/admin/templates/map.html | 46 |
2 files changed, 35 insertions, 16 deletions
diff --git a/internal/admin/templates/duplicate-rooms.html b/internal/admin/templates/duplicate-rooms.html index 4e603bb..9533460 100644 --- a/internal/admin/templates/duplicate-rooms.html +++ b/internal/admin/templates/duplicate-rooms.html @@ -64,9 +64,9 @@ function checkDups() { } function deleteDupFile(path) { - if (!confirm('Delete this file?\n\n' + path)) return; API.post('/api/rooms/resolve-duplicate', {path: path, action: 'delete'}).then(function() { notify('Deleted', 'success'); + updateUndoBar(); checkDups(); }).catch(function(e) { notify('Delete failed: ' + e.message, 'error'); @@ -77,9 +77,9 @@ function renameDupFile(path, inputId) { var el = document.getElementById(inputId); var newID = parseInt(el.value, 10); if (!newID || newID <= 0) { notify('Enter a valid new room ID', 'error'); return; } - if (!confirm('Rename this file to ID ' + newID + '?\n\n' + path)) return; API.post('/api/rooms/resolve-duplicate', {path: path, action: 'rename', new_id: newID}).then(function() { notify('Renamed to ' + newID, 'success'); + updateUndoBar(); checkDups(); }).catch(function(e) { notify('Rename failed: ' + e.message, 'error'); @@ -89,5 +89,6 @@ function renameDupFile(path, inputId) { function esc(s) { return String(s || '').replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); } function escAttr(s) { return String(s || '').replace(/&/g,'&').replace(/"/g,'"'); } checkDups(); +window.refreshPage = checkDups; </script> {{end}} diff --git a/internal/admin/templates/map.html b/internal/admin/templates/map.html index 3bcbb30..1e45f8e 100644 --- a/internal/admin/templates/map.html +++ b/internal/admin/templates/map.html @@ -7,20 +7,38 @@ </div> </div> <div class="main" id="mapContainer"> - <div class="z-controls"> - <button onclick="changeZ(-1)">-</button> - <span class="z-label" id="zLabel">Z=0</span> - <button onclick="changeZ(1)">+</button> - <button onclick="changeZ(0)" style="width:auto;font-size:11px;padding:0 10px;min-width:44px">Reset</button> - <span style="font-size:11px;color:#aaa;margin-left:8px">Area:</span> - <select id="dirSelect" onchange="changeDir(this.value)" style="padding:3px 6px;font-size:11px;background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:3px;font-family:monospace"></select> - <span style="font-size:11px;color:#aaa;margin-left:8px">Zoom:</span> - <button onclick="zoomIn()" title="Zoom in" style="width:auto;font-size:14px;padding:0 6px;min-width:32px">➕</button> - <button onclick="zoomOut()" title="Zoom out" style="width:auto;font-size:14px;padding:0 6px;min-width:32px">➖</button> - <label style="font-size:11px;color:#ccc;cursor:pointer;display:flex;align-items:center;gap:4px;margin-left:8px" title="When unchecked, skips the confirm dialog when deleting rooms"> - <input type="checkbox" id="confirmDelete" style="cursor:pointer"> - Confirm before delete - </label> + <div class="z-controls-wrapper"> + <div class="z-controls"> + <span style="font-size:11px;color:#aaa">Area:</span> + <select id="dirSelect" onchange="changeDir(this.value)" style="padding:3px 6px;font-size:11px;background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:3px;font-family:monospace"></select> + <button id="renameDirBtn" class="z-text-btn" onclick="showRenameDir()" style="font-size:11px;padding:0 10px;min-width:44px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:3px;cursor:pointer;font-family:monospace">Rename</button> + <button id="newDirBtn" class="z-text-btn" onclick="showNewDir()" style="font-size:11px;padding:0 10px;min-width:44px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:3px;cursor:pointer;font-family:monospace">New</button> + <span class="z-sep"></span> + <button id="newRoomBtn" class="z-text-btn" onclick="createEmptyRoom()" style="display:none;font-size:11px;padding:0 10px;min-width:44px;background:var(--danger);color:#fff;border:1px solid var(--danger);border-radius:3px;cursor:pointer;font-family:monospace">New Room</button> + <span class="z-sep" id="newRoomSep" style="display:none"></span> + <button onclick="changeZ(-1)">-</button> + <span class="z-label" id="zLabel">Z=0</span> + <button onclick="changeZ(1)">+</button> + <button class="z-text-btn" onclick="changeZ(0)" style="width:auto;font-size:11px;padding:0 10px;min-width:44px">Reset</button> + <span style="font-size:11px;color:#aaa;margin-left:8px">Zoom:</span> + <button onclick="zoomIn()" title="Zoom in" style="width:auto;font-size:14px;padding:0 6px;min-width:32px">➕</button> + <button onclick="zoomOut()" title="Zoom out" style="width:auto;font-size:14px;padding:0 6px;min-width:32px">➖</button> + <span class="z-sep"></span> + <label style="font-size:11px;color:#ccc;cursor:pointer;display:flex;align-items:center;gap:4px;margin-left:8px" title="When unchecked, skips the confirm dialog when deleting rooms"> + <input type="checkbox" id="confirmDelete" style="cursor:pointer"> + Confirm before delete + </label> + <div id="renameDirForm" class="z-dir-form"> + <input id="renameDirInput" type="text" onkeydown="onDirInputKey(event,'rename')" style="padding:3px 6px;font-size:11px;background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:3px;font-family:monospace;width:160px"> + <button class="z-text-btn" onclick="confirmRenameDir()" style="font-size:11px;padding:0 8px;min-width:44px;background:var(--accent);color:var(--text);border:1px solid #1a5a8e;border-radius:3px;cursor:pointer;font-family:monospace">Confirm</button> + <button class="z-text-btn" onclick="cancelRenameDir()" style="font-size:11px;padding:0 8px;min-width:44px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:3px;cursor:pointer;font-family:monospace">Cancel</button> + </div> + <div id="newDirForm" class="z-dir-form"> + <input id="newDirInput" type="text" placeholder="area name" onkeydown="onDirInputKey(event,'new')" style="padding:3px 6px;font-size:11px;background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:3px;font-family:monospace;width:160px"> + <button class="z-text-btn" onclick="confirmNewDir()" style="font-size:11px;padding:0 8px;min-width:44px;background:var(--accent);color:var(--text);border:1px solid #1a5a8e;border-radius:3px;cursor:pointer;font-family:monospace">Confirm</button> + <button class="z-text-btn" onclick="cancelNewDir()" style="font-size:11px;padding:0 8px;min-width:44px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:3px;cursor:pointer;font-family:monospace">Cancel</button> + </div> + </div> </div> <svg id="mapSvg" style="width:100%;height:100%"></svg> <div class="room-tooltip" id="tooltip" style="display:none"></div> |
