Files
Romhack-Plaza---WordPress-P…/ts/admin/admin-scripts/index.ts

71 lines
2.5 KiB
TypeScript
Raw Normal View History

2026-01-11 19:39:55 +01:00
declare const _romhackplaza_admin_scripts: any;
document.addEventListener( "DOMContentLoaded", ( event ) => {
let nb_params = 0;
function add_arg( e: Event ) {
nb_params += 1;
let html_content = document.createElement("div");
html_content.id = "arg_" + ( nb_params - 1 ).toString();
let name_content = document.createElement( "input" );
name_content.type = "text";
name_content.name = "arg_name_" + ( nb_params - 1 ).toString();
name_content.id = "arg_name_" + ( nb_params - 1 ).toString();
name_content.setAttribute( 'required', "required" );
let value_content = document.createElement( "input" );
value_content.type = "text";
value_content.name = "arg_value_" + ( nb_params - 1 ).toString();
value_content.id = "arg_value_" + ( nb_params - 1 ).toString();
value_content.setAttribute( 'required', "required" );
html_content.appendChild( name_content );
html_content.appendChild( value_content );
html_content.appendChild( document.createElement( "hr" ) )
document.getElementById( "arguments" )?.appendChild( html_content );
}
function _execute_script( e: Event ){
e.preventDefault();
// @ts-ignore
let select = document.getElementById( "script_select" ).value ?? "none";
if( select == null || select == "none" || select == "" )
return;
const XML: XMLHttpRequest = new XMLHttpRequest();
XML.open( 'POST', _romhackplaza_admin_scripts.execute_url );
let form_data = new FormData();
for( let i = 0; i < nb_params; i++ ){
// @ts-ignore
let name = document.getElementById( 'arg_name_' + i.toString() ).value;
// @ts-ignore
let value = document.getElementById( 'arg_value_' + i.toString()).value;
form_data.append( name, value );
}
form_data.append( "script", select );
form_data.append( "_wpnonce", _romhackplaza_admin_scripts.execute_nonce );
form_data.append( "action", "load_admin_script" );
XML.onreadystatechange = function(){
if(XML.readyState === XMLHttpRequest.DONE && XML.status === 200){
document.getElementById( 'script-response')!.innerHTML = XML.responseText;
}
}
XML.send( form_data );
}
document.getElementById( 'add_args' )?.addEventListener( 'click', add_arg );
document.getElementById( 'script-loader' )?.addEventListener( 'submit', _execute_script );
})