71 lines
2.5 KiB
TypeScript
71 lines
2.5 KiB
TypeScript
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 );
|
|
|
|
}) |