@@ -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+
292338function containsOneCopyOfAllLetters ( str ) {
293339 str = str . toUpperCase ( ) ;
294340 if ( strCount ( str , "," ) != 1 ) { return false ; }
0 commit comments