Skip to content

Commit a045ec6

Browse files
committed
Add layout name to playground
1 parent e5a9dca commit a045ec6

2 files changed

Lines changed: 87 additions & 0 deletions

File tree

keyboard_svg.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,52 @@ function openCorpusPopup() {
289289
document.getElementById('corpusPopup').style.display = 'flex';
290290
}
291291

292+
var is_editing_name = false;
293+
var name_container = document.querySelector("#layout-name");
294+
var name_div = name_container.querySelector(".name");
295+
var name_edit_btn = name_container.querySelector("button.edit");
296+
var name_save_btn = name_container.querySelector("button.save");
297+
var name_input = name_container.querySelector(".name-entry");
298+
renderLayoutName();
299+
300+
function renderLayoutName(layout_name = params.name) {
301+
if (layout_name) {
302+
name_div.innerHTML = layout_name;
303+
name_input.value = layout_name;
304+
name_div.classList.remove("placeholder");
305+
} else {
306+
name_div.innerHTML = "Unnamed layout";
307+
name_div.classList.add("placeholder");
308+
}
309+
}
310+
311+
function toggleEditLayoutName() {
312+
if (is_editing_name) {
313+
name_div.removeAttribute("hidden")
314+
name_input.setAttribute("hidden", true);
315+
name_edit_btn.innerText = "Edit";
316+
name_save_btn.setAttribute("hidden", true);
317+
} else {
318+
name_div.setAttribute("hidden", true)
319+
name_edit_btn.innerText = "Cancel"
320+
name_save_btn.removeAttribute("hidden");
321+
name_input.removeAttribute("hidden");
322+
name_input.focus();
323+
}
324+
325+
is_editing_name = !is_editing_name;
326+
}
327+
328+
function updateLayoutName() {
329+
var new_layout_name = name_input.value;
330+
var queryParams = new URLSearchParams(window.location.search);
331+
queryParams.set('name', new_layout_name);
332+
history.replaceState(null, null, "?"+queryParams.toString());
333+
334+
renderLayoutName(new_layout_name);
335+
toggleEditLayoutName();
336+
}
337+
292338
function containsOneCopyOfAllLetters(str) {
293339
str = str.toUpperCase();
294340
if (strCount(str,",")!=1) {return false;}

playground.html

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,41 @@
2525
.draggable {
2626
cursor: move;
2727
}
28+
#layout-name {
29+
display: flex;
30+
flex-direction: row;
31+
align-items: center;
32+
justify-content: center;
33+
gap: 6px;
34+
margin:auto;
35+
padding: 10px;
36+
padding-bottom: 16px;
37+
width: 1000px;
38+
min-height: 63px;
39+
}
40+
#layout-name .name {
41+
color: #dfe2eb;
42+
}
43+
#layout-name .name-entry {
44+
font-size: 16px;
45+
padding: 2px 4px;
46+
}
47+
#layout-name .placeholder {
48+
color: #999;
49+
font-size: 16px;
50+
font-style: italic;
51+
font-weight: normal;
52+
}
53+
#layout-name button {
54+
font-family: Sans, Arial;
55+
background-color: #777777;
56+
border: none;
57+
color: #111111;
58+
height: 25px;
59+
padding-left: 4px;
60+
padding-right: 4px;
61+
font-size: 16px;
62+
}
2863
.layout-svg{margin:auto;width:1000px;}
2964
.stats-svg{margin:auto;width:1000px;}
3065
.overlay {
@@ -152,6 +187,12 @@
152187
<a onclick="selectLanguage('swedish')">Swedish</a>
153188
</div>
154189
</div>
190+
<div id="layout-name">
191+
<input class="name-entry" hidden />
192+
<h1 class="name"></h1>
193+
<button class="save" onclick="updateLayoutName()" hidden>Save</button>
194+
<button class="edit" onclick="toggleEditLayoutName()">Edit</button>
195+
</div>
155196
<div class="layout-svg" id = "svglayout"></div>
156197
<br>
157198
<div class="stats-svg" id = "svgstats"></div>

0 commit comments

Comments
 (0)