feat: parametrizzata l'email di contatto tramite il file .env

- Aggiunta la variabile CONTACT_EMAIL nel file .env (con default 'info@canticristiani.it').
- Definito il parametro 'contactEmail' nei file di configurazione Angular environment.ts ed environment.prod.ts.
- Sostituito l'indirizzo frassidavid@gmail.com con la variabile d'ambiente in MyCantiService e nella pagina Settings.
- Implementato l'aggiornamento automatico della mail di contatto in fase di build in deploy_www.sh e deploy_ionic.sh.
This commit is contained in:
David Frassi
2026-05-20 12:37:19 +02:00
parent a4cd56d406
commit 89b7ac50e3
9 changed files with 44 additions and 5 deletions
+1
View File
@@ -1,3 +1,4 @@
FTP_PASSWORD=cantiDavid@72
FTP_THREADS=30
BASE_HREF=/ionic/
CONTACT_EMAIL=info@canticristiani.it
+19
View File
@@ -22,6 +22,25 @@ if [ -z "$FTP_PASS" ]; then
exit 1
fi
# --- Aggiornamento Versione ---
VERSION=$(date +'%Y.%m.%d.%H%M')
echo "export const VERSION = '$VERSION';" > src/app/version.ts
echo "🏷️ Versione aggiornata a: $VERSION"
# --- Configurazione Email Parametrica ---
node -e "
const fs = require('fs');
const envEmail = process.env.CONTACT_EMAIL || 'info@canticristiani.it';
['src/environments/environment.ts', 'src/environments/environment.prod.ts'].forEach(file => {
if (fs.existsSync(file)) {
let content = fs.readFileSync(file, 'utf8');
content = content.replace(/contactEmail:\s*'[^']*'/g, \`contactEmail: '\${envEmail}'\`);
fs.writeFileSync(file, content, 'utf8');
console.log(\`📧 Aggiornata email di contatto in \${file} a: \${envEmail}\`);
}
});
"
# --- Build della PWA ---
echo "📦 1/2 Build della PWA (Production) in corso..."
# Usiamo la variabile d'ambiente BASE_HREF dal file .env
+14
View File
@@ -27,6 +27,20 @@ VERSION=$(date +'%Y.%m.%d.%H%M')
echo "export const VERSION = '$VERSION';" > src/app/version.ts
echo "🏷️ Versione aggiornata a: $VERSION"
# --- Configurazione Email Parametrica ---
node -e "
const fs = require('fs');
const envEmail = process.env.CONTACT_EMAIL || 'info@canticristiani.it';
['src/environments/environment.ts', 'src/environments/environment.prod.ts'].forEach(file => {
if (fs.existsSync(file)) {
let content = fs.readFileSync(file, 'utf8');
content = content.replace(/contactEmail:\s*'[^']*'/g, \`contactEmail: '\${envEmail}'\`);
fs.writeFileSync(file, content, 'utf8');
console.log(\`📧 Aggiornata email di contatto in \${file} a: \${envEmail}\`);
}
});
"
# --- Build della PWA (base-href=/ per installare nella root) ---
echo "📦 1/2 Build della PWA (Production) per ROOT (www.canticristiani.it) in corso..."
npm run build -- --configuration=production --base-href=/ || { echo "❌ Errore nella build"; exit 1; }
+1 -1
View File
@@ -150,7 +150,7 @@
<ion-icon name="send-outline" slot="start" color="secondary"></ion-icon>
<ion-label class="outfit-font">
<h2 class="settings-item-title">Proponi i miei canti ({{ myCantiService.myCanti().length }})</h2>
<p class="settings-item-subtitle">Invia a frassidavid@gmail.com</p>
<p class="settings-item-subtitle">Invia a {{ contactEmail }}</p>
</ion-label>
</ion-item>
</div>
+2
View File
@@ -12,6 +12,7 @@ import { Router } from '@angular/router';
import { MyCantiService } from '../../services/my-canti.service';
import { CantiLettureService } from '../../services/canti-letture.service';
import { ComunitaService } from '../../services/comunita.service';
import { environment } from '../../../environments/environment';
@Component({
selector: 'app-settings',
@@ -35,6 +36,7 @@ export class SettingsPage {
private router = inject(Router);
public version = VERSION;
public contactEmail = environment.contactEmail;
constructor() {}
+2 -1
View File
@@ -2,6 +2,7 @@ import { Injectable, signal, inject } from '@angular/core';
import { Storage } from '@ionic/storage-angular';
import { Canto, CantiService } from './canti.service';
import { ToastController } from '@ionic/angular';
import { environment } from '../../environments/environment';
@Injectable({
providedIn: 'root'
@@ -70,7 +71,7 @@ export class MyCantiService {
const body = JSON.stringify(data, null, 2);
const subject = `Proposta Collection Canti: ${this.myCanti().length} brani`;
const mailtoUrl = `mailto:frassidavid@gmail.com?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
const mailtoUrl = `mailto:${environment.contactEmail}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
window.location.href = mailtoUrl;
+1 -1
View File
@@ -1 +1 @@
export const VERSION = '2026.05.20.1221';
export const VERSION = '2026.05.20.1227';
+2 -1
View File
@@ -1,3 +1,4 @@
export const environment = {
production: true
production: true,
contactEmail: 'info@canticristiani.it'
};
+2 -1
View File
@@ -3,7 +3,8 @@
// The list of file replacements can be found in `angular.json`.
export const environment = {
production: false
production: false,
contactEmail: 'info@canticristiani.it'
};
/*