Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/app/pages/about-psf/about-psf.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title [class.title-visible]="showTitle">Python Software Foundation</ion-title>
</ion-toolbar>
Expand Down Expand Up @@ -146,7 +148,7 @@ <h2>python.org</h2>
</ion-item>

<ion-item button="true" (click)="openUrl('https://pypi.org')" detail="true">
<ion-icon slot="start" name="cube-outline" color="primary"></ion-icon>
<img slot="start" src="assets/img/pypi-logo.png" class="resource-icon pypi" alt="PyPI">
<ion-label>
<h2>PyPI</h2>
<p>The Python Package Index</p>
Expand Down
10 changes: 10 additions & 0 deletions src/app/pages/about-psf/about-psf.page.scss
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,13 @@ ion-card {
color: var(--ion-text-color);
}
}

// Sized to match the Ionic icons it sits next to in the resource list.
.resource-icon {
width: 24px;
height: 24px;
margin-inline-end: 32px;
align-self: center;
margin-block: 12px;
object-fit: contain;
}
9 changes: 3 additions & 6 deletions src/app/pages/about-pycon/about-pycon.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title [class.title-visible]="showTitle">About PyCon US</ion-title>
</ion-toolbar>
Expand All @@ -15,11 +17,6 @@ <h1>PyCon US 2026</h1>
<p>Long Beach, CA &bull; May 14-18</p>
</div>

<ion-button *ngIf="liveUpdateService.needsUpdate" expand="block" class="update-btn" (click)="performAutomaticUpdate()">
<ion-icon slot="start" name="download-outline"></ion-icon>
Fetch latest update
</ion-button>

<ion-card class="about-card">
<ion-card-content [innerHtml]="content.about">
</ion-card-content>
Expand Down
17 changes: 0 additions & 17 deletions src/app/pages/about-pycon/about-pycon.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,23 +90,6 @@ export class AboutPyconPage implements OnInit {
this.liveUpdateService.checkForUpdate();
}

async performAutomaticUpdate() {
this.loadingCtrl.create({
message: 'Installing the latest build...',
duration: 60000,
}).then((loader) => {
loader.present();
if (this.liveUpdateService.needsUpdate) {
this.liveUpdateService.reload();
setTimeout(() => {loader.dismiss()}, 1000);
} else {
setTimeout(() => {loader.dismiss()}, 1000);
}
}).catch((err) => {
console.log(err);
});
}

ngOnInit() {
this.liveUpdateService.checkForUpdate();
this.reloadContent();
Expand Down
4 changes: 3 additions & 1 deletion src/app/pages/account/account.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title [class.title-visible]="showTitle">Account</ion-title>
</ion-toolbar>
Expand Down
12 changes: 7 additions & 5 deletions src/app/pages/coc/coc.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title [class.title-visible]="showTitle">Code of Conduct</ion-title>
</ion-toolbar>
Expand Down Expand Up @@ -37,31 +39,31 @@ <h1>Code of Conduct</h1>

<ion-item button="true" (click)="openUrl('tel:+15626624082')">
<ion-icon slot="start" name="call" color="danger"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>CoC Hotline</h2>
<p>(562) 662-4082</p>
</ion-label>
</ion-item>

<ion-item button="true" (click)="openUrl('mailto:pycon-us-report@python.org')">
<ion-icon slot="start" name="mail" color="danger"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>Report via Email</h2>
<p>pycon-us-report&#64;python.org</p>
</ion-label>
</ion-item>

<ion-item button="true" (click)="openUrl('https://policies.python.org/us.pycon.org/code-of-conduct/Procedures-for-Reporting-Incidents/')" detail="true">
<ion-icon slot="start" name="document-text-outline" color="primary"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>Reporting Procedures</h2>
<p>How to report an incident</p>
</ion-label>
</ion-item>

<ion-item button="true" routerLink="/app/tabs/help" detail="true">
<ion-icon slot="start" name="help-circle-outline" color="primary"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>Help & Safety</h2>
<p>Info desk, maps, and additional resources</p>
</ion-label>
Expand Down
4 changes: 3 additions & 1 deletion src/app/pages/conference-map/conference-map.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button [color]="liveUpdateService.needsUpdate ? 'primary' : 'medium'"></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title>Conference Center</ion-title>
</ion-toolbar>
Expand Down
12 changes: 6 additions & 6 deletions src/app/pages/help/help.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ <h1>Help & Safety</h1>

<ion-item button="true" routerLink="/app/tabs/conference-map" detail="true">
<ion-icon slot="start" name="map-outline" color="primary"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>Info Desk & Conference Map</h2>
<p>Find the registration desk, help desk, and venue layout</p>
</ion-label>
Expand All @@ -35,23 +35,23 @@ <h2>Info Desk & Conference Map</h2>

<ion-item button="true" (click)="openUrl('https://policies.python.org/us.pycon.org/code-of-conduct/')" detail="true">
<ion-icon slot="start" name="shield-checkmark-outline" color="primary"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>Read the Code of Conduct</h2>
<p>PyCon US community guidelines</p>
</ion-label>
</ion-item>

<ion-item button="true" (click)="openUrl('tel:+15626624082')">
<ion-icon slot="start" name="call-outline" color="danger"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>CoC Hotline</h2>
<p>(562) 662-4082</p>
</ion-label>
</ion-item>

<ion-item button="true" (click)="openUrl('mailto:pycon-us-report@python.org')">
<ion-icon slot="start" name="mail-outline" color="danger"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>Report via Email</h2>
<p>pycon-us-report&#64;python.org</p>
</ion-label>
Expand All @@ -65,15 +65,15 @@ <h2>Report via Email</h2>

<ion-item button="true" (click)="openUrl('https://github.com/PyCon/pycon-us-mobile/issues/new')" detail="true">
<ion-icon slot="start" name="bug-outline" color="medium"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>Report an App Issue</h2>
<p>Bug reports and feature requests for the mobile app</p>
</ion-label>
</ion-item>

<ion-item button="true" (click)="openUrl('https://github.com/PyCon/pycon-site-public/issues/new')" detail="true">
<ion-icon slot="start" name="globe-outline" color="medium"></ion-icon>
<ion-label>
<ion-label class="ion-text-wrap">
<h2>Report a Website Issue</h2>
<p>Issues with us.pycon.org</p>
</ion-label>
Expand Down
4 changes: 3 additions & 1 deletion src/app/pages/job-listings/job-listings.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title [class.title-visible]="showTitle">Job Listings</ion-title>
</ion-toolbar>
Expand Down
4 changes: 3 additions & 1 deletion src/app/pages/keynote-speakers/keynote-speakers.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title [class.title-visible]="showTitle">Keynote Speakers</ion-title>
</ion-toolbar>
Expand Down
4 changes: 3 additions & 1 deletion src/app/pages/lightning-talks/lightning-talks.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title [class.title-visible]="showTitle">Lightning Talks</ion-title>
</ion-toolbar>
Expand Down
4 changes: 3 additions & 1 deletion src/app/pages/login/login.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button [color]="liveUpdateService.needsUpdate ? 'primary' : 'medium'"></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>

<ion-title>Login</ion-title>
Expand Down
4 changes: 3 additions & 1 deletion src/app/pages/schedule-list/schedule-list.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar>
<ion-buttons *ngIf="!showSearchbar" slot="start">
<ion-menu-button></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title *ngIf="!showSearchbar" [class.title-visible]="showTitle">{{trackName | trackName : 'plural'}}</ion-title>
<ion-buttons *ngIf="(trackName | lowercase) === 'ai' || (trackName | lowercase) === 'security'" slot="end">
Expand Down
4 changes: 3 additions & 1 deletion src/app/pages/schedule/schedule.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<ion-toolbar class="schedule-toolbar">
<ion-buttons slot="start">
<ion-menu-button [color]="liveUpdateService.needsUpdate ? 'primary' : 'medium'"></ion-menu-button>
<ion-badge *ngIf="liveUpdateService.needsUpdate" size=sm>1</ion-badge>
<ion-button *ngIf="liveUpdateService.needsUpdate" (click)="liveUpdateService.performAutomaticUpdate()" fill="clear" aria-label="Install latest update">
<ion-icon slot="icon-only" name="cloud-download-outline" color="primary"></ion-icon>
</ion-button>
</ion-buttons>
<ion-segment [(ngModel)]="dayIndex" (ionChange)="updateSchedule()" class="day-segment">
<ion-segment-button *ngFor="let day of days" value="{{day.index}}" [class.today-tab]="day.index === todayIndex">
Expand Down
17 changes: 17 additions & 0 deletions src/app/pages/session-detail/session-detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,23 @@ <h2 *ngIf="keynoteAbstract.title" class="keynote-abstract-title">{{ keynoteAbstr
[innerHtml]="session?.description"
(click)="onDescriptionClick($event)">
</div>

<div *ngIf="isPosters && posters.length > 0" class="posters-list">
<h2 class="posters-list-heading">Posters ({{posters.length}})</h2>
<ion-item *ngFor="let poster of posters" lines="none" class="poster-item" detail="true" button="true"
[routerLink]="['/app/tabs/schedule/session', 'poster-detail-' + poster.conf_key]"
[queryParams]="{ prevUrl: location.path() }">
<ion-avatar *ngIf="poster.speakers?.[0]?.photo" slot="start">
<img [src]="poster.speakers[0].photo" [alt]="poster.speakers[0].name">
</ion-avatar>
<ion-label class="ion-text-wrap">
<h3>{{poster.title}}</h3>
<p *ngIf="poster.speakers?.length">
<span *ngFor="let s of poster.speakers; let last = last">{{s.name}}<span *ngIf="!last">, </span></span>
</p>
</ion-label>
</ion-item>
</div>
</div>
</div>
</ion-content>
35 changes: 35 additions & 0 deletions src/app/pages/session-detail/session-detail.scss
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,41 @@ ion-toolbar ion-button {
}
}

.posters-list {
margin: 24px 0 0;

.posters-list-heading {
font-size: 1.05rem;
font-weight: 700;
margin: 0 0 8px;
color: var(--ion-text-color);
}

.poster-item {
--padding-start: 0;
--inner-padding-end: 0;
--background: transparent;

ion-avatar {
width: 40px;
height: 40px;
margin-right: 12px;
}

h3 {
font-weight: 600;
font-size: 0.95rem;
line-height: 1.35;
}

p {
font-size: 0.8rem;
color: var(--ion-color-step-500, #808080);
margin-top: 2px;
}
}
}

.session-image-container {
margin: 16px 0 20px;
text-align: center;
Expand Down
Loading
Loading