Rendre un champ obligatoire

Bonjour

Je souhaite que le champ author soit systématiquement renseigné par l’équipe.

Y a t-il moyen d’afficher une popup de blocage ("Champ auteur non renseigné) lors de la Confirmation des changements apportés au tiddler quand : le champ author est vide et date création = date modification svp ?

Merci pour votre aide

hé j’ai la réponse, je partage ça prochainement.

1 J'aime

Bonjour,

Ce serait effectivement intéressant de savoir comment tu as procédé :slight_smile:

Bon, voici la solution pour avoir une popup de blocage si l’auteur n’a pas été renseigné.

  1. [Optionnel] Commencer par redéfinir les 2 tiddlers shadow suivants :
  • $:/core/ui/Actions/new-tiddler
  • $:/core/ui/Buttons/new-here

pour avoir : <$action-sendmessage $message="tm-new-tiddler" tags=<<tags>> author=""/>

=> le champ author est alors créé à vide par défaut lors d’une création de tiddler

  1. Ensuite il faut créer le message de notification, par exemple sous forme d’un tiddler système $:/notification/NoAuthor

avec le contenu suivant : {{$:/core/images/warning}}&ensp;&ensp;Champ author non renseigné !

  1. Ensuite, il faut ajouter la contrainte en redéfinissant le tiddler shadow $:/core/ui/EditTemplate

seule cette macro évolue :

\define save-tiddler-actions()
<$list filter="[<currentTiddler>!has[author]]">
<$action-sendmessage $message="tm-notify" $param="$:/notification/NoAuthor"/>
</$list>
<$list filter="[<currentTiddler>has[author]]">
<$action-sendmessage $message="tm-add-tag" $param={{{ [<newTagNameTiddler>get[text]] }}}/>
<$action-sendmessage $message="tm-add-field" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>
<<delete-edittemplate-state-tiddlers>>
<$action-sendmessage $message="tm-save-tiddler"/>
</$list>
\end
  1. Pour finir :

Ces modifications rendront un upgrade du wiki non trivial.

Je bosse sur un filtre plus évolué pour ne pas avoir à renseigner l’auteur lors d’édition d’anciens tiddlers (dont on ne connait pas forcément l’auteur), à suivre donc…

2 J'aime