Composant Calendrier

Étiquetté : , ,

  • Composant Calendrier

    Posté par Loïc Cimon sur 19 décembre 2021 à 0h20

    N’ayant pas trouvé de calendrier répondant complètement à mes besoins, je me suis attelé à en créer un que je vous partage.

    Fonctionnalités

    • Permettre la sélection de plusieurs dates
    • Choisir la première et dernière date sélectionnable
    • Mettre en avant les jours avec des évènements (couleurs configurables)
    • Bloquer des dates spécifiques
    • Afficher ou cacher les weekends
    • Définir le premier jour de la semaine
    • Traduire les textes
    • Design customisable et responsive

    ExempleDétails et téléchargement

    Vous trouverez ce composant sur mon Github avec les explications sur les configurations possibles :

    Enjoy !

    PostID=9m4Oew0e9OLlBad

    Alexandre a répondu Il y a 7 mois, 3 semaines 1 Membre · 5 Réponses
  • 5 Réponses
  • R3dKap

    Membre
    22 décembre 2021 à 11h36

    @Loïc Cimon top composant. Bien foutu et look sympa… J’❤… 😉

    Je l’ai testé et j’aimerais échanger avec toi sur 2 ou 3 points… 🙂

    1. J’ai pas tout de suite compris qu’il s’agissait d’une application à ouvrir. Comme j’ai vu l’extension .MSAPP je me suis dit que c’était un composant et j’ai donc tenté de l’importer en tant que tel mais évidemment ça ne fonctionnait pas. Peut-être ça serait pas mal sur ton Github de proposer à la fois l’app de test avec le composant dedans, mais aussi juste le composant tout seul pour qu’un développeur puisse simplement l’importer dans son appli.
    2. Y’a une fonctionnalité que je pensais trouver sur ton composant que j’aurais trouvé sympa, c’est la sélection d’une période entre 2 dates (un peu comme quand tu réserves un billet A/R pour un train ou un avion). A voir si compliqué à réaliser. On pourrait regarder ensemble si ça te tente…
    3. Lorsqu’on ouvre ton application il demande des autorisation pour les connecteurs Outlook et Office 365 Users. Comme tu ne les utilises pas pour le composant (ils devaient traîner là de tests précédent je suppose), il faudrait les enlever pour éviter la popup à l’ouverture de l’app ou à l’import du composant dans son appli perso. Du coup faudra que tu republies et que tu mettes à jour ton Github…
    4. J’ai remarqué que tu avais des warnings dans ton composant à cause de l’utilisation de collections et je me suis demandé pourquoi il y avait un paramètre de sortie ComponentId. Et puis j’ai compris que c’était justement à cause de la collection qui est globale et que donc tu dois différencier les dates sélectionnées selon l’instance du composant. Je me demande s’il n’y aurait pas une solution de contournement à ce problème (auquel moi-même j’avais déjà été confronté) en utilisant une chaîne de caractères avec séparateur : “Date1;Date2;Date3;…“. Et le Split() te permettrait de transformer ça en tableau. Plus de collection, plus de warning, plus de ComponentId. J’ai fait un test de mon côté et ça fonctionne. Je te mets la petite app en pièce jointe (à ouvrir en tant qu’application)…

    N’hésite pas à challenger tout ça… 😉

    CommentID=JFSwhSCKKDNI1S0, PostID=9m4Oew0e9OLlBad

    • Loïc Cimon

      Membre
      22 décembre 2021 à 17h33

      @R3dKap, je suis ravi qu’il te plaise et d’avoir tes retours sur ce composant.

      1. C’est bien juste le composant que j’ai exporté, pas une application. Cependant, lors de l’import, la plateforme demande de d’abord l’enregistrer dans le cloud. Je me suis demandé si quelque chose avait changé avec l’import/export de composant, ou est ce le fait que le composant est dans une libraire à la base. Si tu as des infos, je suis preneur !
      2. Oui, c’est une bonne idée. Pour le moment, il y a une sélection multiple mais libre. A réfléchir.
      3. Tout à fait, je m’occupe du cleaning !
      4. La gestion des collections dans les composants est entrain d’évoluer. Au vu des derniers paramètres de scope pour les composants et le fait que la collection soient automatiquement préfixée par un genre de GUID, je pense qu’elles ne seront plus globales à terme. J’attend de voir la direction que ça va prendre. Comme ce n’est qu’un warning, je me demande si avec ta méthode, le bénéfice vs la complexité ajoutée est pertinente. Je vais regarder ça. Dans tous les cas, elle est astucieuse ! Merci 🙂

      SubCommentID=OM7JawpjI5b5h9g, CommentID=JFSwhSCKKDNI1S0, PostID=9m4Oew0e9OLlBad

    • R3dKap

      Membre
      23 décembre 2021 à 21h13

      @Loïc Cimon

      1. Alors oui, ça doit venir du fait que tu l’as exporté depuis une bibliothèque. Mais c’est bizarre quand même parce-que quand je l’ouvre en tant qu’application il me ramène même tes écrans de test et de démo. Si c’était un vrai export de composant il ne devrait y avoir QUE le composant dans le MSAPP. Et encore une fois, je n’ai pas réussi à importer ton fichier en tant que composant. Ce que je fais moi habituellement, c’est que j’ai une app par composant. Comme ça je l’exporte depuis l’app et il n’y a que le composant dans l’export (c’est en attendant qu’ils nous laissent la possibilité de sélectionner les composants à exporter).
      2. /
      3. /
      4. De mon point de vue l’utilisation du scope étendu dans les composants doit être réservé à des cas bien précis. Parce-que cela rend les données de ton app accessibles à ton composant, mais aussi vice-versa (comme lors de l’utilisation de collections dans un composant qui est global et donc visible en dehors du composant, ce qui n’est pas souhaitable -> d’où le warning). A mon avis, la notion même de composant implique que c’est une boîte noire pour l’application et que le seul moyen de faire transiter des données entre l’appli et le composant ce sont les paramètres. Maintenant, franchement, je pense que le boulot est pas si énorme que ça pour convertir ton composant en “mode string” pour éliminer les collections. Je jetterais un oeil un de ces 4 et te donnerai mon avis si tu veux…

      SubCommentID=Q8EOEi5WcEwShs7, CommentID=JFSwhSCKKDNI1S0, PostID=9m4Oew0e9OLlBad

    • Loïc Cimon

      Membre
      24 décembre 2021 à 16h55

      @R3dKap

      1. Je viens de faire quelques tests. C’est bien un soucis lié au fait que l’export est fait depuis une libraire de composant. Dans ce cas, l’import échoue. L’export/import depuis une app standard fonctionne correctement. Je vais donc arrêter d’utiliser les libraires de composant pour le moment.
      2. Je suis aligné avec toi sur le fait qu’un composant devrait être une boîte noire. Dommage qu’il n’existe pas (encore ?) de moyen d’avoir des collections propre au scope du composant. Ce qui éviterait d’avoir à utiliser des moyens détournés pour gérer des collections.

      SubCommentID=WhwMkUEy4wUtXp7, CommentID=JFSwhSCKKDNI1S0, PostID=9m4Oew0e9OLlBad

  • Alexandre

    Membre
    15 février 2022 à 22h21

    Hello j’ai fait un composant de sélection de date sur une période. Il est assez complet et mérite sans doute encore quelques améliorations / fonctionnalités. Je vous le laisse juste au cas où 😉

    CommentID=EaMR7YDpzAQw7YQ, PostID=9m4Oew0e9OLlBad

Connectez-vous pour répondre.