Editorialisation des pages de règle

Un icône pour le destinataire
Une belle section référence mettant en valeur les URL officielles
pull/6/head
Mael Thomas 2017-03-17 16:49:09 +01:00
parent 16c5fb1303
commit 2d1d9fc0ff
17 changed files with 359 additions and 37 deletions

15
200.html Normal file
View File

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Syso</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:200,300,400,500,600,700' rel='stylesheet' type='text/css'>
</head>
<body>
<div id="js"></div>
<script src="https://use.fontawesome.com/1da10bbdec.js"></script>
<script type="text/javascript" src="/dist/bundle.js"></script>
</body>
</html>

View File

@ -8,7 +8,7 @@
</head>
<body>
<div id="js">lOl</div>
<div id="js"></div>
<script src="https://use.fontawesome.com/1da10bbdec.js"></script>
<script type="text/javascript" src="/dist/bundle.js"></script>
</body>

View File

@ -68,7 +68,7 @@
},
"scripts": {
"start": "node source/server.js",
"compile": "NODE_ENV='production' webpack --config source/webpack.config.js --optimize-minimize --optimize-dedupe --optimize-occurrence-order",
"compile": "NODE_ENV='production' webpack --config source/webpack.config.js",
"surge": "npm run compile && surge --domain scientific-wish.surge.sh -p ./ && rm -rf dist/"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,193 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="148.59375"
height="49.4925"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="URSSAF Logo.svg">
<defs
id="defs4">
<clipPath
id="clipPath3069"
clipPathUnits="userSpaceOnUse">
<path
id="path3071"
d="m 0,595.02 420,0 0,-594.96 -420,0 0,594.96 z"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clipPath3063"
clipPathUnits="userSpaceOnUse">
<path
id="path3065"
d="m 3.1e-5,595.276 420.944999,0 0,-595.276 L 3.1e-5,0 l 0,595.276 z"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clipPath3047"
clipPathUnits="userSpaceOnUse">
<path
id="path3049"
d="m 138.718,575.398 -118.875,0 0,-39.594 118.875,0 0,39.594 z"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clipPath3011"
clipPathUnits="userSpaceOnUse">
<path
id="path3013"
d="m 0,595.02 420,0 0,-594.96 -420,0 0,594.96 z"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clipPath3005"
clipPathUnits="userSpaceOnUse">
<path
id="path3007"
d="m 3.1e-5,595.276 420.944999,0 0,-595.276 L 3.1e-5,0 l 0,595.276 z"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clipPath2999"
clipPathUnits="userSpaceOnUse">
<path
id="path3001"
clip-rule="evenodd"
d="m 19.843,79.371 0,428.579 379.842,0 0,-324.71 c 0,-55.06 -50.358,-103.869 -104.139,-103.869 l -275.703,0"
inkscape:connector-curvature="0" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568543"
inkscape:cx="70.87545"
inkscape:cy="22.649501"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-107.30373,-181.59718)">
<g
id="g3392">
<g
transform="matrix(1.25,0,0,-1.25,137.90873,214.94968)"
id="g3019">
<path
id="path3021"
style="fill:#0061aa;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 c -2.925,0 -4.447,1.895 -4.447,5.158 l 0,6.865 1.775,0 0,-6.815 c 0,-2.232 0.93,-3.432 2.706,-3.432 1.86,0 2.739,1.15 2.739,3.314 l 0,6.933 1.776,0 0,-6.899 C 4.549,1.81 2.942,0 0,0"
inkscape:connector-curvature="0" />
</g>
<g
transform="matrix(1.25,0,0,-1.25,157.45998,202.01343)"
id="g3023">
<path
id="path3025"
style="fill:#0061aa;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 -3.45,0 0,-3.804 3.45,0 c 1.184,0 2.012,0.608 2.012,1.893 C 2.012,-0.676 1.201,0 0,0 z m 1.201,-5.326 2.417,-4.837 -2.045,0 -2.351,4.685 -2.672,0 0,-4.685 -1.741,0 0,11.837 5.191,0 c 2.063,0 3.805,-1.099 3.805,-3.534 0,-1.894 -0.998,-3.061 -2.604,-3.466"
inkscape:connector-curvature="0" />
</g>
<g
transform="matrix(1.25,0,0,-1.25,173.71248,214.94968)"
id="g3027">
<path
id="path3029"
style="fill:#0061aa;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 c -1.725,0 -3.213,0.744 -4.21,1.91 l 1.268,1.235 c 0.794,-0.862 1.961,-1.403 3.077,-1.403 1.658,0 2.452,0.574 2.452,1.724 0,0.913 -0.693,1.37 -2.672,1.962 -2.502,0.744 -3.703,1.37 -3.703,3.484 0,2.046 1.725,3.297 3.906,3.297 1.607,0 2.825,-0.592 3.873,-1.607 L 2.74,9.334 c -0.744,0.761 -1.59,1.133 -2.757,1.133 -1.386,0 -1.978,-0.676 -1.978,-1.471 0,-0.828 0.541,-1.234 2.587,-1.843 C 2.926,6.442 4.38,5.699 4.38,3.585 4.38,1.455 3.027,0 0,0"
inkscape:connector-curvature="0" />
</g>
<g
transform="matrix(1.25,0,0,-1.25,190.57873,214.94968)"
id="g3031">
<path
id="path3033"
style="fill:#0061aa;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 c -1.724,0 -3.213,0.744 -4.21,1.91 l 1.269,1.235 c 0.794,-0.862 1.961,-1.403 3.077,-1.403 1.657,0 2.452,0.574 2.452,1.724 0,0.913 -0.693,1.37 -2.672,1.962 -2.503,0.744 -3.703,1.37 -3.703,3.484 0,2.046 1.724,3.297 3.906,3.297 1.606,0 2.824,-0.592 3.872,-1.607 L 2.74,9.334 c -0.744,0.761 -1.59,1.133 -2.757,1.133 -1.386,0 -1.978,-0.676 -1.978,-1.471 0,-0.828 0.541,-1.234 2.587,-1.843 C 2.926,6.442 4.38,5.699 4.38,3.585 4.38,1.455 3.028,0 0,0"
inkscape:connector-curvature="0" />
</g>
<g
transform="matrix(1.25,0,0,-1.25,209.66498,205.81843)"
id="g3035">
<path
id="path3037"
style="fill:#0061aa;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 c -0.287,0.846 -0.761,2.215 -0.896,2.723 -0.135,-0.508 -0.558,-1.86 -0.862,-2.74 l -0.948,-2.706 3.654,0 L 0,0 z m 2.487,-7.119 -0.999,2.807 -4.734,0 -0.981,-2.807 -1.843,0 4.26,11.837 1.878,0 4.312,-11.837 -1.893,0"
inkscape:connector-curvature="0" />
</g>
<g
transform="matrix(1.25,0,0,-1.25,223.90998,202.09843)"
id="g3039">
<path
id="path3041"
style="fill:#0061aa;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 0,-3.094 3.399,0 0,-1.742 -3.399,0 0,-5.259 -1.776,0 0,11.837 7.627,0 L 5.851,0 0,0"
inkscape:connector-curvature="0" />
</g>
<g
transform="matrix(1.25,0,0,-1.25,82.49998,900.84468)"
id="g3043">
<g
clip-path="url(#clipPath3047)"
id="g3045">
<g
transform="translate(19.843,553.957)"
id="g3051">
<path
id="path3053"
style="fill:#0061aa;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 6.072,0 c 0,0 1.287,-6.764 6.046,-11.635 4.761,-4.873 8.57,-6.519 8.57,-6.519 0,0 -7.022,-0.031 -14.396,6.64 C 0.767,-6.51 0,0 0,0"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(114.819,575.382)"
id="g3055">
<path
id="path3057"
style="fill:#00a886;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 c 0,0 12.581,0.682 19.324,-6.784 4.423,-4.904 4.575,-9.208 4.575,-9.208 l -6.622,-0.151 c 0,0 -0.483,4.682 -3.334,8.715 C 8.814,-0.172 0,0 0,0"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@ -0,0 +1,9 @@
OPCA:
nom: Organisme paritaire collecteur agréé
lien: https://fr.wikipedia.org/wiki/Organisme_paritaire_collecteur_agréé
URSSAF:
image: URSSAF.png
lien: https://fr.wikipedia.org/wiki/URSSAF
salarié:
nom: Le salarié
image: salarié.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1,8 @@
# Associtions d'URL de références avec leur logo
service-public.fr:
image: marianne.png
urssaf.fr:
image: URSSAF.png
gouv.fr:
image: marianne.png

View File

@ -1,8 +1,10 @@
- Cotisation: CIF CDD
attache: Salariat . CDD
description: Contribution au financement du congé individuel de formation spécifique aux CDD
description: Contribution au financement du congé individuel de formation spécifique aux CDD.
attributs:
collecteur: OPCA
destinataire: OPCA
dû par: employeur
références:
Code du travail - Article L6322-37 : https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000022234996&cidTexte=LEGITEXT000006072050

View File

@ -1,14 +1,17 @@
- Indemnité: compensation des congés payés
attache: Salariat . CDD
attributs:
destinataire: salarié
dû par: employeur
description: |
Le salarié en CDD bénéficie des mêmes droits à congés payés que le salarié en CDI. Il acquiert et prend ses congés payés dans les mêmes conditions.
Il est cependant courant que le salarié ne puisse pas prendre tous ses congés avant le terme de son contrat, il bénéficie d'une indemnité compensatrice de congés payés.
references:
fiche (service-public.gouv.fr): https://www.service-public.fr/particuliers/vosdroits/F2931
Fiche service-public.gouv.fr: https://www.service-public.fr/particuliers/vosdroits/F2931
Code du travail - Article L3141-24: https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006072050&idArticle=LEGIARTI000006902661&dateTexte=&categorieLien=cid
Congés payés et contrat CDD: https://www.easycdd.com/LEGISLATION-CDD/L-embauche-le-suivi-du-contrat-CDD-les-incidents-frequents/Conges-payes-et-contrat-CDD
Code du travail Article L3141-24: https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006072050&idArticle=LEGIARTI000006902661&dateTexte=&categorieLien=cid
non applicable si:
l'une de ces conditions:

View File

@ -2,6 +2,8 @@
attache: Salariat . CDD
attributs:
type: indemnité
destinataire: salarié
alias: prime de précarité
description: Somme versée en fin de CDD comme compensation de précarité.
notes: Attention, les exceptions sont légion. Conventions collectives.
@ -43,8 +45,8 @@
références:
Code du travail - Article L1243-8: https://www.legifrance.gouv.fr/affichCode.do?idSectionTA=LEGISCTA000006189459&cidTexte=LEGITEXT000006072050
Fin du CDD (service-public.gouv.fr): https://www.service-public.fr/particuliers/vosdroits/F40
La prime de précarité est-elle due [...] (service-public.gouv.fr): https://www.service-public.fr/particuliers/vosdroits/F803
Saisonnier (travail-emploi.gouv.fr): http://travail-emploi.gouv.fr/droit-du-travail/contrats-et-carriere/contrats-de-travail/article/le-travail-saisonnier
La prime de précarité n'est pas due si [...] (easycdd.com): https://www.easycdd.com/LEGISLATION-CDD/Fin-ou-rupture-du-contrat-CDD/La-prime-de-precarite/La-prime-de-precarite-n-est-pas-due-si
Pourusuite de l'activité après la fin du CDD (easycdd.com): https://www.easycdd.com/LEGISLATION-CDD/Fin-ou-rupture-du-contrat-CDD/Poursuite-de-l-activite-apres-la-fin-du-contrat-CDD
Fiche Fin du CDD: https://www.service-public.fr/particuliers/vosdroits/F40
Fiche La prime de précarité est-elle due: https://www.service-public.fr/particuliers/vosdroits/F803
Le travail saisonnier: http://travail-emploi.gouv.fr/droit-du-travail/contrats-et-carriere/contrats-de-travail/article/le-travail-saisonnier
La prime de précarité n'est pas due si: https://www.easycdd.com/LEGISLATION-CDD/Fin-ou-rupture-du-contrat-CDD/La-prime-de-precarite/La-prime-de-precarite-n-est-pas-due-si
Poursuite de l'activité après la fin du CDD: https://www.easycdd.com/LEGISLATION-CDD/Fin-ou-rupture-du-contrat-CDD/Poursuite-de-l-activite-apres-la-fin-du-contrat-CDD

View File

@ -3,6 +3,7 @@
attributs:
dû par: employeur
type: majoration
destinataire: URSSAF
description: Majoration des contributions patronales dassurance chômage pour les contrats à durée déterminée courts (CDD)
non applicable si:
@ -21,8 +22,8 @@
durée contrat <= 3: 0.5%
références:
Circulaire Unédic (unedic.fr): http://www.unedic.org/sites/default/files/ci201317_1.pdf
La mojoration de la contribution chômage (urssaf.fr): https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/lassurance-chomage-et-lags/la-majoration-de-la-contribution.html
La mojoration de la contribution chômage: https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/lassurance-chomage-et-lags/la-majoration-de-la-contribution.html
Circulaire Unédic: http://www.unedic.org/sites/default/files/ci201317_1.pdf
notes: |
- L'URSSAF liste à la fois des conditions pour "Les CDD concernés par lapplication de la majoration" et pour "Les contrats de travail exclus de la majoration". Un doute persiste : difficile de savoir si les premières suffisent au calcul (donc que les deuxièmes sont là pour enlever les doutes) ou si les deuxièmes peuvent faire exception...

View File

@ -43,23 +43,89 @@
display: flex;
justify-content: flex-start;
min-height: 5em;
margin-left: 1%;
}
#rule-meta > div {
margin-right: 5%;
}
#meta-paragraph {
background: rgba(51, 51, 80, 0.03);
margin: 0 3em;
/*background: rgba(51, 51, 80, 0.03);*/
/*margin: 0 3em;*/
padding: 1em;
width: 40%;
}
#meta-paragraph p {
/*border-left: 3px solid #333350;*/
padding-left: 1em;
color: #444;
font-size: 95%;
}
#rule-meta #rule-references {
#destinataire a {
text-decoration: none;
color: inherit;
}
#destinataire img {
width: 130px;
display: block;
}
#destinataireName {
width: 130px;
text-align: center;
font-size: 70%;
line-height: 1em;
margin-top: .3em;
}
#destinataire #calligraphy {
color: #5B5B73;
border: 2px solid #5B5B73;
border-radius: .4em;
width: 130px;
line-height: 2em;
font-size: 130%;
font-weight: bold;
text-align: center;
}
#references {
font-size: 85%;
list-style: none;
padding-left: 1em;
color: #333350;
}
#rule-meta #rule-references li i {
margin: 0 1em;
color: #333350
#references a {
color: inherit;
/*text-decoration: none;*/
}
#references li {
margin-bottom: .15em;
}
#references .meta {
text-align: right;
width: 16em;
margin-right: 1.5em;
display: inline-block;
font-size: 75%;
}
#references .url {
font-weight: 600;
color: white;
background: #333350;
border-radius: .4em;
font-style: italic;
padding: .05em .6em;
}
#references img {
vertical-align: sub;
height: 1.2em;
border-radius: .3em;
margin-left: .6em;
}
#rule-rules {
display: inline-flex;
justify-content: start;
@ -84,6 +150,7 @@
border: none;
font-size: 120%;
padding: .5em;
margin: auto;
}
#rule-rules section {

View File

@ -10,6 +10,8 @@ import {formValueSelector} from 'redux-form'
import mockSituation from '../engine/mockSituation.yaml'
import {START_CONVERSATION} from '../actions'
import classNames from 'classnames'
import destinataires from '../../règles/destinataires/destinataires.yaml'
import references from '../../règles/références/références.yaml'
// situationGate function useful for testing :
let testingSituationGate = v => // eslint-disable-line no-unused-vars
@ -54,6 +56,10 @@ export default class Rule extends Component {
situationExists = !R.isEmpty(form),
showValues = situationExists && this.state.showValues
let destinataire = R.path(['attributs', 'destinataire'])(rule),
destinataireData = destinataires[destinataire]
return (
<div id="rule">
<PageTypeIcon type="comprendre"/>
@ -61,23 +67,28 @@ export default class Rule extends Component {
<span className="rule-type">{rule.type}</span>
<span className="rule-name">{name}</span>
</h1>
<section id="rule-meta" style={{display: 'none'}}>
<section id="rule-meta">
<div id="meta-paragraph">
<p>
{rule.description}
</p>
</div>
<div id="destinataire">
<h2>Destinataire</h2>
<a href={destinataireData.lien} target="_blank">
{destinataireData.image &&
<img src={require('../../règles/destinataires/' + destinataireData.image)} /> }
{!destinataireData.image &&
<div id="calligraphy">{destinataire}</div>
}
</a>
{destinataireData.nom && <div id="destinataireName">{destinataireData.nom}</div>}
</div>
<div>
<h2>Propriétés</h2>
<JSONView o={{
...rule.attributs,
'contexte': rule['attache']
}} />
<h2>Références</h2>
{this.renderReferences(rule)}
</div>
</section>
<p>Pourquoi cette règle me concerne ? Comment est-elle calculée ? C'est pas très lisible pour l'instant, mais ça le deviendra</p>
<section id="rule-rules" className={classNames({showValues})}>
{ do {
let [,cond] =
@ -107,22 +118,32 @@ export default class Rule extends Component {
)
}
renderReferences(rule) {
renderReferences({'références': refs}) {
if (!refs) return <p>Cette règle manque de références.</p>
return (
rule['référence'] && <div>{rule['référence']}</div>)
|| (
rule['références'] && <ul id="rule-references">
{R.toPairs(rule['références']).map(
([name, link]) =>
<li key={name}>
{link.indexOf('legifrance.gouv') >= 0 &&
<i className="fa fa-gavel" aria-hidden="true"></i>
}
<ul id="references">
{R.toPairs(refs).map(
([name, link]) => {
let refkey = Object.keys(references).find(r => link.indexOf(r) > -1),
refData = refkey && references[refkey] || {},
domain = (link.indexOf("://") > -1
? link.split('/')[2]
: link.split('/')[0]).replace('www.', '')
return <li key={name}>
<span className="meta">
<span className="url">
{domain}
{refData.image &&
<img src={require('../../règles/références/' + refData.image)}/> }
</span>
</span>
<a href={link} target="_blank">
{name}
</a>
</li>
)}
})}
</ul>
)
}

View File

@ -0,0 +1 @@
- https://thenounproject.com/search/?q=employee&i=859814