Compare commits

...

66 Commits
test ... master

Author SHA1 Message Date
unknown 10b8212980 update rows per page
continuous-integration/drone/push Build is passing Details
2025-01-25 09:36:25 -07:00
unknown 0d13dcdb6d update tax year in another spot
continuous-integration/drone/push Build is passing Details
2025-01-25 09:08:58 -07:00
unknown 6f45815e64 force update
continuous-integration/drone/push Build is passing Details
2025-01-25 09:03:20 -07:00
unknown 9d5b6e5935 update tax year to 2024 2025-01-25 09:02:25 -07:00
unknown 01f8404805 force build
continuous-integration/drone/push Build is passing Details
2024-12-06 07:32:17 -07:00
unknown 51579d2aee Add kfgl public information file
continuous-integration/drone/push Build was killed Details
2024-12-06 07:21:05 -07:00
unknown dfeb90828f update email creds
continuous-integration/drone/push Build is passing Details
2024-10-28 22:17:41 -06:00
unknown 8fd3c784e8 update pastor bio
continuous-integration/drone/push Build is passing Details
2024-10-06 16:05:26 -06:00
unknown 13d5eca9ef update home logic
continuous-integration/drone/push Build is passing Details
2024-08-04 15:06:49 -06:00
unknown 70146f0e73 force build
continuous-integration/drone/push Build is failing Details
2024-08-04 15:02:54 -06:00
unknown ca31b97b66 force build
continuous-integration/drone/push Build is failing Details
2024-08-04 14:57:48 -06:00
unknown ad23f0cfc7 Victory Gospel Crusade 2024-08-04 14:56:51 -06:00
unknown d5369eaaad Remove undefined for not entered phone
continuous-integration/drone/push Build is passing Details
2024-03-28 21:32:43 -06:00
unknown 14777e9171 add br after location in body
continuous-integration/drone/push Build is passing Details
2024-03-28 21:27:06 -06:00
unknown c851c8a070 Fix body undefined
continuous-integration/drone/push Build is passing Details
2024-03-28 21:20:48 -06:00
unknown 9c98cb51ba Fix issue with non required email
continuous-integration/drone/push Build is passing Details
2024-03-28 21:16:39 -06:00
unknown e66a014572 Don't require email for balloon
continuous-integration/drone/push Build is passing Details
2024-03-28 21:09:42 -06:00
unknown ad9ec5e7c6 Don't require message
continuous-integration/drone/push Build is passing Details
2024-03-28 21:01:59 -06:00
unknown 96d7270332 balloon contact
continuous-integration/drone/push Build is passing Details
2024-03-28 20:54:05 -06:00
unknown 58bd3c28b0 Force build
continuous-integration/drone/push Build is passing Details
2024-03-28 20:24:52 -06:00
unknown 78e80c4b79 add balloon component 2024-03-28 20:23:23 -06:00
unknown 53d9bd9cff update photo size
continuous-integration/drone/push Build is passing Details
2024-02-13 20:24:19 -07:00
unknown e8911b96f7 update photo size
continuous-integration/drone/push Build is passing Details
2024-02-13 20:17:36 -07:00
unknown 78e36d8446 force build
continuous-integration/drone/push Build is passing Details
2024-02-13 20:12:13 -07:00
unknown e37304533e Update family info 2024-02-13 20:11:13 -07:00
unknown d7d41931ee adjust rows per page
continuous-integration/drone/push Build is passing Details
2024-01-06 16:54:33 -07:00
unknown 2e0ec2b51d adjust rows per page
continuous-integration/drone/push Build is passing Details
2024-01-06 16:47:11 -07:00
unknown a1e32936df adjust rows per page
continuous-integration/drone/push Build is passing Details
2024-01-06 16:37:43 -07:00
unknown add85ebda7 reduce rows for first page
continuous-integration/drone/push Build is passing Details
2024-01-06 16:32:09 -07:00
unknown d898b2abae adjust space size
continuous-integration/drone/push Build is passing Details
2024-01-06 15:31:41 -07:00
unknown b0002c2107 increase max old space size
continuous-integration/drone/push Build was killed Details
2024-01-06 15:14:05 -07:00
unknown b46bc5221e adjust max old space size
continuous-integration/drone/push Build was killed Details
2024-01-06 15:09:06 -07:00
unknown f302b69c9a remove whitespace
continuous-integration/drone/push Build was killed Details
2024-01-06 14:59:31 -07:00
unknown da33858642 update tax year to 2023
continuous-integration/drone/push Build was killed Details
2024-01-06 14:25:31 -07:00
Dan 98ca74cadf remove covid and fcc from home page
continuous-integration/drone Build is passing Details
2023-08-01 15:58:02 -06:00
Dan 8fd40c8dc6 Allow adding a user from UI
continuous-integration/drone Build is passing Details
2023-08-01 15:48:14 -06:00
Dan 06c49558c4 Update API Url
continuous-integration/drone Build is passing Details
continuous-integration/drone/promote/production Build is passing Details
2023-08-01 11:47:23 -06:00
djabsher 0f88898a67 update url for sermons
continuous-integration/drone Build is passing Details
2023-07-30 04:05:55 +00:00
djabsher b8d4301429 Update router for static media files
continuous-integration/drone Build is passing Details
2023-07-30 03:58:21 +00:00
djabsher 900029783f change sql host
continuous-integration/drone Build is passing Details
2023-07-29 17:42:31 +00:00
djabsher 2603f5208a connect to mysql docker network 2023-07-29 17:41:17 +00:00
djabsher c420043ba3 Update drone.yml
continuous-integration/drone Build is passing Details
2023-07-29 05:41:27 +00:00
djabsher 4373e27d40 Add verbose to ng build
continuous-integration/drone Build is passing Details
2023-07-29 05:07:36 +00:00
djabsher d0eaddf1d9 Add verbose to ng build
continuous-integration/drone Build is failing Details
2023-07-29 05:05:19 +00:00
Me 89b21ddbd8 raise max old space size to 1000
continuous-integration/drone Build is failing Details
2023-07-28 18:24:08 -06:00
Me 61cff5f973 lower max old space to 500
continuous-integration/drone Build is failing Details
2023-07-28 18:22:09 -06:00
Me 3d3c0b9669 lower size again to 750
continuous-integration/drone Build is failing Details
2023-07-28 17:22:02 -06:00
Me d6178b2ca4 lower max old space size
continuous-integration/drone Build was killed Details
2023-07-28 17:14:54 -06:00
Me c8879f964d Adjust max old space size when building angular
continuous-integration/drone Build is failing Details
2023-07-28 17:03:23 -06:00
Me a038c449e7 update media directory
continuous-integration/drone Build is failing Details
2023-07-28 15:47:57 -06:00
unknown 6701cf2faa order by transaction date 2023-01-07 23:28:47 -07:00
unknown 864b838b69 Adjust rows per page 2023-01-07 20:58:36 -07:00
unknown 3858ef2299 Adjust rows per page 2023-01-07 20:56:01 -07:00
unknown cf0a57e8fd undo depth 2023-01-07 20:20:36 -07:00
unknown 38a1cdd486 adjust clone depth 2023-01-07 20:18:17 -07:00
unknown d7661b4649 update tax year on individual report to 2022 2023-01-05 19:07:25 -07:00
unknown b319f3c109 force build for tax year change 2023-01-05 19:00:31 -07:00
unknown 01766dc47f change to 2022 2023-01-05 18:59:03 -07:00
unknown afa4fe57ba force build 2022-09-05 14:56:28 -06:00
unknown 25a659d2cf updates for cowboy carnival and pastor picture 2022-09-05 14:54:55 -06:00
unknown 06b01f250e update pastor image 2022-07-07 19:49:08 -06:00
unknown 6918ce605b update pastor image 2022-07-07 19:46:31 -06:00
unknown d8f295f1ba update tax year again 2022-01-15 21:21:26 -07:00
unknown bb341a5659 build 2022-01-15 21:13:44 -07:00
unknown 6c3652f6ca update tax year to 2021 2022-01-15 21:10:30 -07:00
dan c97268133d Break long url 2021-11-12 22:36:52 -07:00
42 changed files with 13371 additions and 183 deletions

Binary file not shown.

13055
Client/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -21,6 +21,7 @@ import { VideoServicesComponent } from './components/video-services/video-servic
import { ImageComponent } from './components/image/image.component';
import { VideoComponent } from './components/video/video.component';
import { FCCPermitPageComponent } from './components/fcc-permit-page/fcc-permit-page.component';
import { BalloonComponent } from './components/balloon/balloon.component';
const routes =
[
@ -115,6 +116,10 @@ const routes =
{
path: 'fmpermit',
component: FCCPermitPageComponent
},
{
path: 'balloon',
component: BalloonComponent
}
]

View File

@ -54,6 +54,7 @@ import { SalvationPageComponent } from './components/salvation-page/salvation-pa
import { MediaPageComponent } from './components/media-page/media-page.component';
import { VideoPopupComponent } from './components/popups/video-popup/video-popup.component';
import { FCCPermitPageComponent } from './components/fcc-permit-page/fcc-permit-page.component';
import { BalloonComponent } from './components/balloon/balloon.component';
//Directives
import { FadeInOnScrollDirective } from './directives/fade-in-on-scroll.directive';
@ -88,6 +89,7 @@ import { YoutubePopupComponent } from './components/popups/youtube-popup/youtube
@NgModule({
declarations: [
AppComponent,
@ -129,6 +131,7 @@ import { YoutubePopupComponent } from './components/popups/youtube-popup/youtube
CampPageComponent,
MembersPageComponent,
FCCPermitPageComponent,
BalloonComponent,
AddUserPopupComponent,
AddTransactionPageComponent,
AddTransactionPopupComponent,

View File

@ -14,6 +14,7 @@
</mat-option>
</mat-autocomplete>
</mat-form-field>
<button mat-button class="m-5" type="button" (click)="addUser()">Add</button>
<br>
<mat-form-field class="w-50">
<mat-select formControlName="typeId">

View File

@ -1,8 +1,9 @@
import { Component, OnInit, Inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material';
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef, MatDialog } from '@angular/material';
import { contributorValidator } from '../contributor-validator';
import { Transaction } from '../transaction';
import { AddUserPopupComponent } from '../../popups/add-user-popup/add-user-popup.component';
export interface ValDisplay {
value: number;
@ -41,7 +42,7 @@ export class AddTransactionPopupComponent implements OnInit {
funds: ValDisplay[];
types: ValDisplay[];
constructor(private formBuilder: FormBuilder, @Inject(MAT_DIALOG_DATA) public data: DialogData, private dialogRef:MatDialogRef<AddTransactionPopupComponent>) {
constructor(private dialogService: MatDialog, private formBuilder: FormBuilder, @Inject(MAT_DIALOG_DATA) public data: DialogData, private dialogRef:MatDialogRef<AddTransactionPopupComponent>) {
this.contributors = this.data.contributors || [];
this.funds = this.data.funds || [];
this.types = this.data.types || [];
@ -101,4 +102,19 @@ export class AddTransactionPopupComponent implements OnInit {
this.dialogRef.close();
}
addUser() {
const ref = this.dialogService.open(AddUserPopupComponent);
ref.afterClosed().subscribe((res: any) => {
if (res && res.id > 0) {
this.contributors.push({ value: res.id, display: res.lastName + ' ' + res.firstName });
let contrib = this.contributors.find(c => c.value === res.id);
this.form.get("contributor").setValue(contrib);
}
});
}
}

View File

@ -27,8 +27,9 @@
</a>
<p><a href="tel:+1-406-494-5028" class="phone">(406) 494 - 5028</a></p>
<p>Pastor Derek Loewen</p>
<p>Pastor Emeritus Ron Derksen</p>
<br>
</div>
<div id="footer-services-content" class="footer-panel">
<p>Sunday School: 10AM</p>
<p>Sunday Worship: 11AM</p>
@ -40,7 +41,7 @@
<p><i ofbicon class="copyright">copyright</i> Copyright {{copyrightYear}}</p>
<p>Old Fashion Baptist</p>
<p><a routerLink="/home">ofbbutte.com</a></p>
<p>Powered by God</p>
<p><a href="https://publicfiles.fcc.gov/fm-profile/KFGL" target="_blank">KFGL Public Information File</a></p>
<br>
</div>
</div>

View File

@ -0,0 +1,23 @@
.full-width{
width: 100%;
}
.hide{
display: none;
}
.bold {
font-weight: bold;
}
.margin-top-space {
margin-top: 20px;
}
.errorMessages{
color: white;
background-color: rgb(255,90,90);
padding: 10px;
border-radius: 3px;
margin-bottom: 5px;
}

View File

@ -0,0 +1,49 @@
<secondary-page-component [hideSideBarOnMobile]="true" >
<div mainContent>
<br>
<p class="bold">
We are so glad you found one of our balloons. We would love to hear from you
and where you found it!
</p>
<p class="margin-top-space">
Click <a routerLink="/whoweare">here</a> to learn more about us.
</p>
<p class="margin-top-space">
Click <a routerLink="/salvation">here</a> to learn more about <span class="bold">Jesus</span>.
</p>
<br>
<div *ngIf="!formSubmitted">
<form class="form" #contactForm="ngForm" (ngSubmit)="onSubmit()">
<mat-form-field class="full-width">
<input matInput type="text" placeholder="Name" required value="" [(ngModel)]="name" name="name" >
</mat-form-field>
<mat-form-field class="full-width">
<input matInput type="text" placeholder="City, State" required value="" [(ngModel)]="location" name="location" >
</mat-form-field>
<mat-form-field class="full-width">
<input matInput type="email" placeholder="Email" value="" [(ngModel)]="email" name="email" pattern="^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$">
</mat-form-field>
<mat-form-field class="full-width">
<input matInput type="tel" placeholder="Phone" value="" [(ngModel)]="phone" name="phone">
</mat-form-field>
<mat-form-field class="full-width">
<textarea matInput type="text" placeholder="Other Information or Questions" value="" [(ngModel)]="body" name="body" rows="5" ></textarea>
</mat-form-field>
<mat-form-field class="hide">
<input matInput type="text" placeholder="hp" required value="" [(ngModel)]="hp" name="subject">
</mat-form-field>
<div class="errorMessages" *ngIf="errorMessages.length > 0">
<p *ngFor="let error of errorMessages">{{error}}</p>
</div>
<button mat-raised-button type="submit" [disabled]="!contactForm.form.valid || submitButtonDisabled">{{submitButtonText}}</button>
</form>
</div>
<div *ngIf="formSubmitted">
<p><b>Thank You!</b></p>
<p>Your message has been sent.</p>
</div>
</div>
<div sideBar ofbFadeInOnScroll>
</div>
</secondary-page-component>

View File

@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { BalloonComponent } from './balloon.component';
describe('BalloonComponent', () => {
let component: BalloonComponent;
let fixture: ComponentFixture<BalloonComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ BalloonComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(BalloonComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should be created', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,84 @@
import { Router } from '@angular/router';
import { MatDialogConfig } from '@angular/material';
import { OkPopupComponent } from '../popups/ok-popup/ok-popup.component';
import { EmailService } from '../../services/email.service';
import { Component, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material';
@Component({
selector: 'app-contact-page',
templateUrl: './balloon.component.html',
styleUrls: ['./balloon.component.css']
})
export class BalloonComponent implements OnInit {
public submitButtonText: string = "Submit";
public submitButtonDisabled: boolean = false;
public formSubmitted: boolean = false;
public name: string;
public email: string;
public location: string;
public phone: string;
public body: string;
public hp: string = ".";
public errorMessages: string[] = [];
constructor(private emailService: EmailService,
private MatDialog: MatDialog,
private router: Router) { }
ngOnInit() {
}
onSubmit(){
this.errorMessages = [];
if (this.name == null || this.name == ""){
this.errorMessages.push("Please enter a name");
}
if (this.location == null || this.location == ""){
this.errorMessages.push("Please enter a city and state");
}
if (this.errorMessages.length > 0){ return; }
const body = `Location of balloon: ${this.location}<br>${this.body || ''}`;
let email = this.email;
if (!email || email.length === 0) {
email = 'N/A';
}
this.submitButtonText = "Please Wait...";
this.submitButtonDisabled = true;
this.emailService.sendEmail(this.name,
email,
this.phone || '',
body,
this.hp)
.subscribe(
success => {this.emailSuccess();},
error => {this.emailError();});
}
private emailSuccess(){
let opts = new MatDialogConfig;
opts.data = { title:'Email Sent','message':'Thank You! Your message has been sent.' };
let popup = this.MatDialog.open(OkPopupComponent,opts);
this.submitButtonText = "Submit";
this.submitButtonDisabled = false;
popup.afterClosed().subscribe(()=>{
this.formSubmitted = true;
});
}
private emailError(){
console.error("error");
let opts = new MatDialogConfig;
opts.data = { title:'Email Error','message':'Please make sure that you have entered a valid email address.' };
let popup = this.MatDialog.open(OkPopupComponent,opts);
this.submitButtonText = "Submit";
this.submitButtonDisabled = false;
}
}

View File

@ -16,7 +16,10 @@ export class ContributorAllReportsComponent implements OnInit {
constructor(private printService: PrintService, private userService: UserService, private transactionService: TransactionService) { }
ngOnInit() {
const query = forkJoin([this.userService.getAll(), this.transactionService.getByYear(2020), this.transactionService.getByYear(2019)]);
const taxYear = 2024;
const query = forkJoin([this.userService.getAll(), this.transactionService.getByYear(taxYear), this.transactionService.getByYear(taxYear - 1)]);
query.subscribe(res => this.setup(res[0], res[1], res[2]));
@ -44,5 +47,4 @@ export class ContributorAllReportsComponent implements OnInit {
}
});
}
}

View File

@ -1,7 +1,7 @@
import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';
import { PrintService } from '../../services/print-service';
import { Transaction } from '../add-transaction-page/transaction';
import * as Chart from 'chart.js';
import * as Chart from 'chart.js';
import ChartDataLabels from 'chartjs-plugin-datalabels';
import { CurrencyPipe } from '@angular/common';
@ -34,11 +34,11 @@ export class ContributorYearlyReportComponent implements OnInit {
public contributorCity: string = 'Butte';
public contributorState: string = 'MT';
public contributorZip: string = '59701';
public taxYear: number = 2020;
public taxYear: number = 2024;
public rowsFirstPage: number = 13;
public rowsPerPage: number = 31;
public rowsFirstPage: number = 11;
public rowsPerPage: number = 30;
public get fillerRows(): number[] {
const rowsToFillPage = this.rowsFirstPage + ((this.pages - 2) * this.rowsPerPage);
const rowsNeeded = rowsToFillPage - this.transactions.length;

View File

@ -12,3 +12,12 @@ a{
a:visited{
color: inherit;
}
.break-word {
overflow-wrap: break-word;
word-wrap: break-word;
-ms-word-break: break-all;
word-break: break-word;
}

View File

@ -5,7 +5,7 @@
On November 9, 2021, Old Fashion Baptist Church of Butte, applicant for a Noncommercial FM Radio Station on
88.1mhz, in Butte, MT, filed an application with the Federal Communications Commission for a new Noncommercial FM
Station. Members of the public wishing to view this application or obtain information about how to file comments and
petitions on the application can visit <a href="https://enterpriseefiling.fcc.gov/dataentry/views/public/nceDraftCopy?displayType=html&appKey=25076f917cce2f5b0
petitions on the application can visit <a class="break-word" href="https://enterpriseefiling.fcc.gov/dataentry/views/public/nceDraftCopy?displayType=html&appKey=25076f917cce2f5b0
17cd34cdd450dee&id=25076f917cce2f5b017cd34cdd450dee&goBack=N">https://enterpriseefiling.fcc.gov/dataentry/views/public/nceDraftCopy?displayType=html&appKey=25076f917cce2f5b0
17cd34cdd450dee&id=25076f917cce2f5b017cd34cdd450dee&goBack=N</a>.
</p>

View File

@ -7,10 +7,22 @@ a{
color: inherit;
}
a {
text-decoration: underline;
}
a:hover {
cursor: pointer;
}
a:visited{
color: inherit;
}
.bold {
font-weight: bold;
}
img{
width: 70%;

View File

@ -45,51 +45,69 @@
<img src="assets/images/home-images/tiny/VBS_small.jpg" style="width:75%; max-width: 350px; position: relative; z-index: 1; box-shadow: 0 0 20px pink;" >
</div>
<div class="row tint" *ngIf="showSpecial" >
<div class="row-content">
<div class="row tint" *ngIf="showVGC" >
<div class="row-content">
<div class="row-content-col-left center">
<img style="max-height:500px" ofbFadeInOnScroll src="assets/images/original/VictoryGospelCrusade.png" height="500">
</div>
<div class="row-content-col-right align-top">
<p ofbFadeInOnScroll class="row-content-header">Listen Online</p>
<p ofbFadeInOnScroll>
If you are unable to attend, please follow the link below to listen to services online.
</p>
<p ofbFadeInOnScroll class="row-content-header">Victory Gospel Crusade</p>
<br />
<p ofbFadeInOnScroll class="bold">
When
</p>
<p ofbFadeInOnScroll>
August 4 - 9 @ 7PM
<br />
August 11 - 15 @ 7 PM
</p>
<br>
<p ofbFadeInOnScroll class="bold">
Where
</p>
<p ofbFadeInOnScroll>
Behind Pizza Ranch
<br />
1839 Longfellow St, Butte, Mt
<br /><br />
<i ofbicon>directions</i> <a target="_blank" class="align-top" href="https://www.google.com/maps/place/1839+Longfellow+St,+Butte,+MT+59701/@45.9732501,-112.513401,17z/data=!3m1!4b1!4m6!3m5!1s0x535b07e062beaaf7:0x827616c9ef692eed!8m2!3d45.9732464!4d-112.5108261!16s%2Fg%2F11v03h9chf?entry=ttu">View Map</a>
</p>
<p ofbFadeInOnScroll class="action">
<i ofbicon>headset</i> <a routerLink="/sermons" class="align-top">Click here to listen online</a>
</p>
</div>
<div class="row-content-col-left">
<a routerLink="/covid2" >
<img class="w-100pct" ofbFadeInOnScroll src="assets/images/home-images/tiny/covid_header_2.jpg" >
</a>
</div>
<i ofbicon>play_arrow</i> <a (click)="playVictoryGospelCrusade()" class="align-top">Click Here To Watch The Trailer</a>
</p>
</div>
</div>
</div>
<div class="row tint" *ngIf="!showSpecial" >
<div class="row" *ngIf="showSpecial" >
<div class="row-content">
<div class="row-content-col-left">
<a href="assets/images/champ_flyer.jpg" download="champ_flyer.jpg"><img class="full" ofbFadeInOnScroll src="assets/images/home-images/tiny/champ.jpg" height="300"></a>
<div class="row-content-col-left center">
<img style="max-height:500px" ofbFadeInOnScroll src="assets/images/home-images/tiny/Cowboy Carnival.jpg" height="500">
</div>
<div class="row-content-col-right align-top center">
<p ofbFadeInOnScroll class="row-content-header">Champ the Smiling Trick Horse</p>
<p ofbFadeInOnScroll class="row-content-header">Cowboy Carnival</p>
<p ofbFadeInOnScroll>
Come join us for this special event happening September 5th and 6th at Old Fashion Baptist!
Come join us for Ranger Walkers Wild West Cowboy Carnival!
</p>
<br>
<p ofbFadeInOnScroll>
<b>Wednesday, September 5 @ 7 PM</b>
<br>
Bible Preaching & Bluegrass Gospel Music
<p ofbFadeInOnScroll class="bold">
Family Fun
</p>
<br>
<p ofbFadeInOnScroll>
<b>Thursday, September 6 @ 5:30 PM</b>
<br>
Food, Games, Music & Preaching
<p ofbFadeInOnScroll class="bold">
Games
</p>
<br>
<p ofbFadeInOnScroll>
<a href="assets/images/champ_flyer.jpg" download="champ_flyer.jpg"><b>Click here to download the flyer</b></a>
<p ofbFadeInOnScroll class="bold">
Rides
</p>
<br>
<p ofbFadeInOnScroll class="bold">
Inflatables
</p>
<br>
<p ofbFadeInOnScroll style="font-size:1.25em;">
<b>Sunday, September 18 @ 11:00 AM</b>
</p>
<br>
<p ofbFadeInOnScroll class="action">
@ -198,16 +216,4 @@
</div>
</div>
</div>
<div class="row tint">
<div class="row-content">
<div class="row-content-single-col">
<p ofbFadeInOnScroll class="verse">
<i ofbicon style="vertical-align: middle; font-size: 32px;">announcement</i>
&nbsp;
<a routerLink="/fmpermit">FCC Noncommercial FM Station Construction Permit (click for more information)</a>
</p>
</div>
</div>
</div>
</div>

View File

@ -5,6 +5,7 @@ import { environment } from '../../../environments/environment';
import { Countdown } from './countdown';
import { HttpClient } from '@angular/common/http';
import { VideoServices } from './video-services';
import { YoutubePopupComponent } from '../popups/youtube-popup/youtube-popup.component';
@Component({
selector: 'home-component',
@ -13,20 +14,41 @@ import { VideoServices } from './video-services';
})
export class HomeComponent {
backgroundTop: string = "0px";
public get showSpecial() : boolean {
return true; //COVID-19
let maxDate = new Date(2018,8,6); // September 6th 2018 -- Set the month one month behind since JavaScript dates are 0 based
public get showVGC() : boolean {
let maxDate = new Date(2024,7,15,11); // August 15th 2018 -- Set the month one month behind since JavaScript dates are 0 based
let now = new Date();
if (now.getFullYear() > maxDate.getFullYear()) return false;
if (now.getFullYear() == maxDate.getFullYear()) {
if (now.getMonth() > maxDate.getMonth()) return false;
if (now.getMonth() == maxDate.getMonth()) {
if (now.getDate() > maxDate.getDate()) return false;
if (now.getDate() == maxDate.getDate()) {
if (now.getHours() > maxDate.getHours()) return false;
}
}
}
return true;
}
public get showSpecial() : boolean {
let maxDate = new Date(2022,8,18,11); // September 18th 2018 -- Set the month one month behind since JavaScript dates are 0 based
let now = new Date();
if (now.getFullYear() > maxDate.getFullYear()) return false;
if (now.getFullYear() == maxDate.getFullYear()) {
if (now.getMonth() > maxDate.getMonth()) return false;
if (now.getMonth() == maxDate.getMonth()) {
if (now.getDate() > maxDate.getDate()) return false;
if (now.getDate() == maxDate.getDate()) {
if (now.getHours() > maxDate.getHours()) return false;
}
}
}
return true;
}
public get showCallToAction(): boolean {
let maxDate = new Date(2020,4,10); // July 8th 2018 -- Set the month one month behind since JavaScript dates are 0 based
let now = new Date();
@ -60,8 +82,18 @@ export class HomeComponent {
this.http.get<VideoServices>('assets/json/videoServices.json').subscribe(res => {
this.countdown = new Countdown(res.videos);
});
}
playVictoryGospelCrusade() {
const url = 'https://drive.google.com/file/d/1gPdCTLkJEtNWEyn_y8FQ78PaDi40MU7N/preview'
let opts = new MatDialogConfig;
opts.data = { title: 'Victory Gospel Crusade', embedUrl: url };
let dialog = this.dialog.open(YoutubePopupComponent, opts);
}
@HostListener('window:scroll', ['$event'])
onScroll(event){
let scrollTop = event.target.documentElement.scrollTop || event.target.body.scrollTop || window.pageYOffset;

View File

@ -1,3 +1,7 @@
.full-width {
width: 100%;
}
.m-5 {
margin: 5px;
}

View File

@ -31,7 +31,7 @@
{{error}}
</p>
</div>
<button mat-raised-button class="first" (click)="cancel($event)" >Cancel</button><!--
--><button mat-raised-button type="submit" [disabled]="!addUserForm.form.valid || addUserButtonDisabled">{{ addUserButtonText }}</button>
<button mat-raised-button class="first m-5" (click)="cancel($event)" >Cancel</button><!--
--><button mat-raised-button class="m-5" type="submit" [disabled]="!addUserForm.form.valid || addUserButtonDisabled">{{ addUserButtonText }}</button>
</form>
</div>

View File

@ -91,6 +91,6 @@ p.margin-bottom {
@media(max-width: 450px) {
.float-left {
width: 175px
width: 200px;
}
}

View File

@ -17,9 +17,10 @@
<img class="image shadow container-3-col" src="assets/images/home-images/tiny/church.jpg" alt="Church Image" />
</div>
<br><br>
<p ofbFadeInOnScroll class="section-header">Pastor Derek Loewen</p>
<div ofbFadeInOnScroll class="section-paragraph overflow-hidden">
<img class="float-left margin-right-10 border-radius-5" src="assets/images/tiny/pstr.jpg" alt="Pastor Photo" width="225px" />
<img class="float-left margin-right-10 border-radius-5" src="assets/images/tiny/pstr3.jpg" alt="Pastor Photo" width="350px" />
<p class="margin-bottom">
Pastor Derek Loewen heard the gospel for the first time when a friend invited him to
Florence Baptist Church in Florence, Montana. They rode the bus to Sunday School.
@ -29,10 +30,10 @@
</p>
<p class="margin-bottom">
During his senior year of high school, Pastor Loewen yielded his life to the Lord.
Upon graduation from Crown College of the Bible in 2003, he served in the church he
Upon graduation from Bible College in 2003, he served in the church he
was saved in as a young boy before marrying his bride, Rebecca in June 2004.
The Lord has graciously allowed them to serve Him together across the country both
assisting pastors and planting a church. God has blessed their home with 3 delightful
assisting pastors and planting a church. God has blessed their home with 5 delightful
children.
</p>
<p>

View File

@ -8,7 +8,7 @@ export const MISSIONARY_SUPPORT_CREATE_URL = environment.baseApi + "/missionary"
export const SERMONS_BY_ID = environment.baseUrl + '/api2/sermons/';
export const SERMONS_BY_PAGE_URL = environment.baseUrl + '/api2/sermons/page/';
export const SERMONS_BY_SEARCH_URL = environment.baseUrl + '/api2/sermons/search';
export const SERMON_MP3_BASE_URL = '//static.ofbbutte.com/media/';
export const SERMON_MP3_BASE_URL = '/media/';
export const SERMON_ADD_URL = environment.baseUrl + "/api2/sermons/a/";
export const SERMON_DELETE_URL = environment.baseUrl + "/api2/sermons/a/";
export const SERMON_UPDATE_URL = environment.baseUrl + "/api2/sermons/a/";

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View File

@ -2,5 +2,5 @@ export const environment = {
production: true,
environment: 'prod',
baseUrl: "",
baseApi: "https://ofbbutte.com/2/api"
baseApi: "https://api.ofbbutte.com"
};

View File

@ -2,6 +2,6 @@ export const environment = {
production: false,
environment: 'test',
baseUrl: "",
baseApi: "https://test.ofbbutte.com/2/api"
baseApi: "https://test.api.ofbbutte.com"
};

View File

@ -6,7 +6,7 @@ export const environment = {
production: false,
baseUrl: "http://localhost:25776",
//baseApi: "https://localhost:44314/api"
baseApi: "https://test.ofbbutte.com/2/api"
baseApi: "https://test.api.ofbbutte.com"
};
/*

View File

@ -29,6 +29,8 @@ console.log(wwwFolder);
app.use(express.static(wwwFolder));
app.use('/media', express.static('/media'));
app.get('/*', function (req, res) {
console.log(__dirname);
console.log(req.originalUrl);

View File

@ -1,7 +1,7 @@
var mysql = require("mysql");
module.exports = mysql.createConnection({
host: "172.17.0.1",
host: "mysql",
port: 3306,
user: "admin_ofbbutte",
password: "87hjdusiodksyeunsjkdis7",

View File

@ -23,7 +23,7 @@ exports.getAll = async function() {
}
exports.getByYear = async function(taxYear) {
const queryResult = await connectionAsync.query('SELECT * FROM Transactions WHERE DeletedDate IS NULL AND TaxYear = ? AND GoodsOrServices = 0;', taxYear);
const queryResult = await connectionAsync.query('SELECT * FROM Transactions WHERE DeletedDate IS NULL AND TaxYear = ? AND GoodsOrServices = 0 ORDER BY Date ASC;', taxYear);
const result = [];
if (queryResult && queryResult.rows && queryResult.rows.length > 0) {
for(var i = 0 ; i < queryResult.rows.length; i++) {

View File

@ -98,7 +98,8 @@ exports.createUser = async function(firstName, lastName, street, city, state, zi
Country: country,
EmailVerified: false,
Federated: false,
FederationCode: hash.createVerificationCode()
FederationCode: hash.createVerificationCode(),
Password: ''
};
const newUserResult = await connectionAsync.nonQuery('INSERT INTO Users Set ?', newUser);
return await this.getUser2(tempUserName);

View File

@ -7,8 +7,8 @@ let transporter = nodemailer.createTransport({
port: 587,
secure: false,
auth:{
user: 'app@ofbbutte.com',
pass: '(app&email*sender)Q1'
user: 'mail@ofbbutte.com',
pass: '@2014OfbPwd'
}
});

View File

@ -8,7 +8,7 @@ RUN npm install
COPY ./Client ./
RUN node node_modules/@angular/cli/bin/ng build --prod --configuration=production
RUN node --max_old_space_size=1536 node_modules/@angular/cli/bin/ng build --prod --verbose --configuration=production
WORKDIR /app

View File

@ -1,6 +1,7 @@
kind: pipeline
type: docker
name: default
steps:
- name: node
image: docker
@ -10,7 +11,8 @@ steps:
commands:
- docker build --tag ofb_angular .
- docker rm -f ofb_angular || true
- docker run --name ofb_angular --restart always -v /home/admin/web/static.ofbbutte.com/public_html/media:/media -d -p "8111:8111" ofb_angular
- docker run --name=ofb_angular --network=proxy --restart always -v /root/apps/ofb/media:/media -d ofb_angular
- docker network connect mysql ofb_angular
volumes:

View File

@ -1,77 +0,0 @@
#!/bin/sh
BRANCH=$1
BUILD_ANGULAR_ARG=$2
BUILD_ANGULAR=true
if [ "$BUILD_ANGULAR_ARG" = -ng ]; then
BUILD_ANGULAR=true
fi
echo "Build Angular = $BUILD_ANGULAR"
echo "Branch Name = $BRANCH"
if [ "$BRANCH" = test ]; then
cd /home/ofbbutte/webapps/ofb_angular_test/
fi
if [ "$BRANCH" = master ]; then
cd /home/ofbbutte/webapps/ofb_angular_node10/
fi
echo "Node Version"
bin/node --version
echo "NPM Version"
bin/node bin/npm --version --scripts-prepend-node-path
if [ "$BUILD_ANGULAR" = true ]; then
cd tempcheckout/Client
echo "Pruning Client Node Modules"
../../bin/node ../../bin/npm prune --silent --scripts-prepend-node-path
echo "Installing Client Node Modules"
../../bin/node ../../bin/npm install --silent --scripts-prepend-node-path
echo "Building Angular Application"
if [ "$BRANCH" = master ]; then
../../bin/node node_modules/@angular/cli/bin/ng build --prod --configuration=production
fi
if [ "$BRANCH" = test ]; then
../../bin/node node_modules/@angular/cli/bin/ng build --prod --configuration=test
fi
cd ../../
rm -r -f www/
mv tempcheckout/Server/www/ www/
else
echo "Skipping Building Angular Application"
fi
echo "Angular CLI Version"
bin/node tempcheckout/Client/node_modules/@angular/cli/bin/ng --version
cd tempcheckout/Server/src
echo "Pruning Server Node Modules"
../../../bin/node ../../../bin/npm prune --silent --scripts-prepend-node-path
echo "Installing Server Node Modules"
../../../bin/node ../../../bin/npm install --silent --scripts-prepend-node-path
cd ../../../
rm -r -f src/
mv tempcheckout/Server/src/ src/
echo "Remove start and stop script files"
rm -f bin/start
rm -f bin/stop
echo "Copying start and stop script files"
if [ "$BRANCH" = master ]; then
mv tempcheckout/Server/bin/start bin/start
mv tempcheckout/Server/bin/stop bin/stop
fi
if [ "$BRANCH" = test ]; then
mv tempcheckout/Server/bin/start_test bin/start
mv tempcheckout/Server/bin/stop_test bin/stop
fi
ls
echo "Modifying permissions on start and stop script files to be executable"
chmod +x bin/start
chmod +x bin/stop
echo "Running stop script file"
bin/stop
echo "Running start script file"
bin/start