53 lines
2.1 KiB
C++
53 lines
2.1 KiB
C++
#ifndef ____script_h__
|
|
#define ____script_h__
|
|
|
|
#include "HTTPPage.h"
|
|
|
|
namespace http {
|
|
|
|
class __script : public HTTPPage {
|
|
|
|
int page(HTTPParameters &p) override {
|
|
|
|
p.data << "function serverSend(url, type, receiver, formData, callback) {"
|
|
" var server = new XMLHttpRequest();"
|
|
" server.onload = function() {"
|
|
" if(server.readyState == 4 && server.status == 200)"
|
|
" callback(server.responseText, receiver);"
|
|
" };"
|
|
" server.open(type, url, true);"
|
|
" server.send(formData);"
|
|
"}"
|
|
"function getView(url, receiver) {"
|
|
" serverSend(url, \"GET\", receiver, null, function(data, receiver) {"
|
|
" insertAndExecute(receiver, data);"
|
|
" });"
|
|
"}"
|
|
"function process(url, formName, receiver) {"
|
|
" var formElement = document.querySelector(\"form[name='\" + formName + \"']\");"
|
|
" var formData = new FormData(formElement);"
|
|
" serverSend(url, \"POST\", receiver, formData, function(data, receiver) {"
|
|
" insertAndExecute(receiver, data);"
|
|
" });"
|
|
"}"
|
|
"function insertAndExecute(id, text) {"
|
|
" idresolved = document.getElementById(id);"
|
|
" idresolved.innerHTML = text;"
|
|
" var scriptarr = idresolved.getElementsByTagName(\"script\");"
|
|
" if(scriptarr.length > 0) {"
|
|
" var script = document.createElement(\"script\");"
|
|
" script.type = \"text/javascript\";"
|
|
" script.src = scriptarr[0].src;"
|
|
" document.getElementsByTagName(\"head\")[0].appendChild(script);"
|
|
" }"
|
|
"}";
|
|
|
|
p.httpRequest.response.addHeader(coreutils::IMFHeader("Content-Type", "text/javascript"));
|
|
|
|
return true;
|
|
}
|
|
};
|
|
}
|
|
|
|
#endif
|