Merge pull request 'develop' (#16) from develop into main

Reviewed-on: cheeze.fr/mdnotes#16
main
sanchezn 3 years ago
commit b1564b0137

2
Cargo.lock generated

@ -437,7 +437,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cheezenotes"
version = "0.1.0"
version = "0.2.0"
dependencies = [
"actix-files",
"actix-web",

@ -1,6 +1,6 @@
[package]
name = "cheezenotes"
version = "0.1.0"
version = "0.2.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

@ -15,7 +15,21 @@
- [MyWay v1](bpce-si-myway-v1)
- [Migration PMM -> git](bpce-si-migration-pmm)
- [Ressources REST MyWay](bpce-si-ressources-myway)
## Notes
* [Passage connaissance FLorin](passageFlorin)
* [Siren non diffusible](sirenNonDiffusible)
* [Enveloppes](enveloppes)
* [MIF2](MIF2)
* [Logisaisie](logisaisie)
* [CDN Catalogue MIF2](cdncatalogue)
* [Forbearance](forbearance)
* [SPT](SPT)
* [Millésime 2022](millesime2022)
## Listes
- [Contacts](contacts-bpce-si)
- [Clients](clients-bpce-si)
## Suivi Anaïs
- [Feedback 27/01/2023](anais-feedback-27-01-2023)
## Contacts
- [Contacts](contacts-bpce-si)
- [Feedback 27/01/2023](anais-feedback-27-01-2023)## Suivi Anaïs
- [Feedback 27/01/2023](anais-feedback-27-01-2023)
## Bidouille
- [bidouille]()

@ -0,0 +1,2 @@
[retour](BPCE-SI-Notes)
# MIF2

@ -0,0 +1,6 @@
[retour](BPCE-SI-Notes)
# SPT
* Code Clarity : 031675-01
* Code GECOCH : E33210
Ecran financier de connaissance client.
Mettre des libellés en fonction du code marché sur les 5 premières informations (Chiffre d'affaires/budget etc.).

@ -1,9 +1,8 @@
[retour](BPCE-SI-Notes)
# Suivi Anaïs
## Feedback Anaïs 27/01/2023
### Contexte
# Feedback Anaïs 27/01/2023
## Contexte
Après le départ de Fabien Vincent, tuteur d'Anaïs, je reprends sa suite en tant que tuteur. Ça fait trois mois que je suis Anaïs dans son travail. Anaïs entame sa deuxième année à BPCE-SI au sein de l'équipe Outils commerciaux.
### Feedback
## Feedback
Anaïs a travaillé sur plusieurs technologies :
- MyWay v2 (MIF2 questionnaire risque)
- MyWay v1 (maintenance sur connaissance client)

@ -0,0 +1,13 @@
[retour](BPCE-SI-Notes)
[](\\Prdgce7v2115\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2116\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2117\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2118\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2119\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2120\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2121\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2122\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2123\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2124\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2125\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)
[](\\Prdgce7v2126\d\gcedoc\referentielproduction\clients\csctrmif\csctrmif\Documents)

@ -0,0 +1,3 @@
[retour](BPCE-SI-Notes)
# CDN Catalogue MIF2
* Code changement : E34164

@ -0,0 +1,7 @@
[retour](BPCE-SI-Notes)
# Clients
| Env | Etab. | No pers. | SIREN | Commentaire |
| VFO| 11315| 075161690| 378140776| |
| VFO| 11315| 501051182| 832124945| |
| VFO| 11315| 500181958| 819524851| |
| UTI| 11315| 502306706| 808056030| |

@ -1,4 +1,4 @@
[Notes](notes)
[retour](BPCE-SI-Notes)
# Contacts
## AEM (Acquisition En Masse)
- Geoffroy Lambert

@ -0,0 +1,56 @@
[retour](BPCE-SI-Notes)
# Enveloppes
## 01 - choix montant à investir
* Mettre le montant avant l'enveloppe.
* Ajouter les acronymes des enveloppes entre parenthèses.
* contrat de capi avant gsm.
* Voir pour remplacer les cases à cocher par des boutons radios.
* La liste des enveloppes disponibles dpend du projet (une deux ou trois enveloppes disponibles)
* Enlever le 's' à enveloppes
* ajouter la liste des comptes titre du client sous le CTO et l'intitulé du compte titre (bouton radio) avec en haut le choix "nouveau CTO"
* pareil pour les deux autres supports.
* vérifier si c'est possible d'alimenter un contrat de capitalisation existant.
## 02 - detail projet
* Retirer le 's' à enveloppe.
* Mettre le montant avant l'enveloppe.
* Afficher le numéro du compte titre sélectionné et son intitulé (nouveau si le compte est nouveau).
## 04 - choix produit
* Afficher le numéro du compte titre sélectionné et son intitulé (nouveau si le compte est nouveau).
* Afficher les produits de l'enveloppe et les produits non-risqués.
## 05 - proposition
* Déplacer la durée sous enveloppe
* Afficher le numéro du compte titre sélectionné et son intitulé (nouveau si le compte est nouveau).
## 06 - modifier la proposition
* Afficher le numéro du compte titre sélectionné et son intitulé (nouveau si le compte est nouveau).
## 10 - resumé après modification
* afficher les infos sous le montant dans les deux blocs.
## 11 - Synthèse (pdf)
* Mettre enveloppe sous montant à placer avec libellé et numéro de compte/contrat.
# v2 - suite à réunion du 26/01/2023
## 01 - choix montant à investir
* Afficher le compte titre existant présélectionné
* voir si possibilité de mettre la liste ouverte **Pas de composant pour liste ouverte**
* essayer de rajouter case à cocher pour "nouveau compte CTO"
* en guise de libellé du compte, mettre l'entité titulaire (client bancaire)
> en VFO : CEBFC 83582289 (multiples comptes titres)
## 02 - detail projet
* Enlever le libellé du produit, ne laisser que le numéro de compte
## 04 - choix produit
* mettre le libellé compte et choix en gras
* éventuellement agradir la police
## 05 - proposition
* mettre en gras...
## 10 - resumé après modification
* déplacer l'enveloppe au dessus de Ostrum (regrouper ANR en haut, et AR en bas)
## 11 - Synthèse (pdf)
* dans le tableau de synthèse regrouper comme au 10
## 12 - avec portefeuille
* Ajouter un message de précision
# v3 réunion du 02/02/2023
* Supprimer la GSM de tous les écrans
## 10 - resumé après modification
* Ajouter une zone de saisie pour permettre au conseiller de saisir la phrase (pour la synthèse)
## 11 - Synthèse (pdf)
* Grise la ligne enveloppe (gris plus clair)
* ligne dessous, CTO numéro de compte, si nouveau : "à souscrire"

@ -0,0 +1,5 @@
[retour](BPCE-SI-Notes)
# Forbearance
Rechercher les valeurs possible des états et statut. fait.
* GECOCH : P34249
* Clarity : 031984-02

@ -1,6 +1,6 @@
[Accueil](accueil)
# CheezeNotes
L'objectif de CheezeNotes est de pouvoir saisir des notes avec un minimum de formatage le plus rapidement possible.
## CheezeNotes
L'objectif de CheezeNotes est de pouvoir saisir des `notes` avec un minimum de formatage le plus rapidement possible.
> Cette page est un bac à sable. Les modifications ne seront jamais enregistrées.
> Pour réinitialiser la page, il suffit de la recharger.
## Utilisation

@ -0,0 +1,3 @@
[retour](BPCE-SI-Notes)
## Logisaisie
[](https://confluence.f.bbg/display/EPICCB/Financier+-+transmettre+un+bilan+au+prestataire+de+saisie)

@ -0,0 +1 @@
[retour](BPCE-SI-Notes)

@ -1,5 +1,7 @@
[Accueil](accueil)
# Notes
## BPCE-SI
- [Notes](BPCE-SI-Notes)
## Rust
*  [Idées](perso-idees)
*  [Crates](perso-crates)
@ -13,6 +15,4 @@
## Avec les enfants
- [Bricolages]()
- [mini-golf]()
- [Livres](livres enfants)
## BPCE-SI
- [Notes](BPCE-SI-Notes)
- [Livres](livres enfants)

@ -0,0 +1,17 @@
[retour](BPCE-SI-Notes)
# Passage de copnnaissance Florin
## MyWay v1
[reliquats confluence](https://confluence.f.bbg/pages/viewpage.action?pageId=1705819095)
Corrections reliquats IHM MIF2 (6 et 7) livrés en UTI à tester.
Partie editique.
* GECOCH : E34802
* Version : v2301
* lot pack-it : ....IHM_MIF2_Reliquet_IHM_Editique affecté à Florin
Malika suit l'évo et vois avec le métier pour les points 4 et 5.
## GceDoc SynthèsePlacement
Suivi par Philippe Loquette.
Sur digital.ai release CEH10 Editique_Synthèse_DC_07_02_23. Testé en VFO et début d'UTI, aucun impact sur la structure du document.
## Pb déploiement MyWay v2 en DUA
Voir RITM0000051345
## Pb tests UTI MIF2
Ressource REST en erreur : https://myway-ressources-uti.sigcesie.caisse-epargne.fr:6085/connaissancefinclnt/v1/fraisExanteParcours

@ -0,0 +1,22 @@
[retour](BPCE-SI-Notes)
# Siren non diffusible
[api insee](https://api.insee.fr/catalogue/site/themes/wso2/subthemes/insee/pages/item-info.jag?name=Sirene&version=V3&provider=insee)
## Identifiants
* login : sanchez
* email : nicolas.sanchez@it-ce.fr
* mot de passe : Bpcesiinsee1
* application : DefaultApplication
## Token
* clé consomateur : nvdLPdEAJNdbMhO8JdCY73vtBcwa
* secret du consommateur : Bc1UMnrj8f3kfCQ8CmAt0vOMU7ca
* jeton : 0c56889c-1d1d-3909-ac8e-e4e98763b0e0
## Génération token
> `curl -k -d "grant_type=client_credentials" \`
> ` -H "Authorization: Basic Base64(consumer-key:consumer-secret)" \`
> ` https://api.insee.fr/token`
> `curl -k -d "grant_type=client_credentials" \`
> ` -H "Authorization: Basic Base64(nvdLPdEAJNdbMhO8JdCY73vtBcwa:Bc1UMnrj8f3kfCQ8CmAt0vOMU7ca)" \`
> ` https://api.insee.fr/token`
## Récupération des données json/csv
- premier appel JSON pour savoir combien d'enregistrements. Si < 200000 alors un seul appel csv, sinon, on continue toute la requête en json.

@ -4,14 +4,24 @@
font-weight: 400;
src: local('Material Icons'),
local('MaterialIcons-Regular'),
url(/static/MaterialIcons-Regular.ttf) format('truetype');
url(/static/MaterialIconsOutlined-Regular.otf) format('woff');
}
html {
font-family: system-ui;
font-size: 12pt;
}
body {
margin: 0;
background-color: #f6f6f6;
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px; /* Preferred icon size */
font-size: 20px; /* Preferred icon size */
display: inline-block;
line-height: 1;
text-transform: none;
@ -25,34 +35,65 @@
font-feature-settings: 'liga';
}
html {
font-family: system-ui;
font-size: 12pt;
}
body {
margin: 0;
background-color: #f6f6f6;
}
button {
width: 2.2rem;
height: 2.2rem;
}
div#buttons {
white-space: nowrap;
box-sizing: border-box;
padding: .2rem;
position: fixed;
background-color: #dddddddd;
border-bottom: 3px solid #ccccccdd;
background-color: #dddde5;
top: 0;
left: 0;
right: 0;
height: 3rem;
margin-left: auto;
margin-right: auto;
max-width: 1200;
}
div#buttons button.button {
color: #444444;
padding: 0;
margin: 0;
height: 1.8rem;
width: 1.8rem;
background-color: #eeeeee;
border: 1px solid #cccccc;
border-right: none;
}
div#buttons button.button:disabled {
color: #aaaaaa;
}
div#buttons button.separator {
background-color: transparent;
color: #bbbbbb;
border: none;
border-left: 1px solid #cccccc;
height: 1.8rem;
margin: 0;
padding: 0;
}
div#buttons button.text {
color: #444444;
font-size: 16px;
vertical-align: bottom;
}
div#buttons button.text:disabled {
color: #aaaaaa;
}
div#buttons button.floatright {
float: right;
}
div#buttons button.rightborder {
border-right: 1px solid #cccccc;
}
div#buttons button.onoffbutton.buttonon {
background-color: #aaaaaa;
}
div#buttons #taButtonLabel {
position: relative;
font-size: 1.8rem;
@ -82,7 +123,7 @@ textarea#ta {
}
div#cheezenotes {
margin-top: 3rem;
margin-top: 2rem;
margin-left: auto;
margin-right: auto;
max-width: 1200;
@ -96,9 +137,9 @@ div#cheezenotes {
overflow-x: auto;
}
div#cheezenotes div.cheezenotes_line {
/*div#cheezenotes div.cheezenotes_line {*/
/* Pour firefox : white-space: pre; */
}
/*}*/
div#cheezenotes span.tokenfictif {
font-weight: 1;
@ -257,8 +298,6 @@ div#cheezenotes div.lasttablerow span.tablerow {
border-bottom: none;
}
div#cheezenotes div.cheezenotes_line span.token {
font-weight: 1;
color: #1353b3;
@ -270,7 +309,7 @@ div#cheezenotes div.cheezenotes_line span.token {
}
div#cheezenotes:focus div.cheezenotes_line span.token {
font-size: inherit;
font-size: 95%;
}
div#cheezenotes div.body {

@ -1,6 +1,16 @@
import { saveSelection, loadSelection, insertTextAtCaret } from './caret.js';
import { formatLine, load, save, formatTable, redrawTables, appendData, dpwidth } from './md.js';
const showtokens = [
{ fontSize: 0 },
{ fontSize: '95%' }
];
const hidetokens = [
{ fontSize: '95%' },
{ fontSize: 0 }
];
function timeoutSave() {
if (window.tos !== null) {
window.clearTimeout(window.tos);
@ -8,9 +18,24 @@ function timeoutSave() {
window.tos = window.setTimeout(onsave, 5000);
}
function showTokens() {
let tokens = document.getElementsByClassName('token');
for (let i = 0; i < tokens.length; i++) {
tokens[i].animate(showtokens, { duration: 200, iterations: 1 });
}
}
function hideTokens() {
let tokens = document.getElementsByClassName('token');
for (let i = 0; i < tokens.length; i++) {
tokens[i].animate(hidetokens, { duration: 200, iterations: 1 });
}
}
function ontextarea(e) {
let ta = document.getElementById('ta');
if (ta.style.display != 'inline') {
let taButton = document.getElementById('taButton');
if (taButton.classList.contains('buttonoff')) {
ta.style.display = 'inline';
} else {
ta.style.display = 'none';
@ -44,6 +69,51 @@ function onstrikebutton(e) {
return false;
}
function onmonobutton(e) {
e.preventDefault();
let cheezenotes = document.getElementById('cheezenotes');
cheezenotes.focus();
insertTextAtCaret('`', '`');
onedit(e);
return false;
}
function onh1button(e) {
e.preventDefault();
let cheezenotes = document.getElementById('cheezenotes');
cheezenotes.focus();
insertTextAtCaret('#', '');
onedit(e);
return false;
}
function onh2button(e) {
e.preventDefault();
let cheezenotes = document.getElementById('cheezenotes');
cheezenotes.focus();
insertTextAtCaret('##', '');
onedit(e);
return false;
}
function onh3button(e) {
e.preventDefault();
let cheezenotes = document.getElementById('cheezenotes');
cheezenotes.focus();
insertTextAtCaret('###', '');
onedit(e);
return false;
}
function onbqbutton(e) {
e.preventDefault();
let cheezenotes = document.getElementById('cheezenotes');
cheezenotes.focus();
insertTextAtCaret('>', '');
onedit(e);
return false;
}
function onsave(e) {
let saveButton = document.getElementById('saveButton');
saveButton.disabled = true;
@ -173,36 +243,141 @@ function ondragleave(e) {
// alert('leave')
}
function addButton(id, icon, onclick) {
let buttons = document.getElementById('buttons');
let button = document.createElement('button');
button.id = id;
button.classList.add('button');
if (icon.substring(0, 1) == ':') {
button.classList.add('material-icons');
} else {
button.classList.add('text');
}
button.innerText = icon.replace(':', '');
button.addEventListener('mousedown', onclick);
buttons.appendChild(button);
return button;
}
function addOnOffButton(id, icon, alt_icon, onclick, on = false) {
let button;
if (on == true) {
button = addButton(id, icon, onclick);
button.classList.add('onoffbutton');
button.classList.add('buttonon');
} else {
button = addButton(id, alt_icon, onclick);
button.classList.add('onoffbutton');
button.classList.add('buttonoff');
}
button.addEventListener('click', function (e) {
if (button.classList.contains('buttonon')) {
button.classList.remove('buttonon');
button.classList.add('buttonoff');
button.innerText = alt_icon.replace(':', '')
} else {
button.classList.remove('buttonoff');
button.classList.add('buttonon');
button.innerText = icon.replace(':', '')
}
});
return button;
}
function lastButton(button) {
button.classList.add('rightborder');
return button;
}
function floatRight(button) {
button.classList.add('floatright');
return button;
}
function addSeparator() {
let separator = addButton('', ':more_vert', function () { });
separator.classList.add('separator');
separator.classList.remove('button');
}
function enableFormatButtons() {
document.getElementById('boldButton').disabled = false;
document.getElementById('italicButton').disabled = false;
document.getElementById('strikeButton').disabled = false;
document.getElementById('h1Button').disabled = false;
document.getElementById('h2Button').disabled = false;
document.getElementById('h3Button').disabled = false;
document.getElementById('monoButton').disabled = false;
document.getElementById('bqButton').disabled = false;
}
function disableFormatButtons() {
document.getElementById('boldButton').disabled = true;
document.getElementById('italicButton').disabled = true;
document.getElementById('strikeButton').disabled = true;
document.getElementById('h1Button').disabled = true;
document.getElementById('h2Button').disabled = true;
document.getElementById('h3Button').disabled = true;
document.getElementById('monoButton').disabled = true;
document.getElementById('bqButton').disabled = true;
}
function onblur(e) {
let cheezenotes = document.getElementById('cheezenotes');
redrawTables(cheezenotes);
onsave();
hideTokens();
disableFormatButtons();
}
function onfocus() {
redrawTables(cheezenotes, dpwidth());
showTokens();
enableFormatButtons();
}
function init(pagename = null) {
let cheezenotesdiv = document.getElementById('cheezenotes');
dpwidth(cheezenotesdiv);
cheezenotesdiv.addEventListener('input', onedit);
cheezenotesdiv.addEventListener('keyup', onkeyup);
cheezenotesdiv.addEventListener('keypress', onkeypress);
cheezenotesdiv.addEventListener('keydown', onkeydown);
cheezenotesdiv.addEventListener('paste', onpaste);
cheezenotesdiv.addEventListener('copy', oncopy);
cheezenotesdiv.addEventListener('blur', () => { redrawTables(cheezenotesdiv); onsave() });
cheezenotesdiv.addEventListener('focus', () => { redrawTables(cheezenotesdiv, dpwidth()); });
cheezenotesdiv.addEventListener('drag', ondrag);
cheezenotesdiv.addEventListener('dragenter', ondragenter);
cheezenotesdiv.addEventListener('dragleave', ondragleave);
let cheezenotes = document.getElementById('cheezenotes');
let saveButton = document.getElementById('saveButton');
dpwidth(cheezenotes);
cheezenotes.addEventListener('input', onedit);
cheezenotes.addEventListener('keyup', onkeyup);
cheezenotes.addEventListener('keypress', onkeypress);
cheezenotes.addEventListener('keydown', onkeydown);
cheezenotes.addEventListener('paste', onpaste);
cheezenotes.addEventListener('copy', oncopy);
cheezenotes.addEventListener('blur', onblur);
cheezenotes.addEventListener('focus', onfocus);
cheezenotes.addEventListener('drag', ondrag);
cheezenotes.addEventListener('dragenter', ondragenter);
cheezenotes.addEventListener('dragleave', ondragleave);
let saveButton = addButton('saveButton', ':save', onsave);
saveButton.disabled = true;
saveButton.addEventListener('click', onsave);
let taButton = document.getElementById('taButton');
taButton.addEventListener('click', ontextarea);
let lockButton = document.getElementById('lockButton');
lockButton.addEventListener('click', onlockbutton);
let boldButton = document.getElementById('boldButton');
boldButton.addEventListener('mousedown', onboldbutton);
let italicButton = document.getElementById('italicButton');
italicButton.addEventListener('mousedown', onitalicbutton);
let strikeButton = document.getElementById('strikeButton');
strikeButton.addEventListener('mousedown', onstrikebutton);
addSeparator();
addButton('boldButton', ':format_bold', onboldbutton);
addButton('italicButton', ':format_italic', onitalicbutton);
addButton('strikeButton', ':format_strikethrough', onstrikebutton);
addButton('monoButton', ':code', onmonobutton);
addSeparator();
addButton('h1Button', 'H1', onh1button);
addButton('h2Button', 'H2', onh2button);
addButton('h3Button', 'H3', onh3button);
lastButton(addButton('bqButton', ':format_quote', onbqbutton));
addSeparator();
addOnOffButton('editModeButton', ':edit_note', ':visibility',
function (e) {
if (editModeButton.classList.contains('buttonon')) {
cheezenotes.contentEditable = false;
} else {
cheezenotes.contentEditable = true;
}
}, true);
lastButton(addOnOffButton('taButton', ':notes', ':notes', ontextarea));
disableFormatButtons();
onload();
}

@ -13,12 +13,12 @@
</head>
<body>
<div id="buttons">
<button id="saveButton">💾</button>
<!--<button id="saveButton">💾</button>
<input type="checkbox" id="taButton" /><label id="taButtonLabel" for="taButton">📋</label>
<input type="checkbox" id="lockButton" /><label id="lockButtonLabel" for="lockButton" class="material-icons">visibility_off</label>
<button id="boldButton"><b>B</b></button>
<button id="italicButton"><i>I</i></button>
<button id="strikeButton"><s>S</s></button>
<button id="strikeButton"><s>S</s></button>-->
</div>
<div class="ta"><textarea id="ta" class="cheezenotes" spellcheck="false">{{md}}</textarea></body><div>
<div id="cheezenotes" class="cheezenotes" contenteditable="true" spellcheck="false"></div>

Loading…
Cancel
Save