mercredi 18 novembre 2009

Carnet d'adresses:Un pop-up pour intervertir le nom et le prénom

J'utilise très souvent la fonction permettant de créer un nouveau contact dans le carnet d'adresses à partir de la réception de mails. Cette fonction est souple et rapide.
Toutefois, je trouve assez agaçant l'interversion du nom du prénom dans la fiche d'adresse. J'aime que les choses soient bien rangées et dans le bon ordre.
J'ai donc écrit un petit plugin pour le carnet d'adresses qui remet les choses en place sans effort. Au passage, le script permet de formater le nom du contact en majuscules et le prénom en minuscules tout en capitalisant les initiales. Vous pourrez même choisir le format en éditant le script!

Voici donc comment se présente mon modèle de contact dans le carnet d'adresses:

Après la création du contact à partir de l'adresse mail dans AppleMail, voici ce que j'obtiens:

Vous en conviendrez, ce n'est pas très propre: inversion du nom et du prénom, pas de mise en forme du nom.

Grâce au plug-in ABPlugin Inverser Nom Prenom, la situation se rétablit très facilement. Pour cela, il faut télécharger le plugin à cette adresse: ABPluginInverser.zip

Si ce n'est pas fait, décompresser le fichier et déplacer le fichier ABPlugin Inverser Nom Premon.scpt dans le dossier Address Book Plug-ins que vous trouverez dans le dossier Bibliothèque de votre compte (votre petite maison!). Pour les utilisateurs de Mac OS X 10.7 (Lion), le dossier "~/Bibliothèque" est caché par défaut par le système. Il faudra passer par le menu "Aller" du Finder tout en appuyant sur la touche Option/Alt du clavier pour s'y rendre!

Quittez l'application Carnet d'adresses si elle est active et relancez la pour prendre en compte ce nouvel utilitaire.

Vous obtiendrez maintenant un pop-up en face du mail de votre contact qui vous permettra de lancer ce script.


Voilà, maintenant tout rentre dans l'ordre!



Vous aurez sans doute remarqué le changement! Notez que l'adresse mail n'a pas été modifiée.
Enjoy!
Patrick

19 commentaires:

Bernard a dit…

Très utile mais je n'aime pas l'affichage du nom en CAPITAL.
Dis msieu, t'aurais pas une ptite option pour choisir la casse du nom ?
Bernard

Patrick a dit…

Qu'à cela ne tienne, Bernard!
Si tu as une ancienne version du script, télécharge-le tout d'abord de nouveau avec le lien ci-dessus puis déplace le dans le dossier adéquat.
Il te suffit ensuite d'ouvrir ce script avec l'éditeur de script fourni par Apple et de commenter les lignes qui ne te conviennent pas. C'est expliqué dans les commentaires du script.
Voilà, comme cela tu peux choisir le format d'affichage du nom de famille.
Patrick

Johann a dit…

Bonjour je viens de switcher et comme vous l'affichage du carnet d'adresse ne me convient pas? j'ai donc téléchargé votre script et je pense avoir suivi vos indications. Pourtant je n'obtiens pas le même résultat ?

Patrick a dit…

Johann,
Vous pouvez modifier directement les formats d'affichage directement dans le script en commentant ou décommentant les lignes qui vous conviennent:
(* ___________________FORMAT DU NOM________________ *)
set Nom to my change_case_of(Nom, "Upper")
-- set Nom to my Capitalize(Nom) of me
(* __________________FORMAT DU PRENOM___________________ *)
set prenom to my Capitalize(prenom)
-- set prenom to my change_case_of(Prenom, "Upper")
(* _____________FIN DES OPTIONS DE FORMAT________________ *)

La fonction Capitalize met la première lettre en majuscule et le reste en minuscule. La fonction Change_case permet de tout mettre en majuscules (Upper) ou tout en minuscules (Lower).

Faites attention car la récupération d'adresses à partir des mails produit quelquefois un amalgame Nom+Prénom dans un seul champ. Il vous faut donc séparer le nom du prénom avant tout appel du script !
Bon courage.

Johann a dit…

Patrick,

je me suis mal exprimé. C'est l'affichage initiale qui ne me convient pas. Je ne cherche pas à transformer le votre.
Par contre je n'arrive pas à faire marcher votre script. L'option inverser n'apparait pas, bien que j'ai mis votre fichier à l'endroit spécifié. Y aurait-il une autre action à faire que je n'aurais pas fait ? Du genre peut être effacer les première lignes du script qui me semblent plus être de l'ordre de l'explication que vraiment nécessaire à l'execution du script ?

Johann a dit…

Bonjour Bernard,

en supprimant le script et en le téléchargeant à nouveau, le pop up apparait mais s'il inverse bien nom et prénom, il met les majuscules sur le prénom et pas le nom et en correspond donc pas à votre modèle.
Malgré votre réponse, j'ai du mal à comprendre la rédaction d'un script. Si je veux le nom et le prénom avec la première lettre en majuscule où dois-je mettre Capitalize ?

Seulement Juste devant (Nom, "Upper") ?
Ici mais aussi plsu bas (devant (this text, this case) et aussi apres le end ?

Désolé encore

Patrick a dit…

Effectivement Johann, le résultat de la fonction Capitalize() du texte passé en argument est un texte comportant la première lettre en capitale et le reste en minuscules.
La fonction Upper() permet de passer tout le texte en manujuscule ou en minuscule selon l'option sélectionnée.

Si vous mettez deux tirets (--) devant le début de la ligne cela passe toute la ligne en commentaire. Celle-ci ne s'exécutera pas.
Au contraire, si vous retirer les deux tirets en début de ligne, celle-ci sera alors active et s'exécutera.

Comme vous pouvez le voir dans le commentaire précédent, les lignes sont regroupées par deux: le premier bloc s'occupe du format du nom et l'autre du format du prénom. L'une des deux lignes est active l'autre non.
Il vous suffit donc d'activer ce qui vous convient et de désactiver l'autre option.

A noter que le script commence d'abord par inverser le nom et le prénom avant d'appliquer le format.
Une fois que cela est réalisé, il affecte les nouvelles valeurs aux champs d'address book et sauvegarde la modification.

Vous pouvez donc adapter le comportement du script à vos besoins propres.
Patrick(

Pierre-Yves a dit…

Super pratique ! Mais plusieurs de mes contacts n'ont pas de email... Comment appeler votre script dans ces cas-là ?

Pierre-Yves a dit…

Merci, c'est super pratique. Mais dans les cas où mon contact n'a pas de email, comment alors appeler votre script ?

Patrick a dit…

Bonjour Pierre-Yves.
Pour réaliser cela, il suffit de modifier le script pour que le menu déroulant ne soit plus associé à l'email mais à une autre propriété du carnet d'adresse.

Remplacez donc "email" par la propriété à laquelle vous désirez associer le menu déroulant (maiden name, phone, email, url, birth date, custom date, related name, aim, icq, jabber, msn, yahoo, address) dans cette partie du script:
On action property
return
"email"
end action property

Bon script.
Patrick

Ferréol a dit…

peut on lancer ce script en cliquant sur l'image du contact, si oui, comment?
Merci

Patrick a dit…

Je pense pas que cela soit possible car les propriétés que l'on peut associer sont celles citées dans le dictionnaire et reprises ci-dessus.

Bernard 2A a dit…

Bonjour,
Quid pour OS 10.7 ???
Le plugin "ABPluginInverser.zip" marche-t-il encore ?
Et si oui, où le mettre ?
En effet, je ne trouve plus de dossier "Address Book Plug-ins" dans "Bibliothèque" ... ?!
Merci,
Bernard

Patrick a dit…
Ce commentaire a été supprimé par l'auteur.
Patrick a dit…

Eh bien, Bernard2A, vous me voyez fort embarrassé pour vous répondre car je n'ai pas encore franchi le pas de Mac Lion.
Je vais essayer de voir comment cela fonctionne avec cette nouvelle version du système et compléter mon post en fonction des informations que je trouverai.
A suivre, donc!

Patrick a dit…

Bernard H me signale que la bibliothèque utilisateur n'est pas visible par défaut avec Mac OS X 10.7 Lion. Il faut utiliser en passer par le menu "Aller" du menu Finder tout en appuyant sur touche Option pour faire apparaître cette bibliothèque utilisateur.
Vous y trouverez le dossier Address Book Pugins dans lequel il suffit de glisser le script après sa décompression.
N'oubliez pas de redémarrer votre carnet d'adresses pour ce script soit pris en compte par le logiciel.
Vous pourrez aussi modifier son comportement en l'éditant avec l'éditeur Applescript.
Merci Bernard H pour ce conseil très utile.

Bernard 2A a dit…

Bonjour,

Merci pour le tuyau ! Ah la la, pourquoi cacher les trucs;) ?!

J'ai pas bien compris le truc aves "Aller"/ Option mais j'ai trouvé une autre solution très efficace pour accéder au bon répertoire : voir sur http://www.mac-help.com/t75293-p4-user-library-folder-hidden-10-7-lion.html

"Apple is not trying very hard to hide ~/Library. From a command line, I can type "open ~/Library"
and I get a Finder window showing ~/Library.

Bernard

Yvan GODARD a dit…

Petite question : ce script marche très bien sur les contacts stockés en local mais la popup ne s'affiche pas sur les vCards hébergées sur un compte Carddav.
A priori ce bug est rencontré sur tous les scripts/plugins qui s'appliquent sur l'adresse email. Car les autres plugins que j'utilise dans le carnet d'adresse rencontrent le même problème. Quelqu'un aurait une piste ?

Yvan GODARD a dit…

Re-bonjour,

pour info, j'ai bidouillé un peu dans le script. C'est vraiment étrange mais si je remplace le email par un autre champ dans
On action property
return "email"
end action property
la popup refonctionne sur le champ email mais dysfonctionne sur le nouveau champ choisi.

Et c'est très clair : en local pas de problème.... sur les comptes Carddav : ça coince ?

Il y aurait une autre manière de déclencher ce script ? Via automator ?
Je continue de chercher de mon côté mais suis preneur d'un avis extérieur.

Merci !