@@ -10,6 +10,7 @@ const result = document.getElementById("parse_result");
1010const code = document . getElementById ( "parse_code" ) ;
1111const save = document . getElementById ( "save_button" ) ;
1212const tip = document . getElementById ( "save_message" ) ;
13+ const versionDisplay = document . getElementById ( "version_display" ) ;
1314
1415// Submit function
1516let submitTimer ;
@@ -59,6 +60,8 @@ const update = function(endpoint, payload, overwrite) {
5960 code . innerHTML = data . result ;
6061 result . dataset . lang = payload . lang ;
6162 result . scrollTop = source . scrollTop ;
63+
64+ versionDisplay . innerText = data . display_ver ;
6265 } else if ( request . readyState === XMLHttpRequest . DONE && request . status !== 200 ) {
6366 const data = JSON . parse ( request . responseText ) ;
6467 flash . innerHTML = data . message ;
@@ -70,15 +73,18 @@ const update = function(endpoint, payload, overwrite) {
7073} ;
7174
7275// Reset on language change
73- lang . addEventListener ( "change" , function ( e ) {
76+ function doReset ( e ) {
7477 ( source . value === "" ) ? ( editing = false ) : null ;
7578 const content = editing ? source . value : null ;
7679 const payload = { ver : ver . value , lang : lang . value , source : content } ;
7780 submit ( "/parse" , payload , ! editing ) ;
7881 history . pushState ( { } , "" , "/" + encodeURIComponent ( ver . value ) +
7982 "/" + encodeURIComponent ( lang . value ) +
8083 "/" ) ;
81- } , { capture : false , passive : true } ) ;
84+ }
85+
86+ lang . addEventListener ( "change" , doReset , { capture : false , passive : true } ) ;
87+ ver . addEventListener ( "change" , doReset , { capture : false , passive : true } ) ;
8288
8389// Update on source change
8490source . addEventListener ( "input" , function ( e ) {
@@ -91,14 +97,19 @@ source.addEventListener("input", function(e) {
9197 if ( window . location . pathname !== draft_path ) {
9298 history . pushState ( { } , "" , draft_path ) ;
9399 }
100+
101+ checkLength ( ) ;
102+ } , { capture : false , passive : true } ) ;
103+
104+ function checkLength ( ) {
94105 if ( source . value . length > < %= Dingus ::MAX_BODY_SIZE % > ) {
95106 save . disabled = true ;
96107 save . classList . add ( "disabled" ) ;
97108 } else {
98109 save . disabled = false ;
99110 save . classList . remove ( "disabled" ) ;
100111 }
101- } , { capture : false , passive : true } );
112+ }
102113
103114// Scroll the highlighted window
104115source . addEventListener ( "scroll" , function ( e ) {
@@ -158,3 +169,5 @@ save.addEventListener("click", function(e) {
158169 tip . classList . add ( "show" ) ;
159170 }
160171} , { capture : false , passive : false } );
172+
173+ checkLength();
0 commit comments