159
www/index.html
159
www/index.html
@@ -1334,6 +1334,164 @@
|
||||
</dialog>
|
||||
</div>
|
||||
|
||||
<div class="page" id="pagePathGuides" data-page-content="path-guides" hidden>
|
||||
<div id="pathGuidesListView" class="mapsMirPage">
|
||||
<header class="mapsMirHeader">
|
||||
<div class="mapsMirHeaderText">
|
||||
<h1 class="mapsMirTitle" data-i18n="pathGuides.title">Path guides</h1>
|
||||
<p class="mapsMirSubtitle">
|
||||
<span data-i18n="pathGuides.subtitle">Define fixed routes between positions using waypoints.</span>
|
||||
<button type="button" class="mapsMirHelpBtn" id="pathGuidesHelpBtn" data-i18n-title="pathGuides.helpTitle" aria-label="Help">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="7" fill="none" stroke="currentColor" stroke-width="1.5"/><text x="8" y="11.5" text-anchor="middle" font-size="10" font-weight="700" fill="currentColor">?</text></svg>
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
<div class="mapsMirHeaderActions">
|
||||
<button type="button" class="mapsMirBtn mapsMirBtn--green" id="pathGuideCreateBtn">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" aria-hidden="true"><path d="M7 1v12M1 7h12" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
|
||||
<span data-i18n="pathGuides.create">Create path guide</span>
|
||||
</button>
|
||||
<button type="button" class="mapsMirBtn mapsMirBtn--outline" id="pathGuidesClearFiltersBtn">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" aria-hidden="true"><circle cx="7" cy="7" r="5.5" fill="none" stroke="currentColor" stroke-width="1.3"/><path d="M4.5 4.5l5 5" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"/></svg>
|
||||
<span data-i18n="pathGuides.clearFilters">Clear filters</span>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="mapsMirFilterBar">
|
||||
<label class="mapsMirFilterLabel" for="pathGuidesFilterInput" data-i18n="pathGuides.filterLabel">Filter:</label>
|
||||
<input type="search" id="pathGuidesFilterInput" class="mapsMirFilterInput" data-i18n-placeholder="pathGuides.filterPlaceholder" placeholder="Filter by name or map..." autocomplete="off" />
|
||||
<span id="pathGuidesFilterCount" class="mapsMirFilterCount">0 item(s) found</span>
|
||||
<div class="mapsMirPager">
|
||||
<button type="button" class="mapsMirPageBtn" id="pathGuidesPageFirst" aria-label="First page">«</button>
|
||||
<button type="button" class="mapsMirPageBtn" id="pathGuidesPagePrev" aria-label="Previous page">‹</button>
|
||||
<span id="pathGuidesPageLabel" class="mapsMirPageLabel">Page 1 of 1</span>
|
||||
<button type="button" class="mapsMirPageBtn" id="pathGuidesPageNext" aria-label="Next page">›</button>
|
||||
<button type="button" class="mapsMirPageBtn" id="pathGuidesPageLast" aria-label="Last page">»</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mapsMirTableWrap">
|
||||
<table class="mapsMirTable mapsMirTable--path-guides" id="pathGuidesTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="pathGuideMirThIcon" aria-hidden="true"></th>
|
||||
<th data-i18n="pathGuides.colName">Name</th>
|
||||
<th data-i18n="pathGuides.colMap">Map</th>
|
||||
<th data-i18n="pathGuides.colStarts">Starts</th>
|
||||
<th data-i18n="pathGuides.colVias">Waypoints</th>
|
||||
<th data-i18n="pathGuides.colGoals">Goals</th>
|
||||
<th class="mapsMirThFunctions" data-i18n="pathGuides.colFunctions">Functions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pathGuideList"></tbody>
|
||||
</table>
|
||||
<div id="pathGuideListEmpty" class="mapsMirEmpty" hidden data-i18n="pathGuides.empty">No path guides yet. Create waypoint positions on the map first, then add a path guide.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="pathGuideCreateView" class="mapsMirCreatePage" hidden>
|
||||
<header class="mapsMirCreateHeader">
|
||||
<div class="mapsMirCreateHeaderIntro">
|
||||
<h1 class="mapsMirCreateTitle" data-i18n="pathGuides.createPage.title">Create path guide</h1>
|
||||
<p class="mapsMirCreateSubtitle">
|
||||
<span data-i18n="pathGuides.createPage.subtitle">Enter a name and select the map for this path guide.</span>
|
||||
<button type="button" class="mapsMirHelpBtn" id="pathGuideCreateHelpBtn" data-i18n-title="pathGuides.helpTitle" aria-label="Help">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="7" fill="none" stroke="currentColor" stroke-width="1.5"/><text x="8" y="11.5" text-anchor="middle" font-size="10" font-weight="700" fill="currentColor">?</text></svg>
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
<button type="button" class="mapsMirGoBackBtn" id="pathGuideCreateGoBackBtn">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" aria-hidden="true"><path d="M9 3L5 7l4 4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
||||
<span data-i18n="pathGuides.createPage.goBack">Go back</span>
|
||||
</button>
|
||||
</header>
|
||||
<form id="pathGuideCreateForm" class="mapsMirCreateForm">
|
||||
<div class="mapsMirCreatePanel">
|
||||
<label class="mapsMirCreateField" for="pathGuideCreateName">
|
||||
<span class="mapsMirCreateFieldLabel" data-i18n="pathGuides.name">Name</span>
|
||||
<input type="text" id="pathGuideCreateName" required autocomplete="off" data-i18n-placeholder="pathGuides.createPage.namePlaceholder" placeholder="Enter path guide name..." />
|
||||
</label>
|
||||
<label class="mapsMirCreateField" for="pathGuideCreateSite">
|
||||
<span class="mapsMirCreateFieldLabel" data-i18n="pathGuides.site">Site</span>
|
||||
<select id="pathGuideCreateSite" required></select>
|
||||
</label>
|
||||
<label class="mapsMirCreateField" for="pathGuideCreateMap">
|
||||
<span class="mapsMirCreateFieldLabel" data-i18n="pathGuides.map">Map</span>
|
||||
<select id="pathGuideCreateMap" required></select>
|
||||
</label>
|
||||
<p class="mapsMirHint" data-i18n="pathGuides.mapHint">Create positions on the map editor before adding starts, waypoints, and goals.</p>
|
||||
<div class="mapsMirCreateActions">
|
||||
<button type="submit" class="mapsMirCreateSubmitBtn">
|
||||
<span class="mapsMirCircleIcon mapsMirCircleIcon--ok" aria-hidden="true">✓</span>
|
||||
<span data-i18n="pathGuides.createPage.continue">Continue</span>
|
||||
</button>
|
||||
<button type="button" class="mapsMirCreateCancelBtn" id="pathGuideCreateCancelBtn">
|
||||
<span class="mapsMirCircleIcon" aria-hidden="true">←</span>
|
||||
<span data-i18n="common.cancel">Cancel</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="pathGuideEditView" class="pathGuideEditPage" hidden>
|
||||
<header class="pathGuideEditHeader">
|
||||
<div class="pathGuideEditHeaderIntro">
|
||||
<h1 class="pathGuideEditTitle" id="pathGuideEditPageTitle" data-i18n="pathGuides.editPage.title">Edit path guide positions</h1>
|
||||
<p class="pathGuideEditSubtitle">
|
||||
<span data-i18n="pathGuides.editPage.subtitle">Edit the path guide's positions.</span>
|
||||
<button type="button" class="mapsMirHelpBtn" id="pathGuideEditHelpBtn" data-i18n-title="pathGuides.editPage.helpTitle" aria-label="Help">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="7" fill="none" stroke="currentColor" stroke-width="1.5"/><text x="8" y="11.5" text-anchor="middle" font-size="10" font-weight="700" fill="currentColor">?</text></svg>
|
||||
</button>
|
||||
</p>
|
||||
<p class="pathGuideEditMeta" id="pathGuideEditMeta" hidden></p>
|
||||
</div>
|
||||
<button type="button" class="mapsMirGoBackBtn" id="pathGuideEditGoBackBtn">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" aria-hidden="true"><path d="M9 3L5 7l4 4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
||||
<span data-i18n="pathGuides.editPage.goBack">Go back</span>
|
||||
</button>
|
||||
</header>
|
||||
|
||||
<div class="pathGuidePosGrid pathGuidePosGrid--page">
|
||||
<section class="pathGuidePosPanel">
|
||||
<h2 class="pathGuidePosTitle" data-i18n="pathGuides.starts">Start positions</h2>
|
||||
<ul id="pathGuideStartsList" class="pathGuidePosList"></ul>
|
||||
<select id="pathGuideAddStartSelect" class="pathGuidePosPicker" hidden aria-hidden="true" tabindex="-1"></select>
|
||||
<button type="button" class="pathGuidePosAddBtn" id="pathGuideAddStartBtn" data-i18n="pathGuides.addStart">Add start</button>
|
||||
</section>
|
||||
<section class="pathGuidePosPanel">
|
||||
<h2 class="pathGuidePosTitle" data-i18n="pathGuides.vias">Waypoints</h2>
|
||||
<ul id="pathGuideViasList" class="pathGuidePosList pathGuidePosList--vias"></ul>
|
||||
<select id="pathGuideAddViaSelect" class="pathGuidePosPicker" hidden aria-hidden="true" tabindex="-1"></select>
|
||||
<button type="button" class="pathGuidePosAddBtn" id="pathGuideAddViaBtn" data-i18n="pathGuides.addVia">Add waypoint</button>
|
||||
</section>
|
||||
<section class="pathGuidePosPanel">
|
||||
<h2 class="pathGuidePosTitle" data-i18n="pathGuides.goals">Goal positions</h2>
|
||||
<ul id="pathGuideGoalsList" class="pathGuidePosList"></ul>
|
||||
<select id="pathGuideAddGoalSelect" class="pathGuidePosPicker" hidden aria-hidden="true" tabindex="-1"></select>
|
||||
<button type="button" class="pathGuidePosAddBtn" id="pathGuideAddGoalBtn" data-i18n="pathGuides.addGoal">Add goal</button>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="pathGuideEditFooter">
|
||||
<button type="button" class="mapsMirBtn mapsMirBtn--danger" id="pathGuideEditDeleteBtn" hidden data-i18n="common.delete">Delete</button>
|
||||
<button type="button" class="mapsMirBtn mapsMirBtn--green" id="pathGuideEditSaveBtn" data-i18n="common.save">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<dialog id="pathGuideDeleteConfirmDialog" class="mapsMirDialog">
|
||||
<div class="mapsMirDialogPanel">
|
||||
<h2 class="mapsMirDialogTitle" data-i18n="pathGuides.deleteTitle">Delete path guide?</h2>
|
||||
<p id="pathGuideDeleteConfirmText" class="mapsMirDialogText"></p>
|
||||
<div class="mapsMirDialogFooter">
|
||||
<button type="button" class="mapsMirBtn mapsMirBtn--outline" id="pathGuideDeleteCancelBtn" data-i18n="common.no">No</button>
|
||||
<button type="button" class="mapsMirBtn mapsMirBtn--danger" id="pathGuideDeleteYesBtn" data-i18n="common.yes">Yes</button>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
</div>
|
||||
|
||||
<div class="page" id="pageUsers" data-page-content="users" hidden>
|
||||
<div id="usersListView" class="mapsMirPage">
|
||||
<header class="mapsMirHeader">
|
||||
@@ -2620,6 +2778,7 @@ GET /api/v2.0.0/status</pre>
|
||||
<script src="/user-groups.js"></script>
|
||||
<script src="/io-modules.js"></script>
|
||||
<script src="/paths.js"></script>
|
||||
<script src="/path-guides.js"></script>
|
||||
<script src="/map-editor.js"></script>
|
||||
<script src="/topbar.js"></script>
|
||||
<script src="/dashboard.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user