X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fhelpers%2Futils.ts;h=d05541ca928e1d4d0cd4567e2a583d9717166310;hb=94676e631c5045144da598fefbefaa3cfcaaeb0d;hp=879f697f473370399837fdd0eadaca6c4907a163;hpb=67ed6552b831df66713bac9e672738796128d33f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/helpers/utils.ts b/client/src/app/helpers/utils.ts index 879f697f4..d05541ca9 100644 --- a/client/src/app/helpers/utils.ts +++ b/client/src/app/helpers/utils.ts @@ -1,4 +1,5 @@ import { DatePipe } from '@angular/common' +import { SelectChannelItem } from '@app/shared/shared-forms' import { environment } from '../../environments/environment' import { AuthService } from '../core/auth' @@ -16,7 +17,10 @@ function getParameterByName (name: string, url: string) { return decodeURIComponent(results[2].replace(/\+/g, ' ')) } -function populateAsyncUserVideoChannels (authService: AuthService, channel: { id: number, label: string, support?: string }[]) { +function populateAsyncUserVideoChannels ( + authService: AuthService, + channel: SelectChannelItem[] +) { return new Promise(res => { authService.userInformationLoaded .subscribe( @@ -27,7 +31,12 @@ function populateAsyncUserVideoChannels (authService: AuthService, channel: { id const videoChannels = user.videoChannels if (Array.isArray(videoChannels) === false) return - videoChannels.forEach(c => channel.push({ id: c.id, label: c.displayName, support: c.support })) + videoChannels.forEach(c => channel.push({ + id: c.id, + label: c.displayName, + support: c.support, + avatarPath: c.avatar?.path + })) return res() } @@ -36,7 +45,10 @@ function populateAsyncUserVideoChannels (authService: AuthService, channel: { id } function getAbsoluteAPIUrl () { - let absoluteAPIUrl = environment.apiUrl + let absoluteAPIUrl = environment.hmr === true + ? 'http://localhost:9000' + : environment.apiUrl + if (!absoluteAPIUrl) { // The API is on the same domain absoluteAPIUrl = window.location.origin @@ -45,6 +57,16 @@ function getAbsoluteAPIUrl () { return absoluteAPIUrl } +function getAbsoluteEmbedUrl () { + let absoluteEmbedUrl = environment.embedUrl + if (!absoluteEmbedUrl) { + // The Embed is on the same domain + absoluteEmbedUrl = window.location.origin + } + + return absoluteEmbedUrl +} + const datePipe = new DatePipe('en') function dateToHuman (date: string) { return datePipe.transform(date, 'medium') @@ -68,15 +90,6 @@ function immutableAssign (target: A, source: B) { return Object.assign({}, target, source) } -function objectToUrlEncoded (obj: any) { - const str: string[] = [] - for (const key of Object.keys(obj)) { - str.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key])) - } - - return str.join('&') -} - // Thanks: https://gist.github.com/ghinda/8442a57f22099bdb2e34 function objectToFormData (obj: any, form?: FormData, namespace?: string) { const fd = form || new FormData() @@ -194,13 +207,13 @@ export { sortBy, durationToString, lineFeedToHtml, - objectToUrlEncoded, getParameterByName, populateAsyncUserVideoChannels, getAbsoluteAPIUrl, dateToHuman, immutableAssign, objectToFormData, + getAbsoluteEmbedUrl, objectLineFeedToHtml, removeElementFromArray, importModule,