Fossil SCM
Generic JS cleanups: var scoping and missing semicolons.
Commit
9ec2861417ef8719ccf4214ad614fe843b6d7d699f63a8ef61e0379a651cfee5
Parent
ba5c9147727d7e7…
1 file changed
+69
-66
+69
-66
| --- tools/chat.tcl | ||
| +++ tools/chat.tcl | ||
| @@ -107,76 +107,79 @@ | ||
| 107 | 107 | set submiturl [wapp-param SCRIPT_NAME]/send |
| 108 | 108 | set pollurl [wapp-param SCRIPT_NAME]/poll |
| 109 | 109 | set downloadurl [wapp-param SCRIPT_NAME]/download |
| 110 | 110 | set me [wapp-param FOSSIL_USER] |
| 111 | 111 | wapp-trim { |
| 112 | -<script nonce="%string($nonce)">(function(){ | |
| 113 | - let x = document.getElementById("sbox"); | |
| 114 | - let form = document.forms[0] | |
| 115 | - var mxMsg = 0 | |
| 116 | - var _me = "%string($me)" | |
| 117 | - form.addEventListener('submit',(e)=>{ | |
| 118 | - e.preventDefault(); | |
| 119 | - if( form.msg.value.length>0 || form.file.value.length>0 ){ | |
| 120 | - fetch("%string($submiturl)",{ | |
| 121 | - method: 'POST', | |
| 122 | - body: new FormData(form) | |
| 123 | - }); | |
| 124 | - } | |
| 125 | - form.msg.value = "" | |
| 126 | - form.file.value = "" | |
| 127 | - }); | |
| 128 | - function newcontent(jx){ | |
| 129 | - var tab = document.getElementById("dialog"); | |
| 130 | - for(var i=0; i<jx.msgs.length; i++){ | |
| 131 | - var m = jx.msgs[i] | |
| 132 | - var r = document.createElement("tr") | |
| 133 | - if( m.msgid>mxMsg ) mxMsg = m.msgid | |
| 134 | - tab.insertBefore(r, tab.childNodes[0]); | |
| 135 | - var td = document.createElement("td"); | |
| 136 | - r.appendChild(td); | |
| 137 | - if( m.xfrom!=_me ){ | |
| 138 | - td.appendChild(document.createTextNode(m.xfrom)) | |
| 139 | - } | |
| 140 | - td = document.createElement("td"); | |
| 141 | - r.appendChild(td); | |
| 142 | - var span = document.createElement("span"); | |
| 143 | - td.appendChild(span) | |
| 144 | - if( m.fsize>0 ){ | |
| 145 | - if( m.fmime && m.fmime.startsWith("image/") ){ | |
| 146 | - var img = document.createElement("img"); | |
| 147 | - img.src = "%string($downloadurl)/" + m.msgid | |
| 148 | - span.appendChild(img) | |
| 149 | - }else{ | |
| 150 | - var a = document.createElement("a"); | |
| 151 | - var txt = "(" + m.fname + " " + m.fsize + " bytes)" | |
| 152 | - a.href = "%string($downloadurl)/" + m.msgid | |
| 153 | - a.appendChild(document.createTextNode(txt)) | |
| 154 | - span.appendChild(a) | |
| 155 | - } | |
| 156 | - var br = document.createElement("br"); | |
| 157 | - br.style.clear = "both"; | |
| 158 | - span.appendChild(br); | |
| 159 | - } | |
| 160 | - span.appendChild(document.createTextNode(m.xmsg)); | |
| 161 | - if( m.xfrom!=_me ){ | |
| 162 | - span.classList.add('chat-mx'); | |
| 163 | - }else{ | |
| 164 | - span.classList.add('chat-ms'); | |
| 165 | - } | |
| 166 | - td = document.createElement("td"); | |
| 167 | - r.appendChild(td); | |
| 168 | - if( m.xfrom==_me ){ | |
| 169 | - td.appendChild(document.createTextNode('me')) | |
| 170 | - } | |
| 171 | - } | |
| 172 | - setTimeout(poll, 10) | |
| 173 | - } | |
| 174 | - async function poll(){ | |
| 175 | - fetch("%string($pollurl)/" + mxMsg) | |
| 176 | - .then(x => x.json()).then(y => newcontent(y)) | |
| 177 | - } | |
| 112 | +<script nonce="%string($nonce)"> | |
| 113 | +(function(){ | |
| 114 | + const form = document.querySelector('#chat-form'); | |
| 115 | + let mxMsg = 0; | |
| 116 | + let _me = "%string($me)"; | |
| 117 | + form.addEventListener('submit',(e)=>{ | |
| 118 | + e.preventDefault(); | |
| 119 | + if( form.msg.value.length>0 || form.file.value.length>0 ){ | |
| 120 | + fetch("%string($submiturl)",{ | |
| 121 | + method: 'POST', | |
| 122 | + body: new FormData(form) | |
| 123 | + }); | |
| 124 | + } | |
| 125 | + form.msg.value = ""; | |
| 126 | + form.file.value = ""; | |
| 127 | + form.msg.focus(); | |
| 128 | + }); | |
| 129 | + function newcontent(jx){ | |
| 130 | + var tab = document.getElementById("dialog"); | |
| 131 | + var i; | |
| 132 | + for(i=0; i<jx.msgs.length; ++i){ | |
| 133 | + let m = jx.msgs[i]; | |
| 134 | + let r = document.createElement("tr"); | |
| 135 | + if( m.msgid>mxMsg ) mxMsg = m.msgid; | |
| 136 | + tab.insertBefore(r, tab.childNodes[0]); | |
| 137 | + let td = document.createElement("td"); | |
| 138 | + r.appendChild(td); | |
| 139 | + if( m.xfrom!=_me ){ | |
| 140 | + td.appendChild(document.createTextNode(m.xfrom)); | |
| 141 | + } | |
| 142 | + td = document.createElement("td"); | |
| 143 | + r.appendChild(td); | |
| 144 | + let span = document.createElement("span"); | |
| 145 | + td.appendChild(span); | |
| 146 | + if( m.fsize>0 ){ | |
| 147 | + if( m.fmime && m.fmime.startsWith("image/") ){ | |
| 148 | + let img = document.createElement("img"); | |
| 149 | + img.src = "%string($downloadurl)/" + m.msgid; | |
| 150 | + span.appendChild(img); | |
| 151 | + }else{ | |
| 152 | + let a = document.createElement("a"); | |
| 153 | + let txt = "(" + m.fname + " " + m.fsize + " bytes)"; | |
| 154 | + a.href = "%string($downloadurl)/" + m.msgid; | |
| 155 | + a.appendChild(document.createTextNode(txt)); | |
| 156 | + span.appendChild(a); | |
| 157 | + } | |
| 158 | + let br = document.createElement("br"); | |
| 159 | + br.style.clear = "both"; | |
| 160 | + span.appendChild(br); | |
| 161 | + } | |
| 162 | + //console.debug("m =",m); | |
| 163 | + span.appendChild(document.createTextNode(m.xmsg)); | |
| 164 | + if( m.xfrom!=_me ){ | |
| 165 | + span.classList.add('chat-mx'); | |
| 166 | + }else{ | |
| 167 | + span.classList.add('chat-ms'); | |
| 168 | + } | |
| 169 | + td = document.createElement("td"); | |
| 170 | + r.appendChild(td); | |
| 171 | + if( m.xfrom==_me ){ | |
| 172 | + td.appendChild(document.createTextNode('me')) | |
| 173 | + } | |
| 174 | + } | |
| 175 | + setTimeout(poll, 10); | |
| 176 | + } | |
| 177 | + async function poll(){ | |
| 178 | + fetch("%string($pollurl)/" + mxMsg) | |
| 179 | + .then(x => x.json()).then(y => newcontent(y)); | |
| 180 | + } | |
| 178 | 181 | poll(); |
| 179 | 182 | })();</script> |
| 180 | 183 | } |
| 181 | 184 | |
| 182 | 185 | # Make sure the chat database exists |
| 183 | 186 |
| --- tools/chat.tcl | |
| +++ tools/chat.tcl | |
| @@ -107,76 +107,79 @@ | |
| 107 | set submiturl [wapp-param SCRIPT_NAME]/send |
| 108 | set pollurl [wapp-param SCRIPT_NAME]/poll |
| 109 | set downloadurl [wapp-param SCRIPT_NAME]/download |
| 110 | set me [wapp-param FOSSIL_USER] |
| 111 | wapp-trim { |
| 112 | <script nonce="%string($nonce)">(function(){ |
| 113 | let x = document.getElementById("sbox"); |
| 114 | let form = document.forms[0] |
| 115 | var mxMsg = 0 |
| 116 | var _me = "%string($me)" |
| 117 | form.addEventListener('submit',(e)=>{ |
| 118 | e.preventDefault(); |
| 119 | if( form.msg.value.length>0 || form.file.value.length>0 ){ |
| 120 | fetch("%string($submiturl)",{ |
| 121 | method: 'POST', |
| 122 | body: new FormData(form) |
| 123 | }); |
| 124 | } |
| 125 | form.msg.value = "" |
| 126 | form.file.value = "" |
| 127 | }); |
| 128 | function newcontent(jx){ |
| 129 | var tab = document.getElementById("dialog"); |
| 130 | for(var i=0; i<jx.msgs.length; i++){ |
| 131 | var m = jx.msgs[i] |
| 132 | var r = document.createElement("tr") |
| 133 | if( m.msgid>mxMsg ) mxMsg = m.msgid |
| 134 | tab.insertBefore(r, tab.childNodes[0]); |
| 135 | var td = document.createElement("td"); |
| 136 | r.appendChild(td); |
| 137 | if( m.xfrom!=_me ){ |
| 138 | td.appendChild(document.createTextNode(m.xfrom)) |
| 139 | } |
| 140 | td = document.createElement("td"); |
| 141 | r.appendChild(td); |
| 142 | var span = document.createElement("span"); |
| 143 | td.appendChild(span) |
| 144 | if( m.fsize>0 ){ |
| 145 | if( m.fmime && m.fmime.startsWith("image/") ){ |
| 146 | var img = document.createElement("img"); |
| 147 | img.src = "%string($downloadurl)/" + m.msgid |
| 148 | span.appendChild(img) |
| 149 | }else{ |
| 150 | var a = document.createElement("a"); |
| 151 | var txt = "(" + m.fname + " " + m.fsize + " bytes)" |
| 152 | a.href = "%string($downloadurl)/" + m.msgid |
| 153 | a.appendChild(document.createTextNode(txt)) |
| 154 | span.appendChild(a) |
| 155 | } |
| 156 | var br = document.createElement("br"); |
| 157 | br.style.clear = "both"; |
| 158 | span.appendChild(br); |
| 159 | } |
| 160 | span.appendChild(document.createTextNode(m.xmsg)); |
| 161 | if( m.xfrom!=_me ){ |
| 162 | span.classList.add('chat-mx'); |
| 163 | }else{ |
| 164 | span.classList.add('chat-ms'); |
| 165 | } |
| 166 | td = document.createElement("td"); |
| 167 | r.appendChild(td); |
| 168 | if( m.xfrom==_me ){ |
| 169 | td.appendChild(document.createTextNode('me')) |
| 170 | } |
| 171 | } |
| 172 | setTimeout(poll, 10) |
| 173 | } |
| 174 | async function poll(){ |
| 175 | fetch("%string($pollurl)/" + mxMsg) |
| 176 | .then(x => x.json()).then(y => newcontent(y)) |
| 177 | } |
| 178 | poll(); |
| 179 | })();</script> |
| 180 | } |
| 181 | |
| 182 | # Make sure the chat database exists |
| 183 |
| --- tools/chat.tcl | |
| +++ tools/chat.tcl | |
| @@ -107,76 +107,79 @@ | |
| 107 | set submiturl [wapp-param SCRIPT_NAME]/send |
| 108 | set pollurl [wapp-param SCRIPT_NAME]/poll |
| 109 | set downloadurl [wapp-param SCRIPT_NAME]/download |
| 110 | set me [wapp-param FOSSIL_USER] |
| 111 | wapp-trim { |
| 112 | <script nonce="%string($nonce)"> |
| 113 | (function(){ |
| 114 | const form = document.querySelector('#chat-form'); |
| 115 | let mxMsg = 0; |
| 116 | let _me = "%string($me)"; |
| 117 | form.addEventListener('submit',(e)=>{ |
| 118 | e.preventDefault(); |
| 119 | if( form.msg.value.length>0 || form.file.value.length>0 ){ |
| 120 | fetch("%string($submiturl)",{ |
| 121 | method: 'POST', |
| 122 | body: new FormData(form) |
| 123 | }); |
| 124 | } |
| 125 | form.msg.value = ""; |
| 126 | form.file.value = ""; |
| 127 | form.msg.focus(); |
| 128 | }); |
| 129 | function newcontent(jx){ |
| 130 | var tab = document.getElementById("dialog"); |
| 131 | var i; |
| 132 | for(i=0; i<jx.msgs.length; ++i){ |
| 133 | let m = jx.msgs[i]; |
| 134 | let r = document.createElement("tr"); |
| 135 | if( m.msgid>mxMsg ) mxMsg = m.msgid; |
| 136 | tab.insertBefore(r, tab.childNodes[0]); |
| 137 | let td = document.createElement("td"); |
| 138 | r.appendChild(td); |
| 139 | if( m.xfrom!=_me ){ |
| 140 | td.appendChild(document.createTextNode(m.xfrom)); |
| 141 | } |
| 142 | td = document.createElement("td"); |
| 143 | r.appendChild(td); |
| 144 | let span = document.createElement("span"); |
| 145 | td.appendChild(span); |
| 146 | if( m.fsize>0 ){ |
| 147 | if( m.fmime && m.fmime.startsWith("image/") ){ |
| 148 | let img = document.createElement("img"); |
| 149 | img.src = "%string($downloadurl)/" + m.msgid; |
| 150 | span.appendChild(img); |
| 151 | }else{ |
| 152 | let a = document.createElement("a"); |
| 153 | let txt = "(" + m.fname + " " + m.fsize + " bytes)"; |
| 154 | a.href = "%string($downloadurl)/" + m.msgid; |
| 155 | a.appendChild(document.createTextNode(txt)); |
| 156 | span.appendChild(a); |
| 157 | } |
| 158 | let br = document.createElement("br"); |
| 159 | br.style.clear = "both"; |
| 160 | span.appendChild(br); |
| 161 | } |
| 162 | //console.debug("m =",m); |
| 163 | span.appendChild(document.createTextNode(m.xmsg)); |
| 164 | if( m.xfrom!=_me ){ |
| 165 | span.classList.add('chat-mx'); |
| 166 | }else{ |
| 167 | span.classList.add('chat-ms'); |
| 168 | } |
| 169 | td = document.createElement("td"); |
| 170 | r.appendChild(td); |
| 171 | if( m.xfrom==_me ){ |
| 172 | td.appendChild(document.createTextNode('me')) |
| 173 | } |
| 174 | } |
| 175 | setTimeout(poll, 10); |
| 176 | } |
| 177 | async function poll(){ |
| 178 | fetch("%string($pollurl)/" + mxMsg) |
| 179 | .then(x => x.json()).then(y => newcontent(y)); |
| 180 | } |
| 181 | poll(); |
| 182 | })();</script> |
| 183 | } |
| 184 | |
| 185 | # Make sure the chat database exists |
| 186 |