Browse Source

Merge branch 'feature/new_routing_logic' into develop

hotfix/class_typo
Dslak 5 years ago
parent
commit
d0e10dde53
  1. 2
      deploy.sh
  2. 4
      src/app/app-routing.module.ts
  3. 4
      src/app/app.module.ts
  4. 0
      src/app/sitemap/sitemap.component.html
  5. 0
      src/app/sitemap/sitemap.component.scss
  6. 25
      src/app/sitemap/sitemap.component.spec.ts
  7. 73
      src/app/sitemap/sitemap.component.ts

2
deploy.sh

@ -1,5 +1,5 @@
#!/bin/bash
yarn prod
rsync -avz --delete --exclude '/apis/conn.conn' --exclude '.well-known' --exclude '/uploads' -e "ssh -i ./auth/identity.pem -p2222" ./dist/dslak-website/* cdr@2.238.194.8:/www/dslak.it/
rsync -avz --delete --exclude '/apis/conn.conn' --exclude '/sitemap.xml' --exclude '.well-known' --exclude '/uploads' -e "ssh -i ./auth/identity.pem -p2222" ./dist/dslak-website/* cdr@2.238.194.8:/www/dslak.it/

4
src/app/app-routing.module.ts

@ -6,6 +6,7 @@ import { PortfolioComponent } from './portfolio/portfolio.component'
import { DetailComponent } from './detail/detail.component'
import { HomeComponent } from './home/home.component'
import { AdminComponent } from './admin/admin.component'
import { SitemapComponent } from './sitemap/sitemap.component'
const routes: Routes = [
{
@ -32,7 +33,8 @@ const routes: Routes = [
},
{ path: 'admin', component: AdminComponent }
]
}
},
{ path: 'sitemap', component: SitemapComponent }
]
@NgModule({

4
src/app/app.module.ts

@ -16,6 +16,7 @@ import { DetailComponent } from './detail/detail.component';
import { AdminComponent } from './admin/admin.component';
import { HomeComponent } from './home/home.component';
import { SpinnerComponent } from './spinner/spinner.component';
import { SitemapComponent } from './sitemap/sitemap.component';
@NgModule({
declarations: [
@ -27,7 +28,8 @@ import { SpinnerComponent } from './spinner/spinner.component';
DetailComponent,
AdminComponent,
HomeComponent,
SpinnerComponent
SpinnerComponent,
SitemapComponent
],
imports: [
BrowserModule,

0
src/app/sitemap/sitemap.component.html

0
src/app/sitemap/sitemap.component.scss

25
src/app/sitemap/sitemap.component.spec.ts

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

73
src/app/sitemap/sitemap.component.ts

@ -0,0 +1,73 @@
import { Component, OnInit } from '@angular/core'
import { Router, NavigationEnd } from '@angular/router'
import { ApisService } from '../services/apis.service'
import { environment } from '../../environments/environment'
@Component({
selector: 'app-sitemap',
templateUrl: './sitemap.component.html',
styleUrls: ['./sitemap.component.scss']
})
export class SitemapComponent implements OnInit {
public basePath = `${environment.BASE_PATH}`
public sitemap: string = ''
constructor(
private apisService: ApisService,
private router: Router
) { }
ngOnInit(): void {
const sections = [
'about',
'portfolio',
'exhibitions',
'installations',
'entertainment',
'performances',
'worhshops'
]
sections.forEach((e) => {
this.sitemap += `<url><loc>${this.basePath}/${e}</loc></url>\n`
})
this.apisService.getPortfolio('portfolio').toPromise().then((response) => {
response.items.forEach((e) => {
this.sitemap += `<url><loc>${this.basePath}/detail/${e.type}/${e.id}/${this.parseTitle(e.title)}</loc></url>\n`
})
this.apisService.getPortfolio('exhibitions').toPromise().then((response) => {
response.items.forEach((e) => {
this.sitemap += `<url><loc>${this.basePath}/detail/exhibitions/${e.id}/${this.parseTitle(e.title)}</loc></url>\n`
})
this.download()
},(error) => {
console.error(error)
}).catch((e) => {
console.error(e)
})
},(error) => {
console.error(error)
}).catch((e) => {
console.error(e)
})
}
parseTitle(title): string {
return title.toLowerCase().replace(/[^a-zA-Z0-9]/g, '-').replace('--', '-').replace('--', '-')
}
download() {
const header = '<?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'
const footer = '\n</urlset>'
const blob = new Blob([`${header}${this.sitemap}${footer}`], { type: 'text/xml' })
const url= window.URL.createObjectURL(blob)
window.location.assign(url)
}
}
Loading…
Cancel
Save