Skip to content
This repository has been archived by the owner on Oct 6, 2020. It is now read-only.

Commit

Permalink
fix: Correction des bugs sur 31/09 ou 31/11
Browse files Browse the repository at this point in the history
closes #204, #197, #192, #187
  • Loading branch information
gtoubiana committed Oct 27, 2016
1 parent d476865 commit c6c18cf
Show file tree
Hide file tree
Showing 22 changed files with 268 additions and 36 deletions.
Binary file modified dist/acte-0.0.17-dist.zip
Binary file not shown.
2 changes: 1 addition & 1 deletion dist/acte.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/acte.min.js.map

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions gulp/tasks/default.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ gulp.task('default', sequence(
'docs.constants',
'docs.functions',
'docs.readme',
'docs.index',

// Génération du zip
'dist.zip',
Expand Down
21 changes: 21 additions & 0 deletions gulp/tasks/docs.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ gulp.task('docs.functions', () => {
return stream;
});

// TASK Pour générer un README.md à partir d'un template .hbs'
gulp.task('docs.readme', () => {
const packageInfos = JSON.parse(fse.readFileSync('./package.json',
'utf8'));
Expand All @@ -120,3 +121,23 @@ gulp.task('docs.readme', () => {

return stream;
});

// TASK Pour générer un index.html à partir d'un template .hbs'
gulp.task('docs.index', () => {
const packageInfos = JSON.parse(fse.readFileSync('./package.json',
'utf8'));
const stream = gulp.src(`${config.paths.src}/tmpl/index.hbs`)
.pipe(rename('index.html'))
.pipe(hb())
.data({
name: packageInfos.name,
version: packageInfos.version,
description: packageInfos.description,
author: packageInfos.author,
license: packageInfos.license,
homepage: packageInfos.homepage,
})
.pipe(gulp.dest(config.paths.root));

return stream;
});
10 changes: 5 additions & 5 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Les autres metatags viennent après les 3 ci-dessus -->
<meta name="description" content="Acte.js">
<meta name="description" content="acte.js">
<meta name="author" content="Gilles Toubiana">
<link rel="shortcut icon" href="demo/favicon.ico" type="image/x-icon">
<link rel="icon" href="demo/favicon.ico" type="image/x-icon">
Expand All @@ -32,7 +32,7 @@
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="https://github.com/gtoubiana/acte">Acte sur Github</a>
<a class="navbar-brand" href="https://github.com/gtoubiana/acte">acte sur Github</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
Expand All @@ -47,10 +47,10 @@
<div class="container">
<div class="row">
<div class="col-md-6">
<!-- <h1>Acte.js</h1>
<p>Dynamiser sa généalogie</p> -->
<!-- <h1>acte.js</h1>
<p>Une librairie JavaScript qui simplifie la recherche généalogique.</p> -->
<img src="demo/img/logo-blanc.png" class="img-responsive logo" alt="logo">
<br><p>La librairie javascript Acte.js permet de saisir et manipuler des dates grégoriennes, républicaines et juliennes.</p>
<br><p>La librairie javascript acte.js permet de saisir et manipuler des dates grégoriennes, républicaines et juliennes.</p>
</div>
<div class="col-md-6" style="text-align: left;">
<h3>Comment utiliser la librairie JavaScript ?</h3>
Expand Down
28 changes: 17 additions & 11 deletions src/.todo
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
Todo Démo:
☐ - supprimer les résultats de republicain au delà de 10000 comme pour les 2 autres.
☐ Corriger les résultats gregorien/julien autour de 1582. cf issues.
☐ - Ajouter un autosuggest (cf issues)
☐ Créer un template handebars pour le téléchargement sur index.html
☐ Ajouter un logo au readme
☐ Meilleur gestion des erreurs
☐ Présenter un exemple de saisies possibles
☐ Traduire disqus
☐ Supprimer les css inutiles avec gulp
☐ Minifier/concaténer les css et js (+babel)
☐ linters et prettifiers pour css et html
☐ Supprimer les css inutiles avec gulp
☐ Le code plante avec 24 brumaire an 100000 ou an MMMMMMMMMMM
☐ Corriger les résultats gregorien/julien autour de 1582. cf issues. cf tabGregorien
☐ Ajouter un surligneur syntaxique pour le code dans la damo (highlight-js ?)
☐ Ajouter un autosuggest (cf issues)
☐ Meilleur gestion des erreurs ?
☐ Traduire disqus ?
☐ Utiliser gulp pour renvoyer tout sur les gh-pages
☐ Compatibilité ie8
☐ Nettoyer le projet de ce genre de fichiers inutiles
☐ Compatibilité ie8 ?
☐ Nettoyer le projet de ce genre de fichiers inutiles (aka ce fichier .todo)

___________________
Archive:
✔ Le code permet de saisir 31 novembre 2016, 31 sept, etc... cf tabGregorien @done(2016-10-27 15:02) @project(Todo Démo)
✔ Créer un template handebars pour le téléchargement sur index.html @done(2016-10-27 14:27) @project(Todo Démo)
✔ Supprimer les résultats de republicain au delà de 10000 comme pour les 2 autres. (voir formatageDeJour.js) @done(2016-10-27 14:10) @project(Todo Démo)
✔ Ajouter les tests pour ce nouveau code @done(2016-10-27 14:10) @project(Todo Démo)
✔ Vérifier le coverage pour ce nouveau code @done(2016-10-27 14:10) @project(Todo Démo)
✔ Ajouter un logo au readme @done(2016-10-26 17:05) @project(Todo Démo)
✔ Présenter un exemple de saisies possibles @done(2016-10-26 17:06) @project(Todo Démo)
✘ - colorisation syntaxique pour le header (code npm) @cancelled(2016-10-26 14:53) @project(Todo Démo)
✔ Rédiger un code ES6 fonctionnel (babel) @done(2016-10-26 13:58) @project(Todo Démo)
✔ Passer en 2 colonnes @done(2016-10-26 13:57) @project(Todo Démo)
Expand Down
11 changes: 11 additions & 0 deletions src/js/private/constants/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
* [jjFinRepublicain](#jjFinRepublicain) : <code>Nombre</code> ℗
* [jourGregorien](#jourGregorien) : <code>Tableau</code> ℗
* [jourRepublicain](#jourRepublicain) : <code>Tableau</code> ℗
* [joursDansLeMois](#joursDansLeMois) : <code>Tableau</code> ℗
* [moisGregorien](#moisGregorien) : <code>Tableau</code> ℗
* [moisRepublicain](#moisRepublicain) : <code>Tableau</code> ℗
* [regexpGregorien](#regexpGregorien) : <code>Tableau</code> ℗
Expand Down Expand Up @@ -245,6 +246,16 @@ sur 1, 2 et 3 caractères.
**Voir** : [Projet sur GitHub](https://github.com/gtoubiana/acte)
**Depuis** : 0.0.15
**Auteur** : Gilles Toubiana
<a name="joursDansLeMois"></a>

## joursDansLeMois : <code>Tableau</code> ℗
Nombre de jours en fonction des mois Grégoriens.

**Type** : Constante
**Accès** : privé
**Voir** : [Projet sur GitHub](https://github.com/gtoubiana/acte)
**Depuis** : 0.0.17
**Auteur** : Gilles Toubiana
<a name="moisGregorien"></a>

## moisGregorien : <code>Tableau</code> ℗
Expand Down
9 changes: 9 additions & 0 deletions src/js/private/constants/joursDansLeMois.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/**
* Nombre de jours en fonction des mois Grégoriens.
* @access private
* @author Gilles Toubiana
* @since 0.0.17
* @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}
* @constant {Array}
*/
const joursDansLeMois = [31, 30, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
2 changes: 1 addition & 1 deletion src/js/private/functions/formatageDeJour.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ const formatageDeJour = (format, erreur, rappel, df, dt, dd, dobj, pro) => {
const tvg = dt;
let resultat;

if (tvg[dd] < dateValide(1, 1, 10000)) {
if (Math.abs(tvg[dd]) < 8000) {
resultat = frmt.replace(/%[ADJMNSabcflmoprvz123]+/g,

// jscs:disable
Expand Down
3 changes: 2 additions & 1 deletion src/js/private/functions/nombreEnLettres.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ const nombreEnLettres = (n, r) => {
let dizunit;
let res;

if (typeof n === 'number' && n > -10000 && n < 10000) {
/* istanbul ignore else */
if (typeof n === 'number' && n > -8000 && n < 8000) {
// UnitesEnLettres
const u = unitesEnLettres;

Expand Down
5 changes: 3 additions & 2 deletions src/js/private/functions/tabGregorien.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,9 @@ const tabGregorien = (saisie, limites) => {
// Lorsque la date est valide [gjmc,gmc,gac]
if (saisieGregorien[2] && saisieGregorien[0] < 32 &&
absInt(saisieGregorien[0]) !== 0 &&
saisieGregorien[1] < 13 && saisieGregorien[1] !== '' &&
absInt(saisieGregorien[1]) !== 0) {
saisieGregorien[1] < 13 && saisieGregorien[1] > 0 &&
saisieGregorien[1] !== '' && absInt(saisieGregorien[1]) !== 0 &&
(saisieGregorien[0] <= joursDansLeMois[saisieGregorien[1] - 1])) {
tab[4] = gregorienVersJj(parseInt(saisieGregorien[2], 10), absInt(
saisieGregorien[1]), absInt(saisieGregorien[0]));

Expand Down
2 changes: 1 addition & 1 deletion src/js/public/prototypes/Jour.prototype.gregorien.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ acte.Jour.prototype.gregorien = function gregorien(format, erreur, rappel) {
const resultat = formatageDeJour(format, erreur, rappel,
'%Jp %Mlb %A',
this.variables.gregorien,
'od',
'a',
objGregorien);

return resultat;
Expand Down
2 changes: 1 addition & 1 deletion src/js/public/prototypes/Jour.prototype.julien.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ acte.Jour.prototype.julien = function julien(format, erreur, rappel) {
const resultat = formatageDeJour(format, erreur, rappel,
'%Jp %Mlb %A',
this.variables.julien,
'od',
'a',
objGregorien,
'julien');

Expand Down
141 changes: 141 additions & 0 deletions src/tmpl/index.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Les autres metatags viennent après les 3 ci-dessus -->
<meta name="description" content="{{ name }}.js">
<meta name="author" content="{{ author }}">
<link rel="shortcut icon" href="demo/favicon.ico" type="image/x-icon">
<link rel="icon" href="demo/favicon.ico" type="image/x-icon">
<title>Acte.js</title>
<!-- Bootstrap core CSS -->
<link href="demo/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="demo/css/demo-theme.css" rel="stylesheet">
<!-- IE8 -->
<!--[if lt IE 9]>
<script src="demo/js/html5shiv.min.js"></script>
<script src="demo/js/respond.min.js"></script>
<![endif]-->
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#navbar"
aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Afficher le menu</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ homepage }}">{{ name }} sur Github</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="{{ homepage }}/blob/master/dist/{{ name }}-{{ version }}-dist.zip?raw=true">Téléchargement</a></li>
<li><a href="{{ homepage }}/blob/master/dist/README.md">Documentation</a></li>
</ul>
</div>
<!--/.navbar-collapse -->
</div>
</nav>
<div class="jumbotron">
<div class="container">
<div class="row">
<div class="col-md-6">
<!-- <h1>{{ name }}.js</h1>
<p>{{ description }}</p> -->
<img src="demo/img/logo-blanc.png" class="img-responsive logo" alt="logo">
<br><p>La librairie javascript {{ name }}.js permet de saisir et manipuler des dates grégoriennes, républicaines et juliennes.</p>
</div>
<div class="col-md-6" style="text-align: left;">
<h3>Comment utiliser la librairie JavaScript ?</h3>

<h4>Avec Node.js</h4>

<pre>$ npm install {{ name }} --save</pre>
<h4>Dans une page html</h4>
<pre class="html">&lt;script type="text/javascript" src="{{ name }}.min.js"&gt;&lt;/script&gt;</pre>

</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2 class="violet">Convertir une date</h2>
<p class="lead">La zone de saisie accepte les abbréviations courantes (an V, Xbre, Jet, etc.).<br>
</div>
</div>
<div class="row">
<div id="jour_debrider" class="col-md-6">
<div id="validation_de_jour">
<label class="sr-only" for="jour">Jour</label>
<input class="form-control" id="jour" type="search" placeholder="Entrez une date !">
</div>
<div class="checkbox">
<label>
<input id="debrider" type="checkbox" value="" placeholder="Débrider"> Débrider la conversion&nbsp;<span data-toggle="popover" data-trigger="hover" data-html="true" title="Pourquoi débrider ?" data-content="Le calendrier grégorien est entré en vigueur après le 15/10/1582.<br>Le calendrier républicain a été utilisé à partir du 22/09/1792 jusqu'en 1805 (et pendant la Commune de Paris de mars à mai 1871).<br>Débrider permet d'obtenir des correspondances en dehors de ces bornes." class="glyphicon glyphicon-question-sign interrogation" aria-hidden="true"></span>
</label>
</div>
</div>
<div class="col-md-6" id="affichage_de_jour">
<table class="table table-bordered table-hover table-striped"><tbody></tbody></table>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-12">
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW
* TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT:
* https://disqus.com/admin/universalcode/#configuration-variables */
/*
var disqus_config = function () {
this.page.url = PAGE_URL;
this.page.identifier = PAGE_IDENTIFIER;
};
*/
// DON'T EDIT BELOW THIS LINE
(function () {
var d = document;
var s = d.createElement('script');
s.src = '//acte-1.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">
comments powered by Disqus.
</a>
</noscript>
</div>
</div>
<hr>
<footer>
<p>Copyright (c) 2015-Présent {{ author }}</p>
</footer>
</div>
<!-- /container -->
<!-- Bootstrap core JavaScript
================================================== -->
<script src="dist/acte.min.js"></script>
<!-- Placed at the end of the document so the pages load faster -->
<script src="demo/js/jquery.min.js"></script>
<script src="demo/js/bootstrap.min.js"></script>
<script src="demo/js/script.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="demo/js/ie10-viewport-bug-workaround.js"></script>
<script id="dsq-count-scr" src="//acte-1.disqus.com/count.js" async></script>
</body>
</html>
11 changes: 9 additions & 2 deletions test/jasmine/acteSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ describe('new acte.Jour()', function () {

// false for debug
expect(new acte.Jour('8//10.-1793', false).variables.gregorien.od).toEqual(dateValide(8, 10, -1793));
expect(new acte.Jour('-12/-10/-1657', false).variables.gregorien.od).toEqual(dateValide(12, 10, -1657));
expect(new acte.Jour('/2/3', false).variables.gregorien.od).toEqual(dateValide(1, 2, 3));
expect(new acte.Jour('/3/4/', false).variables.gregorien.od).toEqual(dateValide(1, 3, 4));
expect(new acte.Jour('4/5/6/', false).variables.gregorien.od).toEqual(dateValide(4, 5, 6));
Expand Down Expand Up @@ -70,6 +69,7 @@ describe('new acte.Jour()', function () {
expect(new acte.Jour('32/10/1793').variables.gregorien.od).not.toBeDefined();
expect(new acte.Jour('0 octobre 1657').variables.gregorien.od).not.toBeDefined();
expect(new acte.Jour('-00 octobre 1657').variables.gregorien.od).not.toBeDefined();
expect(new acte.Jour('-12/-10/-1657', false).variables.gregorien.od).not.toBeDefined();
expect(new acte.Jour('8/5').variables.gregorien.od).not.toBeDefined();
expect(new acte.Jour('8/5/').variables.gregorien.od).not.toBeDefined();
expect(new acte.Jour('27 frimaire').variables.gregorien.od).not.toBeDefined();
Expand Down Expand Up @@ -312,7 +312,8 @@ describe('new acte.Jour().gregorien()', function () {
expect(new acte.Jour('1/9/1629').gregorien('%Al')).toEqual('Mille-six-cent-vingt-neuf');
expect(new acte.Jour('1/9/-1629', false).gregorien('%Al')).toEqual('Moins mille-six-cent-vingt-neuf');
expect(new acte.Jour('1/9/16290').gregorien('%Al')).toEqual('Pas de correspondances.');
expect(new acte.Jour('1/9/-16290', false).gregorien('%Al')).toEqual('');
expect(new acte.Jour('1/9/16290', false).gregorien('%Al')).toEqual('Pas de correspondances.');
expect(new acte.Jour('1/9/-16290', false).gregorien('%Al')).toEqual('Pas de correspondances.');
expect(new acte.Jour('1/9/5100').gregorien('%Al')).toEqual('Cinq-mille-cent');
expect(new acte.Jour('1/9/5110').gregorien('%Al')).toEqual('Cinq-mille-cent-dix');
expect(new acte.Jour('1/9/5111').gregorien('%Al')).toEqual('Cinq-mille-cent-onze');
Expand Down Expand Up @@ -477,6 +478,9 @@ describe('new acte.Jour().julien()', function () {
// Erreurs
it('new acte.Jour().julien() = Pas de correspondances.', function () {
expect(new acte.Jour('').julien()).toEqual('Pas de correspondances.');
expect(new acte.Jour('1/1/16000').julien('%A')).toEqual('Pas de correspondances.');
expect(new acte.Jour('1/1/-16000').julien('%A')).toEqual('Pas de correspondances.');
expect(new acte.Jour('1/1/16000', false).julien('%A')).toEqual('Pas de correspondances.');
});
it('new acte.Jour().julien(0, \'erreur\') = Message d\'erreur.', function () {
expect(new acte.Jour('').julien('', 'Message d\'erreur.')).toEqual('Message d\'erreur.');
Expand Down Expand Up @@ -585,6 +589,9 @@ describe('new acte.Jour().republicain()', function () {
// Erreurs
it('new acte.Jour().republicain() = Pas de correspondances.', function () {
expect(new acte.Jour('').republicain()).toEqual('Pas de correspondances.');
expect(new acte.Jour('brumaire an 11000').republicain()).toEqual('Pas de correspondances.');
expect(new acte.Jour('brumaire an 11000', false).republicain()).toEqual('Pas de correspondances.');
expect(new acte.Jour('brumaire an -11000', false).republicain()).toEqual('Pas de correspondances.');
});
it('new acte.Jour().republicain(0, \'erreur\') = Message d\'erreur.', function () {
expect(new acte.Jour('').republicain('', 'Message d\'erreur.')).toEqual('Message d\'erreur.');
Expand Down
Loading

0 comments on commit c6c18cf

Please sign in to comment.