Valider cef506c1 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

Le champ input file d’édition de document comme d’illustration de document...

Le champ input file d’édition de document comme d’illustration de document utilise un name en tableau `fichier_upload[]` ce qui fait que BigUP considère le champ
comme étant multiple. On permet de passer data-maxFiles=1 sur la configuration du BigUp pour ces formulaires, et on adapte aussi l’appel à Flow et le texte en conséquence.

D’autre part, on déplace aussi la déclaration de l’attribut "accept" pour les logos et illustrations, dans la création de l’input plutôt que dans le JS ultérieurement.
parent bc751b4c
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+36 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -231,3 +231,39 @@ function bigup_name2nom($name) {
	return implode('/', $name);
}

/**
 * Retourne la liste des mimes types acceptés pour des logos / illustrations,
 * tels qu’attendus par le champ accept.
 * @return string
 */
function bigup_get_accept_logos() {
	$extensions = $GLOBALS['formats_logos'];
	$mimes = array_map('bigup_get_mime_type_extension', $extensions);
	return implode(",", $mimes);
}

/**
 * Transforme une extension en mime-type (de façon simpliste)
 * @param string $extension
 * @return string mime type
 */
function bigup_get_mime_type_extension($extension) {
	$extension = strtolower($extension);
	$mime = "image/$extension";
	// cas particuliers
	switch ($extension) {
		case 'bmp':
			$mime = "image/x-ms-bmp";
			break;
		case 'jpg':
			$mime = "image/jpeg";
			break;
		case 'svg':
			$mime = "image/svg+xml";
			break;
		case 'tif':
			$mime = "image/tiff";
			break;
	}
	return $mime;
}
 No newline at end of file
+15 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -284,7 +284,10 @@ function bigup_medias_formulaire_fond($flux) {
			case 'editer_document':
				$formulaire->preparer_input(
					'fichier_upload[]',
					['previsualiser' => true]
					[
						'maxFiles' => 1,
						'previsualiser' => true
					]
				);
				$formulaire->inserer_js('bigup.documents_edit.js');
				break;
@@ -292,13 +295,22 @@ function bigup_medias_formulaire_fond($flux) {
			case 'illustrer_document':
				$formulaire->preparer_input(
					'fichier_upload[]',
					['input_class' => 'bigup_logo', 'previsualiser' => true]
					[
						'maxFiles' => 1,
						'accept' => bigup_get_accept_logos(),
						'previsualiser' => true,
						'input_class' => 'bigup_illustration',
					]
				);
				$formulaire->inserer_js('bigup.documents_illustrer.js');
				break;

			case 'editer_logo':
				$options = ['input_class' => 'bigup_logo', 'previsualiser' => true];
				$options = [
					'accept' => bigup_get_accept_logos(),
					'previsualiser' => true,
					'input_class' => 'bigup_logo',
				];
				if (intval($flux['args']['args'][1]) or $flux['args']['args'][0] !== 'site') {
					$options['drop-zone-extended'] = '#navigation';
				}
+8 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -115,6 +115,8 @@ class Formulaire
			'editer_class' => 'pleine_largeur',
			'previsualiser' => false,
			'drop-zone-extended' => '',
			'maxFiles' => '',
			'accept' => '',
		];

		$remplacements = 0;
@@ -157,6 +159,12 @@ class Formulaire
				if ($options['drop-zone-extended']) {
					$new = self::inserer_attribut($new, 'data-drop-zone-extended', $options['drop-zone-extended']);
				}
				if ($options['maxFiles']) {
					$new = self::inserer_attribut($new, 'data-maxFiles', $options['maxFiles']);
				}
				if ($options['accept']) {
					$new = self::inserer_attribut($new, 'accept', $options['accept']);
				}

				// Dans l'environnement, la liste des fichiers est la clé sans [], si [] est présent à la fin du champ
				// De même le champ sans [] final est à saisie pour calculer les classes CSS
+2 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -6,8 +6,8 @@ function formulaires_documents_edit_avec_bigup () {
		.find("form .editer_fichier_upload")
		.find("label").hide().end()
		.find("input[type=file].bigup")
		.not('.bigup_document')
		.addClass('bigup_document')
		.not('.bigup_document_edit')
		.addClass('bigup_document_edit')
		.on('bigup.fileSuccess', function(event, file, description) {
			var bigup = file.bigup;
			var input = file.emplacement;
+1 −11
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
/** Gérer le formulaire d’illustration de documents avec Bigup */
function formulaires_documents_illustrer_avec_bigup () {

	var conf = $.extend(true, {formatsLogos: ['jpg', 'gif', 'png']}, $.bigup_config || {});
	var mimeLogos = [];
	for (var i in conf.formatsLogos) {
		mimeLogos.push($.mime_type_image(conf.formatsLogos[i]));
	}
	mimeLogos = mimeLogos.join(',');

	// trouver les input qui envoient des fichiers
	$(".formulaire_illustrer_document")
		.find("form .editer_fichier_upload")
		.find("label").hide().end()
		.find("input[type=file].bigup_logo")
		.find("input[type=file].bigup_illustration")
		.not('.bigup_done')
		// indiquer l'accept avant de charger bigup.
		.attr('accept', mimeLogos)
		.bigup()
		.on('bigup.fileSuccess', function(event, file, description) {
			var bigup = file.bigup;
Chargement en cours