Add Sledding Video
parent
61cbf6dfb1
commit
eb7269df6c
|
|
@ -45,6 +45,8 @@ import { ContactPageComponent } from './components/contact-page/contact-page.com
|
||||||
import { SharePopupComponent } from './components/popups/share-popup/share-popup.component';
|
import { SharePopupComponent } from './components/popups/share-popup/share-popup.component';
|
||||||
import { EventLargeComponent } from './components/event-large/event-large.component';
|
import { EventLargeComponent } from './components/event-large/event-large.component';
|
||||||
import { SalvationPageComponent } from './components/salvation-page/salvation-page.component';
|
import { SalvationPageComponent } from './components/salvation-page/salvation-page.component';
|
||||||
|
import { MediaPageComponent } from './components/media-page/media-page.component';
|
||||||
|
import { VideoPopupComponent } from './components/popups/video-popup/video-popup.component';
|
||||||
|
|
||||||
//Directives
|
//Directives
|
||||||
import { FadeInOnScrollDirective } from './directives/fade-in-on-scroll.directive';
|
import { FadeInOnScrollDirective } from './directives/fade-in-on-scroll.directive';
|
||||||
|
|
@ -58,6 +60,8 @@ import { OfbDatePipe } from './pipes/ofb-date.pipe';
|
||||||
// Routing
|
// Routing
|
||||||
import { AppRoutingModule } from './app-routing.module';
|
import { AppRoutingModule } from './app-routing.module';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
AppComponent,
|
AppComponent,
|
||||||
|
|
@ -92,7 +96,9 @@ import { AppRoutingModule } from './app-routing.module';
|
||||||
AddEventPopupComponent,
|
AddEventPopupComponent,
|
||||||
EventLargeComponent,
|
EventLargeComponent,
|
||||||
OfbDatePipe,
|
OfbDatePipe,
|
||||||
SalvationPageComponent
|
SalvationPageComponent,
|
||||||
|
MediaPageComponent,
|
||||||
|
VideoPopupComponent
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
|
|
@ -115,7 +121,8 @@ import { AppRoutingModule } from './app-routing.module';
|
||||||
YesNoPopupComponent,
|
YesNoPopupComponent,
|
||||||
UpdateSermonPopupComponent,
|
UpdateSermonPopupComponent,
|
||||||
SharePopupComponent,
|
SharePopupComponent,
|
||||||
AddEventPopupComponent],
|
AddEventPopupComponent,
|
||||||
|
VideoPopupComponent],
|
||||||
bootstrap: [AppComponent]
|
bootstrap: [AppComponent]
|
||||||
})
|
})
|
||||||
export class AppModule { }
|
export class AppModule { }
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,23 @@ img.full {
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#call-to-action-container {
|
||||||
|
text-align: center;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#action-button {
|
||||||
|
font-size: 16pt;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mr-10 {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
.action{
|
.action{
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
|
|
@ -130,6 +147,7 @@ img.full {
|
||||||
#filler{
|
#filler{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding-bottom: 35%;
|
padding-bottom: 35%;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.center{
|
.center{
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,9 @@
|
||||||
<img id="background-image" src="assets/images/home-images/tiny/sunset_b.jpg" alt="background image" width="100%">
|
<img id="background-image" src="assets/images/home-images/tiny/sunset_b.jpg" alt="background image" width="100%">
|
||||||
|
|
||||||
<div id="filler">
|
<div id="filler">
|
||||||
|
<div id="call-to-action-container">
|
||||||
|
<button id="action-button" (click)="actionClick()" mat-raised-button color="accent"><i ofbicon class="mr-10">play_arrow</i>2019 Sledding Highlights</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="content-wrapper">
|
<div id="content-wrapper">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
import { Component, HostListener } from '@angular/core';
|
import { Component, HostListener } from '@angular/core';
|
||||||
|
import { MatDialog, MatDialogConfig } from '@angular/material';
|
||||||
|
import { VideoPopupComponent } from '../popups/video-popup/video-popup.component';
|
||||||
|
import { environment } from '../../../environments/environment';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'home-component',
|
selector: 'home-component',
|
||||||
|
|
@ -20,9 +23,22 @@ export class HomeComponent {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constructor(private dialog: MatDialog)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@HostListener('window:scroll', ['$event'])
|
@HostListener('window:scroll', ['$event'])
|
||||||
onScroll(event){
|
onScroll(event){
|
||||||
let scrollTop = event.target.documentElement.scrollTop || event.target.body.scrollTop || window.pageYOffset;
|
let scrollTop = event.target.documentElement.scrollTop || event.target.body.scrollTop || window.pageYOffset;
|
||||||
//this.backgroundTop = Math.min((scrollTop * .30),100) * -1 + "px";
|
//this.backgroundTop = Math.min((scrollTop * .30),100) * -1 + "px";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
actionClick() {
|
||||||
|
let opts = new MatDialogConfig;
|
||||||
|
let baseUrl = environment.production === true ? "" : "https://ofbbutte.com/";
|
||||||
|
opts.data = { videoSrc: baseUrl + 'static/media/video/Sledding2019.mp4', posterSrc: baseUrl + 'static/media/video/Sledding2019Poster.jpg' };
|
||||||
|
opts.closeOnNavigation = true;
|
||||||
|
let dialog = this.dialog.open(VideoPopupComponent, opts)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
<p>
|
||||||
|
media-page works!
|
||||||
|
</p>
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { MediaPageComponent } from './media-page.component';
|
||||||
|
|
||||||
|
describe('MediaPageComponent', () => {
|
||||||
|
let component: MediaPageComponent;
|
||||||
|
let fixture: ComponentFixture<MediaPageComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ MediaPageComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(MediaPageComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-media-page',
|
||||||
|
templateUrl: './media-page.component.html',
|
||||||
|
styleUrls: ['./media-page.component.css']
|
||||||
|
})
|
||||||
|
export class MediaPageComponent implements OnInit {
|
||||||
|
|
||||||
|
constructor() { }
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
video {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
width: calc(100% - 50px);
|
||||||
|
}
|
||||||
|
|
||||||
|
hr{
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
font-size: 24pt;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.vertical-align-top {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
<div md-dialog-title>
|
||||||
|
<h2>2019 Sledding Highlights</h2>
|
||||||
|
<button mat-icon-button (click)="close()" class="vertical-align-top">
|
||||||
|
<i ofbicon>close</i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<hr color="primary">
|
||||||
|
<div md-dialog-content>
|
||||||
|
<video width="1280" [src]="videoSrc" controls [poster]="posterSrc"></video>
|
||||||
|
</div>
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { VideoPopupComponent } from './video-popup.component';
|
||||||
|
|
||||||
|
describe('VideoPopupComponent', () => {
|
||||||
|
let component: VideoPopupComponent;
|
||||||
|
let fixture: ComponentFixture<VideoPopupComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ VideoPopupComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(VideoPopupComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
import { Component, OnInit, Inject } from '@angular/core';
|
||||||
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-video-popup',
|
||||||
|
templateUrl: './video-popup.component.html',
|
||||||
|
styleUrls: ['./video-popup.component.css']
|
||||||
|
})
|
||||||
|
export class VideoPopupComponent implements OnInit {
|
||||||
|
|
||||||
|
public videoSrc: string;
|
||||||
|
public posterSrc: string;
|
||||||
|
|
||||||
|
constructor(@Inject(MAT_DIALOG_DATA) public data: any, private MatDialogRef: MatDialogRef<VideoPopupComponent>) {
|
||||||
|
this.videoSrc = data.videoSrc;
|
||||||
|
this.posterSrc = data.posterSrc;
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public close() {
|
||||||
|
this.MatDialogRef.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue