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

Gérer avec bigup le changement de document (document_edit) ainsi que...

Gérer avec bigup le changement de document (document_edit) ainsi que l’illustration d’un document (illustrer_document).
parent 4a23034a
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+27 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -225,6 +225,15 @@ function bigup_formulaire_traiter($flux) {
	return $flux;
}

/**
 * Liste les formulaires où BigUP se charge automatiquement
 * (necessite un traitement spécifique)
 *
 * @return array
 */
function bigup_medias_formulaires_traitements_automatiques() {
	return ['joindre_document', 'editer_logo', 'editer_document', 'illustrer_document', 'formidable'];
}

/**
 * Ajouter bigup sur certains formulaires
@@ -237,7 +246,7 @@ function bigup_formulaire_traiter($flux) {
 **/
function bigup_medias_formulaire_charger($flux) {
	if (
		in_array($flux['args']['form'], ['joindre_document', 'editer_logo', 'formidable'])
		in_array($flux['args']['form'], bigup_medias_formulaires_traitements_automatiques())
		and is_array($flux['data'])
	) {
		$flux['data']['_bigup_rechercher_fichiers'] = true;
@@ -257,7 +266,7 @@ function bigup_medias_formulaire_charger($flux) {
function bigup_medias_formulaire_fond($flux) {
	if (
		!empty($flux['args']['contexte']['_bigup_rechercher_fichiers'])
		and in_array($flux['args']['form'], ['joindre_document', 'editer_logo', 'formidable'])
		and in_array($flux['args']['form'], bigup_medias_formulaires_traitements_automatiques())
	) {
		$bigup = bigup_get_bigup(['args' => $flux['args']['contexte']]);
		$formulaire = $bigup->formulaire($flux['data'], $flux['args']['contexte']);
@@ -272,6 +281,22 @@ function bigup_medias_formulaire_fond($flux) {
				$formulaire->inserer_js('bigup.documents.js');
				break;

			case 'editer_document':
				$formulaire->preparer_input(
					'fichier_upload[]',
					['previsualiser' => true]
				);
				$formulaire->inserer_js('bigup.documents_edit.js');
				break;

			case 'illustrer_document':
				$formulaire->preparer_input(
					'fichier_upload[]',
					['input_class' => 'bigup_logo', 'previsualiser' => true]
				);
				$formulaire->inserer_js('bigup.documents_illustrer.js');
				break;

			case 'editer_logo':
				$options = ['input_class' => 'bigup_logo', 'previsualiser' => true];
				if (intval($flux['args']['args'][1]) or $flux['args']['args'][0] !== 'site') {
+53 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
/** Gérer le formulaire de modification de documents avec Bigup */
function formulaires_documents_edit_avec_bigup () {

	// trouver les input qui envoient des fichiers
	$(".formulaire_editer_document")
		.find("form .editer_fichier_upload")
		.find("label").hide().end()
		.find("input[type=file].bigup")
		.not('.bigup_document')
		.addClass('bigup_document')
		.on('bigup.fileSuccess', function(event, file, description) {
			var bigup = file.bigup;
			var input = file.emplacement;

			var data = $.extend(bigup.getFormData(), {
				joindre_upload: true,
				joindre_zip: true, // les zips sont conservés zippés systématiquement.
				formulaire_action_verifier_json: true,
				bigup_reinjecter_uniquement: [description.bigup.identifiant],
			});

			// verifier les champs
			$.post(bigup.target, data, null, 'json')
				.done(function(erreurs) {
					var erreur = data.fichier_upload || erreurs.message_erreur;
					if (erreur) {
						bigup.presenter_erreur(input, erreur);
					} else {
						delete data.formulaire_action_verifier_json;
						// Faire le traitement prévu, supposant qu'il n'y aura pas d'erreur...
						var conteneur = bigup.form.parents('.formulaire_editer_document');
						conteneur.animateLoading();
						// Faire le traitement prévu, supposant qu'il n'y aura pas d'erreur...
						$.post(bigup.target, data)
							.done(function(html) {
								bigup.presenter_succes(input, _T('bigup:succes_fichier_envoye'));
								bigup.form.parents('.formulaire_spip').parent().html(html);
							})
							.fail(function(data) {
								conteneur.endLoading();
								bigup.presenter_erreur(input, _T('bigup:erreur_probleme_survenu'));
							});
					}
				})
				.fail(function(data) {
					bigup.presenter_erreur(input, _T('bigup:erreur_probleme_survenu'));
				});
		});
}
jQuery(function($) {
	formulaires_documents_edit_avec_bigup();
	onAjaxLoad(formulaires_documents_edit_avec_bigup);
});
+62 −0
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")
		.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;
			var input = file.emplacement;

			var data = $.extend(bigup.getFormData(), {
				joindre_upload: true,
				joindre_zip: true, // les zips sont conservés zippés systématiquement.
				formulaire_action_verifier_json: true,
				bigup_reinjecter_uniquement: [description.bigup.identifiant],
			});

			// verifier les champs
			$.post(bigup.target, data, null, 'json')
				.done(function(erreurs) {
					var erreur = data.fichier_upload || erreurs.message_erreur;
					if (erreur) {
						bigup.presenter_erreur(input, erreur);
					} else {
						delete data.formulaire_action_verifier_json;
						var conteneur = bigup.form.parents('.formulaire_illustrer_documents');
						conteneur.animateLoading();
						// Faire le traitement prévu, supposant qu'il n'y aura pas d'erreur...
						$.post(bigup.target, data)
							.done(function(html) {
								bigup.presenter_succes(input, _T('bigup:succes_vignette_envoyee'));
								bigup.form.parents('.formulaire_spip').parent().html(html);
							})
							.fail(function(data) {
								conteneur.endLoading();
								bigup.presenter_erreur(input, _T('bigup:erreur_probleme_survenu'));
							});
					}
				})
				.fail(function(data) {
					bigup.presenter_erreur(input, _T('bigup:erreur_probleme_survenu'));
				});
		})
		.closest('.editer').find('.dropfiletext').html(_T('bigup:deposer_la_vignette_ici'));
}
jQuery(function($) {
	formulaires_documents_illustrer_avec_bigup();
	onAjaxLoad(formulaires_documents_illustrer_avec_bigup);
});
+3 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -24,6 +24,7 @@ Trads.set('bigup', {
	deposer_vos_fichiers_ici: "<:bigup:deposer_vos_fichiers_ici|texte_script:>",
	deposer_votre_fichier_ici: "<:bigup:deposer_votre_fichier_ici|texte_script:>",
	deposer_le_logo_ici: "<:bigup:deposer_le_logo_ici|texte_script:>",
	deposer_la_vignette_ici: "<:bigup:deposer_la_vignette_ici|texte_script:>",

	// E
	erreur_de_transfert: "<:bigup:erreur_de_transfert|texte_script:>",
@@ -35,7 +36,9 @@ Trads.set('bigup', {
	ou: "<:bigup:ou|texte_script:>",

	// S
	succes_fichier_envoye: "<:bigup:succes_fichier_envoye|texte_script:>",
	succes_logo_envoye: "<:bigup:succes_logo_envoye|texte_script:>",
	succes_vignette_envoyee: "<:bigup:succes_vignette_envoyee|texte_script:>",

	// T
	televerser: "<:bigup:televerser|texte_script:>"
+3 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -21,6 +21,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
	'deposer_vos_fichiers_ici' => 'Drop your files here',
	'deposer_votre_fichier_ici' => 'Drop your file here',
	'deposer_le_logo_ici' => 'Drop the LOGO here',
	'deposer_la_vignette_ici' => 'Drop the thumbnail here',

	// E
	'erreur_de_transfert' => 'Upload error',
@@ -35,7 +36,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
	'ou' => 'or',

	// S
	'succes_fichier_envoye' => 'File has been sent',
	'succes_logo_envoye' => 'Logo has been sent',
	'succes_vignette_envoyee' => 'Thumbnail has been sent',

	// T
	'televerser' => 'Upload',
Chargement en cours