Donnez vie à vos documents numériques !
 

Envoi par mail puis fermeture du document

abracadabraPDF Forums PDF – Général Envoi par mail puis fermeture du document

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44997
    Anthony74
    Participant

    Bonjour,
    Je viens de réaliser un formulaire PDF signé que je dois envoyer par mail.
    Jusque là, aucun problème car le fichier envoyé dans le mail est bien figé.
    Par contre le document reste ouvert et me donne la possibilité de faire un “Enregistrer Sous”, laissant la possibilité de modifier les informations.
    Il serait préférable de le fermer dès qu’il est inséré dans le mail. Comment faire svp?

Affichage de 19 réponses de 1 à 19 (sur un total de 19)
  • Auteur
    Réponses
  • #57892
    Merlin
    Maître des clés

    Ben heu…
    Tout dépend du contexte d’utilisation et de la façon prévue pour envoyer le PDF par email (bouton ?…).
    :Euuuh:

    #57893
    Anthony74
    Participant

    Au niveau du contexte c’est juste pour éviter les modifications suite à l’envoi du mail.
    Si la personne conserve la main sur le PDF et modifie les informations du document alors que, par exemple une signature est déjà présente sur le document, cela représente un risque d’usurpation ou autre.
    Et oui j’utilise bien un bouton pour faire cela.
    Que faudrait-il faire stp? La fermeture du document me semble être une bonne solution si cela est possible.

    #57894
    Merlin
    Maître des clés

    Dans ce cas, dans le bouton “Envoyer” par email il y a déjà une action.
    Il faut lui en ajouter une deuxième, soit :
    – Exécuter un article de menu : menu Fichier : Fermer,
    – Exécuter un JavaScript : this.closeDoc();

    C’est l’un ou l’autre, le JavaScript à l’avantage de l’indépendance par rapport à l’interface (= pérennité).
    :Smiley01:

    #57895
    Anthony74
    Participant

    Le JavaScript me plait bien, d’ailleurs comme tu le dis c’est plus pérenne.
    Mais c’est intéressant de pouvoir le faire par menu aussi, merci pour ces infos.

    Par contre lorsque je fais ça j’ai le message qui me demande si je souhaite enregistrer les modifications. (Oui/Non/Annuler)
    Est ce qu’il est possible d’outre passer cette fenêtre stp? :doute:

    #57896
    Merlin
    Maître des clés

    Oui, un logiciel demande à enregistrer un fichier parce-qu’il y a un marqueur de modification qui a été activé, et JavaScript permet de réinitialiser ce marqueur. On peut donc faire précéder le code de fermeture par celui-ci :

    Code:
    this.dirty = false;

    :attention: :attention: :attention:
    Mais attention, c’est très dangereux : toutes les modifications non enregistrées sont définitivement perdues sans aucun avertissement !
    Si un utilisateur vient frapper à ta porte avec un fusil à la main tu sauras pourquoi…
    :Smiley00:

    #57897
    Anthony74
    Participant

    :bonjour: :bonjour: :bonjour:  Merci Merlin!
    Franchement chapeau, je ne savais pas que c’était possible.
    Je vais tester cela très rapidement.
    Et concernant l’utilisateur avec le fusil, on va dire que je vais faire en sorte qu’il ne me retrouve pas… :Smiley03:

    #57898
    Anthony74
    Participant

    Merlin, je viens de tester sur depuis un bouton…

    Code:
    this.dirty = false;
    this.closeDoc();

    Mais la fenêtre d’enregistrement des modifications apparaît encore.
    Est ce qu’il y a une subtilité que j’aurai loupé?

    #57899
    Merlin
    Maître des clés

    Peut-être que ça va trop vite…

    Essaye avec ce temporisateur d’une demi-seconde :

    Code:
    this.dirty = false;
    function DoIt() {this.closeDoc();}
    app.setInterval(“DoIt()”, 500);
    #57900
    Anthony74
    Participant

    Merlin, encore un grand MERCI! :bonjour: :bonjour: :bonjour:

    C’est exactement ce que je voulais. :Smiley08: :Smiley08: :Smiley08:

    #57901
    Anthony74
    Participant

    Merlin, je suis désolé mais quand j’ai testé c’était directement sur un bouton.
    J’ai voulu tester pour fermer le formulaire après l’envoi du mail mais ça ne fonctionne pas.
    Pour tester j’ai placer le code avant l’envoi par mail du fonctionnaire et à ma grande surprise ça fonctionne… Enfin preque…
    Le formulaire est vide mais le formulaire est fermé après l’envoi par mail.
    Aurais tu une solution magique stp? :priere:

    #57902
    Merlin
    Maître des clés

    Merlin, je suis désolé mais quand j’ai testé c’était directement sur un bouton.
    J’ai voulu tester pour fermer le formulaire après l’envoi du mail mais ça ne fonctionne pas.
    Pour tester j’ai placer le code avant l’envoi par mail du fonctionnaire et à ma grande surprise ça fonctionne… Enfin preque…
    Le formulaire est vide mais le formulaire est fermé après l’envoi par mail.

    Kestudi ?
    :Euuuh:  :doute:  :oh:

    #57903
    Anthony74
    Participant

    Désolé. :Ooops:
    Je suis tellement bien lancer dans la programmation de mon formulaire que j’oublie les explications en détail.
    1) Lorsque j’ai testé le code

    Code:
    this.dirty = false;
    function DoIt() {this.closeDoc();}
    app.setInterval(“DoIt()”, 500);

    Cela fonctionne bien à partir d’un bouton avec action JavaScript.
    2) Dans ce même bouton je fais une vérification si un champ est rempli et ensuite j’envoi un mail.
    Après l’envoi de mail je voulais que la page se ferme. J’ai donc rajouté ton code directement après l’encore de l’envoi du mail (toujours dans le code du même bouton). Malheureusement ça ne fonctionne pas car une fenêtre me demande d’enregistrer les modifications avant la fermeture du formulaire.
    3) J’ai essayer d’insérer le code avant le code l’envoi de l’email toujours dans le même bouton dans la même bouton (code JavaScript).
    Le résultat est que ça fonctionne… Le mail est envoyé et le formulaire se ferme sans me demander d’enregistrer les modifications.
    Malheureusement le formulaire qui est en pièce jointe du mail n’est pas rempli.
    Que faire stp? :priere:

    #57904
    brumbies
    Membre

    Bonsoir,

    Ton code pour fermer sans interrogation de l’utilisateur doit de toutes les façons être éxécuté après l’action d’envoi du mail.

    Ensuite, pour l’envoi du mail tu utilises une action via une action “prédéfinie” (envoyer un formulaire) ou via un script de type :
    this.mailDoc({
    bUI: false,
    cTo: “xxxx@xxx.xx“,
    cCC: “xxxx@xxx.xx“,
    cSubject: “Essai”,
    cMsg: “cool ca marche”
    });
    Et tu as mis les 2 actions sur le même déclencheur?

    Joint ton fichier si possible…
    :Smiley01:

    #57905
    Anthony74
    Participant

    Bonsoir,

    Je vous joins un exemple.
    En réessayant plusieurs fois j’ai l’impression que cela vient de ma “Confirmation box”.
    Car si je programme mon envoi sans cette boite de dialogue, le message semble bien être envoyé avec les données et la fenêtre se ferme après l’envoi du mail.
    Pouvez vous m’indiquer si je peux faire quelque chose d’autre svp?
    Si je pouvais être sûr de l’envoi du mail avec les données et de la fermeture du formulaire sans demande de modifications, ce serait super.

    #57906
    brumbies
    Membre

    Ok je regarde ça ce soir… :Smiley01:

    #57907
    brumbies
    Membre

    Bonsoir,

    J’ai tester ton fichier et il fonctionne de mon côté sur Acrobat XI et sur adobe reader XI…

    Si tu veux que les utilisateurs le remplissent sur adobe reader (autre que la version XI) pense à étendre les fonctionnalités d’enregistrement sinon de toutes les manières la pièce jointe sera vierge…

    Maintenant, j’ai l’impression que ton problème vient toujours du timing d’exécution des différentes lignes…
    donc, je modifierai ton script ainsi :

    Code:
    this.dirty = false;
    function DoIt() {this.closeDoc();}
    app.setInterval(“DoIt()”, 500);


    par

    Code:
    app.alert(“Merci d’avoir renseigné ce formulaire.nA bientôt”);
    this.dirty = false;
    this.closeDoc();


    Cela permettra de stopper le déroulement du script après l’envoi du mail…

    Sinon une autre approche pour empecher les modifications, serait de mettre l’ensemble des champs de ton formulaire en lecture seule (this.getField(XXXX).readonly = true;) juste avant l’envoi et de le coupler à un script d’ouverture de document pour réinitialiser les champs et les rendre de nouveaux visibles
    :Smiley01:

    #57908
    Anthony74
    Participant

    Bonjour,
    Effectivement c’était bien un problème de timing, j’ai testé sur différents ordis pour vérifier et le résultat était un peu aléatoire.
    Un grand merci pour l’idée du message de remerciement c’est excellent.
    Seul détail “technique” qui n’en est pas vraiment un l’icône correspond à un message d’Alerte et je vais voir pour le remplacer par un icône d’information.

    Pour la deuxième solution si je passe tous les champs en lecture seule cela empêchera les modifications, ce n’est pas une mauvaise idée. :doute:
    Merci beaucoup en tout cas, le “problème” est résolu. :jerisjaune:
    Et Merci Merlin aussi pour ton aide toujours précieuse. :Smiley03:

    #57909
    Merlin
    Maître des clés

    Seul détail “technique” qui n’en est pas vraiment un l’icône correspond à un message d’Alerte et je vais voir pour la remplacer par une icône d’information.

    Copié-collé depuis la doc :

    (optional) An icon type. Possible values are these:
    0 — Error (default)
    1 — Warning
    2 — Question
    3 — Status
    Note: In Mac OS, there is no distinction between warnings and questions.

    :Smiley15:

    #57910
    Anthony74
    Participant

    Merci beaucoup, le formulaire est vraiment génial maintenant. :bonjour: :bonjour: :bonjour: :bonjour: :bonjour:

Affichage de 19 réponses de 1 à 19 (sur un total de 19)
  • Vous devez être connecté pour répondre à ce sujet.