diff --git a/src/app/pages/jitsi/jitsi.component.html b/src/app/pages/jitsi/jitsi.component.html index fda9a22..8c9b608 100644 --- a/src/app/pages/jitsi/jitsi.component.html +++ b/src/app/pages/jitsi/jitsi.component.html @@ -14,13 +14,13 @@ {{'jitsi.rooms.room' | i18n}} - + {{ jitsiRoom.room }} open_in_new - {{ jitsiRoom.room }} @@ -33,6 +33,11 @@ {{ jitsiRoom.starts | date:datetimeformat}} + + {{'jitsi.rooms.moderationStarts' | i18n}} + {{ jitsiRoom.moderationStarts | date:datetimeformat}} + + {{'jitsi.rooms.expires' | i18n}} {{ jitsiRoom.expires | date:datetimeformat}} @@ -41,13 +46,13 @@ {{'jitsi.rooms.moderationUrl' | i18n}} - {{ jitsiRoom.moderationUrl }} open_in_new - {{ jitsiRoom.moderationUrl }} @@ -92,6 +97,16 @@ + + + + + + {{'jitsi.rooms.error.moderationStarts' | i18n}} + + + diff --git a/src/app/pages/jitsi/jitsi.component.ts b/src/app/pages/jitsi/jitsi.component.ts index 4d41c1c..c3ddcf9 100644 --- a/src/app/pages/jitsi/jitsi.component.ts +++ b/src/app/pages/jitsi/jitsi.component.ts @@ -26,7 +26,7 @@ export class JitsiComponent implements OnInit { working: boolean; datetimeformat: String; - jitsiRoomsColumns = ["share", "room", "starts", "expires", "moderationUrl", "delete"]; + jitsiRoomsColumns = ["share", "room", "starts", "moderationStarts", "expires", "moderationUrl", "delete"]; constructor( private quotaService: QuotaService, @@ -41,6 +41,7 @@ export class JitsiComponent implements OnInit { this.form = this.formBuilder.group({ room: ['', Validators.required], starts: ['', Validators.nullValidator], + moderationStarts: ['', Validators.nullValidator], expires: ['', Validators.nullValidator], }); @@ -49,6 +50,10 @@ export class JitsiComponent implements OnInit { create(): void { this.working = true; + if(!this.jitsiRoom.starts) { + this.jitsiRoom.moderationStarts = null; + } + this.jitsiService.create(this.jitsiRoom).subscribe(response => { this.update(); this.formDirective.resetForm(); @@ -114,6 +119,7 @@ export class JitsiComponent implements OnInit { switch(sort.active) { case 'room': return this.compare(a.room, b.room, isAsc); case 'starts': return this.compare(a.room, b.room, isAsc); + case 'moderationStarts': return this.compare(a.room, b.room, isAsc); case 'expires': return this.compare(a.room, b.room, isAsc); default: return 0; } @@ -131,8 +137,8 @@ export class JitsiComponent implements OnInit { }); } - open(jitsiRoom: any) { - return (!jitsiRoom.starts || new Date(jitsiRoom.start) < new Date()) && (!jitsiRoom.expires || new Date(jitsiRoom.expires) > new Date()); + open(jitsiRoom: any, moderation: boolean) { + return (moderation || !jitsiRoom.starts || Date.parse(jitsiRoom.starts) < new Date().getTime()) && (!jitsiRoom.expires || Date.parse(jitsiRoom.expires) > new Date().getTime()) && (!moderation || (jitsiRoom.moderationStarts != null && Date.parse(jitsiRoom.moderationStarts) < new Date().getTime())); } } diff --git a/src/assets/i18n/de-informal.json b/src/assets/i18n/de-informal.json index 5dbd241..30b67be 100644 --- a/src/assets/i18n/de-informal.json +++ b/src/assets/i18n/de-informal.json @@ -35,13 +35,14 @@ "delete": "Löschen", "error": { "expires": "Ungültiges Ende.", - "room": "Bitte gebe einen gültigen Namen an. Erlaubt sind nur Buchstaben und Zahlen.", + "room": "Bitte gebe einen anderen Namen an. Der Name ist schon vergeben oder enthält ungültige Zeichen. Erlaubt sind nur Buchstaben und Zahlen.", "starts": "Ungültiger Beginn." }, "expires": "Ende", "info": "Du kannst hier Jitsi Räume erstellen. Die Anzahl wird über eine Quota begrenzt.", "left": "Du kannst noch {0} Jitsi Raum/Räume erstellen.", "moderationUrl": "Url für Moderation", + "moderationStarts" : "Beginn Moderation", "noQuota": "Deine Quota für Jitsi Räume ist leider aufgebraucht.", "notStarted" : "Die Konferenz hat noch nicht begonnen.", "room": "Name", diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 7d30535..bff89c0 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -35,12 +35,13 @@ "delete": "Delete", "error": { "expires": "Invalid expiry.", - "room": "Please provide a valid name. Only letters and numbers are allowed.", + "room": "Please choose a different name. The name is already taken or contains invalid characters. Only letters and numbers are allowed.", "starts": "Invalid start." }, "expires": "Expires", "info": "You can create new Jitsi Rooms here. The number is limited due to a quota.", "left": "You have {0} Jitsi Room(s) left.", + "moderationStarts" : "Moderation starts", "moderationUrl": "Moderation url", "noQuota": "Your quota for Jitsi Rooms is depleted.", "notStarted" : "The conference has not started yet.",