diff options
author | Chocobozzz <me@florianbigard.com> | 2021-08-19 09:24:29 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2021-08-25 11:24:11 +0200 |
commit | dd24f1bb0a4b252e5342b251ba36853364da7b8e (patch) | |
tree | 41a9506d07413f056fb90425705e258f96fdc77d /client/src/app/helpers/utils/url.ts | |
parent | 2e80d256cc75b4b02c8efc3d3e4cdf57ddf401a8 (diff) | |
download | PeerTube-dd24f1bb0a4b252e5342b251ba36853364da7b8e.tar.gz PeerTube-dd24f1bb0a4b252e5342b251ba36853364da7b8e.tar.zst PeerTube-dd24f1bb0a4b252e5342b251ba36853364da7b8e.zip |
Add video filters to common video pages
Diffstat (limited to 'client/src/app/helpers/utils/url.ts')
-rw-r--r-- | client/src/app/helpers/utils/url.ts | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/client/src/app/helpers/utils/url.ts b/client/src/app/helpers/utils/url.ts new file mode 100644 index 000000000..82d9cc11b --- /dev/null +++ b/client/src/app/helpers/utils/url.ts | |||
@@ -0,0 +1,71 @@ | |||
1 | import { environment } from '../../../environments/environment' | ||
2 | |||
3 | // Thanks: https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript | ||
4 | function getParameterByName (name: string, url: string) { | ||
5 | if (!url) url = window.location.href | ||
6 | name = name.replace(/[[\]]/g, '\\$&') | ||
7 | |||
8 | const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)') | ||
9 | const results = regex.exec(url) | ||
10 | |||
11 | if (!results) return null | ||
12 | if (!results[2]) return '' | ||
13 | |||
14 | return decodeURIComponent(results[2].replace(/\+/g, ' ')) | ||
15 | } | ||
16 | |||
17 | function getAbsoluteAPIUrl () { | ||
18 | let absoluteAPIUrl = environment.hmr === true | ||
19 | ? 'http://localhost:9000' | ||
20 | : environment.apiUrl | ||
21 | |||
22 | if (!absoluteAPIUrl) { | ||
23 | // The API is on the same domain | ||
24 | absoluteAPIUrl = window.location.origin | ||
25 | } | ||
26 | |||
27 | return absoluteAPIUrl | ||
28 | } | ||
29 | |||
30 | function getAbsoluteEmbedUrl () { | ||
31 | let absoluteEmbedUrl = environment.originServerUrl | ||
32 | if (!absoluteEmbedUrl) { | ||
33 | // The Embed is on the same domain | ||
34 | absoluteEmbedUrl = window.location.origin | ||
35 | } | ||
36 | |||
37 | return absoluteEmbedUrl | ||
38 | } | ||
39 | |||
40 | // Thanks: https://gist.github.com/ghinda/8442a57f22099bdb2e34 | ||
41 | function objectToFormData (obj: any, form?: FormData, namespace?: string) { | ||
42 | const fd = form || new FormData() | ||
43 | let formKey | ||
44 | |||
45 | for (const key of Object.keys(obj)) { | ||
46 | if (namespace) formKey = `${namespace}[${key}]` | ||
47 | else formKey = key | ||
48 | |||
49 | if (obj[key] === undefined) continue | ||
50 | |||
51 | if (Array.isArray(obj[key]) && obj[key].length === 0) { | ||
52 | fd.append(key, null) | ||
53 | continue | ||
54 | } | ||
55 | |||
56 | if (obj[key] !== null && typeof obj[key] === 'object' && !(obj[key] instanceof File)) { | ||
57 | objectToFormData(obj[key], fd, formKey) | ||
58 | } else { | ||
59 | fd.append(formKey, obj[key]) | ||
60 | } | ||
61 | } | ||
62 | |||
63 | return fd | ||
64 | } | ||
65 | |||
66 | export { | ||
67 | getParameterByName, | ||
68 | objectToFormData, | ||
69 | getAbsoluteAPIUrl, | ||
70 | getAbsoluteEmbedUrl | ||
71 | } | ||