From e6742f1cc5c2473628131ab686fc8c51d49ca7f6 Mon Sep 17 00:00:00 2001 From: _Bastler <_Bastler@bstly.de> Date: Wed, 9 Jun 2021 09:16:47 +0200 Subject: [PATCH] jitsi shortened urls --- src/app/pages/jitsi/jitsi.component.html | 21 +++++++++++-------- src/app/pages/jitsi/jitsi.component.scss | 3 ++- src/app/pages/jitsi/jitsi.component.ts | 20 ++++++++++++------ .../urlshortener/urlshortener.component.html | 4 ++-- .../urlshortener/urlshortener.component.scss | 3 ++- src/app/services/jitsi.service.ts | 4 ++++ src/app/services/urlshortener.service.ts | 4 ++++ 7 files changed, 40 insertions(+), 19 deletions(-) diff --git a/src/app/pages/jitsi/jitsi.component.html b/src/app/pages/jitsi/jitsi.component.html index 4838316..e6c5344 100644 --- a/src/app/pages/jitsi/jitsi.component.html +++ b/src/app/pages/jitsi/jitsi.component.html @@ -21,10 +21,14 @@ - + {{ jitsiRoom.room }} + + + add_link + @@ -49,15 +53,14 @@ {{'jitsi.rooms.moderationUrl' | i18n}} - - {{ jitsiRoom.moderationUrl }} + + {{ jitsiRoom.moderationUrl }} open_in_new - - {{ jitsiRoom.moderationUrl }} + {{ jitsiRoom.moderationUrl }} @@ -74,8 +77,8 @@ - + diff --git a/src/app/pages/jitsi/jitsi.component.scss b/src/app/pages/jitsi/jitsi.component.scss index 2640e9b..bc6ceb6 100644 --- a/src/app/pages/jitsi/jitsi.component.scss +++ b/src/app/pages/jitsi/jitsi.component.scss @@ -11,6 +11,7 @@ mat-form-field { .mat-cell .mat-button { padding-left: 0px; + padding-right: 0px; } .align-right{ @@ -20,7 +21,7 @@ mat-form-field { } .url { - display: block; + display: inline-block; width: 200px; max-width: 200px; white-space: nowrap; diff --git a/src/app/pages/jitsi/jitsi.component.ts b/src/app/pages/jitsi/jitsi.component.ts index fb0131d..6b6dd04 100644 --- a/src/app/pages/jitsi/jitsi.component.ts +++ b/src/app/pages/jitsi/jitsi.component.ts @@ -8,9 +8,9 @@ import {PageEvent} from '@angular/material/paginator'; import {QuotaService} from '../../services/quota.service'; import {JitsiService} from '../../services/jitsi.service'; +import {UrlShortenerService} from '../../services/urlshortener.service'; import {ConfirmDialog} from '../../ui/confirm/confirm.component'; import {I18nService} from './../../services/i18n.service'; -import {ThrowStmt} from '@angular/compiler'; @Component({ selector: 'app-account-jitsi', @@ -26,6 +26,7 @@ export class JitsiComponent implements OnInit { jitsiRoom: any = {}; success: boolean; working: boolean; + shortenedUrlQuota: number = 0; datetimeformat: String; page: any = {page: 0, size: 10, sort: "id", desc: false}; pageSizeOptions: number[] = [5, 10, 25, 50]; @@ -36,6 +37,7 @@ export class JitsiComponent implements OnInit { private quotaService: QuotaService, private formBuilder: FormBuilder, private jitsiService: JitsiService, + private snackBar: MatSnackBar, private i18n: I18nService, public dialog: MatDialog) {} @@ -81,10 +83,13 @@ export class JitsiComponent implements OnInit { update() { this.jitsiRoomsQuota = 0; + this.shortenedUrlQuota = 0; this.quotaService.quotas().subscribe((data: any) => { for(let quota of data) { if(quota.name == "jitsi") { this.jitsiRoomsQuota = quota.value; + } else if(quota.name == "url_shortener") { + this.shortenedUrlQuota = quota.value; } } }) @@ -115,7 +120,6 @@ export class JitsiComponent implements OnInit { }, (error) => {}) } - confirmDelete(jitsiRoom) { const dialogRef = this.dialog.open(ConfirmDialog, { data: { @@ -133,10 +137,6 @@ export class JitsiComponent implements OnInit { }); } - - - - share(jitsiRoom) { const dialogRef = this.dialog.open(JitsiShareDialog, { data: jitsiRoom, @@ -147,6 +147,14 @@ export class JitsiComponent implements OnInit { open(jitsiRoom: any, moderation: boolean) { return (moderation && jitsiRoom.moderationStarts != null || !jitsiRoom.starts || Date.parse(jitsiRoom.starts) < new Date().getTime()) && (!moderation || jitsiRoom.moderationStarts == null || Date.parse(jitsiRoom.moderationStarts) < new Date().getTime()); } + + createShortenedUrl(jitsiRoom: any) { + this.jitsiService.createShortUrl(jitsiRoom.id).subscribe((result: any) => { + this.update(); + }, (error: any) => { + this.snackBar.open(this.i18n.get("urlshortener.noQuota", []), this.i18n.get("close", [])); + }); + } } @Component({ diff --git a/src/app/pages/urlshortener/urlshortener.component.html b/src/app/pages/urlshortener/urlshortener.component.html index 8c2d780..a02abea 100644 --- a/src/app/pages/urlshortener/urlshortener.component.html +++ b/src/app/pages/urlshortener/urlshortener.component.html @@ -36,8 +36,8 @@ {{'urlshortener.url' | i18n}} - - {{ shortenedUrl.url }} + + {{ shortenedUrl.url }} open_in_new diff --git a/src/app/pages/urlshortener/urlshortener.component.scss b/src/app/pages/urlshortener/urlshortener.component.scss index 2640e9b..bc6ceb6 100644 --- a/src/app/pages/urlshortener/urlshortener.component.scss +++ b/src/app/pages/urlshortener/urlshortener.component.scss @@ -11,6 +11,7 @@ mat-form-field { .mat-cell .mat-button { padding-left: 0px; + padding-right: 0px; } .align-right{ @@ -20,7 +21,7 @@ mat-form-field { } .url { - display: block; + display: inline-block; width: 200px; max-width: 200px; white-space: nowrap; diff --git a/src/app/services/jitsi.service.ts b/src/app/services/jitsi.service.ts index 31a09c4..0c820b8 100644 --- a/src/app/services/jitsi.service.ts +++ b/src/app/services/jitsi.service.ts @@ -20,6 +20,10 @@ export class JitsiService { return this.http.post(environment.apiUrl + "/jitsi/rooms", jitsiRoom); } + createShortUrl(id) { + return this.http.patch(environment.apiUrl + "/jitsi/rooms/" + id, null); + } + delete(id) { return this.http.delete(environment.apiUrl + "/jitsi/rooms/" + id); } diff --git a/src/app/services/urlshortener.service.ts b/src/app/services/urlshortener.service.ts index 25003d7..6c1657c 100644 --- a/src/app/services/urlshortener.service.ts +++ b/src/app/services/urlshortener.service.ts @@ -11,6 +11,10 @@ export class UrlShortenerService { constructor(private http: HttpClient) { } + getModel(code: string): Promise { + return this.http.get(environment.apiUrl + "/url/shortener/model/" + code).toPromise(); + } + get(page: number, size: number, sort: string, desc: boolean, search: string) { const httpParams = new HttpParams().set("page", "" + page).set("size", "" + size).set("sort", sort).set("desc", "" + desc).set("search", search); return this.http.get(environment.apiUrl + "/url/shortener", {params: httpParams});