summaryrefslogtreecommitdiffstats
path: root/web_src
diff options
context:
space:
mode:
Diffstat (limited to 'web_src')
-rw-r--r--web_src/js/webcomponents/GiteaOriginUrl.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/web_src/js/webcomponents/GiteaOriginUrl.js b/web_src/js/webcomponents/GiteaOriginUrl.js
new file mode 100644
index 0000000000..47fd13bfc1
--- /dev/null
+++ b/web_src/js/webcomponents/GiteaOriginUrl.js
@@ -0,0 +1,17 @@
+// this is a Gitea's private HTML component, it converts an absolute or relative URL to an absolute URL with the current origin
+window.customElements.define('gitea-origin-url', class extends HTMLElement {
+ connectedCallback() {
+ const urlStr = this.getAttribute('data-url');
+ try {
+ // only process absolute HTTP/HTTPS URL or relative URLs ('/xxx' or '//host/xxx')
+ if (urlStr.startsWith('http://') || urlStr.startsWith('https://') || urlStr.startsWith('/')) {
+ const url = new URL(urlStr, window.origin);
+ url.protocol = window.location.protocol;
+ url.host = window.location.host;
+ this.textContent = url.toString();
+ return;
+ }
+ } catch {}
+ this.textContent = urlStr;
+ }
+});