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:
@@ -1,3 +1,4 @@
|
|||||||
FTP_PASSWORD=cantiDavid@72
|
FTP_PASSWORD=cantiDavid@72
|
||||||
FTP_THREADS=30
|
FTP_THREADS=30
|
||||||
BASE_HREF=/ionic/
|
BASE_HREF=/ionic/
|
||||||
|
CONTACT_EMAIL=info@canticristiani.it
|
||||||
|
|||||||
@@ -22,6 +22,25 @@ if [ -z "$FTP_PASS" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
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 ---
|
# --- Build della PWA ---
|
||||||
echo "📦 1/2 Build della PWA (Production) in corso..."
|
echo "📦 1/2 Build della PWA (Production) in corso..."
|
||||||
# Usiamo la variabile d'ambiente BASE_HREF dal file .env
|
# Usiamo la variabile d'ambiente BASE_HREF dal file .env
|
||||||
|
|||||||
@@ -27,6 +27,20 @@ VERSION=$(date +'%Y.%m.%d.%H%M')
|
|||||||
echo "export const VERSION = '$VERSION';" > src/app/version.ts
|
echo "export const VERSION = '$VERSION';" > src/app/version.ts
|
||||||
echo "🏷️ Versione aggiornata a: $VERSION"
|
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) ---
|
# --- Build della PWA (base-href=/ per installare nella root) ---
|
||||||
echo "📦 1/2 Build della PWA (Production) per ROOT (www.canticristiani.it) in corso..."
|
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; }
|
npm run build -- --configuration=production --base-href=/ || { echo "❌ Errore nella build"; exit 1; }
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<ion-icon name="send-outline" slot="start" color="secondary"></ion-icon>
|
<ion-icon name="send-outline" slot="start" color="secondary"></ion-icon>
|
||||||
<ion-label class="outfit-font">
|
<ion-label class="outfit-font">
|
||||||
<h2 class="settings-item-title">Proponi i miei canti ({{ myCantiService.myCanti().length }})</h2>
|
<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-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import { Router } from '@angular/router';
|
|||||||
import { MyCantiService } from '../../services/my-canti.service';
|
import { MyCantiService } from '../../services/my-canti.service';
|
||||||
import { CantiLettureService } from '../../services/canti-letture.service';
|
import { CantiLettureService } from '../../services/canti-letture.service';
|
||||||
import { ComunitaService } from '../../services/comunita.service';
|
import { ComunitaService } from '../../services/comunita.service';
|
||||||
|
import { environment } from '../../../environments/environment';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-settings',
|
selector: 'app-settings',
|
||||||
@@ -35,6 +36,7 @@ export class SettingsPage {
|
|||||||
private router = inject(Router);
|
private router = inject(Router);
|
||||||
|
|
||||||
public version = VERSION;
|
public version = VERSION;
|
||||||
|
public contactEmail = environment.contactEmail;
|
||||||
|
|
||||||
constructor() {}
|
constructor() {}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { Injectable, signal, inject } from '@angular/core';
|
|||||||
import { Storage } from '@ionic/storage-angular';
|
import { Storage } from '@ionic/storage-angular';
|
||||||
import { Canto, CantiService } from './canti.service';
|
import { Canto, CantiService } from './canti.service';
|
||||||
import { ToastController } from '@ionic/angular';
|
import { ToastController } from '@ionic/angular';
|
||||||
|
import { environment } from '../../environments/environment';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@@ -70,7 +71,7 @@ export class MyCantiService {
|
|||||||
|
|
||||||
const body = JSON.stringify(data, null, 2);
|
const body = JSON.stringify(data, null, 2);
|
||||||
const subject = `Proposta Collection Canti: ${this.myCanti().length} brani`;
|
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;
|
window.location.href = mailtoUrl;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
export const VERSION = '2026.05.20.1221';
|
export const VERSION = '2026.05.20.1227';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
export const environment = {
|
export const environment = {
|
||||||
production: true
|
production: true,
|
||||||
|
contactEmail: 'info@canticristiani.it'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
// The list of file replacements can be found in `angular.json`.
|
// The list of file replacements can be found in `angular.json`.
|
||||||
|
|
||||||
export const environment = {
|
export const environment = {
|
||||||
production: false
|
production: false,
|
||||||
|
contactEmail: 'info@canticristiani.it'
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user