Skip to content

Commit bc82139

Browse files
committed
form refactoring
1 parent de0e627 commit bc82139

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

templates/build.crotmp

+23-9
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</div>
1212
<div class="panel-block" id="notification"></div>
1313
<div class="panel-block">
14-
<form method="post">
14+
<form method="post" id="form01">
1515
<div class="field">
1616
<@vars: $i>
1717
<div class="control">
@@ -99,18 +99,32 @@
9999
function handleSubmit(event) {
100100
event.preventDefault();
101101
const data = new FormData(event.target);
102-
const form_json = Object.fromEntries(data.entries());
103-
// alert(form_json)
104102
var url = "<.http-root>/build-with-tags/project/<.project>";
105103
const tags = [];
106-
// Create Base64 Object
107-
<&HTML-AND-JAVASCRIPT('var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}')>
108-
for (const t in form_json) {
109-
const v = form_json[t]
104+
<@vars: $i>
105+
var e = document.getElementById("form01").elements["<$i.name>"];
106+
var t = "<$i.name>";
107+
<?{ $i.type eq 'select'}>
108+
var v = e.value;
109+
var v_text = e.options[e.selectedIndex].text;
110+
tags.push(`${t}=${v_text}`);
111+
console.log(`${t}: ${v}`);
112+
</?>
113+
<?{ $i.type eq 'textarea' or $i.type eq 'input' or $i.type eq 'password'}>
114+
var v = e.value;
115+
var v_safe = v.replace(/,/g,"___comma___");
116+
v_safe = v_safe.replace(/,/g,"___eq___");
117+
tags.push(`${t}=${v_safe}`);
118+
console.log(`${t}: ${v}`);
119+
</?>
120+
<?{ $i.type eq 'checkbox'}>
121+
var v = e.value;
122+
if (e.checked){
123+
tags.push(`${t}=${v}`);
110124
console.log(`${t}: ${v}`);
111-
s_base64 = Base64.encode(`${t}=${v}`)
112-
tags.push(s_base64)
113125
}
126+
</?>
127+
</@>
114128
var tags_s = tags.join(",");
115129
// https://developer.mozilla.org/en-US/docs/Web/API/fetch
116130
fetch(

0 commit comments

Comments
 (0)