Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calendrier public au format iCal (permettant de s'y abonner dans Google Agenda, macOS Calendrier, etc.) #326

Closed
Donov4n opened this issue Feb 12, 2022 · 0 comments · Fixed by #330
Assignees
Labels
Nouvelle fonctionnalité Tickets pour les demandes de nouvelles fonctionnalités qu'on aimerait voir dans Robert2
Milestone

Comments

@Donov4n
Copy link
Member

Donov4n commented Feb 12, 2022

L'idée étant ici de fournir, dans l'interface, un lien vers un calendrier au format iCal. Calendrier auquel on pourra s'abonner dans des applications comme Google Agenda, Apple Calendrier ou autre.

L'URL devra être suffisamment complexe pour qu'on ne puisse pas "deviner" l'URL du calendrier publique d'une instance (via un UUID par exemple), il faudra peut-être voir pour désactiver cette fonctionnalité par défaut d'ailleurs.

En effet, ce type d'URL de calendrier à laquelle on peut s'abonner n'a pas de système d'authentification donc sur le principe, toute personne ayant l'URL pourra s'y abonner anonymement et voir les événements du calendrier (en read-only seulement).
(à l'avenir, si financé / éventuellement fonctionnalité premium, il pourra être possible de s'abonner à son propre calendrier, avec identification, et il sera possible d'éditer / supprimer les événements mais ceci est hors du cadre de ce ticket et cette fonctionnalité ne remplace d'ailleurs pas celle de ce ticket (cf. le fonctionnement de Google drive pour le partage))

Le "calendrier" en question contiendra tous les événements futurs et les événements passés limités à 1 mois de la date courante, à l'exclusion des événements archivés. Ceci pour éviter de fournir tous les événements depuis la nuit des temps dans l'unique fichier iCal (sauf s'il y a la possibilité de "paginer" la liste des événements).

Il est à noter que pour ce type d'URL avec abonnement, les providers de calendrier appliquent une politique d'actualisation qui leur est propre. Ceux qui auront la nécessité d'avoir une vue précise des événements à un "Moment M" devront continuer de passer par la vue "Calendrier" de Loxya. Pour exemple, Apple permet de configurer le délai de rafraichissement (max toutes les 5 minutes), Google Agenda, par contre, ne le permet pas et actualise seulement toutes les 24 heures (!!).


L'URL public, globale à l'application donc, pourra être récupérée via (à voir) :

  • Soit dans les paramètres globaux de l'application, onglet "Calendrier" dans une nouvelle partie.
  • Dans la page du calendrier global, avec un nouveau bouton type "Partage" qui ouvrira une modale / ou un dropdown à la 'Github / récupération d'URL de checkout des repos'.

Quoi qu'il en soit, que ce soit dans la modale / dropdown ou dans la nouvelle des sections des paramètres :

  • Comme dit plus haut, cette fonctionnalité doit être désactivée par défaut, activable via cette section.
  • Permettre de "reset" l'URL (= de générer un nouvel UUID) en cas de suspicion de fuite.
  • Ceci ne doit être accessible que par les admins (qui distribueront, à leur convenance et leurs risques et périls, l'URL à leurs collaborateurs)
  • Il faudra un disclamer rappelant les risques à partager cette URL et globalement à activer cette feature (= que des tiers puissent voir les événements qui l'URL fuite).
  • Il faudra être explicite sur le fait que cette URL est globale à l'application, peut-être qu'en ça, le fait de le mettre dans les params globaux serait plus judicieux.
  • Expliquer l'histoire de l'actualisation propre à chaque provider (?)
@Donov4n Donov4n added the Nouvelle fonctionnalité Tickets pour les demandes de nouvelles fonctionnalités qu'on aimerait voir dans Robert2 label Feb 12, 2022
@Donov4n Donov4n added this to the 0.18.0 milestone Feb 12, 2022
@Donov4n Donov4n self-assigned this Feb 12, 2022
Donov4n added a commit that referenced this issue Mar 5, 2022
…ier externe (#330)

* Sécurise la route d'update des settings

* Ajoute les nouvelles clés de configuration liées au calendrier public

* Corrige l'URL de création d'un utilisateur par les admins

* Refactoring

* Supprime le support de PHP < 7.4 (#327)

* Ajout de l'action de controller liée au calendrier public

* Début de l'ajout de la section "Abonnement externe au calendrier" dans les paramètres du calendrier

* Ajoute le formatage des données du calendrier public

* Ajoute la possibilité de reset une des configurations de l'application

* Améliore le style de la page des paramètres

* Affiche l'URL du calendrier public si les données sont persistées côté serveur

* Remplace les modules lodash par lodash lui-même (les modules sont obsolètes)

* Améliore le component `<Button>`

* Ajoute la possibilité de regénerer l'URL du calendrier public en cas de fuite

* Ajoute un `input[type=copy]` permettant de facilement copier l'URL du calendrier public

* Met à jour le CHANGELOG

* Corrections suite au CI

* Corrige certaines typos / formulations

* Supprime les codes retour explicites dans le `SettingController`

* Corrige un test unitaire
@Donov4n Donov4n closed this as completed Mar 5, 2022
Donov4n added a commit that referenced this issue Nov 5, 2023
* Ajoute des données supplémentaires aux événements

* Refactoring divers

* Déplace le dossier `tests/Fixtures` vers `tests/fixtures`

* Migre le namespace `Robert2`  vers `Loxya`

* Met à jour le `composer.lock`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Nouvelle fonctionnalité Tickets pour les demandes de nouvelles fonctionnalités qu'on aimerait voir dans Robert2
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant