diff --git a/src/app/landing-page/schedule/schedule.component.html b/src/app/landing-page/schedule/schedule.component.html
index f45cd8bf..649750a6 100644
--- a/src/app/landing-page/schedule/schedule.component.html
+++ b/src/app/landing-page/schedule/schedule.component.html
@@ -94,16 +94,17 @@
Keynotes
0 && session.speakers[0]">
- {{session.speakers[0].name}}
+
+ {{session.speakers.length > 1 ? '' : session.speakers[0].name}}
-
- {{session.name.split(' - ')[0]}}
-
- -- {{session.name.split(' - ')[1]}}
+ {{session.name}}
diff --git a/src/app/landing-page/schedule/schedule.component.ts b/src/app/landing-page/schedule/schedule.component.ts
index 06fbcb19..ec024443 100644
--- a/src/app/landing-page/schedule/schedule.component.ts
+++ b/src/app/landing-page/schedule/schedule.component.ts
@@ -85,6 +85,13 @@ export class ScheduleComponent implements OnInit, OnChanges {
}
if (val.kind === 'Keynote') {
+ // FIXME
+ // Sets the session image to a static image in digital ocean for the panel (only case where seapers.len > 1 !!! FOR NOW !!!)
+ // Change this link if panel image changes
+ // If a normal talk has more than 1 speaker this need to be revisited
+ if (val.speakers.length > 1){
+ val.img = "https://static.sinfo.org/static/31-sinfo/websiteImages/panel-31.png"
+ }
tempSchedule[registeredDays].sessions[val.kind].push(val)
} else {
let place = (val.place === 'Room 2') ? 'sala2' : 'sala1'
diff --git a/src/app/partials/qr-code-scanner/qr-code-scanner.component.ts b/src/app/partials/qr-code-scanner/qr-code-scanner.component.ts
index de588ee4..96b18c90 100644
--- a/src/app/partials/qr-code-scanner/qr-code-scanner.component.ts
+++ b/src/app/partials/qr-code-scanner/qr-code-scanner.component.ts
@@ -153,7 +153,7 @@ export class QrcodeScannerComponent implements OnInit {
}
this.userRead = user
this.lastUser = user
- this.lastRaw = undefined
+ //this.lastRaw = undefined // Removed to prevent infinite reading of the same qrcode. Revisit if problem in reverse links appear
}
})
}
diff --git a/src/app/session/session.component.css b/src/app/session/session.component.css
index 25ffebe3..04242fec 100644
--- a/src/app/session/session.component.css
+++ b/src/app/session/session.component.css
@@ -23,6 +23,14 @@ p {
max-height: 300px;
}
+.panelSpeaker-img {
+ border-radius: 15px;
+ max-height: 300px;
+ width: 20dvh;
+ height: 20dvh;
+ object-fit: cover;
+}
+
.session-details h5 {
margin: 15px auto;
}
diff --git a/src/app/session/session.component.html b/src/app/session/session.component.html
index 65ec831d..13d04412 100644
--- a/src/app/session/session.component.html
+++ b/src/app/session/session.component.html
@@ -64,14 +64,16 @@ {{session.kind}}
-
-
-
-
-
-
{{speaker.name}}
-
{{speaker.title}}
+
0">
+
+
+
1 ? 'panelSpeaker-img' : 'speaker-img'" src='{{speaker.img}}'>
+
+
+
+
{{speaker.name}}
+ {{speaker.title}}
+
diff --git a/src/app/session/session.component.ts b/src/app/session/session.component.ts
index fb7fec5e..fec0b7aa 100644
--- a/src/app/session/session.component.ts
+++ b/src/app/session/session.component.ts
@@ -6,7 +6,7 @@ import { SessionService } from './session.service'
import { Session } from './session.model'
import { SpeakerService } from '../speakers/speaker.service'
import { Speaker } from '../speakers/speaker.model'
-import { EventService } from './../events/event.service'
+import { EventService } from '../events/event.service'
import {
trigger,
style,
@@ -35,7 +35,7 @@ import { User } from '../user/user.model';
export class SessionComponent implements OnInit {
session: Session
- speaker: Speaker
+ speakers: Speaker[] = []
description: SafeHtml
user: User
showMore = false
@@ -80,8 +80,12 @@ export class SessionComponent implements OnInit {
}
getSpeaker(session: Session): void {
- this.speakerService.getSpeaker(session.speakers[0]['id'])
- .subscribe(speaker => this.speaker = speaker)
+ for(let sessionSpeaker of session.speakers){
+ this.speakerService.getSpeaker(sessionSpeaker['id'])
+ .subscribe(speaker => {
+ this.speakers.push(speaker);
+ })
+ }
}
onSelect(id: string): void {
diff --git a/src/app/sponsor/sponsor.component.ts b/src/app/sponsor/sponsor.component.ts
index 259cd82f..adddabeb 100644
--- a/src/app/sponsor/sponsor.component.ts
+++ b/src/app/sponsor/sponsor.component.ts
@@ -10,7 +10,7 @@ import { SessionService } from '../session/session.service';
import { Session } from '../session/session.model'
import { Company } from '../company/company.model';
import { CompanyService } from '../company/company.service';
-import { EventService } from './../events/event.service'
+import { EventService } from '../events/event.service'
import { Event } from '../events/event.model';
import { Sponsor } from '../landing-page/sponsors/sponsor.model';
diff --git a/src/app/static/static.component.ts b/src/app/static/static.component.ts
index ac146a4b..f9fbadfb 100644
--- a/src/app/static/static.component.ts
+++ b/src/app/static/static.component.ts
@@ -1,7 +1,7 @@
import { Component, OnInit } from '@angular/core'
import { Title } from '@angular/platform-browser'
-import { EventService } from './../events/event.service'
+import { EventService } from '../events/event.service'
@Component({
selector: 'app-code-of-conduct',
diff --git a/src/app/user/achievements/achievements.component.html b/src/app/user/achievements/achievements.component.html
index f5ab9b50..ba694df3 100644
--- a/src/app/user/achievements/achievements.component.html
+++ b/src/app/user/achievements/achievements.component.html
@@ -12,8 +12,8 @@
Achievements
- Earn entries by completing achievements.
-
Each entry increases your chance of being awarded a prize at the end of the day!
+ Get achievements to increase your chances of winning the daily prizes.
+
If you found a secret QR code, scan it to unlock a hidden achievement!
diff --git a/src/app/user/cv/cv.component.html b/src/app/user/cv/cv.component.html
index 3b73cc7a..ea92b5f6 100644
--- a/src/app/user/cv/cv.component.html
+++ b/src/app/user/cv/cv.component.html
@@ -6,7 +6,7 @@
Upload CV
-
Submit or update your CV and enable yourself to win prizes!
+ Submit or update your CV, visit at least the stands of 5 companies and enable yourself to win a big prize!
diff --git a/src/app/user/cv/cv.component.ts b/src/app/user/cv/cv.component.ts
index 89437cfa..78ff670e 100644
--- a/src/app/user/cv/cv.component.ts
+++ b/src/app/user/cv/cv.component.ts
@@ -5,7 +5,7 @@ import { HttpEventType, HttpResponse } from '@angular/common/http'
import { EventService } from '../../events/event.service'
import { UserService } from '../user.service'
import { User } from '../user.model'
-import { environment } from './../../../environments/environment'
+import { environment } from '../../../environments/environment'
import { AuthService } from '../../auth/auth.service'
import { File as CV } from './file'
import { MatDialog } from '@angular/material/dialog'
diff --git a/src/app/user/downloads/downloads.component.css b/src/app/user/downloads/downloads.component.css
index db399ca9..57afde5a 100644
--- a/src/app/user/downloads/downloads.component.css
+++ b/src/app/user/downloads/downloads.component.css
@@ -1,11 +1,12 @@
.btn {
- margin: 0;
+ margin: 0 auto;
margin-bottom: 10px;
letter-spacing: 3px;
min-width: 250px;
padding: 15px;
- font-size: 12px;;
+ font-size: 12px;
}
+
.btn-info {
background-color: #428bca;
border-color: #357ebd;
diff --git a/src/app/user/downloads/downloads.component.html b/src/app/user/downloads/downloads.component.html
index 452ff2d8..ee8c374d 100644
--- a/src/app/user/downloads/downloads.component.html
+++ b/src/app/user/downloads/downloads.component.html
@@ -30,17 +30,18 @@
diff --git a/src/app/user/downloads/downloads.component.ts b/src/app/user/downloads/downloads.component.ts
index ac3d110d..2dc797d8 100644
--- a/src/app/user/downloads/downloads.component.ts
+++ b/src/app/user/downloads/downloads.component.ts
@@ -9,6 +9,12 @@ import { environment } from '../../../environments/environment'
import { AuthService } from '../../auth/auth.service'
import { EventService } from '../../events/event.service'
+import { catchError } from 'rxjs/operators';
+import { Observable } from 'rxjs';
+
+
+import { HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';
+
@Component({
selector: 'app-downloads',
templateUrl: './downloads.component.html',
@@ -26,9 +32,11 @@ export class DownloadsComponent implements OnInit {
private companyService: CompanyService,
private authService: AuthService,
private eventService: EventService,
- private titleService: Title
+ private titleService: Title,
+ private http: HttpClient
) { }
+
ngOnInit () {
this.userService.getMe()
.subscribe(me => {
@@ -45,11 +53,10 @@ export class DownloadsComponent implements OnInit {
const company = me.company.find(c => {
return c.edition === event.id
})
-
this.companyService.getCompany(company.company)
.subscribe(_company => {
this.company = _company
- })
+ });
this.linksCVsDownloadUrl = `${environment.cannonUrl}/company/${company.company}` +
`/files/download?editionId=${event.id}&links=true` +
@@ -62,4 +69,61 @@ export class DownloadsComponent implements OnInit {
})
})
}
+
+ downloadCVs() {
+ if (this.cvsDownloadUrl) {
+ const httpOptions = {
+ headers: new HttpHeaders({
+ 'Content-Type': 'application/json'
+ }),
+ observe: 'response' as 'response'
+ };
+
+ this.http.get(this.cvsDownloadUrl, httpOptions)
+ .pipe(
+ catchError(err => {
+ console.error('Failed to download CVs:', err);
+ alert('Unable to dowload CVs at this time. When available the team will contact you.');
+ throw err; // Re-throw the error if needed for further handling
+ })
+ )
+ .subscribe({
+ next: response => {
+ // Success, open the download URL
+ window.open(this.cvsDownloadUrl, '_blank');
+ }
+ });
+ } else {
+ alert('CV download URL is not available.');
+ }
+ }
+
+ downloadLinksCVs() {
+ if (this.linksCVsDownloadUrl) {
+ const httpOptions = {
+ headers: new HttpHeaders({
+ 'Content-Type': 'application/json'
+ }),
+ observe: 'response' as 'response'
+ };
+
+ this.http.get(this.linksCVsDownloadUrl, httpOptions)
+ .pipe(
+ catchError(err => {
+ console.error('Failed to download linked CVs:', err);
+ alert('Unable to dowload links CVs at this time. When available the team will contact you.');
+ throw err; // Re-throw the error if needed for further handling
+ })
+ )
+ .subscribe({
+ next: response => {
+ // Success, open the download URL
+ window.open(this.linksCVsDownloadUrl, '_blank');
+ }
+ });
+ } else {
+ alert('Links CV download URL is not available.');
+ }
+ }
+
}
diff --git a/src/app/user/link/my-links/my-links.component.css b/src/app/user/link/my-links/my-links.component.css
index 2afc0d25..3bb47646 100644
--- a/src/app/user/link/my-links/my-links.component.css
+++ b/src/app/user/link/my-links/my-links.component.css
@@ -205,3 +205,8 @@ img.portrait {
.black-text {
color: black;
}
+
+h6.lead{
+ margin-bottom: 40px;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/src/app/user/link/my-links/my-links.component.html b/src/app/user/link/my-links/my-links.component.html
index 7c80dad4..cdba61a5 100644
--- a/src/app/user/link/my-links/my-links.component.html
+++ b/src/app/user/link/my-links/my-links.component.html
@@ -30,11 +30,13 @@
My Links