[FEAT] Admin / ajout d'une partition doit pouvoir ajouter le numero dans

le PDF. #1
This commit is contained in:
NADAL Jean-Baptiste
2026-02-25 18:31:41 +01:00
parent cf0db69f2d
commit 38bfe62eec
14 changed files with 509 additions and 25 deletions

View File

@@ -1 +1 @@
VITE_API_URL=https://ohmj-api.c.nadal-fr.com
VITE_API_URL=http://localhost:8000

View File

@@ -6,7 +6,7 @@ import { get } from 'svelte/store';
const API_BASE_URL_LOCAL = 'http://localhost:8000';
const API_BASE_URL_PROD = 'https://ohmj-api.c.nadal-fr.com';
const API_BASE_URL = browser ? API_BASE_URL_PROD : API_BASE_URL_LOCAL;
const API_BASE_URL = import.meta.env.DEV ? API_BASE_URL_LOCAL : API_BASE_URL_PROD;
const api = axios.create({
baseURL: API_BASE_URL,
@@ -141,7 +141,7 @@ export const apiService = {
return response.data;
},
async uploadPdf(scoreId: string, file: File, piece: string, instrument: string, version: string, key?: string, clef?: string, variant?: string, part?: string): Promise<{ success: boolean; path?: string; error?: string }> {
async uploadPdf(scoreId: string, file: File, piece: string, instrument: string, version: string, key?: string, clef?: string, variant?: string, part?: string, watermark?: boolean, watermarkPosition?: 'left' | 'right'): Promise<{ success: boolean; path?: string; error?: string }> {
const formData = new FormData();
formData.append('file', file);
formData.append('piece', piece);
@@ -151,6 +151,8 @@ export const apiService = {
if (clef) formData.append('clef', clef);
if (variant) formData.append('variant', variant);
if (part) formData.append('part', part);
if (watermark) formData.append('watermark', 'true');
if (watermarkPosition) formData.append('watermarkPosition', watermarkPosition);
const response = await api.post(`/admin/scores/${scoreId}/upload`, formData, {
headers: {

View File

@@ -60,6 +60,7 @@
let uploadClef = $state('');
let uploadVariant = $state('');
let uploadPart = $state('1');
let uploadWatermark = $state(false);
function handlePieceCountChange(count: number) {
newPieceCount = count;
@@ -199,7 +200,8 @@
uploadKey,
uploadClef,
uploadVariant,
uploadPart
uploadPart,
uploadWatermark
);
if (result.success) {
uploadSuccess = 'Fichier uploadé avec succès!';

View File

@@ -58,6 +58,8 @@
let uploadClef = $state('');
let uploadVariant = $state('');
let uploadPart = $state('1');
let uploadWatermark = $state(false);
let uploadWatermarkPosition = $state<'left' | 'right'>('left');
// Auto-set default key when instrument changes
$effect(() => {
@@ -193,7 +195,9 @@
uploadKey,
uploadClef,
uploadVariant,
uploadPart
uploadPart,
uploadWatermark,
uploadWatermarkPosition
);
if (result.success) {
uploadSuccess = 'Fichier uploadé avec succès';
@@ -495,6 +499,22 @@
<div>
<label class="block text-sm font-medium text-gray-700">Fichier PDF</label>
<div class="flex items-center gap-3 mt-1">
<label class="relative inline-flex items-center cursor-pointer whitespace-nowrap">
<input type="checkbox" bind:checked={uploadWatermark} class="sr-only peer" />
<div class="w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-ohmj-primary rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-ohmj-primary"></div>
<span class="ml-2 text-sm text-gray-700">Ajouter le numéro</span>
</label>
{#if uploadWatermark}
<select
bind:value={uploadWatermarkPosition}
class="text-sm border border-gray-300 rounded px-2 py-1"
>
<option value="left">Gauche</option>
<option value="right">Droite</option>
</select>
{/if}
</div>
<input
id="file-input"
type="file"