Bonjour à tous,
Je partage deux widgets personnalisés que j’ai développés et qui fonctionnent en tandem ou seuls. Ils sont hébergés sur GitHub Pages, et ne nécessitent aucune installation de serveur.
Vous pouvez les tester directement sur cette instance publique : https://docs.getgrist.com/94rvRb94Zq1n/Upload-de-fichier?utm_id=share-doc
1. Widget Upload de fichiers
URL du widget : https://isaytoo.github.io/grist-upload-widget
Ce widget permet d’uploader n’importe quel fichier (image, vidéo, PDF, audio…) vers un service de stockage cloud et d’enregistrer automatiquement l’URL résultante dans une colonne de votre document Grist.
Pourquoi c’est utile ? Sans ce widget, stocker un fichier et récupérer son URL publique dans Grist demande de passer par des outils externes. Ici, tout se fait sans quitter Grist : vous choisissez votre fichier, il part sur votre cloud, et l’URL atterrit directement dans la cellule de la ligne sélectionnée.
Providers supportés :
Cloudinary
Supabase Storage
AWS S3 / compatible (Cloudflare R2, Backblaze B2, MinIO…)
Nextcloud (nouveau)
Endpoint POST personnalisé
Fonctionnalités principales :
- Upload universel — images, vidéos, PDF, audio, et tout autre type de fichier
- Sauvegarde automatique de l’URL dans la colonne Grist mappée
- Barre de progression en temps réel
- Thème clair/sombre automatique (suit l’OS ou Grist)
- Configuration persistante (sauvegardée dans les options du widget)
- Fichier unique, aucune dépendance externe
Concernant Nextcloud : Le widget upload vers Nextcloud via WebDAV et crée automatiquement un lien de partage public. Il suffit de renseigner l’URL de votre instance, votre nom d’utilisateur, et un App Token (à générer dans Nextcloud → Paramètres → Sécurité → Mots de passe d’application). Le dossier de destination est créé automatiquement s’il n’existe pas (défaut : GristUploads).
Concernant la sécurité des identifiants : Les identifiants sont stockés dans les options du widget Grist, directement dans votre document — pas sur un serveur externe, pas dans le localStorage du navigateur. Ils sont visibles uniquement par les administrateurs du document. Pour Nextcloud, il est recommandé d’utiliser un App Token plutôt que votre mot de passe principal, et pour S3, des clés aux permissions minimales (écriture seule, bucket restreint).
Comment l’installer :
- Dans votre document Grist, ajoutez un widget « Personnalisé »
- Collez l’URL :
https://isaytoo.github.io/grist-upload-widget - Niveau d’accès : Accès complet au document
- Dans le Panneau Créateur, mappez la « Colonne de destination » (une colonne Text qui recevra l’URL)
- Au premier chargement, renseignez votre provider dans l’écran de configuration
Note pour les instances self-hosted : si votre Grist bloque les appels CORS vers votre provider cloud, l’extension Chrome Grist Widget Bridge résout le problème.
Code source : https://github.com/isaytoo/grist-upload-widget
2. Widget Visionneuse multimédia
URL du widget : https://isaytoo.github.io/grist-media-viewer-widget
Ce widget affiche directement dans Grist le fichier dont l’URL est stockée dans la ligne sélectionnée. Il est conçu pour fonctionner en complément du widget Upload ci-dessus, mais fonctionne avec n’importe quelle colonne contenant une URL de fichier.
Fonctionnalités principales :
- Images — zoom à la molette, déplacement, rotation, mode plein écran
- PDF — affichage intégré via le lecteur natif du navigateur
- Vidéo — lecteur HTML5 natif (MP4, WebM, MOV…)
- Audio — lecteur HTML5 natif (MP3, WAV, FLAC…)
- Texte/Code — affichage monospace coloré (TXT, JSON, CSV, Markdown…)
- Galerie avec miniatures si une cellule contient plusieurs URLs (séparées par espace ou virgule)
- Raccourcis clavier :
←/→navigation,+/-zoom,Fplein écran,Échapfermer - Swipe mobile (écrans tactiles)
- Bouton de téléchargement
- Détection automatique du type depuis l’extension de l’URL
Comment l’installer :
- Dans votre document Grist, ajoutez un widget « Personnalisé »
- Collez l’URL :
https://isaytoo.github.io/grist-media-viewer-widget - Dans le Panneau Créateur, mappez les colonnes :
- URL du fichier (obligatoire) — colonne contenant l’URL (ou plusieurs URLs) des fichiers
- Nom du fichier (optionnel) — colonne pour un nom d’affichage
- Sélectionnez une ligne → le fichier s’affiche automatiquement
Code source : https://github.com/isaytoo/grist-media-viewer-widget
Workflow typique avec les deux widgets ensemble
Avant tout, créez une table dédiée dans votre document Grist (ex. LES_LIENS_URL) avec au minimum une colonne de type Texte (ex. lien) — c’est dans cette colonne que les URLs uploadées seront enregistrées dynamiquement à chaque upload.
Placez ensuite les deux widgets côte à côte sur la même page Grist, liés à cette table :
- Widget Upload (gauche) → vous uploadez un fichier, l’URL s’écrit automatiquement dans la colonne
liende la ligne sélectionnée - Widget Visionneuse (droite) → le fichier correspondant s’affiche immédiatement
Chaque nouvelle ligne de la table correspond à un fichier uploadé, ce qui vous constitue au fil du temps une médiathèque directement dans Grist.
Vous pouvez tester les deux widgets directement sur cette instance publique Grist :
https://docs.getgrist.com/94rvRb94Zq1n/Upload-de-fichier?utm_id=share-doc










