Browse Source

Récupère l'ancien framadate

à la racine, quand on lance le serveur, on a le framadate tel qu'il est aujourd'hui

en ajoutant  sur l'url, on accède à la maquette interactive dans son état actuel
colors-config
Yannick Francois 4 years ago
parent
commit
50e56a0396
  1. 5
      .gitignore
  2. 17
      .htaccess
  3. 14
      AUTHORS.md
  4. 235
      CHANGELOG.md
  5. 7
      CONTRIBUTING.md
  6. 1
      INSTALL.md
  7. 519
      LICENCE.fr.txt
  8. 515
      LICENSE.en.txt
  9. 22
      Makefile
  10. 83
      README.md
  11. 95
      action/add_comment.php
  12. 94
      action/send_edit_link_by_email_action.php
  13. 1
      admin/.htpasswd
  14. 230
      admin/check.php
  15. 29
      admin/cleanDemo.php
  16. 24
      admin/index.php
  17. 50
      admin/install.php
  18. 29
      admin/logs.php
  19. 80
      admin/migration.php
  20. 101
      admin/polls.php
  21. 60
      admin/purge.php
  22. 510
      adminstuds.php
  23. 54
      app/classes/Framadate/AbstractMigration.php
  24. 58
      app/classes/Framadate/Choice.php
  25. 35
      app/classes/Framadate/CollectMail.php
  26. 36
      app/classes/Framadate/Editable.php
  27. 7
      app/classes/Framadate/Exception/AlreadyExistsException.php
  28. 7
      app/classes/Framadate/Exception/ConcurrentEditionException.php
  29. 12
      app/classes/Framadate/Exception/ConcurrentVoteException.php
  30. 7
      app/classes/Framadate/Exception/MomentAlreadyExistsException.php
  31. 121
      app/classes/Framadate/Form.php
  32. 38
      app/classes/Framadate/Message.php
  33. 99
      app/classes/Framadate/Migrations/Version20150101000000.php
  34. 160
      app/classes/Framadate/Migrations/Version20150102000000.php
  35. 263
      app/classes/Framadate/Migrations/Version20150102100000.php
  36. 70
      app/classes/Framadate/Migrations/Version20150117000000.php
  37. 76
      app/classes/Framadate/Migrations/Version20150402000000.php
  38. 72
      app/classes/Framadate/Migrations/Version20150405000000.php
  39. 78
      app/classes/Framadate/Migrations/Version20150624000000.php
  40. 102
      app/classes/Framadate/Migrations/Version20150918000000.php
  41. 71
      app/classes/Framadate/Migrations/Version20151012075900.php
  42. 69
      app/classes/Framadate/Migrations/Version20151012082600.php
  43. 72
      app/classes/Framadate/Migrations/Version20151028000000.php
  44. 51
      app/classes/Framadate/Migrations/Version20151205000000.php
  45. 65
      app/classes/Framadate/Migrations/Version20180220000000.php
  46. 88
      app/classes/Framadate/Migrations/Version20180411000000.php
  47. 65
      app/classes/Framadate/Migrations/Version20180419170000.php
  48. 65
      app/classes/Framadate/Migrations/Version20180419180000.php
  49. 60
      app/classes/Framadate/Migrations/Version20180419190000.php
  50. 100
      app/classes/Framadate/Migrations/Version20180525110000.php
  51. 69
      app/classes/Framadate/Repositories/AbstractRepository.php
  52. 69
      app/classes/Framadate/Repositories/CommentRepository.php
  53. 241
      app/classes/Framadate/Repositories/PollRepository.php
  54. 81
      app/classes/Framadate/Repositories/RepositoryFactory.php
  55. 134
      app/classes/Framadate/Repositories/SlotRepository.php
  56. 140
      app/classes/Framadate/Repositories/VoteRepository.php
  57. 34
      app/classes/Framadate/Security/PasswordHasher.php
  58. 90
      app/classes/Framadate/Security/Token.php
  59. 316
      app/classes/Framadate/Services/AdminPollService.php
  60. 148
      app/classes/Framadate/Services/InputService.php
  61. 143
      app/classes/Framadate/Services/InstallService.php
  62. 23
      app/classes/Framadate/Services/LogService.php
  63. 127
      app/classes/Framadate/Services/MailService.php
  64. 86
      app/classes/Framadate/Services/NotificationService.php
  65. 398
      app/classes/Framadate/Services/PollService.php
  66. 114
      app/classes/Framadate/Services/PurgeService.php
  67. 91
      app/classes/Framadate/Services/SecurityService.php
  68. 63
      app/classes/Framadate/Services/SessionService.php
  69. 35
      app/classes/Framadate/Services/SuperAdminService.php
  70. 209
      app/classes/Framadate/Utils.php
  71. 126
      app/inc/config.php
  72. 116
      app/inc/config.test.php
  73. 45
      app/inc/constants.php
  74. 45
      app/inc/i18n.php
  75. 91
      app/inc/init.php
  76. 122
      app/inc/smarty.php
  77. 23
      app/tests/Framadate/FramaTestCase.php
  78. 35
      app/tests/Framadate/Services/InputServiceUnitTest.php
  79. 32
      app/tests/Framadate/Services/MailServiceUnitTest.php
  80. 3
      app/tests/bootstrap.php
  81. 72
      bandeaux.php
  82. 58
      bin/doctrine
  83. 46
      buildlang.php
  84. 68
      compare.php
  85. 87
      composer.json
  86. 3566
      composer.lock
  87. 220
      create_classic_poll.php
  88. 263
      create_date_poll.php
  89. 313
      create_poll.php
  90. 25
      css/app/create_poll.css
  91. 587
      css/bootstrap-theme.css
  92. 1
      css/bootstrap-theme.css.map
  93. 6
      css/bootstrap-theme.min.css
  94. 1
      css/bootstrap-theme.min.css.map
  95. 6757
      css/bootstrap.css
  96. 1
      css/bootstrap.css.map
  97. 6
      css/bootstrap.min.css
  98. 1
      css/bootstrap.min.css.map
  99. 512
      css/datepicker.css
  100. 791
      css/datepicker3.css
  101. Some files were not shown because too many files have changed in this diff Show More

5
.gitignore vendored

@ -0,0 +1,5 @@
tpl_c/*.php
vendor/
po/*.po
po/*.json

17
.htaccess

@ -0,0 +1,17 @@
######################
# .htaccess example. #
######################
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule ^([a-zA-Z0-9-]+)$ studs.php?poll=$1 [L]
RewriteRule ^([a-zA-Z0-9-]+)/action/([a-zA-Z_-]+)/(.+)$ studs.php?poll=$1&$2=$3
RewriteRule ^([a-zA-Z0-9-]+)/vote/([a-zA-Z0-9]{16})$ studs.php?poll=$1&vote=$2
RewriteRule ^([a-zA-Z0-9-]{24})/admin$ adminstuds.php?poll=$1
RewriteRule ^([a-zA-Z0-9-]{24})/admin/vote/([a-zA-Z0-9]{16})$ adminstuds.php?poll=$1&vote=$2
RewriteRule ^([a-zA-Z0-9-]{24})/admin/action/([a-zA-Z_-]+)(/(.+))?$ adminstuds.php?poll=$1&$2=$4
</IfModule>

14
AUTHORS.md

@ -0,0 +1,14 @@
# [Framasoft](http://framadate.org)
* Simon Leblanc (development),
* Pierre-Yves Gosset (development, graphism)
* Pascal Chevrel (development)
* Armony Altinier (accessibility)
* JosephK (development)
* Framasoft community
*For a list of people who have contributed to the codebase, see [GitHub's list of contributors](https://github.com/framasoft/OpenSondage/graphs/contributors).*
## [STUdS](http://studs.u-strasbg.fr)
* Guilhem Borghesi (borghesi@unistra.fr)
* Raphaël Droz
* Contributors from the University of Strasbourg: Guy, Christophe, Julien, Pierre, Romaric, Matthieu, Catherine, Christine, Olivier, Emmanuel and Florence

235
CHANGELOG.md

@ -0,0 +1,235 @@
This changelog file is **deprecated**. For an up-to-date changelog, please check [the tags](https://framagit.org/framasoft/framadate/tags).
---------------------
# Changelog de framadate
## Version 1.0 (Erik - Markus - Ecmu - Julien - Imre - Luc - Pierre - Antonin - Olivier)
- Amélioration : Conserver les votes en cours lors que l'utilisateur envoie un commentaire
- Amélioration : Les mails sont envoyés en multipart pour les lecteurs ne supportant pas HTML
- Amélioration : Masquer l'encart au dessus du tableau des votes, maintenant visible grâce à un bouton
- Amélioration : Les commentaires sont horodatés
- Amélioration : Auto wrapping de la description du sondage
- Amélioration : Protection de sondages par mots de passe
- Amélioration : Un click dans les champs URL sélectionne le contenu
- Amélioration : Choix du lien du sondage
- Amélioration : Possibilité de modifier un sondage après expiration
- Amélioration : Confirmation demandée pour supprimer une colonne
- Amélioration : Création d'une sondage par intervale de dates
- Amélioration : Possibilité de ne pas faire de choix sur une colonne
- Amélioration : Amélioration du format des mails
- Amélioration : Amélioration du mode où chaque votant ne peut modifier que son vote
- Amélioration : Fichier check.php pour vérifier la possibilité d'installation
- Amélioration : Changements de libellés
- Amélioration : Admin - Rechercher un sondage grâce à l'adresse mail
- Amélioration : Fluidification du défilement de la page
- Amélioration : Simplification de l'écran de création de sondage
- Fix : Correction de traductions
- Fix : Corrections diverses sur les dates et leurs formats
- Fix : Impossible d'ajouter une colonne vide
- Fix : Possibilité de supprimer des colonnes vides
- Fix : Correction du formulaire de commentaires
- Fix : Correction d'échappements de caractères
- Fix : Rectification des contraintes sur les sondage expirés
- Fix : Interdiction d'exporter les résultats lorsque l'utilisateur ne peut pas les voir
- Technique : Travail sur le service des notifications
- Technique : Prise en compte de l'entête X-Forwarded-Proto
- Technique : Utilisation de PHPMailer pour l'envoi de mails
- Technique : Encore de la Smartization
- Technique : Pas mal de nettoyage de code
## Version 0.9.6 (goofy-bz - Olivier - Quentin - Vincent)
- Fix : Corrections mineures de langues
- Amélioration : Nouvelle langue - Occitan
- Amélioration : Blocage d'un vote si l'admin a changé les possibilités entre temps
## Version 0.9.5 (Olivier)
- Fix : Corrections mineures de langues
- Fix : Correction de la suppresion de votes
- Amélioration : Possibilité d'ajouter plus de "moments" à une date
## Version 0.9.4 (JosephK - Olivier - Nikos)
- Fix : Correction de l'échappement des tables Vote et Slot
- Fix : Encodage des "actions" en base64 pour fonctionner avec l'UrlRewriting
- Fix : Correction d'attributs "title"
- Fix : Un seul jour est requis pour faire un sondage
- Fix : Correction de l'UrlRewriting
- Amélioration : Traduction en Italien
## Version 0.9.3 (Antonin - Olivier - Nikos)
- Fix : Traduction de textes en Italien
- Fix : Empêchement de la suppression de la dernière colonne
- Fix : Possiblité de supprimer des colonnes contenant des caractères spéciaux (par exemple "&")
- Fix : Correction de l'exemple d'URL rewriting (des efforts restent à faire)
- Amélioration : (Mode chacun son vote) Possiblité d'éditer son vote directement après un vote
- Amélioration : Message plus parlant lors de la création d'une colonne
## Version 0.9.2 (Olivier)
- Fix : Completion d'un manque de contrôle sur les ID
## Version 0.9.1 (JosephK - Olivier - Antonin - Michael - Paul)
- Fix : Correction des lenteurs de défilement
- Fix : Arrêt du défilement auto à gauche qu'on clique sur un choix
- Fix : Traductions Français/Anglais/Allemand
- Fix : Fin du tri automatique des colonnes (ex: 10h < 9h)
- Fix : Option à la création masquée dans certains cas
- Fix : Le nom peut maintenant contenir des caractères spéciaux (ex: , - ')
- Fix : Correction mineure de la doc d'installation
- Fix : Interdiction du caractère "," dans choix d'un vote
- Fix : Correction de la suppression de choix contenant des caractères spéciaux
- Fix : Correction du contrôle pour empêcher de supprimer le dernier choix d'un sondage
- Fix : Taille du champs "Votre nom" agrandie
- Technique : Ajout de logs
## Version 0.9 (JosephK - Olivier - Antonin - ...)
- Technique : Réorganisation des classes
- Technique : Découpage en MVC + Installation de Smarty
- Technique : Refonte de l'accès aux données + Remplacement de Adodb par PDO
- Technique : Définition claire des couches Service et Repository
- Technique : Utilisation de la librairie open source o80-i18n pour la gestion des langue
- Amélioration : Refonte de l'administration
- Amélioration : Formulaire de recherche pour trouver des sondages
- Amélioration : Notification de l'utilisation si JAvascript ou les cookies sont désactivés
- Amélioration : Découpage en 2 options pour recevoir ou non les nouveaux vote et commentaires
- Amélioration : Utilisation de jetons CSRF sur certaines actions
- Amélioration : Nouvelle option de sondage "Chaque participant peut modifier son propre vote"
- Amélioration : Nouvelle option de sondage "Vote caché, seul le créateur du sondage peu voir les résultats"
- Amélioration : Auto-cmoplétion des champs de dates (15/5 peut devenir 15/05/2015 ou 15/05/2016 en fonction de la date actuelle)
- Amélioration : Nouvelle page pour retrouver ses sondages par mail
- Amélioration : Mise à jour des fichiers .md pour faciliter la collaboration
- Amélioration : Le nom de l'auteur et la date d'expiration sont modifiables
- Amélioration : Le nom de vote est modifiable
- Amélioration : Affichage du comptage des "Si nécessaire" entre parenthèses
- Amélioration : Page d'installation
- Fix : Purge en 2 étapes → 1. Verrouillage du sondage → 2. 60 jours plus tard suppression du sondage
- Fix : Date d'expiration qui devient nulle quand on ajoute une colonne
- Fix : clic/focus sur oui/non/si nécessaire → retour à gauche de la barre de scroll sur Chromium
- Fix : Perte de ses votes quand le nom entré n'est pas valide
- Fix : Certains sondages sont créé avec un ID déjà existant
- Fix : 2 choix minimum sont nécessaires pour créer un sondage
- Fix : Ajout de la police d'écriture Déjà Vu
- Fix : Mémorisation de la langue entre l'application et l'administration
- Fix : Bug à la création d'un sondage sans Javascript ou sans Cookies
- Fix : Erreur d'url avec les noms de domaine contenant "admin"
- Fix : Mise à jour de la doc d'installation
## Version 0.8 (juillet 2014 Pascal Chevrel - Armony Altinier - JosephK)
- Améliorations sur l'accessibilité
- Améliorations sur l'ergonomie
- Améliorations sur l'internationalisation (nombreuses phrases en français dans le code)
- Découpage chaines de langue pour virer le code html
- Remise en place de l'export CSV
- Remise en place de get_server_name() pour permettre l'installation dans un sous dossier, en https ou sur un port différent
- Ajout Authors.md + en-têtes refaits
- Fix bug changement de langues en mode URL rewriting (requête GET passée en formulaire POST)
- Fix bug 2 boutons valider lorsqu'on édite un vote
- Fix focus javascript sur "Votre nom"
- Nettoyage + Bootstrap
- Ajout vote Oui/Non/Si nécessaire
- Formulaire simplifié pour l'ajout de colonne date (horaire libre)
- Restructuration
- Fix (partiel) bug modification du premier vote en tapant Entrée
## Version 0.7 (mars 2013)
- Fix : le sondage supprimé n'était pas forcément le sondage sélectionné (cfévrier)
- Fix : suppression de STUDS_DIR pour éviter toute confusion
- Fix : corrections l'en-tete et de l'encodage des e-mails (cfévrier)
- Fix : rend Optionnelle l'utilisation de la variable "REMOTE_USER" (cfévrier)
- Amélioration : ne faire apparaitre dans l'admin que les sondage actifs ou expirés depuis x mois (pyg)
- Amélioration : ajout d'un champs date_creation dans la table "sondage" (pyg)
- Amélioration : permet de faire fonctionner gettext avec le serveur de dev de PHP5.4 + enlève code commenté depuis des années (pascalchevrel)
- Fix : enlève les appels à get_server_name() partout sauf dans un appel à sendMail(), réécriture de la fonction pour cet usage (pascalchevrel)
- Amélioration : remplacement des define() par des const plus concis (pascalchevrel)
- Amélioration : possibilité de faire des liens directs vers les types de sondages à créer (pascalchevrel)
- Amélioration : meilleure intégration de la framanav (pyg)
- Amélioration : nombreuses modifications CSS pour un meilleur affichage (pyg)
## Changelog des 22 et 23 juin (pyg@framasoft.net)
- très nombreuses modifications CSS
- ajout de buttons.css pour des boutons plus propres
- ajout de print.css pour une impression sans la classe "corps"
- refonte de la page d'accueil
- ajout de la framanav
- qq retouches dans les fichiers .po
- date de destruction passée de 2j à 30j
- ajout de l'adresse à transmettre
- ajout d'un bouton imprimer
- généralisation des stripslashes
- fix d'un bug sur une requete (suppression). Reste la seconde partie : https://github.com/leblanc-simon/OpenSondage/issues/8
- modification du titre en image
- ajout de htmlspecialchars_decode avec param ENT_QUOTES pour l'envoi des emails
## Changelog du 21 juin 2011 (pyg@framasoft.net)
- très nombreuses modifications CSS
- modification adminstuds.php : ajout de classes aux formulaires et ajout de stripslashes à l'affichage
- modification infos_sondages.php : simplification du tableau de choix, ajouts de CSS, ajouts de labels pour faciliter la selection
## Changelog version 0.6.7 (mai 2011)
- fork du projet STUdS (https://sourcesup.cru.fr/projects/studs/) de la version trunk du 15 mai 2011)
- reprise par Simon Leblanc
- nettoyage du code (indentation, cohérence de la convention de codage)
- suppression des warning php
- résolution d'une faille de sécurité par injection SQL
- résolution d'une faille de sécurité par injection mail
- correction dans le fichier de langue (merci à Julien Reitzel)
- possibilité de mettre un texte libre pour les horaires
- version Framasoft
# Les dernières améliorations de STUdS
Changelog version 0.6.6 (XXX 2011) :
- internationalisation avec gettext
- abstraction de la base de données avec ADOdb
- support de mysql (fichier d'initialisation disponible)
- meilleure compatibilité avec le mode strict de PHP
- factorisation de code et de CSS
- moins de boutons de formulaire, plus de liens <a href>
Changelog version 0.6.5 (juin 2010) :
- Changement de deux icones dans la creation d'un sondage.
Changelog version 0.6.4 (mars 2010) :
- Corrections de bug
Changelog version 0.6.3 (janvier 2010) :
- Corrections de bug
Changelog version 0.6.2 (novembre 2009) :
- Correction dans l'affichage des bandeaux,
- Modification de la partie "A propos",
- Préparation à l'authentification,
- De UdSification de l'application dans certains fichiers.
Changelog version 0.6.1 (octobre 2009) :
- Corrections d'erreurs dans les traductions et d'oublis de traduction dans certaines pages.
Changelog version 0.6 (août 2009) :
- Mise sous la licence CeCILL-B du code source de STUdS,
- Passage de STUdS en encodage UTF8,
- Ajout des icones des menus dans toutes les pages et non pas seulement sur la page d'accueil,
- Correction d'un bug lors du rajout d'une colonne dans l'interface d'administration des sondages.
Changelog version 0.5 (février 2009) :
- Traduction de STUdS en anglais, allemand et espagnol,
- Changement de la CSS avec ajout du logo de l'Université de Strasbourg,
- Possibilité d'ajouter un commentaire pour les sondés.
Changelog version 0.4 (janvier 2009) :
- Possibilité de faire un export PDF pour envoyer la lettre de convocation à la date de réunion,
- Possibilité de rajouter des colonnes dans la partie administration de sondage,
- Correction de bugs d'affichage avec les caractères ' et " .
Changelog version 0.3 (novembre 2008) :
- Possibilité de faire un export CSV pour exploiter le sondage dans un tableur,
- Mise en place d'un repository Subversion pour partager les nouvelles versions de STUdS,
- Amélioration de la CSS pour un meilleur affichage,
- Modification du code source pour le rendre portable vers une autre machine.
Changelog version 0.2 (novembre 2008) :
- Lors de la création d'un sondage DATE, classement des dates par ordre croissant,
- Lors de la création d'un sondage DATE, accepter les horaires au format "8h" ou "8H",
- Lors de la création d'un sondage DATE, possibilité de copier des horaires entre les dates,
- Lors d'une modification de ligne, cocher les cases initialement choisies et non pas des cases vides,
- Changement du format d'affichage des dates pour un formatage type : "Mardi 13/06",
- Meilleure visualisation des choix les plus votés,
- Possibilité pour l'administrateur du sondage de choisir de recevoir un mail d'alerte à chaque participation d'un sondé,
- Remplacement des boutons de formulaire par des images moins austères,
- Correction de quelques petits bugs d'affichage,
- Possibilité de rajouter des cases supplémentaires lors de la création d'un sondage AUTRE,
- Possibilité de rajouter des cases supplémentaires lors de la création d'un sondage DATE.

7
CONTRIBUTING.md

@ -0,0 +1,7 @@
# Contributing
Please report issues on <https://framagit.org/framasoft/framadate/issues>
If you made a change and want it to be available in official repository, merge requests are welcome!
Read the [guidelines](https://framagit.org/framasoft/framadate/wikis/coding) to submit your changes.

1
INSTALL.md

@ -0,0 +1 @@
# [Now available here](https://framagit.org/framasoft/framadate/wikis/home)

519
LICENCE.fr.txt

@ -0,0 +1,519 @@
CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B
Avertissement
Ce contrat est une licence de logiciel libre issue d'une concertation
entre ses auteurs afin que le respect de deux grands principes préside à
sa rédaction:
* d'une part, le respect des principes de diffusion des logiciels
libres: accès au code source, droits étendus conférés aux
utilisateurs,
* d'autre part, la désignation d'un droit applicable, le droit
français, auquel elle est conforme, tant au regard du droit de la
responsabilité civile que du droit de la propriété intellectuelle
et de la protection qu'il offre aux auteurs et titulaires des
droits patrimoniaux sur un logiciel.
Les auteurs de la licence CeCILL-B (pour Ce[a] C[nrs] I[nria] L[ogiciel]
L[ibre]) sont:
Commissariat à l'Energie Atomique - CEA, établissement public de
recherche à caractère scientifique, technique et industriel, dont le
siège est situé 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris.
Centre National de la Recherche Scientifique - CNRS, établissement
public à caractère scientifique et technologique, dont le siège est
situé 3 rue Michel-Ange, 75794 Paris cedex 16.
Institut National de Recherche en Informatique et en Automatique -
INRIA, établissement public à caractère scientifique et technologique,
dont le siège est situé Domaine de Voluceau, Rocquencourt, BP 105, 78153
Le Chesnay cedex.
Préambule
Ce contrat est une licence de logiciel libre dont l'objectif est de
conférer aux utilisateurs une très large liberté de modification et de
redistribution du logiciel régi par cette licence.
L'exercice de cette liberté est assorti d'une obligation forte de
citation à la charge de ceux qui distribueraient un logiciel incorporant
un logiciel régi par la présente licence afin d'assurer que les
contributions de tous soient correctement identifiées et reconnues.
L'accessibilité au code source et les droits de copie, de modification
et de redistribution qui découlent de ce contrat ont pour contrepartie
de n'offrir aux utilisateurs qu'une garantie limitée et de ne faire
peser sur l'auteur du logiciel, le titulaire des droits patrimoniaux et
les concédants successifs qu'une responsabilité restreinte.
A cet égard l'attention de l'utilisateur est attirée sur les risques
associés au chargement, à l'utilisation, à la modification et/ou au
développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à
manipuler et qui le réserve donc à des développeurs ou des
professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester
l'adéquation du logiciel à leurs besoins dans des conditions permettant
d'assurer la sécurité de leurs systèmes et/ou de leurs données et, plus
généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Ce contrat peut être reproduit et diffusé librement, sous
réserve de le conserver en l'état, sans ajout ni suppression de clauses.
Ce contrat est susceptible de s'appliquer à tout logiciel dont le
titulaire des droits patrimoniaux décide de soumettre l'exploitation aux
dispositions qu'il contient.
Article 1 - DEFINITIONS
Dans ce contrat, les termes suivants, lorsqu'ils seront écrits avec une
lettre capitale, auront la signification suivante:
Contrat: désigne le présent contrat de licence, ses éventuelles versions
postérieures et annexes.
Logiciel: désigne le logiciel sous sa forme de Code Objet et/ou de Code
Source et le cas échéant sa documentation, dans leur état au moment de
l'acceptation du Contrat par le Licencié.
Logiciel Initial: désigne le Logiciel sous sa forme de Code Source et
éventuellement de Code Objet et le cas échéant sa documentation, dans
leur état au moment de leur première diffusion sous les termes du Contrat.
Logiciel Modifié: désigne le Logiciel modifié par au moins une
Contribution.
Code Source: désigne l'ensemble des instructions et des lignes de
programme du Logiciel et auquel l'accès est nécessaire en vue de
modifier le Logiciel.
Code Objet: désigne les fichiers binaires issus de la compilation du
Code Source.
Titulaire: désigne le ou les détenteurs des droits patrimoniaux d'auteur
sur le Logiciel Initial.
Licencié: désigne le ou les utilisateurs du Logiciel ayant accepté le
Contrat.
Contributeur: désigne le Licencié auteur d'au moins une Contribution.
Concédant: désigne le Titulaire ou toute personne physique ou morale
distribuant le Logiciel sous le Contrat.
Contribution: désigne l'ensemble des modifications, corrections,
traductions, adaptations et/ou nouvelles fonctionnalités intégrées dans
le Logiciel par tout Contributeur, ainsi que tout Module Interne.
Module: désigne un ensemble de fichiers sources y compris leur
documentation qui permet de réaliser des fonctionnalités ou services
supplémentaires à ceux fournis par le Logiciel.
Module Externe: désigne tout Module, non dérivé du Logiciel, tel que ce
Module et le Logiciel s'exécutent dans des espaces d'adressage
différents, l'un appelant l'autre au moment de leur exécution.
Module Interne: désigne tout Module lié au Logiciel de telle sorte
qu'ils s'exécutent dans le même espace d'adressage.
Parties: désigne collectivement le Licencié et le Concédant.
Ces termes s'entendent au singulier comme au pluriel.
Article 2 - OBJET
Le Contrat a pour objet la concession par le Concédant au Licencié d'une
licence non exclusive, cessible et mondiale du Logiciel telle que
définie ci-après à l'article 5 pour toute la durée de protection des droits
portant sur ce Logiciel.
Article 3 - ACCEPTATION
3.1 L'acceptation par le Licencié des termes du Contrat est réputée
acquise du fait du premier des faits suivants:
* (i) le chargement du Logiciel par tout moyen notamment par
téléchargement à partir d'un serveur distant ou par chargement à
partir d'un support physique;
* (ii) le premier exercice par le Licencié de l'un quelconque des
droits concédés par le Contrat.
3.2 Un exemplaire du Contrat, contenant notamment un avertissement
relatif aux spécificités du Logiciel, à la restriction de garantie et à
la limitation à un usage par des utilisateurs expérimentés a été mis à
disposition du Licencié préalablement à son acceptation telle que
définie à l'article 3.1 ci dessus et le Licencié reconnaît en avoir pris
connaissance.
Article 4 - ENTREE EN VIGUEUR ET DUREE
4.1 ENTREE EN VIGUEUR
Le Contrat entre en vigueur à la date de son acceptation par le Licencié
telle que définie en 3.1.
4.2 DUREE
Le Contrat produira ses effets pendant toute la durée légale de
protection des droits patrimoniaux portant sur le Logiciel.
Article 5 - ETENDUE DES DROITS CONCEDES
Le Concédant concède au Licencié, qui accepte, les droits suivants sur
le Logiciel pour toutes destinations et pour la durée du Contrat dans
les conditions ci-après détaillées.
Par ailleurs, si le Concédant détient ou venait à détenir un ou
plusieurs brevets d'invention protégeant tout ou partie des
fonctionnalités du Logiciel ou de ses composants, il s'engage à ne pas
opposer les éventuels droits conférés par ces brevets aux Licenciés
successifs qui utiliseraient, exploiteraient ou modifieraient le
Logiciel. En cas de cession de ces brevets, le Concédant s'engage à
faire reprendre les obligations du présent alinéa aux cessionnaires.
5.1 DROIT D'UTILISATION
Le Licencié est autorisé à utiliser le Logiciel, sans restriction quant
aux domaines d'application, étant ci-après précisé que cela comporte:
1. la reproduction permanente ou provisoire du Logiciel en tout ou
partie par tout moyen et sous toute forme.
2. le chargement, l'affichage, l'exécution, ou le stockage du
Logiciel sur tout support.
3. la possibilité d'en observer, d'en étudier, ou d'en tester le
fonctionnement afin de déterminer les idées et principes qui sont
à la base de n'importe quel élément de ce Logiciel; et ceci,
lorsque le Licencié effectue toute opération de chargement,
d'affichage, d'exécution, de transmission ou de stockage du
Logiciel qu'il est en droit d'effectuer en vertu du Contrat.
5.2 DROIT D'APPORTER DES CONTRIBUTIONS
Le droit d'apporter des Contributions comporte le droit de traduire,
d'adapter, d'arranger ou d'apporter toute autre modification au Logiciel
et le droit de reproduire le logiciel en résultant.
Le Licencié est autorisé à apporter toute Contribution au Logiciel sous
réserve de mentionner, de façon explicite, son nom en tant qu'auteur de
cette Contribution et la date de création de celle-ci.
5.3 DROIT DE DISTRIBUTION
Le droit de distribution comporte notamment le droit de diffuser, de
transmettre et de communiquer le Logiciel au public sur tout support et
par tout moyen ainsi que le droit de mettre sur le marché à titre
onéreux ou gratuit, un ou des exemplaires du Logiciel par tout procédé.
Le Licencié est autorisé à distribuer des copies du Logiciel, modifié ou
non, à des tiers dans les conditions ci-après détaillées.
5.3.1 DISTRIBUTION DU LOGICIEL SANS MODIFICATION
Le Licencié est autorisé à distribuer des copies conformes du Logiciel,
sous forme de Code Source ou de Code Objet, à condition que cette
distribution respecte les dispositions du Contrat dans leur totalité et
soit accompagnée:
1. d'un exemplaire du Contrat,
2. d'un avertissement relatif à la restriction de garantie et de
responsabilité du Concédant telle que prévue aux articles 8
et 9,
et que, dans le cas où seul le Code Objet du Logiciel est redistribué,
le Licencié permette un accès effectif au Code Source complet du
Logiciel pendant au moins toute la durée de sa distribution du Logiciel,
étant entendu que le coût additionnel d'acquisition du Code Source ne
devra pas excéder le simple coût de transfert des données.
5.3.2 DISTRIBUTION DU LOGICIEL MODIFIE
Lorsque le Licencié apporte une Contribution au Logiciel, le Logiciel
Modifié peut être distribué sous un contrat de licence autre que le
présent Contrat sous réserve du respect des dispositions de l'article
5.3.4.
5.3.3 DISTRIBUTION DES MODULES EXTERNES
Lorsque le Licencié a développé un Module Externe les conditions du
Contrat ne s'appliquent pas à ce Module Externe, qui peut être distribué
sous un contrat de licence différent.
5.3.4 CITATIONS
Le Licencié qui distribue un Logiciel Modifié s'engage expressément:
1. à indiquer dans sa documentation qu'il a été réalisé à partir du
Logiciel régi par le Contrat, en reproduisant les mentions de
propriété intellectuelle du Logiciel,
2. à faire en sorte que l'utilisation du Logiciel, ses mentions de
propriété intellectuelle et le fait qu'il est régi par le Contrat
soient indiqués dans un texte facilement accessible depuis
l'interface du Logiciel Modifié,
3. à mentionner, sur un site Web librement accessible décrivant le
Logiciel Modifié, et pendant au moins toute la durée de sa
distribution, qu'il a été réalisé à partir du Logiciel régi par le
Contrat, en reproduisant les mentions de propriété intellectuelle
du Logiciel,
4. lorsqu'il le distribue à un tiers susceptible de distribuer
lui-même un Logiciel Modifié, sans avoir à en distribuer le code
source, à faire ses meilleurs efforts pour que les obligations du
présent article 5.3.4 soient reprises par le dit tiers.
Lorsque le Logiciel modifié ou non est distribué avec un Module Externe
qui a été conçu pour l'utiliser, le Licencié doit soumettre le dit
Module Externe aux obligations précédentes.
5.3.5 COMPATIBILITE AVEC LES LICENCES CeCILL et CeCILL-C
Lorsqu'un Logiciel Modifié contient une Contribution soumise au contrat
de licence CeCILL, les stipulations prévues à l'article 5.3.4 sont
facultatives.
Un Logiciel Modifié peut être distribué sous le contrat de licence
CeCILL-C. Les stipulations prévues à l'article 5.3.4 sont alors
facultatives.
Article 6 - PROPRIETE INTELLECTUELLE
6.1 SUR LE LOGICIEL INITIAL
Le Titulaire est détenteur des droits patrimoniaux sur le Logiciel
Initial. Toute utilisation du Logiciel Initial est soumise au respect
des conditions dans lesquelles le Titulaire a choisi de diffuser son
oeuvre et nul autre n'a la faculté de modifier les conditions de
diffusion de ce Logiciel Initial.
Le Titulaire s'engage à ce que le Logiciel Initial reste au moins régi
par le Contrat et ce, pour la durée visée à l'article 4.2.
6.2 SUR LES CONTRIBUTIONS
Le Licencié qui a développé une Contribution est titulaire sur celle-ci
des droits de propriété intellectuelle dans les conditions définies par
la législation applicable.
6.3 SUR LES MODULES EXTERNES
Le Licencié qui a développé un Module Externe est titulaire sur celui-ci
des droits de propriété intellectuelle dans les conditions définies par
la législation applicable et reste libre du choix du contrat régissant
sa diffusion.
6.4 DISPOSITIONS COMMUNES
Le Licencié s'engage expressément:
1. à ne pas supprimer ou modifier de quelque manière que ce soit les
mentions de propriété intellectuelle apposées sur le Logiciel;
2. à reproduire à l'identique lesdites mentions de propriété
intellectuelle sur les copies du Logiciel modifié ou non.
Le Licencié s'engage à ne pas porter atteinte, directement ou
indirectement, aux droits de propriété intellectuelle du Titulaire et/ou
des Contributeurs sur le Logiciel et à prendre, le cas échéant, à
l'égard de son personnel toutes les mesures nécessaires pour assurer le
respect des dits droits de propriété intellectuelle du Titulaire et/ou
des Contributeurs.
Article 7 - SERVICES ASSOCIES
7.1 Le Contrat n'oblige en aucun cas le Concédant à la réalisation de
prestations d'assistance technique ou de maintenance du Logiciel.
Cependant le Concédant reste libre de proposer ce type de services. Les
termes et conditions d'une telle assistance technique et/ou d'une telle
maintenance seront alors déterminés dans un acte séparé. Ces actes de
maintenance et/ou assistance technique n'engageront que la seule
responsabilité du Concédant qui les propose.
7.2 De même, tout Concédant est libre de proposer, sous sa seule
responsabilité, à ses licenciés une garantie, qui n'engagera que lui,
lors de la redistribution du Logiciel et/ou du Logiciel Modifié et ce,
dans les conditions qu'il souhaite. Cette garantie et les modalités
financières de son application feront l'objet d'un acte séparé entre le
Concédant et le Licencié.
Article 8 - RESPONSABILITE
8.1 Sous réserve des dispositions de l'article 8.2, le Licencié a la
faculté, sous réserve de prouver la faute du Concédant concerné, de
solliciter la réparation du préjudice direct qu'il subirait du fait du
Logiciel et dont il apportera la preuve.
8.2 La responsabilité du Concédant est limitée aux engagements pris en
application du Contrat et ne saurait être engagée en raison notamment:
(i) des dommages dus à l'inexécution, totale ou partielle, de ses
obligations par le Licencié, (ii) des dommages directs ou indirects
découlant de l'utilisation ou des performances du Logiciel subis par le
Licencié et (iii) plus généralement d'un quelconque dommage indirect. En
particulier, les Parties conviennent expressément que tout préjudice
financier ou commercial (par exemple perte de données, perte de
bénéfices, perte d'exploitation, perte de clientèle ou de commandes,
manque à gagner, trouble commercial quelconque) ou toute action dirigée
contre le Licencié par un tiers, constitue un dommage indirect et
n'ouvre pas droit à réparation par le Concédant.
Article 9 - GARANTIE
9.1 Le Licencié reconnaît que l'état actuel des connaissances
scientifiques et techniques au moment de la mise en circulation du
Logiciel ne permet pas d'en tester et d'en vérifier toutes les
utilisations ni de détecter l'existence d'éventuels défauts. L'attention
du Licencié a été attirée sur ce point sur les risques associés au
chargement, à l'utilisation, la modification et/ou au développement et à
la reproduction du Logiciel qui sont réservés à des utilisateurs avertis.
Il relève de la responsabilité du Licencié de contrôler, par tous
moyens, l'adéquation du produit à ses besoins, son bon fonctionnement et
de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
9.2 Le Concédant déclare de bonne foi être en droit de concéder
l'ensemble des droits attachés au Logiciel (comprenant notamment les
droits visés à l'article 5).
9.3 Le Licencié reconnaît que le Logiciel est fourni "en l'état" par le
Concédant sans autre garantie, expresse ou tacite, que celle prévue à
l'article 9.2 et notamment sans aucune garantie sur sa valeur commerciale,
son caractère sécurisé, innovant ou pertinent.
En particulier, le Concédant ne garantit pas que le Logiciel est exempt
d'erreur, qu'il fonctionnera sans interruption, qu'il sera compatible
avec l'équipement du Licencié et sa configuration logicielle ni qu'il
remplira les besoins du Licencié.
9.4 Le Concédant ne garantit pas, de manière expresse ou tacite, que le
Logiciel ne porte pas atteinte à un quelconque droit de propriété
intellectuelle d'un tiers portant sur un brevet, un logiciel ou sur tout
autre droit de propriété. Ainsi, le Concédant exclut toute garantie au
profit du Licencié contre les actions en contrefaçon qui pourraient être
diligentées au titre de l'utilisation, de la modification, et de la
redistribution du Logiciel. Néanmoins, si de telles actions sont
exercées contre le Licencié, le Concédant lui apportera son aide
technique et juridique pour sa défense. Cette aide technique et
juridique est déterminée au cas par cas entre le Concédant concerné et
le Licencié dans le cadre d'un protocole d'accord. Le Concédant dégage
toute responsabilité quant à l'utilisation de la dénomination du
Logiciel par le Licencié. Aucune garantie n'est apportée quant à
l'existence de droits antérieurs sur le nom du Logiciel et sur
l'existence d'une marque.
Article 10 - RESILIATION
10.1 En cas de manquement par le Licencié aux obligations mises à sa
charge par le Contrat, le Concédant pourra résilier de plein droit le
Contrat trente (30) jours après notification adressée au Licencié et
restée sans effet.
10.2 Le Licencié dont le Contrat est résilié n'est plus autorisé à
utiliser, modifier ou distribuer le Logiciel. Cependant, toutes les
licences qu'il aura concédées antérieurement à la résiliation du Contrat
resteront valides sous réserve qu'elles aient été effectuées en
conformité avec le Contrat.
Article 11 - DISPOSITIONS DIVERSES
11.1 CAUSE EXTERIEURE
Aucune des Parties ne sera responsable d'un retard ou d'une défaillance
d'exécution du Contrat qui serait dû à un cas de force majeure, un cas
fortuit ou une cause extérieure, telle que, notamment, le mauvais
fonctionnement ou les interruptions du réseau électrique ou de
télécommunication, la paralysie du réseau liée à une attaque
informatique, l'intervention des autorités gouvernementales, les
catastrophes naturelles, les dégâts des eaux, les tremblements de terre,
le feu, les explosions, les grèves et les conflits sociaux, l'état de
guerre...
11.2 Le fait, par l'une ou l'autre des Parties, d'omettre en une ou
plusieurs occasions de se prévaloir d'une ou plusieurs dispositions du
Contrat, ne pourra en aucun cas impliquer renonciation par la Partie
intéressée à s'en prévaloir ultérieurement.
11.3 Le Contrat annule et remplace toute convention antérieure, écrite
ou orale, entre les Parties sur le même objet et constitue l'accord
entier entre les Parties sur cet objet. Aucune addition ou modification
aux termes du Contrat n'aura d'effet à l'égard des Parties à moins
d'être faite par écrit et signée par leurs représentants dûment habilités.
11.4 Dans l'hypothèse où une ou plusieurs des dispositions du Contrat
s'avèrerait contraire à une loi ou à un texte applicable, existants ou
futurs, cette loi ou ce texte prévaudrait, et les Parties feraient les
amendements nécessaires pour se conformer à cette loi ou à ce texte.
Toutes les autres dispositions resteront en vigueur. De même, la
nullité, pour quelque raison que ce soit, d'une des dispositions du
Contrat ne saurait entraîner la nullité de l'ensemble du Contrat.
11.5 LANGUE
Le Contrat est rédigé en langue française et en langue anglaise, ces
deux versions faisant également foi.
Article 12 - NOUVELLES VERSIONS DU CONTRAT
12.1 Toute personne est autorisée à copier et distribuer des copies de
ce Contrat.
12.2 Afin d'en préserver la cohérence, le texte du Contrat est protégé
et ne peut être modifié que par les auteurs de la licence, lesquels se
réservent le droit de publier périodiquement des mises à jour ou de
nouvelles versions du Contrat, qui posséderont chacune un numéro
distinct. Ces versions ultérieures seront susceptibles de prendre en
compte de nouvelles problématiques rencontrées par les logiciels libres.
12.3 Tout Logiciel diffusé sous une version donnée du Contrat ne pourra
faire l'objet d'une diffusion ultérieure que sous la même version du
Contrat ou une version postérieure.
Article 13 - LOI APPLICABLE ET COMPETENCE TERRITORIALE
13.1 Le Contrat est régi par la loi française. Les Parties conviennent
de tenter de régler à l'amiable les différends ou litiges qui
viendraient à se produire par suite ou à l'occasion du Contrat.
13.2 A défaut d'accord amiable dans un délai de deux (2) mois à compter
de leur survenance et sauf situation relevant d'une procédure d'urgence,
les différends ou litiges seront portés par la Partie la plus diligente
devant les Tribunaux compétents de Paris.
Version 1.0 du 2006-09-05.

515
LICENSE.en.txt

@ -0,0 +1,515 @@
CeCILL-B FREE SOFTWARE LICENSE AGREEMENT
Notice
This Agreement is a Free Software license agreement that is the result
of discussions between its authors in order to ensure compliance with
the two main principles guiding its drafting:
* firstly, compliance with the principles governing the distribution
of Free Software: access to source code, broad rights granted to
users,
* secondly, the election of a governing law, French law, with which
it is conformant, both as regards the law of torts and
intellectual property law, and the protection that it offers to
both authors and holders of the economic rights over software.
The authors of the CeCILL-B (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
license are:
Commissariat à l'Energie Atomique - CEA, a public scientific, technical
and industrial research establishment, having its principal place of
business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
Centre National de la Recherche Scientifique - CNRS, a public scientific
and technological establishment, having its principal place of business
at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
Institut National de Recherche en Informatique et en Automatique -
INRIA, a public scientific and technological establishment, having its
principal place of business at Domaine de Voluceau, Rocquencourt, BP
105, 78153 Le Chesnay cedex, France.
Preamble
This Agreement is an open source software license intended to give users
significant freedom to modify and redistribute the software licensed
hereunder.
The exercising of this freedom is conditional upon a strong obligation
of giving credits for everybody that distributes a software
incorporating a software ruled by the current license so as all
contributions to be properly identified and acknowledged.
In consideration of access to the source code and the rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors only have limited liability.
In this respect, the risks associated with loading, using, modifying
and/or developing or reproducing the software by the user are brought to
the user's attention, given its Free Software status, which may make it
complicated to use, with the result that its use is reserved for
developers and experienced professionals having in-depth computer
knowledge. Users are therefore encouraged to load and test the
suitability of the software as regards their requirements in conditions
enabling the security of their systems and/or data to be ensured and,
more generally, to use and operate it in the same conditions of
security. This Agreement may be freely reproduced and published,
provided it is not altered, and that no provisions are either added or
removed herefrom.
This Agreement may apply to any or all software for which the holder of
the economic rights decides to submit the use thereof to its provisions.
Article 1 - DEFINITIONS
For the purpose of this Agreement, when the following expressions
commence with a capital letter, they shall have the following meaning:
Agreement: means this license agreement, and its possible subsequent
versions and annexes.
Software: means the software in its Object Code and/or Source Code form
and, where applicable, its documentation, "as is" when the Licensee
accepts the Agreement.
Initial Software: means the Software in its Source Code and possibly its
Object Code form and, where applicable, its documentation, "as is" when
it is first distributed under the terms and conditions of the Agreement.
Modified Software: means the Software modified by at least one
Contribution.
Source Code: means all the Software's instructions and program lines to
which access is required so as to modify the Software.
Object Code: means the binary files originating from the compilation of
the Source Code.
Holder: means the holder(s) of the economic rights over the Initial
Software.
Licensee: means the Software user(s) having accepted the Agreement.
Contributor: means a Licensee having made at least one Contribution.
Licensor: means the Holder, or any other individual or legal entity, who
distributes the Software under the Agreement.
Contribution: means any or all modifications, corrections, translations,
adaptations and/or new functions integrated into the Software by any or
all Contributors, as well as any or all Internal Modules.
Module: means a set of sources files including their documentation that
enables supplementary functions or services in addition to those offered
by the Software.
External Module: means any or all Modules, not derived from the
Software, so that this Module and the Software run in separate address
spaces, with one calling the other when they are run.
Internal Module: means any or all Module, connected to the Software so
that they both execute in the same address space.
Parties: mean both the Licensee and the Licensor.
These expressions may be used both in singular and plural form.
Article 2 - PURPOSE
The purpose of the Agreement is the grant by the Licensor to the
Licensee of a non-exclusive, transferable and worldwide license for the
Software as set forth in Article 5 hereinafter for the whole term of the
protection granted by the rights over said Software.
Article 3 - ACCEPTANCE
3.1 The Licensee shall be deemed as having accepted the terms and
conditions of this Agreement upon the occurrence of the first of the
following events:
* (i) loading the Software by any or all means, notably, by
downloading from a remote server, or by loading from a physical
medium;
* (ii) the first time the Licensee exercises any of the rights
granted hereunder.
3.2 One copy of the Agreement, containing a notice relating to the
characteristics of the Software, to the limited warranty, and to the
fact that its use is restricted to experienced users has been provided
to the Licensee prior to its acceptance as set forth in Article 3.1
hereinabove, and the Licensee hereby acknowledges that it has read and
understood it.
Article 4 - EFFECTIVE DATE AND TERM
4.1 EFFECTIVE DATE
The Agreement shall become effective on the date when it is accepted by
the Licensee as set forth in Article 3.1.
4.2 TERM
The Agreement shall remain in force for the entire legal term of
protection of the economic rights over the Software.
Article 5 - SCOPE OF RIGHTS GRANTED
The Licensor hereby grants to the Licensee, who accepts, the following
rights over the Software for any or all use, and for the term of the
Agreement, on the basis of the terms and conditions set forth hereinafter.
Besides, if the Licensor owns or comes to own one or more patents
protecting all or part of the functions of the Software or of its
components, the Licensor undertakes not to enforce the rights granted by
these patents against successive Licensees using, exploiting or
modifying the Software. If these patents are transferred, the Licensor
undertakes to have the transferees subscribe to the obligations set
forth in this paragraph.
5.1 RIGHT OF USE
The Licensee is authorized to use the Software, without any limitation
as to its fields of application, with it being hereinafter specified
that this comprises:
1. permanent or temporary reproduction of all or part of the Software
by any or all means and in any or all form.
2. loading, displaying, running, or storing the Software on any or
all medium.
3. entitlement to observe, study or test its operation so as to
determine the ideas and principles behind any or all constituent
elements of said Software. This shall apply when the Licensee
carries out any or all loading, displaying, running, transmission
or storage operation as regards the Software, that it is entitled
to carry out hereunder.
5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS
The right to make Contributions includes the right to translate, adapt,
arrange, or make any or all modifications to the Software, and the right
to reproduce the resulting software.
The Licensee is authorized to make any or all Contributions to the
Software provided that it includes an explicit notice that it is the
author of said Contribution and indicates the date of the creation thereof.
5.3 RIGHT OF DISTRIBUTION
In particular, the right of distribution includes the right to publish,
transmit and communicate the Software to the general public on any or
all medium, and by any or all means, and the right to market, either in
consideration of a fee, or free of charge, one or more copies of the
Software by any means.
The Licensee is further authorized to distribute copies of the modified
or unmodified Software to third parties according to the terms and
conditions set forth hereinafter.
5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
The Licensee is authorized to distribute true copies of the Software in
Source Code or Object Code form, provided that said distribution
complies with all the provisions of the Agreement and is accompanied by:
1. a copy of the Agreement,
2. a notice relating to the limitation of both the Licensor's
warranty and liability as set forth in Articles 8 and 9,
and that, in the event that only the Object Code of the Software is
redistributed, the Licensee allows effective access to the full Source
Code of the Software at a minimum during the entire period of its
distribution of the Software, it being understood that the additional
cost of acquiring the Source Code shall not exceed the cost of
transferring the data.
5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
If the Licensee makes any Contribution to the Software, the resulting
Modified Software may be distributed under a license agreement other
than this Agreement subject to compliance with the provisions of Article
5.3.4.
5.3.3 DISTRIBUTION OF EXTERNAL MODULES
When the Licensee has developed an External Module, the terms and
conditions of this Agreement do not apply to said External Module, that
may be distributed under a separate license agreement.
5.3.4 CREDITS
Any Licensee who may distribute a Modified Software hereby expressly
agrees to:
1. indicate in the related documentation that it is based on the
Software licensed hereunder, and reproduce the intellectual
property notice for the Software,
2. ensure that written indications of the Software intended use,
intellectual property notice and license hereunder are included in
easily accessible format from the Modified Software interface,
3. mention, on a freely accessible website describing the Modified
Software, at least throughout the distribution term thereof, that
it is based on the Software licensed hereunder, and reproduce the
Software intellectual property notice,
4. where it is distributed to a third party that may distribute a
Modified Software without having to make its source code
available, make its best efforts to ensure that said third party
agrees to comply with the obligations set forth in this Article .
If the Software, whether or not modified, is distributed with an
External Module designed for use in connection with the Software, the
Licensee shall submit said External Module to the foregoing obligations.
5.3.5 COMPATIBILITY WITH THE CeCILL AND CeCILL-C LICENSES
Where a Modified Software contains a Contribution subject to the CeCILL
license, the provisions set forth in Article 5.3.4 shall be optional.
A Modified Software may be distributed under the CeCILL-C license. In
such a case the provisions set forth in Article 5.3.4 shall be optional.
Article 6 - INTELLECTUAL PROPERTY
6.1 OVER THE INITIAL SOFTWARE
The Holder owns the economic rights over the Initial Software. Any or
all use of the Initial Software is subject to compliance with the terms
and conditions under which the Holder has elected to distribute its work
and no one shall be entitled to modify the terms and conditions for the
distribution of said Initial Software.
The Holder undertakes that the Initial Software will remain ruled at
least by this Agreement, for the duration set forth in Article 4.2.
6.2 OVER THE CONTRIBUTIONS
The Licensee who develops a Contribution is the owner of the
intellectual property rights over this Contribution as defined by
applicable law.
6.3 OVER THE EXTERNAL MODULES
The Licensee who develops an External Module is the owner of the
intellectual property rights over this External Module as defined by
applicable law and is free to choose the type of agreement that shall
govern its distribution.
6.4 JOINT PROVISIONS
The Licensee expressly undertakes:
1. not to remove, or modify, in any manner, the intellectual property
notices attached to the Software;
2. to reproduce said notices, in an identical manner, in the copies
of the Software modified or not.
The Licensee undertakes not to directly or indirectly infringe the
intellectual property rights of the Holder and/or Contributors on the
Software and to take, where applicable, vis-à-vis its staff, any and all
measures required to ensure respect of said intellectual property rights
of the Holder and/or Contributors.
Article 7 - RELATED SERVICES
7.1 Under no circumstances shall the Agreement oblige the Licensor to
provide technical assistance or maintenance services for the Software.
However, the Licensor is entitled to offer this type of services. The
terms and conditions of such technical assistance, and/or such
maintenance, shall be set forth in a separate instrument. Only the
Licensor offering said maintenance and/or technical assistance services
shall incur liability therefor.
7.2 Similarly, any Licensor is entitled to offer to its licensees, under
its sole responsibility, a warranty, that shall only be binding upon
itself, for the redistribution of the Software and/or the Modified
Software, under terms and conditions that it is free to decide. Said
warranty, and the financial terms and conditions of its application,
shall be subject of a separate instrument executed between the Licensor
and the Licensee.
Article 8 - LIABILITY
8.1 Subject to the provisions of Article 8.2, the Licensee shall be
entitled to claim compensation for any direct loss it may have suffered
from the Software as a result of a fault on the part of the relevant
Licensor, subject to providing evidence thereof.
8.2 The Licensor's liability is limited to the commitments made under
this Agreement and shall not be incurred as a result of in particular:
(i) loss due the Licensee's total or partial failure to fulfill its
obligations, (ii) direct or consequential loss that is suffered by the
Licensee due to the use or performance of the Software, and (iii) more
generally, any consequential loss. In particular the Parties expressly
agree that any or all pecuniary or business loss (i.e. loss of data,
loss of profits, operating loss, loss of customers or orders,
opportunity cost, any disturbance to business activities) or any or all
legal proceedings instituted against the Licensee by a third party,
shall constitute consequential loss and shall not provide entitlement to
any or all compensation from the Licensor.
Article 9 - WARRANTY
9.1 The Licensee acknowledges that the scientific and technical
state-of-the-art when the Software was distributed did not enable all
possible uses to be tested and verified, nor for the presence of
possible defects to be detected. In this respect, the Licensee's
attention has been drawn to the risks associated with loading, using,
modifying and/or developing and reproducing the Software which are
reserved for experienced users.
The Licensee shall be responsible for verifying, by any or all means,
the suitability of the product for its requirements, its good working
order, and for ensuring that it shall not cause damage to either persons
or properties.
9.2 The Licensor hereby represents, in good faith, that it is entitled
to grant all the rights over the Software (including in particular the
rights set forth in Article 5).
9.3 The Licensee acknowledges that the Software is supplied "as is" by
the Licensor without any other express or tacit warranty, other than
that provided for in Article 9.2 and, in particular, without any warranty
as to its commercial value, its secured, safe, innovative or relevant
nature.
Specifically, the Licensor does not warrant that the Software is free
from any error, that it will operate without interruption, that it will
be compatible with the Licensee's own equipment and software
configuration, nor that it will meet the Licensee's requirements.
9.4 The Licensor does not either expressly or tacitly warrant that the
Software does not infringe any third party intellectual property right
relating to a patent, software or any other property right. Therefore,
the Licensor disclaims any and all liability towards the Licensee
arising out of any or all proceedings for infringement that may be
instituted in respect of the use, modification and redistribution of the
Software. Nevertheless, should such proceedings be instituted against
the Licensee, the Licensor shall provide it with technical and legal
assistance for its defense. Such technical and legal assistance shall be
decided on a case-by-case basis between the relevant Licensor and the
Licensee pursuant to a memorandum of understanding. The Licensor
disclaims any and all liability as regards the Licensee's use of the
name of the Software. No warranty is given as regards the existence of
prior rights over the name of the Software or as regards the existence
of a trademark.
Article 10 - TERMINATION
10.1 In the event of a breach by the Licensee of its obligations
hereunder, the Licensor may automatically terminate this Agreement
thirty (30) days after notice has been sent to the Licensee and has
remained ineffective.
10.2 A Licensee whose Agreement is terminated shall no longer be
authorized to use, modify or distribute the Software. However, any
licenses that it may have granted prior to termination of the Agreement
shall remain valid subject to their having been granted in compliance
with the terms and conditions hereof.
Article 11 - MISCELLANEOUS
11.1 EXCUSABLE EVENTS
Neither Party shall be liable for any or all delay, or failure to
perform the Agreement, that may be attributable to an event of force
majeure, an act of God or an outside cause, such as defective
functioning or interruptions of the electricity or telecommunications
networks, network paralysis following a virus attack, intervention by
government authorities, natural disasters, water damage, earthquakes,
fire, explosions, strikes and labor unrest, war, etc.
11.2 Any failure by either Party, on one or more occasions, to invoke
one or more of the provisions hereof, shall under no circumstances be
interpreted as being a waiver by the interested Party of its right to
invoke said provision(s) subsequently.
11.3 The Agreement cancels and replaces any or all previous agreements,
whether written or oral, between the Parties and having the same
purpose, and constitutes the entirety of the agreement between said
Parties concerning said purpose. No supplement or modification to the
terms and conditions hereof shall be effective as between the Parties
unless it is made in writing and signed by their duly authorized
representatives.
11.4 In the event that one or more of the provisions hereof were to
conflict with a current or future applicable act or legislative text,
said act or legislative text shall prevail, and the Parties shall make
the necessary amendments so as to comply with said act or legislative
text. All other provisions shall remain effective. Similarly, invalidity
of a provision of the Agreement, for any reason whatsoever, shall not
cause the Agreement as a whole to be invalid.
11.5 LANGUAGE
The Agreement is drafted in both French and English and both versions
are deemed authentic.
Article 12 - NEW VERSIONS OF THE AGREEMENT
12.1 Any person is authorized to duplicate and distribute copies of this
Agreement.
12.2 So as to ensure coherence, the wording of this Agreement is
protected and may only be modified by the authors of the License, who
reserve the right to periodically publish updates or new versions of the
Agreement, each with a separate number. These subsequent versions may
address new issues encountered by Free Software.
12.3 Any Software distributed under a given version of the Agreement may
only be subsequently distributed under the same version of the Agreement
or a subsequent version.
Article 13 - GOVERNING LAW AND JURISDICTION
13.1 The Agreement is governed by French law. The Parties agree to
endeavor to seek an amicable solution to any disagreements or disputes
that may arise during the performance of the Agreement.
13.2 Failing an amicable solution within two (2) months as from their
occurrence, and unless emergency proceedings are necessary, the
disagreements or disputes shall be referred to the Paris Courts having
jurisdiction, by the more diligent Party.
Version 1.0 dated 2006-09-05.

22
Makefile

@ -0,0 +1,22 @@
locales:
scripts/locales.sh
push-locales: locales
zanata-cli -q -B push --errors --project-version `git branch | grep \* | cut -d ' ' -f2-`
pull-locales:
zanata-cli -q -B pull --min-doc-percent 50 --project-version `git branch | grep \* | cut -d ' ' -f2-`
scripts/po2json.sh
stats-locales:
zanata-cli -q stats --project-version `git branch | grep \* | cut -d ' ' -f2-`
push-trad-to-zanata:
scripts/push-trad-to-zanata.sh $(filter-out $@,$(MAKECMDGOALS))
add-key-locales:
scripts/locale-add-key.pl "$(subst ",\",$(filter-out $@,$(MAKECMDGOALS)))"
# empty targets to be able to use MAKECMDGOALS as arguments to scripts
%:
@:

83
README.md

@ -1,32 +1,83 @@
![Build Status](https://gitlab.com/pages/plain-html/badges/master/build.svg)
# Framadate
![English](https://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/Flag_of_the_United_Kingdom.svg/20px-Flag_of_the_United_Kingdom.svg.png) Framadate is an online service for planning an appointment or making a decision quickly and easily. No registration is required.
![Français](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Flag_of_France.svg/20px-Flag_of_France.svg.png) Framadate est un service en ligne permettant de planifier un rendez-vous ou prendre des décisions rapidement et simplement. Aucune inscription préalable n’est nécessaire.
---
# Installation
Follow the instructions on our Wiki : <https://framagit.org/framasoft/framadate/wikis/home>
# Contribute
## Code
Follow the instructions on <https://framagit.org/framasoft/framadate/wikis/coding>
# Traductions
Follow the instructions on <https://framagit.org/framasoft/framadate/wikis/translating>
# Used libraries
* PHP [PHP 5.6](http://php.net)
* Templating [Smarty](http://www.smarty.net/),
* I18N [o80-i18n](https://github.com/olivierperez/o80-i18n)
* Database: PostgreSQL ou [MySQL 5.5](https://dev.mysql.com/downloads/mysql/5.5.html)
---
Basé sur un l'exemple de publication de pages sur Gitlab, voici quelques pages permettant d'explorer une nouvelle version du formulaire de création de [Framadate](https://framadate.org).
Framadate is a fork of the [STUdS](https://sourcesup.cru.fr/projects/studs/) project, that works at framadate.org for framasoft.org
Previous main authors of Framadate were :
* Simon LEBLANC
* Pierre-Yves GOSSET
Pour voir là où nous en somme :
Main authors of project STUdS are :
* Guilhem BORGHESI
* Raphaël DROZ
https://funky.framadate.org/
---
Université de Strasbourg - Direction Informatique
Auteur : Guilhem BORGHESI
Création : Février 2008
## Développement
borghesi@unistra.fr
Nous travaillons sur la base des [maquettes](https://sketch.cloud/s/bavo4/all/cration-de-sondage/1-accueil/play) réalisé par Maïwann.
Le principe se base sur un formulaire « textuel », aussi appelé [Natural Language Form](https://tympanus.net/Tutorials/NaturalLanguageForm/)
Ce logiciel est régi par la licence CeCILL-B soumise au droit français et
respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions
de la licence CeCILL-B telle que diffusée par le CEA, le CNRS et l'INRIA
sur le site "http://www.cecill.info".
Pour lancer executer le projet sur sa propre machine :
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
pris connaissance de la licence CeCILL-B, et que vous en avez accepté les
termes. Vous pouvez trouver une copie de la licence dans le fichier LICENCE.
Cloner le projet
---
```sh
git clone https://framagit.org/yaf/funky-framadate-front
```
Université de Strasbourg - Direction Informatique
Author : Guilhem BORGHESI
Creation : Feb 2008
```sh
./dev
```
borghesi@unistra.fr
Le formulaire devrait être visible sur l'url http://locahost:8080
This software is governed by the CeCILL-B license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL-B
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".
The fact that you are presently reading this means that you have had
knowledge of the CeCILL-B license and that you accept its terms. You can
find a copy of this license in the file LICENSE.
---
Janvier 2008
Guilhem BORGHESI
Université de Strasbourg
Mai 2010
Raphaël DROZ, raphael.droz@gmail.com

95
action/add_comment.php

@ -0,0 +1,95 @@
<?php
/**
* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
*
* Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of Framadate/OpenSondage: Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
use Framadate\Message;
use Framadate\Services\InputService;
use Framadate\Services\LogService;
use Framadate\Services\MailService;
use Framadate\Services\NotificationService;
use Framadate\Services\PollService;
use Framadate\Services\SecurityService;
include_once __DIR__ . '/../app/inc/init.php';
/* Variables */
/* --------- */
$poll_id = null;
$poll = null;
$message = null;
$result = false;
$comments = [];
$is_admin = false;
/* Services */
/*----------*/
$logService = new LogService();
$pollService = new PollService($connect, $logService);
$inputService = new InputService();
$mailService = new MailService($config['use_smtp'], $config['smtp_options'], $config['use_sendmail']);
$notificationService = new NotificationService($mailService);
$securityService = new SecurityService();
/* PAGE */
/* ---- */
if (!empty($_POST['poll'])) {
$poll_id = filter_input(INPUT_POST, 'poll', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => POLL_REGEX]]);
$poll = $pollService->findById($poll_id);
}
if (!empty($_POST['poll_admin'])) {
$admin_poll_id = filter_input(INPUT_POST, 'poll_admin', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => POLL_REGEX]]);
if (strlen($admin_poll_id) === 24) {
$is_admin = ($pollService->findByAdminId($admin_poll_id) !== null);
}
}
if (!$poll) {
$message = new Message('error', __('Error', "This poll doesn't exist!"));
} else if ($poll && !$securityService->canAccessPoll($poll) && !$is_admin) {
$message = new Message('error', __('Password', 'Wrong password'));
} else {
$name = $inputService->filterName($_POST['name']);
$comment = $inputService->filterComment($_POST['comment']);
if ($name === null) {
$message = new Message('danger', __('Error', 'The name is invalid.'));
}
if ($message === null) {
// Add comment
$result = $pollService->addComment($poll_id, $name, $comment);
if ($result) {
$message = new Message('success', __('Comments', 'Comment saved'));
$notificationService->sendUpdateNotification($poll, NotificationService::ADD_COMMENT, $name);
} else {
$message = new Message('danger', __('Error', 'Comment failed'));
}
}
$comments = $pollService->allCommentsByPollId($poll_id);
}
$smarty->error_reporting = E_ALL & ~E_NOTICE;
$smarty->assign('comments', $comments);
$comments_html = $smarty->fetch('part/comments_list.tpl');
$response = ['result' => $result, 'message' => $message, 'comments' => $comments_html];
echo json_encode($response);

94
action/send_edit_link_by_email_action.php

@ -0,0 +1,94 @@
<?php
/**
* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
*
* Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of Framadate/OpenSondage: Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
use Framadate\Message;
use Framadate\Services\LogService;
use Framadate\Services\MailService;
use Framadate\Services\PollService;
use Framadate\Services\SessionService;
use Framadate\Utils;
include_once __DIR__ . '/../app/inc/init.php';
$logService = new LogService();
$sessionService = new SessionService();
$mailService = new MailService($config['use_smtp'], $config['smtp_options'], $config['use_sendmail']);
$pollService = new PollService($connect, $logService);
$result = false;
$message = null;
$poll = null;
$poll_id = null;
$email = null;
if (!empty($_POST['poll'])) {
$poll_id = filter_input(INPUT_POST, 'poll', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => POLL_REGEX]]);
$poll = $pollService->findById($poll_id);
}
$token = $sessionService->get("Common", SESSION_EDIT_LINK_TOKEN);
$token_form_value = empty($_POST['token']) ? null : $_POST['token'];
$editedVoteUniqueId = filter_input(INPUT_POST, 'editedVoteUniqueId', FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => POLL_REGEX]]);
if (is_null($poll) || $config['use_smtp'] === false || is_null($token) || is_null($token_form_value)
|| !$token->check($token_form_value) || is_null($editedVoteUniqueId)) {