felt/static/index.html

149 lines
No EOL
6.5 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8" />
<title>Felt</title>
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" href="./favicon.png"/>
<link href="./leaflet.css?v=1.9.4" rel="stylesheet" />
<link href="./style.css?v=0.1.0" rel="stylesheet" />
</head>
<body>
<div id="map"></div>
<div id="errWrapper" style='display:none'><button id="closeErr" onclick="closeErr()">x</button><div id="errDiv"></div></div>
<nav>
<section id="user_section">
<details class="ui_win" open><summary>identity</summary>
<label for="name_entry">username</label>
<input id="name_entry" onblur="saveName()">
</details><br/>
<details class="ui_win"><summary>goto</summary>
<form id="table_modal" onsubmit="return false">
<label>table.name<br><input id="input_table_name"></label><br>
<label>table.passcode<br><input id="input_table_pass"></label><br>
<button type="submit" id="table_join" onclick="dial();">Join</button>
</form>
</details><br/>
<div id="tabletop" style="display:none;">
<details id="dice_win" class="ui_win"><summary>dice</summary>
<select id="num_dice">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
</select>
<label for="dice_faces">d</label>
<select id="dice_faces">
<option>4</option>
<option selected>6</option>
<option>8</option>
<option>10</option>
<option>12</option>
<option>20</option>
</select>
<input id="dice_note"><button id="dice_submit" onclick="rollDice()">Roll</button>
<div id="dice_log"></div>
</details><br/>
<details class="ui_win"><summary>status</summary><pre id="aux"></pre></details><br/>
<details class="ui_win"><summary>token select</summary>
<button id="tokenPreview_alt_clear" onclick="dismissPreview()" style="display: none;">Dismiss Preview</button>
<div id="tokenPreview_alt"></div>
<input hidden id="tokenPreview_alt_id"/>
<div id="token_select"></div>
</details><br/>
</div>
</section>
<section id="admin_section">
<details class="ui_win admin_win"><summary>admin</summary>
<form id="admin_modal" onsubmit="return false">
<label>pass<input type="password" id="input_admin_pass"></label>
<button type="submit" id="admin_login" onclick="doLogin();">Login</button>
</form>
</details>
<br/>
<div id="adminWrapper" style="display:none;">
<details id="admin_table_win" class="ui_win admin_win"><summary>table</summary>
<button onclick="setTableCreateFormVisible(true)">New Table</button>
<form onsubmit="return false" id="createTableForm" style="display:none;">
<label>Name<input id="newTableName"/></label><br/>
<label>Passcode<input id="newTablePass" type="password"/></label><br/>
<button type="submit" onclick="createTable()">Create</button>
<button onclick="setTableCreateFormVisible(false)">Cancel</button>
</form>
<div id="adminZone"></div>
</details><br/>
<div id="adminWrapper_tokens">
<details id="admin_token_win" class="ui_win admin_win"><summary>tokens</summary>
<button onclick="setTokenCreateFormVisible(true)">New Token</button>
<form onsubmit="return false" id="createTokenForm" style="display:none;">
<label>Sprite<select id="token_combobox" onchange="previewSprite(this)"></select></label><br/>
<label>Name<input id="token_name"/></label><br/>
<label>Width<input type="number" id="token_width" min="1" max="9999" onchange="previewSprite(this)"/></label><label id="aspectLockLabel" for="tokenKeepAspect">&#128274;</label><input type="checkbox" checked id="tokenKeepAspect" onchange="toggleAspectLock()"/><br/>
<label>Height<input type="number" id="token_height" min="1" max="9999" onchange="previewSprite(this)"/></label><br/>
<label>cX<input type="number" id="token_cx" min="0" max="9999" onchange="previewSprite(this)"/></label><br/>
<label>cY<input type="number" id="token_cy" min="0" max="9999" onchange="previewSprite(this)"/></label><br/>
<button type="submit" onclick="createToken()">Create</button>
<button onclick="setTokenCreateFormVisible(false)">Cancel</button>
</form>
<div id="tokenPreview_zone"></div>
<div id="tokenZone"></div>
</details><br/>
<details id="admin_sprite_win" class="ui_win admin_win"><summary>sprites</summary>
<div id="spriteZone"></div>
</details>
</div>
</div>
</section>
<details class="ui_win" id="theme_accordion"><summary>theme</summary>
<form id="theme_cfg" onsubmit="return false">
<label>bg color<input type="color" id="bg_col_input"/></label>
<label>bg opacity<input type="range" id="bg_col_opacity" min="0" max="255"/></label>
<label>fg color<input type="color" id="fg_col_input"/></label>
<label>fg opacity<input type="range" id="fg_col_opacity" min="0" max="255"/></label>
<label>main color<input type="color" id="main_col_input"/></label>
<label>main opacity<input type="range" id="main_col_opacity" min="0" max="255"/></label>
<label>sub color<input type="color" id="sub_col_input"/></label>
<label>sub opacity<input type="range" id="sub_col_opacity" min="0" max="255"/></label>
<label>error color<input type="color" id="err_col_input"/></label>
<label>error opacity<input type="range" id="err_col_opacity"/></label>
<button onclick="setTheme()">Apply</button><button onclick="resetTheme(defaultTheme)">Reset</button>
</form>
</details>
<div class="ui_win" id="felt_info"><a href="https://hacklab.nilfm.cc/felt">felt v0.1.0</a> | built with <a href="https://leafletjs.org">leaflet</a></div>
</nav>
</body>
<script src="./leaflet.js?v=1.9.4" type="text/javascript"></script>
<script src="./util.js?v=0.1.0" type="text/javascript"></script>
<script src="./map.js?v=0.1.0" type="text/javascript"></script>
<script src="./socket.js?v=0.1.0" type="text/javascript"></script>
<script src="./dice.js?v=0.1.0" type="text/javascript"></script>
<script src="./admin.js?v=0.1.0" type="text/javascript"></script>
</html>