Skip to content

Commit 10fb8d1

Browse files
committed
patch(schedule): add new component schedule calendar
1 parent 9ac7278 commit 10fb8d1

File tree

11 files changed

+123
-2
lines changed

11 files changed

+123
-2
lines changed

src/app/app-routing.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NgModule } from '@angular/core';
22
import { RouterModule, Routes } from '@angular/router';
33
import { PageWelcomeComponent } from './components/root/page-welcome/page-welcome.component';
4+
import { PageScheduleComponent } from './components/root/page-schedule/page-schedule.component';
45
import { PageNotFoundComponent } from './components/root/page-not-found/page-not-found.component';
56
import { PageForbiddenComponent } from './components/root/page-forbidden/page-forbidden.component';
67
import { ROUTES } from '../routes/routes';
@@ -13,6 +14,7 @@ const routes: Routes = [
1314
{ path: ROUTES.privacyPolicy, loadChildren: () => import('./components/privacy-policy/privacy-policy.module').then((m) => m.PrivacyPolicyModule) },
1415
{ path: ROUTES.news, loadChildren: () => import('./components/news/news.module').then((m) => m.NewsModule)},
1516
{ path: ROUTES.about, loadChildren: () => import('./components/about/about.module').then((m) => m.AboutModule)},
17+
{ path: ROUTES.schedule, component: PageScheduleComponent, pathMatch: 'full'},
1618
{ path: ROUTES.results, loadChildren: () => import('./components/results/results.module').then((m) => m.ResultsModule)},
1719
{ path: ROUTES.tasks._, loadChildren: () => import('./components/tasks/tasks.module').then((m) => m.TasksModule)},
1820
{ path: ROUTES.discussion, loadChildren: () => import('./components/discussion/discussion.module').then((m) => m.DiscussionModule)},

src/app/components/root/navbar/navbar.component.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
<a class="nav-btn" [routerLink]="['/', routes.routes.news]" routerLinkActive="active" (click)="hideFullMenu($event)">
2020
{{'root.navbar.category.news' | translate}}
2121
</a>
22+
<a class="nav-btn" [routerLink]="['/', routes.routes.schedule]" routerLinkActive="active" (click)="hideFullMenu($event)">
23+
{{'root.navbar.category.schedule' | translate}}
24+
</a>
2225
<a class="nav-btn" [routerLink]="['/', routes.routes.discussion]" routerLinkActive="active" (click)="hideFullMenu($event)">
2326
{{'root.navbar.category.discussion' | translate}}
2427
</a>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<div class="schedule">
2+
<h1 class="name">
3+
<span>
4+
{{'schedule.title' | translate}}
5+
</span>
6+
</h1>
7+
<p>
8+
Od 23. září do 26. září 2024 se na Fakultě informatiky Masarykovy univerzity uskuteční <strong>série workshopů a aktivit, které mají za úkol pomoct novým studentům FI lépe se začlenit</strong>. Některé aktivity se budou konat vícekrát v různých místnostech a v různých časech, aby se jich mohlo zúčastnit co nejvíce studentů.
9+
</p>
10+
<p>
11+
Níže uvedený kalendář aktivit je k dispozici také jako <strong>veřejný Google kalendář </strong>. Můžete si jej tedy přidat do svých vlastních kalendářů a zařízení, abyste tak nic nezmeškali.
12+
<a href="https://calendar.google.com/calendar/u/2?cid=Y18xYzcwMzg0ODM3MmFlZTFiMjU4ZTQxNWRiOGExMDEwNjFjNzNlZTQ5NzM0NmVhMzVhZGZiODM2YzYzZWQ5MWE0QGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20"> Kliknutím na tento odkaz získáte přístup ke kalendáři.</a>
13+
</p>
14+
15+
<iframe src="https://calendar.google.com/calendar/embed?src=c_1c703848372aee1b258e415db8a101061c73ee497346ea35adfb836c63ed91a4%40group.calendar.google.com&ctz=Europe%2FPrague&color=%238E24AA&dates=20240923/20240926&height=600&wkst=2&bgcolor=%23f2d45c&showCalendars=0&mode=WEEK&showTabs=0&showPrint=0&title=Harmonogram%20aktivit&showDate=0&showTitle=0&showNav=0&showTz=0&" style="border-width:0" width="60%" height="600" frameborder="0" scrolling="no"></iframe>
16+
17+
</div>
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
@import "src/app/styles/vars";
2+
@import "src/app/styles/mixins";
3+
4+
:host {
5+
.schedule {
6+
display: flex;
7+
flex-direction: column;
8+
justify-content: center;
9+
align-items: center;
10+
width: 100%;
11+
overflow: hidden;
12+
height: auto;
13+
padding-top: $ksi-padding;
14+
padding-bottom: $ksi-padding;
15+
16+
background-repeat: no-repeat;
17+
background-position: center;
18+
background-size: cover;
19+
20+
justify-content: center;
21+
22+
@media screen and (max-width: $ksi-max-mobile-width) {
23+
background-image: none;
24+
height: auto;
25+
padding-bottom: $ksi-margin;
26+
}
27+
}
28+
.schedule h1 {
29+
width: 60%;
30+
}
31+
.schedule p {
32+
width: 60%;
33+
}
34+
.schedule ifram {
35+
width: 60%;
36+
}
37+
}
38+
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { ComponentFixture, TestBed } from '@angular/core/testing';
2+
3+
import { PageWelcomeComponent } from './page-schedule.component';
4+
5+
describe('PageScheduleComponent', () => {
6+
let component: PageScheduleComponent;
7+
let fixture: ComponentFixture<PageScheduleComponent>;
8+
9+
beforeEach(async () => {
10+
await TestBed.configureTestingModule({
11+
declarations: [ PageScheduleComponent ]
12+
})
13+
.compileComponents();
14+
});
15+
16+
beforeEach(() => {
17+
fixture = TestBed.createComponent(PageScheduleComponent);
18+
component = fixture.componentInstance;
19+
fixture.detectChanges();
20+
});
21+
22+
it('should create', () => {
23+
expect(component).toBeTruthy();
24+
});
25+
});
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef } from '@angular/core';
2+
import { BackendService, KsiTitleService, RoutesService, WindowService, YearsService } from '../../../services';
3+
4+
@Component({
5+
selector: 'ksi-page-schedule',
6+
templateUrl: './page-schedule.component.html',
7+
styleUrls: ['./page-schedule.component.scss'],
8+
changeDetection: ChangeDetectionStrategy.OnPush
9+
})
10+
export class PageScheduleComponent implements OnInit {
11+
12+
aboutInfoSlide = 0;
13+
aboutInfoShown = false;
14+
15+
constructor(
16+
private title: KsiTitleService,
17+
public years: YearsService,
18+
private backend: BackendService,
19+
private cd: ChangeDetectorRef,
20+
private elRef: ElementRef,
21+
public routes: RoutesService
22+
) {
23+
}
24+
25+
ngOnInit(): void {
26+
this.title.subtitle = null;
27+
}
28+
}

src/app/components/root/root.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { ModalChangelogComponent } from '../shared/modal-changelog/modal-changel
55
import { NavbarComponent } from './navbar/navbar.component';
66
import { PageNotFoundComponent } from './page-not-found/page-not-found.component';
77
import { PageWelcomeComponent } from './page-welcome/page-welcome.component';
8+
import { PageScheduleComponent } from './page-schedule/page-schedule.component';
89
import { SharedModule } from '../shared/shared.module';
910
import { TranslateModule } from '@ngx-translate/core';
1011
import { CarouselModule } from 'ngx-bootstrap/carousel';
@@ -14,14 +15,14 @@ import { RouterModule } from '@angular/router';
1415
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
1516
import { PageForbiddenComponent } from './page-forbidden/page-forbidden.component';
1617

17-
1818
@NgModule({
1919
declarations: [
2020
FooterComponent,
2121
ModalChangelogComponent,
2222
NavbarComponent,
2323
PageNotFoundComponent,
2424
PageWelcomeComponent,
25+
PageScheduleComponent,
2526
PageForbiddenComponent
2627
],
2728
exports: [

src/app/models/routes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ export interface IRoutes {
22
news: string;
33
about: string;
44
results: string;
5+
schedule: string;
56
tasks: {
67
_: string,
78
solution: string;

src/assets/i18n/cs.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
"about": "O Naskoč",
3030
"news": "Novinky",
3131
"discussion": "Diskuze",
32-
"admin": "Admin"
32+
"admin": "Admin",
33+
"schedule": "Harmonogram"
3334
}
3435
},
3536
"not-found": {
@@ -568,5 +569,8 @@
568569
},
569570
"privacy-policy": {
570571
"title": "Zásady zpracování osobních údajů"
572+
},
573+
"schedule": {
574+
"title": "Harmonogram aktivit"
571575
}
572576
}

src/routes/routes.cs.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export const ROUTES: IRoutes = {
55
news: 'novinky',
66
about: 'o-naskoc',
77
results: 'vysledky',
8+
schedule: 'harmonogram',
89
tasks: {
910
_: 'ulohy',
1011
solution: 'reseni',

0 commit comments

Comments
 (0)