[frontend] Massive Refactoring: Move public pages to own module, move auth to own module

This commit is contained in:
Cathy Hu 2020-09-09 14:18:12 +02:00
parent 9091654cc0
commit ab9e8faf19
32 changed files with 164 additions and 54 deletions

View file

@ -1,25 +1,22 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { NotFoundComponent } from './shared/not-found/not-found.component';
import { HomepageComponent } from './homepage/homepage.component';
import { LoginComponent } from './auth/login/login.component';
import { RegisterComponent } from './auth/register/register.component';
import { OrganizerspageComponent } from './organizerspage/organizerspage.component';
import { HoodspageComponent } from './hoodspage/hoodspage.component';
import { HoodpageComponent } from './hoodpage/hoodpage.component';
import { SharedModule } from './shared/shared.module';
import { ConfirmComponent } from './auth/confirm/confirm.component';
import { EmailConfirmationComponent } from './platforms/email/email-confirmation/email-confirmation.component';
import { EmailUnsubscribeComponent } from './platforms/email/email-unsubscribe/email-unsubscribe.component';
const routes: Routes = [
{ path: '', component: HomepageComponent },
{ path: 'login', component: LoginComponent },
{ path: 'register', component: RegisterComponent },
{ path: 'confirm', component: ConfirmComponent },
{ path: 'organizers', component: OrganizerspageComponent },
{ path: 'hoods', component: HoodspageComponent },
{ path: 'hoods/:id', component: HoodpageComponent },
{
path: '',
loadChildren: () =>
import('./public-pages/public-pages.module').then(
(m) => m.PublicPagesModule
),
},
{
path: '',
loadChildren: () => import('./auth/auth.module').then((m) => m.AuthModule),
},
{ path: 'hoods/:id/email-confirm', component: EmailConfirmationComponent },
{ path: 'hoods/:id/email-unsubscribe', component: EmailUnsubscribeComponent },
{

View file

@ -1,5 +1,4 @@
<app-toolbar></app-toolbar>
<div class="content">
<router-outlet></router-outlet>
</div>
<app-footer></app-footer>
</div>

View file

@ -1,56 +1,29 @@
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { SharedModule } from './shared/shared.module';
import { HomepageComponent } from './homepage/homepage.component';
import { OrganizerspageComponent } from './organizerspage/organizerspage.component';
import { DashboardModule } from './dashboard/dashboard.module';
import { HoodpageComponent } from './hoodpage/hoodpage.component';
import { HoodspageComponent } from './hoodspage/hoodspage.component';
import { ApiModule } from './core/api/api.module';
import {
HttpClientModule,
HTTP_INTERCEPTORS,
HttpClient,
} from '@angular/common/http';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { BASE_PATH } from './core/api/variables';
import { environment } from 'src/environments/environment';
import { LoginComponent } from './auth/login/login.component';
import { RegisterComponent } from './auth/register/register.component';
import { ReactiveFormsModule } from '@angular/forms';
import { AuthTokenInterceptor } from './core/auth/auth-token.interceptor';
import { ConfirmComponent } from './auth/confirm/confirm.component';
import { ErrorInterceptor } from './core/auth/error.interceptor';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MarkdownModule } from 'ngx-markdown';
import { PlatformsModule } from './platforms/platforms.module';
import { FaqComponent } from './homepage/faq/faq.component';
import { PublicPagesModule } from './public-pages/public-pages.module';
import { AuthModule } from './auth/auth.module';
@NgModule({
declarations: [
AppComponent,
HomepageComponent,
OrganizerspageComponent,
HoodpageComponent,
HoodspageComponent,
LoginComponent,
RegisterComponent,
ConfirmComponent,
FaqComponent,
],
declarations: [AppComponent],
imports: [
BrowserModule,
AppRoutingModule,
SharedModule,
DashboardModule,
PublicPagesModule,
AuthModule,
ApiModule,
HttpClientModule,
ReactiveFormsModule,
BrowserAnimationsModule,
PlatformsModule,
MarkdownModule.forRoot({ loader: HttpClient }),
],
providers: [
{ provide: BASE_PATH, useValue: environment.API_BASE_PATH },

View file

@ -0,0 +1,22 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoginComponent } from './login/login.component';
import { RegisterComponent } from './register/register.component';
import { ConfirmComponent } from './confirm/confirm.component';
const routes: Routes = [
{
path: '',
children: [
{ path: 'login', component: LoginComponent },
{ path: 'register', component: RegisterComponent },
{ path: 'confirm', component: ConfirmComponent },
],
},
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class AuthRoutingModule {}

View file

@ -0,0 +1,12 @@
import { NgModule } from '@angular/core';
import { AuthRoutingModule } from './auth-routing.module';
import { ConfirmComponent } from './confirm/confirm.component';
import { RegisterComponent } from './register/register.component';
import { LoginComponent } from './login/login.component';
import { SharedModule } from '../shared/shared.module';
@NgModule({
declarations: [ConfirmComponent, LoginComponent, RegisterComponent],
imports: [AuthRoutingModule, SharedModule],
})
export class AuthModule {}

View file

@ -34,7 +34,7 @@
}
.banner {
background: url("../../assets/hoods3.jpg");
background: url("../../../assets/hoods3.jpg");
background-size: 100%;
display: block;
width: 100%;
@ -72,7 +72,7 @@
}
.banner2 {
background: url("../../assets/hoods3.jpg");
background: url("../../../assets/hoods3.jpg");
background-size: 100%;
display: block;
width: 100%;

View file

@ -1,6 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { HoodsService, BodyHood } from '../core/api';
import { HoodsService, BodyHood } from '../../core/api';
import { first } from 'rxjs/operators';
@Component({

View file

@ -28,7 +28,7 @@ h1 {
}
.banner {
background: url("../../assets/hoods1.jpg");
background: url("../../../assets/hoods1.jpg");
background-size: 100%;
width: 100%;
}

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core';
import { HoodsService } from '../core/api/api/hoods.service';
import { HoodsService } from '../../core/api/api/hoods.service';
@Component({
selector: 'app-hoodspage',

View file

@ -0,0 +1,27 @@
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { HomepageComponent } from './homepage/homepage.component';
import { PublicPagesComponent } from './public-pages.component';
import { OrganizerspageComponent } from './organizerspage/organizerspage.component';
import { HoodspageComponent } from './hoodspage/hoodspage.component';
import { HoodpageComponent } from './hoodpage/hoodpage.component';
const routes: Routes = [
{
path: '',
component: PublicPagesComponent,
children: [
{ path: '', component: HomepageComponent },
{ path: 'organizers', component: OrganizerspageComponent },
{ path: 'hoods', component: HoodspageComponent },
{ path: 'hoods/:id', component: HoodpageComponent },
],
},
];
@NgModule({
declarations: [],
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class PublicPagesRoutingModule {}

View file

@ -0,0 +1,2 @@
<router-outlet></router-outlet>
<app-footer></app-footer>

View file

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

View file

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-public-pages',
templateUrl: './public-pages.component.html',
styleUrls: ['./public-pages.component.scss']
})
export class PublicPagesComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

View file

@ -0,0 +1,37 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HomepageComponent } from './homepage/homepage.component';
import { HoodspageComponent } from './hoodspage/hoodspage.component';
import { HoodpageComponent } from './hoodpage/hoodpage.component';
import { OrganizerspageComponent } from './organizerspage/organizerspage.component';
import { FaqComponent } from './homepage/faq/faq.component';
import { SharedModule } from '../shared/shared.module';
import { PlatformsModule } from '../platforms/platforms.module';
import { MarkdownModule } from 'ngx-markdown';
import { HttpClient } from '@angular/common/http';
import { PublicPagesComponent } from './public-pages.component';
import { PublicPagesRoutingModule } from './public-pages-routing.module';
@NgModule({
declarations: [
HomepageComponent,
HoodspageComponent,
HoodpageComponent,
OrganizerspageComponent,
FaqComponent,
PublicPagesComponent,
],
imports: [
SharedModule,
PlatformsModule,
MarkdownModule.forRoot({ loader: HttpClient }),
PublicPagesRoutingModule,
],
exports: [
HomepageComponent,
HoodspageComponent,
HoodpageComponent,
OrganizerspageComponent,
],
})
export class PublicPagesModule {}

View file

@ -38,6 +38,7 @@ import { FooterComponent } from './footer/footer.component';
FormsModule,
CommonModule,
Ng2SearchPipeModule,
RouterModule,
],
})
export class SharedModule {}