Continuez à découvrir cette plateforme puissante – une solution robuste et conviviale pour construire des applications web professionnelles avec un effort de codage minimal.
Intégré à 4D, Qodly Studio for 4D vous permet d’exploiter la logique métier existante développée pour les applications 4D.
Entrons dans les détails et voyons comment votre application peut fournir plus que de simples données tout en offrant une interface utilisateur dynamique et une forte protection des données grâce à la mise en place de privilèges.
FOURNIR PLUS QUE DES DONNÉES AVEC LA NOUVELLE classe 4D.IncomingMessage
Avec votre application Qodly, vous pouvez désormais facilement permettre à vos utilisateurs finaux de télécharger des fichiers.
Utilisez des instances de la nouvelle classe 4D.OutgoingMessage que votre application peut recevoir via un appel de fonction ORDA ou un appel de fonction singleton.
Cela permet de renvoyer un contenu web complet avec un corps, des en-têtes HTTP et des codes d’état prêts à être traités par le navigateur.
Il suffit d’implémenter une fonction renvoyant une instance de la nouvelle classe 4D.OutgoingMessage, de mettre en place l’appel de fonction, et le navigateur web gère automatiquement l’instance de classe 4D.OutgoingMessage.
Aucune étape supplémentaire n’est nécessaire !
Lisez cet article de blog pour en savoir plus.
exemple
Dans l’exemple ci-dessous, la fonction getThumbnail() de la classe de données Products reçoit en paramètre un nom de produit, une largeur et une hauteur. Elle renvoie au navigateur une instance de la nouvelle classe 4D.OutgoingMessage dont le corps contient une vignette de l’image du produit à la taille requise.
Notez l’utilisation du nouveau mot-clé onHTTPGet. Si ce mot-clé est appliqué à une fonction, cette fonction peut être appelée avec un verbe GET !
Le téléchargement d’un fichier peut alors se faire en cliquant simplement sur un lien.
Class extends DataClass
exposed onHTTPGet Function getThumbnail($name : Text; $width : Integer; $height : Integer) : 4D.OutgoingMessage
var $file:=File("/RESOURCES/Images/"+$name+".jpg")
var $image; $thumbnail : Picture
var $response:=4D.OutgoingMessage.new()
READ PICTURE FILE($file.platformPath; $image)
CREATE THUMBNAIL($image; $thumbnail; $width; $height; Scaled to fit)
$response.setBody($thumbnail)
$response.setHeader("Content-Type"; "image/jpeg")
return $response
C’est si simple de mettre en place cet appel de fonction dans Qodly !
Et voici le résultat en action !
nouvel événement OnPrivilegeChange
Si vous avez mis en place des privilèges pour protéger vos données, l’accès aux données n’est pas accordé si les privilèges appropriés ne sont pas dans la session.
Cela peut conduire à des scénarios ennuyeux comme celui-ci :
-
- L’utilisateur n’est pas authentifié et donc la session ne contient pas de privilèges, de sorte que le chargement d’une source Qodly (se référant à des données protégées par des permissions) au démarrage de l’application échoue parce que les privilèges requis ne sont pas présents.
-
- L’utilisateur s’est authentifié, les privilèges requis sont maintenant dans la session, mais … l’application n’en est pas informée pour charger à nouveau la source Qodly.
Grâce au nouvel événement OnPrivilegeChange disponible sur la page, vous pouvez déclencher une action (action standard, navigation ou appel de fonction) lorsque les privilèges de la session sur le serveur ont changé.
Exemple de changement de privilèges
Dans l’exemple ci-dessous, l’application HealthCare comporte un en-tête affichant des statistiques (nombre de médecins, nombre de patients, …). Cet en-tête affiche également le premier médecin (celui qui a le plus grand nombre de rendez-vous). Il s’agit d’une source Qodly partagée (mostBusyDoctor) chargée au démarrage de l’application.
Tant que l’utilisateur n’est pas authentifié, cette information n’est pas disponible car l’accès à la lecture des médecins n’est pas autorisé. Une fois l’authentification effectuée, grâce au nouvel événement OnPrivilegeChange mis en place sur la page Header, cette source de données peut être chargée.
Et voici le résultat en action ; regardez l’en-tête !
Rôles et privilèges – Afficher/masquer les privilèges hérités
Si vous avez déjà utilisé l’interface Rôles et privilèges et mis en place des privilèges imbriqués, vous savez qu’il est utile de voir quelles sont les permissions héritées d’autres privilèges.
Mais parfois, vous devez vous concentrer sur une vue plus claire avec uniquement les autorisations que vous avez explicitement définies pour un privilège.
C’est désormais possible. Il suffit d’activer un interrupteur pour cela !
N’attendez plus pour essayer les nouvelles fonctionnalités de Qodly studio for 4D et rendez votre application web conviviale et puissante !