Browse Source

Gérer avec bigup le changement de document (document_edit) ainsi que l’illustration d’un document (illustrer_document).

master
Matthieu Marcillaud 3 years ago
parent
commit
cf62d9d538
  1. 29
      bigup_pipelines.php
  2. 53
      javascript/bigup.documents_edit.js
  3. 62
      javascript/bigup.documents_illustrer.js
  4. 3
      javascript/bigup.trads.js.html
  5. 3
      lang/bigup_en.php
  6. 3
      lang/bigup_fr.php

29
bigup_pipelines.php

@ -225,6 +225,15 @@ function bigup_formulaire_traiter($flux) {
return $flux;
}
/**
* Liste les formulaires 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
javascript/bigup.documents_edit.js

@ -0,0 +1,53 @@
/** 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
javascript/bigup.documents_illustrer.js

@ -0,0 +1,62 @@
/** 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
javascript/bigup.trads.js.html

@ -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
lang/bigup_en.php

@ -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',

3
lang/bigup_fr.php

@ -21,6 +21,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'deposer_vos_fichiers_ici' => 'Déposer vos fichiers ici',
'deposer_votre_fichier_ici' => 'Déposer votre fichier ici',
'deposer_le_logo_ici' => 'Déposer le LOGO ici',
'deposer_la_vignette_ici' => 'Déposer la vignette ici',
// E
'erreur_de_transfert' => 'Erreur de transfert.',
@ -35,7 +36,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'ou' => 'ou',
// S
'succes_fichier_envoye' => 'Le fichier a été envoyé',
'succes_logo_envoye' => 'Le logo a été envoyé',
'succes_vignette_envoyee' => 'La vignette a été envoyée',
// T
'televerser' => 'Téléverser',

Loading…
Cancel
Save