last update
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
const PTA = window.PTA;
|
||||
// core.js absent : la page reste lisible, simplement non interactive.
|
||||
if (!PTA) return;
|
||||
const { readJsonResponse, apiErrorMessage, escapeHtml, formatDate } = PTA.utils;
|
||||
const { apiJson, escapeHtml, formatDate } = PTA.utils;
|
||||
const el = (id) => document.getElementById(id);
|
||||
|
||||
/** Message dans le bandeau de la page. */
|
||||
@@ -28,17 +28,6 @@
|
||||
box.textContent = text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Appel d'API mutualisé : lit le JSON et transforme toute réponse non-OK en
|
||||
* exception. Toutes les actions de la page passent par ici.
|
||||
*/
|
||||
async function api(url, options = {}) {
|
||||
const response = await fetch(url, options);
|
||||
const data = await readJsonResponse(response);
|
||||
if (!response.ok) throw new Error(apiErrorMessage(data, 'Opération impossible.'));
|
||||
return data;
|
||||
}
|
||||
|
||||
/** Rend un contrôle, sa classe CSS dérivant de son niveau. */
|
||||
function controlHtml(control) {
|
||||
const level = String(control.niveau || 'INFO').toLowerCase();
|
||||
@@ -89,7 +78,7 @@
|
||||
if (end) query.set('date_fin', end);
|
||||
message('Chargement des équipes…');
|
||||
try {
|
||||
const data = await api(`api/teams.php?${query.toString()}`);
|
||||
const data = await apiJson(`api/teams.php?${query.toString()}`);
|
||||
el('team-list').innerHTML = (data.teams || []).map(teamHtml).join('') || '<div class="empty-state">Aucune équipe sur cette période.</div>';
|
||||
message(`${(data.teams || []).length} équipe(s) affichée(s).`, 'success');
|
||||
} catch (error) { message(error.message, 'error'); }
|
||||
@@ -100,7 +89,7 @@
|
||||
event.preventDefault();
|
||||
const box = el('team-create-message');
|
||||
try {
|
||||
const data = await api('api/teams.php', {
|
||||
const data = await apiJson('api/teams.php', {
|
||||
method: 'POST', headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
csrf_token: window.PTA_CONFIG.csrfToken,
|
||||
@@ -136,7 +125,7 @@
|
||||
if (event.type === 'submit' && event.target.matches('.team-member-form')) {
|
||||
event.preventDefault();
|
||||
try {
|
||||
await api('api/team_members.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({
|
||||
await apiJson('api/team_members.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({
|
||||
csrf_token: window.PTA_CONFIG.csrfToken, team_id: teamId,
|
||||
agent_id: Number(card.querySelector('.team-member-agent').value),
|
||||
fonction_equipe: card.querySelector('.team-member-function').value,
|
||||
@@ -150,7 +139,7 @@
|
||||
if (remove) {
|
||||
if (!window.confirm('Retirer cet agent de l’équipe ?')) return;
|
||||
try {
|
||||
await api('api/team_members.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({
|
||||
await apiJson('api/team_members.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({
|
||||
csrf_token: window.PTA_CONFIG.csrfToken, action: 'REMOVE', team_id: teamId, agent_id: Number(remove.dataset.agentId),
|
||||
}) });
|
||||
await load();
|
||||
@@ -168,7 +157,7 @@
|
||||
if (!select) return;
|
||||
const card = select.closest('.team-card');
|
||||
try {
|
||||
await api('api/team_status.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({
|
||||
await apiJson('api/team_status.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({
|
||||
csrf_token: window.PTA_CONFIG.csrfToken, team_id: Number(card.dataset.teamId), statut: select.value,
|
||||
}) });
|
||||
await load();
|
||||
|
||||
Reference in New Issue
Block a user