diff options
Diffstat (limited to 'web_src')
-rw-r--r-- | web_src/js/webcomponents/GiteaOriginUrl.js | 17 |
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; + } +}); |