updated some examples
90073eaa8f233b22ee700e948df999774ea2c65f
6 files changed
src/NetproxySolution.Web/Controllers/DefaultController.cssrc/NetproxySolution.Web/NetproxySolution.Web.csprojsrc/NetproxySolution.Web/wwwroot/Default.htmsrc/NetproxySolution.Web/wwwroot/Default.jssrc/NetproxySolution.Web/wwwroot/scripts/macros.jssrc/NetproxySolution.Web/wwwroot/scripts/netproxy2.js
diff --git a/src/NetproxySolution.Web/Controllers/DefaultController.cs b/src/NetproxySolution.Web/Controllers/DefaultController.cs
index f44c889..6429365 100644
--- a/src/NetproxySolution.Web/Controllers/DefaultController.cs
+++ b/src/NetproxySolution.Web/Controllers/DefaultController.cs
@@ -127,6 +127,13 @@ public class DefaultController : ControllerBase
return Ok();
}
+
+ [HttpPost("~/app/gps/location")]
+ public IActionResult GpsLocation(double latitude, double longitude, string timestamp)
+ {
+ return Ok();
+ }
+
}
diff --git a/src/NetproxySolution.Web/NetproxySolution.Web.csproj b/src/NetproxySolution.Web/NetproxySolution.Web.csproj
index 5659b62..13e62f2 100644
--- a/src/NetproxySolution.Web/NetproxySolution.Web.csproj
+++ b/src/NetproxySolution.Web/NetproxySolution.Web.csproj
@@ -12,32 +12,11 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Mvc.ModelBinding.MultiParameter" Version="8.2.1" />
+ <PackageReference Include="Mvc.ModelBinding.MultiParameter" Version="8.2.3" />
</ItemGroup>
<ItemGroup>
- <Content Update="wwwroot\css\netproxyspinner.css">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Update="wwwroot\Default.css">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Update="wwwroot\Default.htm">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Update="wwwroot\Default.js">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Update="wwwroot\favicon.ico">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Update="wwwroot\images\netproxyspinner.gif">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Update="wwwroot\scripts\macros.js">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Update="wwwroot\scripts\netproxy2.js">
+ <Content Update="wwwroot\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
diff --git a/src/NetproxySolution.Web/wwwroot/Default.htm b/src/NetproxySolution.Web/wwwroot/Default.htm
index d38f674..1d13bc7 100644
--- a/src/NetproxySolution.Web/wwwroot/Default.htm
+++ b/src/NetproxySolution.Web/wwwroot/Default.htm
@@ -42,6 +42,7 @@
<div><span id="NotFound2Async" class="ui-btn">NotFound2Async (get)</span></div>
</fieldset>
+ <div><span id="Coordinates" class="ui-btn">Coordinates (post)</span></div>
<div><span id="NullContentAsync" class="ui-btn">NullContent (get)</span></div>
<div><span id="EmptyContentAsync" class="ui-btn">EmptyContent (get)</span></div>
diff --git a/src/NetproxySolution.Web/wwwroot/Default.js b/src/NetproxySolution.Web/wwwroot/Default.js
index 5563459..af6d0da 100644
--- a/src/NetproxySolution.Web/wwwroot/Default.js
+++ b/src/NetproxySolution.Web/wwwroot/Default.js
@@ -246,3 +246,10 @@ function ShowJson(tr)
{
preoutput.innerHTML = "<h3>" + tr.$$("td")[2].innerHTML + "</h3>" + EscapeJson(tr.$$("td")[3].innerHTML);
}
+
+
+async function Coordinates()
+{
+ var result = await netproxyasync("./app/gps/location", { latitude: 1.23, longitude : 4.56, timestamp : 'jan 2025' });
+
+}
\ No newline at end of file
diff --git a/src/NetproxySolution.Web/wwwroot/scripts/macros.js b/src/NetproxySolution.Web/wwwroot/scripts/macros.js
index 60d0b1c..fd6154a 100644
--- a/src/NetproxySolution.Web/wwwroot/scripts/macros.js
+++ b/src/NetproxySolution.Web/wwwroot/scripts/macros.js
@@ -1,13 +1,16 @@
// version 1.3 2020-08-30 (C) AAB van der Heijden
-// Updated 2.3 2024-12-05
+// Updated 2.4 2025-01-03
window.$ = document.querySelector.bind(document);
window.$$ = document.querySelectorAll.bind(document);
window.$id = document.getElementById.bind(document);
+//DOM reader
//onReady(() =>
//{
//});
const onReady = (callback) => document.addEventListener("DOMContentLoaded", callback);
+//DOM and stylesheets ready
+const onLoad = (callback) => window.addEventListener("load", callback);
Element.prototype.$ = function (selector)
{
@@ -44,7 +47,7 @@ Element.prototype.hasClass = function (className)
Element.prototype.show = function ()
{
- this.style.display = '';
+ this.style.display = 'inline-block';
return this;
};
diff --git a/src/NetproxySolution.Web/wwwroot/scripts/netproxy2.js b/src/NetproxySolution.Web/wwwroot/scripts/netproxy2.js
deleted file mode 100644
index 9574440..0000000
--- a/src/NetproxySolution.Web/wwwroot/scripts/netproxy2.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- *
- * @name pure-dom netproxy and template and api
- *
- * @author Alphons van der Heijden <alphons@heijden.com>
- * @version 2.1.0 (last revision Mar, 2024)
- * @copyright (c) 2019-2024 Alphons van der Heijden
- * @alias netproxy, netproxyasync
- *
- */
-
-// please use defer in script tag
-(function ()
-{
- 'use strict';
-
- window.netproxy = function (url, data, onsuccess, onerror, onprogress)
- {
- if (typeof window.XMLHttpRequest === 'undefined')
- return;
-
- var spinner = document.getElementById("netproxyspinner");
-
- if (typeof remote !== 'undefined')
- url = remote + url;
-
- var httpRequest;
-
- var defaults =
- {
- url: url,
- onsuccess: onsuccess,
- onerror: onerror,
- spinner: spinner,
- timeoutSpinner: spinner ? window.setTimeout(function () { spinner.style.display = 'block'; }, 1000) : null
- };
-
- var timeouthandler = function ()
- {
- if (typeof defaults.onerror === 'function')
- {
- var error = new Error("TimeOut");
- error.stack = defaults.url + " " + httpRequest.timeout + "mS (client timeout)";
- defaults.onerror.call(error, error);// defaults.url, "netproxy");
- }
- };
-
- var loadendhandler = function ()
- {
- var response;
-
- if (defaults.timeoutSpinner !== null)
- window.clearTimeout(defaults.timeoutSpinner);
-
- if (defaults.spinner)
- defaults.spinner.style.display = 'none';
-
- try
- {
- response = JSON.parse(httpRequest.response);
- if (typeof response !== "object")
- response = httpRequest.response;
- }
- catch (e)
- {
- response = httpRequest.response;
- }
-
- if (httpRequest.status >= 200 && httpRequest.status <= 299)
- {
- var header = httpRequest.getResponseHeader('Content-Disposition');
- if (header)
- {
- var a = document.createElement('a');
- a.download = header.split('filename="')[1].split('"')[0];
- a.rel = 'noopener' // tabnabbing
- // a.target = '_blank'
- const blob = new Blob([httpRequest.response], { type: 'application/octet-stream' });
- a.href = URL.createObjectURL(blob)
- setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s
- setTimeout(function () { a.click(); }, 0)
- return;
- }
-
- if (typeof defaults.onsuccess === 'function')
- {
- if (httpRequest.status === 204)
- {
- defaults.onsuccess.call(null, null);
- }
- else
- {
- if (response.d)
- defaults.onsuccess.call(response.d, response.d);
- else
- defaults.onsuccess.call(response, response);
- }
- }
- }
- else // != 200
- {
- var error = new Error("netproxy");
- error.stack = defaults.url + " " + httpRequest.status + " (" + response + ")";
-
- if (typeof defaults.onerror === 'function')
- defaults.onerror.call(error, error);
- else
- throw error;
- }
- };
-
- httpRequest = new XMLHttpRequest();
- httpRequest.timeout = data instanceof FormData ? 0 : 30000;
- httpRequest.ontimeout = timeouthandler;
- httpRequest.onloadend = loadendhandler;
- httpRequest.open(data ? 'POST' : 'GET', url, true);
- httpRequest.withCredentials = url.indexOf(window.location.host) < 0 && url[0] !== '/';
- if (onprogress)
- {
- httpRequest.addEventListener('progress', onprogress, false);
- httpRequest.upload.addEventListener('progress', onprogress, false);
- }
- if (!(data instanceof FormData))
- httpRequest.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
- httpRequest.send(data instanceof FormData ? data : JSON.stringify(data));
- return this;
- };
-
- window.netproxyasync = function (url, data, onprogress)
- {
- const promis = new Promise(function (resolve, reject)
- {
- netproxy(url, data, resolve, reject, onprogress);
- });
- return promis;
- };
-
- Element.prototype.Template = function (template, data, append)
- {
- var strHtml = window.TemplateHtml(template, data);
- if (append)
- {
- var temp = document.createElement("span");
- this.insertAdjacentElement('beforeend', temp);
- temp.outerHTML = strHtml;
- return this;
- }
- else
- return this.innerHTML = strHtml;
- };
-
- window.TemplateHtml = function (template, data)
- {
- try
- {
- var element = typeof template === "string" ?
- document.getElementById(template) : template;
- if (!element)
- return null;
- if (!element.jscache)
- {
- var html = element.innerHTML.replace(/[\t\r\n]/g, " ");
- var js = "var _='';";
- var direct, intI, intJ = 0;
- while (intJ < html.length)
- {
- intI = html.indexOf("{{", intJ);
- if (intI < 0)
- break;
- js += "_+='" + html.substring(intJ, intI).replace(/\'/g, "\\'") + "';";
- intJ = intI + 2;
- direct = (html[intJ] === "=");
- if (direct)
- intJ++;
- intI = html.indexOf("}}", intJ);
- if (intI < 0)
- break;
- if (direct)
- js += "_+=";
- js += html.substring(intJ, intI).trim() + ";";
- intJ = intI + 2;
- }
- js += "_+='" + html.substring(intJ).replace(/\'/g, "\\'") + "'; return _;";
- element.jscache = new Function(js);
- element.innerHTML = '';
- }
- return element.jscache.call(data);
- }
- catch (err)
- {
- if (console)
- console.log("Error: " + element.outerHTML + ": " + err.message);
- return "";
- }
- };
-
-})();
\ No newline at end of file