Feat(UI): Blog with article page and Newsletter signup form.

This commit is contained in:
2025-08-09 19:07:58 +01:00
parent 2541aaf849
commit 36d9eb6888
51 changed files with 3434 additions and 892 deletions

View File

@@ -5,7 +5,7 @@ import BasePage from "../base.js";
export default class PageBlogArticle extends BasePage {
static hash = hashPageBlogHome;
static hash = null;
constructor(router) {
super(router);

View File

@@ -0,0 +1,25 @@
// internal
// import BasePage from "../base.js";
import PageBlogHome from "./home.js";
// external
export default class PageBlogBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients extends PageBlogHome {
static hash = hashPageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients;
constructor(router) {
super(router);
}
initialize() {
this.sharedInitialize();
this.hookupFormNewsletter();
this.hookupButtonSubmitFormContactUs();
}
leave() {
super.leave();
}
}

View File

@@ -0,0 +1,25 @@
// internal
// import BasePage from "../base.js";
import PageBlogHome from "./home.js";
// external
export default class PageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess extends PageBlogHome {
static hash = hashPageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess;
constructor(router) {
super(router);
}
initialize() {
this.sharedInitialize();
this.hookupFormNewsletter();
this.hookupButtonSubmitFormContactUs();
}
leave() {
super.leave();
}
}

View File

@@ -0,0 +1,26 @@
// internal
// import BasePage from "../base.js";
import PageBlogHome from "./home.js";
// external
export default class PageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress extends PageBlogHome {
static hash = hashPageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress;
constructor(router) {
super(router);
}
initialize() {
this.sharedInitialize();
// this.hookupButtonsNav();
this.hookupFormNewsletter();
this.hookupButtonSubmitFormContactUs();
}
leave() {
super.leave();
}
}

View File

@@ -0,0 +1,25 @@
// internal
// import BasePage from "../base.js";
import PageBlogHome from "./home.js";
// external
export default class PageBlogArticleWhyEveryProfessionalTrainerNeedsACommandDictionaryIn2025 extends PageBlogHome {
static hash = hashPageBlogArticleWhyEveryProfessionalTrainerNeedsACommandDictionaryIn2025;
constructor(router) {
super(router);
}
initialize() {
this.sharedInitialize();
this.hookupFormNewsletter();
this.hookupButtonSubmitFormContactUs();
}
leave() {
super.leave();
}
}

View File

@@ -14,6 +14,20 @@ export default class PageBlogHome extends BasePage {
initialize() {
this.sharedInitialize();
// this.hookupButtonsNav();
this.hookupFormNewsletter();
this.hookupButtonSubmitFormContactUs();
}
hookupButtonSubmitFormContactUs() {
const button = document.querySelector('form input[type="submit"]');
button.classList.add(flagButton);
button.classList.add(flagButtonPrimary);
button.innerText = 'Subscribe Now';
}
hookupFormNewsletter() {
let submitButton = document.querySelector('#submit');
submitButton.innerText = 'Subscribe Now';
}
leave() {

View File

@@ -0,0 +1,16 @@
// internal
import BasePage from "../base.js";
// vendor
import { Altcha } from "../../vendor/altcha.js";
export default class PageBlogNewsletterSuccess extends BasePage {
static hash = hashPageBlogNewsletterSuccess;
constructor(router) {
super(router);
}
initialize() {
this.sharedInitialize();
}
}