Mise en ligne de la version 0.2.0
All checks were successful
Build & Push Images / build (brain) (push) Successful in 46s
Build & Push Images / build (core) (push) Successful in 1m21s
Build & Push Images / build (web) (push) Successful in 1m25s

This commit is contained in:
2026-04-21 14:25:17 +02:00
parent ebee8e106b
commit ba8a503b3e
300 changed files with 35329 additions and 1 deletions

View File

@@ -0,0 +1,60 @@
import { Component, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Router } from '@angular/router';
import { LucideAngularModule, Map, Plus } from 'lucide-angular';
import { CampaignService } from '../services/campaign.service';
import { Campaign } from '../services/campaign.model';
import { CampaignCreateComponent, CampaignCreatePayload } from './campaign-create/campaign-create.component';
@Component({
selector: 'app-campaigns',
standalone: true,
imports: [CommonModule, LucideAngularModule, CampaignCreateComponent],
templateUrl: './campaigns.component.html',
styleUrls: ['./campaigns.component.scss']
})
export class CampaignsComponent implements OnInit {
readonly Map = Map;
readonly Plus = Plus;
campaigns: Campaign[] = [];
showCreateModal = false;
constructor(
private router: Router,
private campaignService: CampaignService
) {}
ngOnInit(): void {
this.loadCampaigns();
}
loadCampaigns(): void {
this.campaignService.getAllCampaigns().subscribe({
next: (data) => this.campaigns = data,
error: () => this.campaigns = []
});
}
openCreateModal(): void {
this.showCreateModal = true;
}
onModalClose(): void {
this.showCreateModal = false;
}
onCampaignCreated(data: CampaignCreatePayload): void {
this.campaignService.createCampaign(data).subscribe({
next: () => {
this.showCreateModal = false;
this.loadCampaigns();
},
error: () => console.error('Erreur lors de la création de la campagne')
});
}
navigateToDetail(id: string): void {
this.router.navigate(['/campaigns', id]);
}
}